Add support for default public key digest type ctrl.
[openssl.git] / crypto / evp / p_lib.c
index 0d3a69b..730520f 100644 (file)
@@ -149,7 +149,7 @@ int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
                return -1;
        if (a->ameth && a->ameth->param_cmp)
                return a->ameth->param_cmp(a, b);
-       return -1;
+       return -2;
        }
 
 int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
@@ -185,7 +185,7 @@ EVP_PKEY *EVP_PKEY_new(void)
        return(ret);
        }
 
-int EVP_PKEY_assign(EVP_PKEY *pkey, int type, char *key)
+int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key)
        {
        const EVP_PKEY_ASN1_METHOD *ameth;
        if (pkey == NULL) return(0);
@@ -361,3 +361,12 @@ int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey,
                return pkey->ameth->param_print(out, pkey, indent, pctx);
        return unsup_alg(out, pkey, indent, "Parameters");
        }
+
+int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
+       {
+       if (!pkey->ameth || !pkey->ameth->pkey_ctrl)
+               return -2;
+       return pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_DEFAULT_MD_NID,
+                                               0, pnid);
+       }
+