Update EVP_MD_CTX_copy_ex() to use EVP_PKEY_CTX_dup().

This commit is contained in:
Dr. Stephen Henson 2006-05-25 00:55:00 +00:00
parent 8bdcef40e4
commit 3a828611e9
3 changed files with 12 additions and 0 deletions

View File

@ -279,6 +279,16 @@ int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
memcpy(out->md_data,in->md_data,out->digest->ctx_size);
}
if (in->pctx)
{
out->pctx = EVP_PKEY_CTX_dup(in->pctx);
if (!out->pctx)
{
EVP_MD_CTX_cleanup(out);
return 0;
}
}
if (out->digest->copy)
return out->digest->copy(out,in);

View File

@ -960,6 +960,7 @@ int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth);
EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e);
EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx);
void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,

View File

@ -3707,3 +3707,4 @@ EVP_DigestSignInit 4102 EXIST::FUNCTION:
EVP_DigestVerifyFinal 4103 EXIST::FUNCTION:
EVP_DigestVerifyInit 4104 EXIST::FUNCTION:
EVP_DigestSignFinal 4105 EXIST::FUNCTION:
EVP_PKEY_CTX_dup 4106 EXIST::FUNCTION: