Add EVP_MD_CTX_ctrl function.
authorDr. Stephen Henson <steve@openssl.org>
Mon, 23 Nov 2015 16:07:46 +0000 (16:07 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 24 Nov 2015 19:18:44 +0000 (19:18 +0000)
Reviewed-by: Tim Hudson <tjh@openssl.org>
crypto/evp/digest.c
include/openssl/evp.h

index 607f0a1a0d0cd0186bbe22e48f9840fc8375f69a..32a87f627d727fbff0d47ce73d5611245fa60d74 100644 (file)
@@ -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;
+}
index 77cd26f12fc14c4756fa61a656a1a313ace38f0c..c9659b3434b2fc141408a3552e3bc726bcd9c6d7 100644 (file)
@@ -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);