Commit 2dc769a1 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Make EVP_Digest*() routines return a value.

TODO: update docs, and make soe other routines
which use EVP_Digest*() check return codes.
parent 4f98cbab
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3,6 +3,11 @@

 Changes between 0.9.6 and 0.9.7  [xx XXX 2000]

  *) Modify EVP_Digest*() routines so they now return values. Although the
     internal software routines can never fail additional hardware versions
     might.
     [Steve Henson]

  *) Clean up crypto/err/err.h and change some error codes to avoid conflicts:

     Previously ERR_R_FATAL was too small and coincided with ERR_LIB_PKCS7
+13 −10
Original line number Diff line number Diff line
@@ -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);
}
+6 −6
Original line number Diff line number Diff line
@@ -268,9 +268,9 @@ typedef struct env_md_st
	int type;
	int pkey_type;
	int md_size;
	void (*init)();
	void (*update)();
	void (*final)();
	int (*init)();
	int (*update)();
	int (*final)();

	int (*sign)();
	int (*verify)();
@@ -558,10 +558,10 @@ void BIO_set_md(BIO *,const EVP_MD *md);


int     EVP_MD_CTX_copy(EVP_MD_CTX *out,EVP_MD_CTX *in);  
void	EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
void	EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,
int	EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
int	EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,
			 unsigned int cnt);
void	EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
int	EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
int	EVP_Digest(void *data, unsigned int count,
		unsigned char *md, unsigned int *size, const EVP_MD *type);

+2 −1
Original line number Diff line number Diff line
@@ -62,8 +62,9 @@
#include <openssl/objects.h>
#include <openssl/x509.h>

static void function(void)
static int function(void)
	{
	return 1;
	}

static EVP_MD null_md=
+3 −3
Original line number Diff line number Diff line
@@ -80,9 +80,9 @@ typedef struct MD2state_st
	} MD2_CTX;

const char *MD2_options(void);
void MD2_Init(MD2_CTX *c);
void MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len);
void MD2_Final(unsigned char *md, MD2_CTX *c);
int MD2_Init(MD2_CTX *c);
int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len);
int MD2_Final(unsigned char *md, MD2_CTX *c);
unsigned char *MD2(const unsigned char *d, unsigned long n,unsigned char *md);
#ifdef  __cplusplus
}
Loading