Commit 17a72388 authored by Viktor Dukhovni's avatar Viktor Dukhovni
Browse files

Simplify ssl_cert_type() by taking advantage of X509_get0_pubkey



Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 27f172d9
Loading
Loading
Loading
Loading
+20 −31
Original line number Original line Diff line number Diff line
@@ -599,43 +599,32 @@ int tls_get_message_body(SSL *s, unsigned long *len)
    return 1;
    return 1;
}
}


int ssl_cert_type(X509 *x, EVP_PKEY *pkey)
int ssl_cert_type(X509 *x, EVP_PKEY *pk)
{
{
    EVP_PKEY *pk;
    if (pk == NULL &&
    int ret = -1, i;
        (pk = X509_get0_pubkey(x)) == NULL)

        return -1;
    if (pkey == NULL)
        pk = X509_get_pubkey(x);
    else
        pk = pkey;
    if (pk == NULL)
        goto err;


    i = EVP_PKEY_id(pk);
    switch (EVP_PKEY_id(pk)) {
    if (i == EVP_PKEY_RSA) {
    default:
        ret = SSL_PKEY_RSA_ENC;
        return -1;
    } else if (i == EVP_PKEY_DSA) {
    case EVP_PKEY_RSA:
        ret = SSL_PKEY_DSA_SIGN;
        return SSL_PKEY_RSA_ENC;
    }
    case EVP_PKEY_DSA:
        return SSL_PKEY_DSA_SIGN;
#ifndef OPENSSL_NO_EC
#ifndef OPENSSL_NO_EC
    else if (i == EVP_PKEY_EC) {
    case EVP_PKEY_EC:
        ret = SSL_PKEY_ECC;
        return SSL_PKEY_ECC;
    }
#endif
#endif
#ifndef OPENSSL_NO_GOST
#ifndef OPENSSL_NO_GOST
    else if (i == NID_id_GostR3410_2001) {
    case NID_id_GostR3410_2001:
        ret = SSL_PKEY_GOST01;
        return SSL_PKEY_GOST01;
    } else if (i == NID_id_GostR3410_2012_256) {
    case NID_id_GostR3410_2012_256:
        ret = SSL_PKEY_GOST12_256;
        return SSL_PKEY_GOST12_256;
    } else if (i == NID_id_GostR3410_2012_512) {
    case NID_id_GostR3410_2012_512:
        ret = SSL_PKEY_GOST12_512;
        return SSL_PKEY_GOST12_512;
    }
    }
#endif
#endif

 err:
    if (!pkey)
        EVP_PKEY_free(pk);
    return (ret);
}
}


int ssl_verify_alarm_type(long type)
int ssl_verify_alarm_type(long type)