Index: lib/libmd/ripemd.h =================================================================== --- lib/libmd/ripemd.h +++ lib/libmd/ripemd.h @@ -81,10 +81,10 @@ } RIPEMD160_CTX; __BEGIN_DECLS -void RIPEMD160_Init(RIPEMD160_CTX *c); -void RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, +int RIPEMD160_Init(RIPEMD160_CTX *c); +int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); -void RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); +int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); char *RIPEMD160_End(RIPEMD160_CTX *, char *); char *RIPEMD160_File(const char *, char *); char *RIPEMD160_FileChunk(const char *, char *, off_t, off_t); Index: lib/libmd/ripemd.3 =================================================================== --- lib/libmd/ripemd.3 +++ lib/libmd/ripemd.3 @@ -26,11 +26,11 @@ .Sh SYNOPSIS .In sys/types.h .In ripemd.h -.Ft void +.Ft int .Fn RIPEMD160_Init "RIPEMD160_CTX *context" -.Ft void +.Ft int .Fn RIPEMD160_Update "RIPEMD160_CTX *context" "const unsigned char *data" "unsigned int len" -.Ft void +.Ft int .Fn RIPEMD160_Final "unsigned char digest[20]" "RIPEMD160_CTX *context" .Ft "char *" .Fn RIPEMD160_End "RIPEMD160_CTX *context" "char *buf" @@ -122,6 +122,12 @@ If the .Fa buf argument is non-null it must point to at least 41 characters of buffer space. +.Sh RETURN VALUES +.Fn RIPEMD160_Init , +.Fn RIPEMD160_Update +and +.Fn RIPEMD160_Final +return 1 for success, 0 otherwise. .Sh SEE ALSO .Xr md4 3 , .Xr md5 3 , Index: lib/libmd/rmd160c.c =================================================================== --- lib/libmd/rmd160c.c +++ lib/libmd/rmd160c.c @@ -88,7 +88,7 @@ void ripemd160_block(RIPEMD160_CTX *c, const u_int32_t *p,int num); #endif -void RIPEMD160_Init(c) +int RIPEMD160_Init(c) RIPEMD160_CTX *c; { c->A=RIPEMD160_A; @@ -99,9 +99,10 @@ c->Nl=0; c->Nh=0; c->num=0; + return 1; } -void RIPEMD160_Update(c, in, len) +int RIPEMD160_Update(c, in, len) RIPEMD160_CTX *c; const void *in; size_t len; @@ -111,7 +112,7 @@ u_int32_t l; const unsigned char *data = in; - if (len == 0) return; + if (len == 0) return 1; l=(c->Nl+(len<<3))&0xffffffffL; if (l < c->Nl) /* overflow */ @@ -167,7 +168,7 @@ p[sw]=l; } } - return; + return 1; } } /* we now can process the input data in blocks of RIPEMD160_CBLOCK @@ -231,6 +232,7 @@ *p=l; #endif } + return 1; } void RIPEMD160_Transform(c,b) @@ -472,7 +474,7 @@ } #endif -void RIPEMD160_Final(md, c) +int RIPEMD160_Final(md, c) unsigned char *md; RIPEMD160_CTX *c; { @@ -527,6 +529,7 @@ * but I'm not worried :-) */ c->num=0; /* memset((char *)&c,0,sizeof(c));*/ + return 1; } #ifdef undef Index: lib/libmd/sha.h =================================================================== --- lib/libmd/sha.h +++ lib/libmd/sha.h @@ -79,16 +79,16 @@ #define SHA1_CTX SHA_CTX __BEGIN_DECLS -void SHA_Init(SHA_CTX *c); -void SHA_Update(SHA_CTX *c, const void *data, size_t len); -void SHA_Final(unsigned char *md, SHA_CTX *c); +int SHA_Init(SHA_CTX *c); +int SHA_Update(SHA_CTX *c, const void *data, size_t len); +int SHA_Final(unsigned char *md, SHA_CTX *c); char *SHA_End(SHA_CTX *, char *); char *SHA_File(const char *, char *); char *SHA_FileChunk(const char *, char *, off_t, off_t); char *SHA_Data(const void *, unsigned int, char *); -void SHA1_Init(SHA_CTX *c); -void SHA1_Update(SHA_CTX *c, const void *data, size_t len); -void SHA1_Final(unsigned char *md, SHA_CTX *c); +int SHA1_Init(SHA_CTX *c); +int SHA1_Update(SHA_CTX *c, const void *data, size_t len); +int SHA1_Final(unsigned char *md, SHA_CTX *c); char *SHA1_End(SHA_CTX *, char *); char *SHA1_File(const char *, char *); char *SHA1_FileChunk(const char *, char *, off_t, off_t); Index: lib/libmd/sha.3 =================================================================== --- lib/libmd/sha.3 +++ lib/libmd/sha.3 @@ -33,11 +33,11 @@ .Sh SYNOPSIS .In sys/types.h .In sha.h -.Ft void +.Ft int .Fn SHA_Init "SHA_CTX *context" -.Ft void +.Ft int .Fn SHA_Update "SHA_CTX *context" "const unsigned char *data" "size_t len" -.Ft void +.Ft int .Fn SHA_Final "unsigned char digest[20]" "SHA_CTX *context" .Ft "char *" .Fn SHA_End "SHA_CTX *context" "char *buf" @@ -47,11 +47,11 @@ .Fn SHA_FileChunk "const char *filename" "char *buf" "off_t offset" "off_t length" .Ft "char *" .Fn SHA_Data "const unsigned char *data" "unsigned int len" "char *buf" -.Ft void +.Ft int .Fn SHA1_Init "SHA_CTX *context" -.Ft void +.Ft int .Fn SHA1_Update "SHA_CTX *context" "const unsigned char *data" "size_t len" -.Ft void +.Ft int .Fn SHA1_Final "unsigned char digest[20]" "SHA_CTX *context" .Ft "char *" .Fn SHA1_End "SHA_CTX *context" "char *buf" @@ -153,6 +153,12 @@ If the .Fa buf argument is non-null it must point to at least 41 characters of buffer space. +.Sh RETURN VALUES +.Fn SHA1_Init , +.Fn SHA1_Update +and +.Fn SHA1_Final +return 1 for success, 0 otherwise. .Sh SEE ALSO .Xr md4 3 , .Xr md5 3 , Index: lib/libmd/sha0c.c =================================================================== --- lib/libmd/sha0c.c +++ lib/libmd/sha0c.c @@ -102,7 +102,7 @@ #define M_p_c2nl_p p_c2nl_p #define M_nl2c nl2c -void SHA_Init(c) +int SHA_Init(c) SHA_CTX *c; { c->h0=INIT_DATA_h0; @@ -113,9 +113,10 @@ c->Nl=0; c->Nh=0; c->num=0; + return 1; } -void SHA_Update(c, in, len) +int SHA_Update(c, in, len) SHA_CTX *c; const void *in; size_t len; @@ -125,7 +126,7 @@ u_int32_t l; const unsigned char *data = in; - if (len == 0) return; + if (len == 0) return 1; l=(c->Nl+(len<<3))&0xffffffffL; if (l < c->Nl) /* overflow */ @@ -179,7 +180,7 @@ p[sw]=l; } } - return; + return 1; } } /* We can only do the following code for assember, the reason @@ -247,6 +248,7 @@ { M_c2nl(data,l); p[sw]=l; } M_c2nl_p(data,l,ec); p[sw]=l; + return 1; } void SHA_Transform(c,b) @@ -405,7 +407,7 @@ } } -void SHA_Final(md, c) +int SHA_Final(md, c) unsigned char *md; SHA_CTX *c; { @@ -450,5 +452,6 @@ * but I'm not worried :-) */ c->num=0; /* memset((char *)&c,0,sizeof(c));*/ + return 1; } Index: lib/libmd/sha1c.c =================================================================== --- lib/libmd/sha1c.c +++ lib/libmd/sha1c.c @@ -129,7 +129,7 @@ # define M_nl2c nl2c #endif -void SHA1_Init(c) +int SHA1_Init(c) SHA_CTX *c; { c->h0=INIT_DATA_h0; @@ -140,9 +140,10 @@ c->Nl=0; c->Nh=0; c->num=0; + return 1; } -void +int SHA1_Update(c, in, len) SHA_CTX *c; const void *in; @@ -153,7 +154,7 @@ u_int32_t l; const unsigned char *data = in; - if (len == 0) return; + if (len == 0) return 1; l=(c->Nl+(len<<3))&0xffffffffL; if (l < c->Nl) /* overflow */ @@ -207,7 +208,7 @@ p[sw]=l; } } - return; + return 1; } } /* We can only do the following code for assember, the reason @@ -275,6 +276,7 @@ { M_c2nl(data,l); p[sw]=l; } M_c2nl_p(data,l,ec); p[sw]=l; + return 1; } void SHA1_Transform(c,b) @@ -437,7 +439,7 @@ } #endif -void SHA1_Final(md, c) +int SHA1_Final(md, c) unsigned char *md; SHA_CTX *c; { @@ -486,5 +488,6 @@ * but I'm not worried :-) */ c->num=0; /* memset((char *)&c,0,sizeof(c));*/ + return 1; } Index: sbin/md5/md5.c =================================================================== --- sbin/md5/md5.c +++ sbin/md5/md5.c @@ -48,8 +48,8 @@ unsigned char* checkAgainst; int checksFailed; -typedef void (DIGEST_Init)(void *); -typedef void (DIGEST_Update)(void *, const unsigned char *, size_t); +typedef int (DIGEST_Init)(void *); +typedef int (DIGEST_Update)(void *, const unsigned char *, size_t); typedef char *(DIGEST_End)(void *, char *); extern const char *MD5TestOutput[MDTESTCOUNT]; @@ -69,7 +69,7 @@ char *(*File)(const char *, char *); } Algorithm_t; -static void MD5_Update(MD5_CTX *, const unsigned char *, size_t); +static int MD5_Update(MD5_CTX *, const unsigned char *, size_t); static void MDString(Algorithm_t *, const char *); static void MDTimeTrial(Algorithm_t *); static void MDTestSuite(Algorithm_t *); @@ -109,10 +109,11 @@ (DIGEST_End*)&RIPEMD160_End, &RIPEMD160_Data, &RIPEMD160_File } }; -static void +static int MD5_Update(MD5_CTX *c, const unsigned char *data, size_t len) { MD5Update(c, data, len); + return 1; } /* Main driver.