aboutsummaryrefslogtreecommitdiffstats
path: root/cipher/md.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1997-12-12 12:03:58 +0000
committerWerner Koch <[email protected]>1997-12-12 12:03:58 +0000
commit68ea0f43533096d5c46bad4aee6e5d5864307f4a (patch)
treef5d3601897a3bdfbce113d5e1ed8b4336c83744a /cipher/md.c
parentfingerprints and self signatures added (diff)
downloadgnupg-68ea0f43533096d5c46bad4aee6e5d5864307f4a.tar.gz
gnupg-68ea0f43533096d5c46bad4aee6e5d5864307f4a.zip
added option file handling
Diffstat (limited to 'cipher/md.c')
-rw-r--r--cipher/md.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/cipher/md.c b/cipher/md.c
index a14d62f32..71403c8c9 100644
--- a/cipher/md.c
+++ b/cipher/md.c
@@ -32,6 +32,7 @@ md_okay( int algo )
switch( algo ) {
case DIGEST_ALGO_MD5:
case DIGEST_ALGO_RMD160:
+ case DIGEST_ALGO_SHA1:
return 0;
default:
return G10ERR_DIGEST_ALGO;
@@ -51,6 +52,8 @@ md_open( int algo, int secure )
hd->u.md5 = md5_open( secure );
else if( algo == DIGEST_ALGO_RMD160 )
hd->u.rmd= rmd160_open( secure );
+ else if( algo == DIGEST_ALGO_SHA1 )
+ hd->u.sha1 = sha1_open( secure );
else
return NULL;
@@ -70,6 +73,8 @@ md_copy( MD_HANDLE *a )
hd->u.md5 = md5_copy( a->u.md5 );
else if( a->algo == DIGEST_ALGO_RMD160 )
hd->u.rmd= rmd160_copy( a->u.rmd );
+ else if( a->algo == DIGEST_ALGO_SHA1 )
+ hd->u.sha1= sha1_copy( a->u.sha1 );
else
log_bug(NULL);
return hd;
@@ -89,6 +94,8 @@ md_makecontainer( int algo )
;
else if( algo == DIGEST_ALGO_RMD160 )
;
+ else if( algo == DIGEST_ALGO_SHA1 )
+ ;
else
log_bug(NULL);
return hd;
@@ -103,6 +110,8 @@ md_close(MD_HANDLE *a)
md5_close( a->u.md5 );
else if( a->algo == DIGEST_ALGO_RMD160 )
rmd160_close( a->u.rmd );
+ else if( a->algo == DIGEST_ALGO_SHA1 )
+ sha1_close( a->u.sha1 );
else
log_bug(NULL);
m_free(a);
@@ -116,6 +125,8 @@ md_write( MD_HANDLE *a, byte *inbuf, size_t inlen)
md5_write( a->u.md5, inbuf, inlen );
else if( a->algo == DIGEST_ALGO_RMD160 )
rmd160_write( a->u.rmd, inbuf, inlen );
+ else if( a->algo == DIGEST_ALGO_SHA1 )
+ sha1_write( a->u.sha1, inbuf, inlen );
else
log_bug(NULL);
}
@@ -128,6 +139,8 @@ md_putchar( MD_HANDLE *a, int c )
md5_putchar( a->u.md5, c );
else if( a->algo == DIGEST_ALGO_RMD160 )
rmd160_putchar( a->u.rmd, c );
+ else if( a->algo == DIGEST_ALGO_SHA1 )
+ sha1_putchar( a->u.sha1, c );
else
log_bug(NULL);
}
@@ -151,6 +164,13 @@ md_final(MD_HANDLE *a)
}
return a->data;
}
+ else if( a->algo == DIGEST_ALGO_SHA1 ) {
+ if( !a->datalen ) {
+ memcpy(a->data, sha1_final( a->u.sha1 ), 20 );
+ a->datalen = 20;
+ }
+ return a->data;
+ }
else
log_bug(NULL);
}