summaryrefslogtreecommitdiff
path: root/cipher/elgamal.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1999-07-15 08:16:41 +0000
committerWerner Koch <wk@gnupg.org>1999-07-15 08:16:41 +0000
commit01cb535634775a784fa7b7fa701ec54f8f211111 (patch)
tree059b6370affdc169ae41b94bc71c3f153454904d /cipher/elgamal.c
parent36a06a94b54f8176c669fab51a7b4258116555b1 (diff)
downloadlibgcrypt-01cb535634775a784fa7b7fa701ec54f8f211111.tar.gz
See ChangeLog: Thu Jul 15 10:15:35 CEST 1999 Werner Koch
Diffstat (limited to 'cipher/elgamal.c')
-rw-r--r--cipher/elgamal.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/cipher/elgamal.c b/cipher/elgamal.c
index 4b975862..bbf9c278 100644
--- a/cipher/elgamal.c
+++ b/cipher/elgamal.c
@@ -459,6 +459,8 @@ elg_check_secret_key( int algo, MPI *skey )
if( !is_ELGAMAL(algo) )
return G10ERR_PUBKEY_ALGO;
+ if( !skey[0] || !skey[1] || !skey[2] || !skey[3] )
+ return G10ERR_BAD_MPI;
sk.p = skey[0];
sk.g = skey[1];
@@ -479,6 +481,8 @@ elg_encrypt( int algo, MPI *resarr, MPI data, MPI *pkey )
if( !is_ELGAMAL(algo) )
return G10ERR_PUBKEY_ALGO;
+ if( !data || !pkey[0] || !pkey[1] || !pkey[2] )
+ return G10ERR_BAD_MPI;
pk.p = pkey[0];
pk.g = pkey[1];
@@ -496,6 +500,9 @@ elg_decrypt( int algo, MPI *result, MPI *data, MPI *skey )
if( !is_ELGAMAL(algo) )
return G10ERR_PUBKEY_ALGO;
+ if( !data[0] || !data[1]
+ || !skey[0] || !skey[1] || !skey[2] || !skey[3] )
+ return G10ERR_BAD_MPI;
sk.p = skey[0];
sk.g = skey[1];
@@ -513,6 +520,8 @@ elg_sign( int algo, MPI *resarr, MPI data, MPI *skey )
if( !is_ELGAMAL(algo) )
return G10ERR_PUBKEY_ALGO;
+ if( !data || !skey[0] || !skey[1] || !skey[2] || !skey[3] )
+ return G10ERR_BAD_MPI;
sk.p = skey[0];
sk.g = skey[1];
@@ -532,6 +541,9 @@ elg_verify( int algo, MPI hash, MPI *data, MPI *pkey,
if( !is_ELGAMAL(algo) )
return G10ERR_PUBKEY_ALGO;
+ if( !data[0] || !data[1] || !hash
+ || !pkey[0] || !pkey[1] || !pkey[2] )
+ return G10ERR_BAD_MPI;
pk.p = pkey[0];
pk.g = pkey[1];