summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/hmac/hm_pmeth.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/hmac/hm_pmeth.c')
-rw-r--r--src/lib/libcrypto/hmac/hm_pmeth.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/libcrypto/hmac/hm_pmeth.c b/src/lib/libcrypto/hmac/hm_pmeth.c
index 71e8567a14..0daa44511d 100644
--- a/src/lib/libcrypto/hmac/hm_pmeth.c
+++ b/src/lib/libcrypto/hmac/hm_pmeth.c
@@ -100,7 +100,8 @@ static int pkey_hmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
100 dctx = dst->data; 100 dctx = dst->data;
101 dctx->md = sctx->md; 101 dctx->md = sctx->md;
102 HMAC_CTX_init(&dctx->ctx); 102 HMAC_CTX_init(&dctx->ctx);
103 HMAC_CTX_copy(&dctx->ctx, &sctx->ctx); 103 if (!HMAC_CTX_copy(&dctx->ctx, &sctx->ctx))
104 return 0;
104 if (sctx->ktmp.data) 105 if (sctx->ktmp.data)
105 { 106 {
106 if (!ASN1_OCTET_STRING_set(&dctx->ktmp, 107 if (!ASN1_OCTET_STRING_set(&dctx->ktmp,
@@ -141,7 +142,8 @@ static int pkey_hmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
141static int int_update(EVP_MD_CTX *ctx,const void *data,size_t count) 142static int int_update(EVP_MD_CTX *ctx,const void *data,size_t count)
142 { 143 {
143 HMAC_PKEY_CTX *hctx = ctx->pctx->data; 144 HMAC_PKEY_CTX *hctx = ctx->pctx->data;
144 HMAC_Update(&hctx->ctx, data, count); 145 if (!HMAC_Update(&hctx->ctx, data, count))
146 return 0;
145 return 1; 147 return 1;
146 } 148 }
147 149
@@ -167,7 +169,8 @@ static int hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
167 if (!sig) 169 if (!sig)
168 return 1; 170 return 1;
169 171
170 HMAC_Final(&hctx->ctx, sig, &hlen); 172 if (!HMAC_Final(&hctx->ctx, sig, &hlen))
173 return 0;
171 *siglen = (size_t)hlen; 174 *siglen = (size_t)hlen;
172 return 1; 175 return 1;
173 } 176 }
@@ -192,8 +195,9 @@ static int pkey_hmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
192 195
193 case EVP_PKEY_CTRL_DIGESTINIT: 196 case EVP_PKEY_CTRL_DIGESTINIT:
194 key = (ASN1_OCTET_STRING *)ctx->pkey->pkey.ptr; 197 key = (ASN1_OCTET_STRING *)ctx->pkey->pkey.ptr;
195 HMAC_Init_ex(&hctx->ctx, key->data, key->length, hctx->md, 198 if (!HMAC_Init_ex(&hctx->ctx, key->data, key->length, hctx->md,
196 ctx->engine); 199 ctx->engine))
200 return 0;
197 break; 201 break;
198 202
199 default: 203 default: