summaryrefslogtreecommitdiffstats
path: root/lib/libssl/src/crypto/evp/digest.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libssl/src/crypto/evp/digest.c')
-rw-r--r--lib/libssl/src/crypto/evp/digest.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/lib/libssl/src/crypto/evp/digest.c b/lib/libssl/src/crypto/evp/digest.c
index d65f0036f7b..c560733568c 100644
--- a/lib/libssl/src/crypto/evp/digest.c
+++ b/lib/libssl/src/crypto/evp/digest.c
@@ -58,32 +58,35 @@
#include <stdio.h>
#include "cryptlib.h"
-#include "objects.h"
-#include "evp.h"
+#include <openssl/objects.h>
+#include <openssl/evp.h>
-void EVP_DigestInit(ctx,type)
-EVP_MD_CTX *ctx;
-EVP_MD *type;
+void EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
{
ctx->digest=type;
type->init(&(ctx->md));
}
-void EVP_DigestUpdate(ctx,data,count)
-EVP_MD_CTX *ctx;
-unsigned char *data;
-unsigned int count;
+void EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data,
+ unsigned int count)
{
ctx->digest->update(&(ctx->md.base[0]),data,(unsigned long)count);
}
-void EVP_DigestFinal(ctx,md,size)
-EVP_MD_CTX *ctx;
-unsigned char *md;
-unsigned int *size;
+void EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
{
ctx->digest->final(md,&(ctx->md.base[0]));
if (size != NULL)
*size=ctx->digest->md_size;
memset(&(ctx->md),0,sizeof(ctx->md));
}
+
+int EVP_MD_CTX_copy(EVP_MD_CTX *out, EVP_MD_CTX *in)
+{
+ if ((in == NULL) || (in->digest == NULL)) {
+ EVPerr(EVP_F_EVP_MD_CTX_COPY,EVP_R_INPUT_NOT_INITIALIZED);
+ return 0;
+ }
+ memcpy((char *)out,(char *)in,in->digest->ctx_size);
+ return 1;
+}