summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/m_sigver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/evp/m_sigver.c')
-rw-r--r--src/lib/libcrypto/evp/m_sigver.c24
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
189int 189int
190EVP_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
201int
190EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen) 202EVP_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
228int
229EVP_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}