aboutsummaryrefslogtreecommitdiff
path: root/crypto/evp/digest.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2001-03-08 14:04:22 +0000
committerDr. Stephen Henson <steve@openssl.org>2001-03-08 14:04:22 +0000
commit2dc769a1c17e1e0c7aef6e11496c8ba2c1db2e28 (patch)
tree47bc3c6bf378e59f79c418f9956b6ed03fc4c805 /crypto/evp/digest.c
parent4f98cbabdeb50d548c83a8ca36014f3011461379 (diff)
downloadopenssl-2dc769a1c17e1e0c7aef6e11496c8ba2c1db2e28.zip
openssl-2dc769a1c17e1e0c7aef6e11496c8ba2c1db2e28.tar.gz
openssl-2dc769a1c17e1e0c7aef6e11496c8ba2c1db2e28.tar.bz2
Make EVP_Digest*() routines return a value.
TODO: update docs, and make soe other routines which use EVP_Digest*() check return codes.
Diffstat (limited to 'crypto/evp/digest.c')
-rw-r--r--crypto/evp/digest.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
index 5c75a34..ad69bfd 100644
--- a/crypto/evp/digest.c
+++ b/crypto/evp/digest.c
@@ -61,24 +61,26 @@
#include <openssl/objects.h>
#include <openssl/evp.h>
-void EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
+int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
{
ctx->digest=type;
- type->init(&(ctx->md));
+ return type->init(&(ctx->md));
}
-void EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data,
+int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data,
unsigned int count)
{
- ctx->digest->update(&(ctx->md.base[0]),data,(unsigned long)count);
+ return ctx->digest->update(&(ctx->md.base[0]),data,(unsigned long)count);
}
-void EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
+int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
{
- ctx->digest->final(md,&(ctx->md.base[0]));
+ int ret;
+ ret = ctx->digest->final(md,&(ctx->md.base[0]));
if (size != NULL)
*size=ctx->digest->md_size;
memset(&(ctx->md),0,sizeof(ctx->md));
+ return ret;
}
int EVP_MD_CTX_copy(EVP_MD_CTX *out, EVP_MD_CTX *in)
@@ -95,8 +97,9 @@ int EVP_Digest(void *data, unsigned int count,
unsigned char *md, unsigned int *size, const EVP_MD *type)
{
EVP_MD_CTX ctx;
- EVP_DigestInit(&ctx, type);
- EVP_DigestUpdate(&ctx, data, count);
- EVP_DigestFinal(&ctx, md, size);
- return 1;
+ if (!EVP_DigestInit(&ctx, type))
+ return 0;
+ if (!EVP_DigestUpdate(&ctx, data, count))
+ return 0;
+ return EVP_DigestFinal(&ctx, md, size);
}