Commit d85722d3 authored by Richard Levitte's avatar Richard Levitte
Browse files

EVP_PKEY_asn1_add0(): Check that this method isn't already registered



No two public key ASN.1 methods with the same pkey_id can be
registered at the same time.

Reviewed-by: default avatarBernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/4596)
parent 751148e2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -137,6 +137,11 @@ const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe,

int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth)
{
    if (pkey_asn1_find(ameth->pkey_id) != NULL) {
        EVPerr(EVP_F_EVP_PKEY_ASN1_ADD0,
               EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED);
        return 0;
    }
    if (app_methods == NULL) {
        app_methods = sk_EVP_PKEY_ASN1_METHOD_new(ameth_cmp);
        if (app_methods == NULL)