diff options
Diffstat (limited to 'src/lib/libcrypto/hmac/hm_pmeth.c')
| -rw-r--r-- | src/lib/libcrypto/hmac/hm_pmeth.c | 14 |
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) | |||
| 141 | static int int_update(EVP_MD_CTX *ctx,const void *data,size_t count) | 142 | static 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: |
