Add 'flags' parameter to EVP_PKEY_asn1_meth_new() to set algorithm flags.
authorDr. Stephen Henson <steve@openssl.org>
Fri, 21 Apr 2006 17:38:58 +0000 (17:38 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 21 Apr 2006 17:38:58 +0000 (17:38 +0000)
crypto/asn1/ameth_lib.c
crypto/evp/evp.h

index 8c33ca5..af08def 100644 (file)
@@ -191,11 +191,10 @@ int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth)
 int EVP_PKEY_asn1_add_alias(int to, int from)
        {
        EVP_PKEY_ASN1_METHOD *ameth;
-       ameth = EVP_PKEY_asn1_new(from, NULL, NULL);
+       ameth = EVP_PKEY_asn1_new(from, ASN1_PKEY_ALIAS, NULL, NULL);
        if (!ameth)
                return 0;
        ameth->pkey_base_id = to;
-       ameth->pkey_flags |= ASN1_PKEY_ALIAS;
        return EVP_PKEY_asn1_add0(ameth);
        }
 
@@ -218,7 +217,7 @@ int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *ppkey_base_id, int *ppkey_flags,
        return 1;
        }
 
-EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id,
+EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id, int flags,
                                        const char *pem_str, const char *info)
        {
        EVP_PKEY_ASN1_METHOD *ameth;
@@ -228,7 +227,7 @@ EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id,
 
        ameth->pkey_id = id;
        ameth->pkey_base_id = id;
-       ameth->pkey_flags = ASN1_PKEY_DYNAMIC;
+       ameth->pkey_flags = flags | ASN1_PKEY_DYNAMIC;
 
        if (info)
                {
index 6ec2fa7..cff40ab 100644 (file)
@@ -815,7 +815,7 @@ int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, int *ppkey_flags,
                                const char **pinfo, const char **ppem_str,
                                        const EVP_PKEY_ASN1_METHOD *ameth);
 
-EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id,
+EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id, int flags,
                                        const char *pem_str, const char *info);
 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth);
 void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,