aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2015-11-23 16:07:46 +0000
committerDr. Stephen Henson <steve@openssl.org>2015-11-24 19:18:44 +0000
commit396d5fd091f68729f0a038a283fe3cca3eb670dd (patch)
treea6691fe07c7003e48f6907a3281236d08b391e9c
parent93972b8c72d5c074278654b3380a8215d741ea1f (diff)
downloadopenssl-396d5fd091f68729f0a038a283fe3cca3eb670dd.tar.gz
Add EVP_MD_CTX_ctrl function.
Reviewed-by: Tim Hudson <tjh@openssl.org>
-rw-r--r--crypto/evp/digest.c11
-rw-r--r--include/openssl/evp.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
index 607f0a1a0d..32a87f627d 100644
--- a/crypto/evp/digest.c
+++ b/crypto/evp/digest.c
@@ -364,3 +364,14 @@ int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
return 1;
}
+
+int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2)
+{
+ if (ctx->digest && ctx->digest->md_ctrl) {
+ int ret = ctx->digest->md_ctrl(ctx, cmd, p1, p2);
+ if (ret <= 0)
+ return 0;
+ return 1;
+ }
+ return 0;
+}
diff --git a/include/openssl/evp.h b/include/openssl/evp.h
index 77cd26f12f..c9659b3434 100644
--- a/include/openssl/evp.h
+++ b/include/openssl/evp.h
@@ -626,6 +626,7 @@ void BIO_set_md(BIO *, const EVP_MD *md);
void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
+int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2);
EVP_MD_CTX *EVP_MD_CTX_create(void);
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
/*__owur*/ int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);