diff options
Diffstat (limited to 'src/lib/libcrypto/evp/m_sigver.c')
| -rw-r--r-- | src/lib/libcrypto/evp/m_sigver.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/lib/libcrypto/evp/m_sigver.c b/src/lib/libcrypto/evp/m_sigver.c index f7dcaff418..bd9374651a 100644 --- a/src/lib/libcrypto/evp/m_sigver.c +++ b/src/lib/libcrypto/evp/m_sigver.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: m_sigver.c,v 1.8 2021/03/29 15:57:23 tb Exp $ */ | 1 | /* $OpenBSD: m_sigver.c,v 1.9 2021/05/09 14:25:40 tb Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -187,6 +187,18 @@ EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen) | |||
| 187 | } | 187 | } |
| 188 | 188 | ||
| 189 | int | 189 | int |
| 190 | EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen, | ||
| 191 | const unsigned char *tbs, size_t tbslen) | ||
| 192 | { | ||
| 193 | if (sigret != NULL) { | ||
| 194 | if (EVP_DigestSignUpdate(ctx, tbs, tbslen) <= 0) | ||
| 195 | return 0; | ||
| 196 | } | ||
| 197 | |||
| 198 | return EVP_DigestSignFinal(ctx, sigret, siglen); | ||
| 199 | } | ||
| 200 | |||
| 201 | int | ||
| 190 | EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen) | 202 | EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen) |
| 191 | { | 203 | { |
| 192 | EVP_MD_CTX tmp_ctx; | 204 | EVP_MD_CTX tmp_ctx; |
| @@ -212,3 +224,13 @@ EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen) | |||
| 212 | return r; | 224 | return r; |
| 213 | return EVP_PKEY_verify(ctx->pctx, sig, siglen, md, mdlen); | 225 | return EVP_PKEY_verify(ctx->pctx, sig, siglen, md, mdlen); |
| 214 | } | 226 | } |
| 227 | |||
| 228 | int | ||
| 229 | EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, size_t siglen, | ||
| 230 | const unsigned char *tbs, size_t tbslen) | ||
| 231 | { | ||
| 232 | if (EVP_DigestVerifyUpdate(ctx, tbs, tbslen) <= 0) | ||
| 233 | return -1; | ||
| 234 | |||
| 235 | return EVP_DigestVerifyFinal(ctx, sigret, siglen); | ||
| 236 | } | ||
