Fix for GOST engine on platforms where sizeof(size_t) != sizeof(int).

This commit is contained in:
Dr. Stephen Henson 2007-05-31 12:32:27 +00:00
parent f20af72312
commit 0aa08a2e34

View File

@ -651,12 +651,16 @@ static int pkey_gost_mac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
static int pkey_gost_mac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, EVP_MD_CTX *mctx) static int pkey_gost_mac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, EVP_MD_CTX *mctx)
{ {
unsigned int tmpsiglen=*siglen; /* for platforms where sizeof(int)!=sizeof(size_t)*/
int ret;
if (!sig) if (!sig)
{ {
*siglen = 4; *siglen = 4;
return 1; return 1;
} }
return EVP_DigestFinal_ex(mctx,sig,siglen); ret=EVP_DigestFinal_ex(mctx,sig,&tmpsiglen);
*siglen = tmpsiglen;
return ret;
} }
/* ----------------------------------------------------------------*/ /* ----------------------------------------------------------------*/
int register_pmeth_gost(int id, EVP_PKEY_METHOD **pmeth,int flags) int register_pmeth_gost(int id, EVP_PKEY_METHOD **pmeth,int flags)