summaryrefslogtreecommitdiff
path: root/cipher/pubkey-internal.h
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2013-07-26 20:15:53 +0200
committerWerner Koch <wk@gnupg.org>2013-07-26 20:15:53 +0200
commit1cfa79aabc5d0fd8d124901054475e90ab7d9cde (patch)
tree9a8b1dbaced1e915ba782ad3b290f15ac2e6045b /cipher/pubkey-internal.h
parentb72d312ad11887fc416aa821786f6bdb663c0f4a (diff)
downloadlibgcrypt-1cfa79aabc5d0fd8d124901054475e90ab7d9cde.tar.gz
Implement deterministic DSA as specified by rfc-6979.
* cipher/dsa.c (dsa_sign): Move opaque mpi extraction to sign. (sign): Add args FLAGS and HASHALGO. Implement deterministic DSA. Add code path for R==0 to comply with the standard. (dsa_verify): Left fill opaque mpi based hash values. * cipher/dsa-common.c (int2octets, bits2octets): New. (_gcry_dsa_gen_rfc6979_k): New. * tests/dsa-rfc6979.c: New. * tests/Makefile.am (TESTS): Add dsa-rfc6979. -- This patch also fixes a recent patch (37d0a1e) which allows to pass the hash in a (hash) element. Support for deterministic ECDSA will come soon. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'cipher/pubkey-internal.h')
-rw-r--r--cipher/pubkey-internal.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/cipher/pubkey-internal.h b/cipher/pubkey-internal.h
index ae7e77b0..9147cb2d 100644
--- a/cipher/pubkey-internal.h
+++ b/cipher/pubkey-internal.h
@@ -22,6 +22,12 @@
/*-- dsa-common.h --*/
gcry_mpi_t _gcry_dsa_gen_k (gcry_mpi_t q, int security_level);
+gpg_err_code_t _gcry_dsa_gen_rfc6979_k (gcry_mpi_t *r_k,
+ gcry_mpi_t dsa_q, gcry_mpi_t dsa_x,
+ const unsigned char *h1,
+ unsigned int h1len,
+ int halgo,
+ unsigned int extraloops);
/*-- ecc.c --*/