Commit 64aa3d08 authored by Richard Levitte's avatar Richard Levitte
Browse files

Make sure that a cert with extensions gets version number 2 (v3)



Fixes #4419

Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4420)

(cherry picked from commit 4881d849)
parent 4c9a6a39
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -1719,7 +1719,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
    /* Lets add the extensions, if there are any */
    if (ext_sect) {
        X509V3_CTX ctx;
        X509_set_version(ret, 2);

        /* Initialize the context structure */
        if (selfsign)
@@ -1774,6 +1773,15 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
        goto end;
    }

    {
        const STACK_OF(X509_EXTENSION) *exts = X509_get0_extensions(ret);

        if (exts != NULL && sk_X509_EXTENSION_num(exts) > 0)
            /* Make it an X509 v3 certificate. */
            if (!X509_set_version(ret, 2))
                goto end;
    }

    /* Set the right value for the noemailDN option */
    if (email_dn == 0) {
        if (!X509_set_subject_name(ret, dn_subject))