Truncate hash values for ECDSA signature scheme
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Mon, 30 Dec 2013 20:38:37 +0000 (00:38 +0400)
committerWerner Koch <wk@gnupg.org>
Mon, 13 Jan 2014 10:09:58 +0000 (11:09 +0100)
commit9edcf1090e0485f9f383b6c54b18ea8ca3d4a225
tree61333d5306489be6f9874dec47ccb65f2cf9e471
parent2c5ec803100ed8261e51442fb93b75367b7725ea
Truncate hash values for ECDSA signature scheme

* cipher/dsa-common (_gcry_dsa_normalize_hash): New. Truncate opaque
  mpis as required for DSA and ECDSA signature schemas.
* cipher/dsa.c (verify): Return gpg_err_code_t value from verify() to
  behave like the rest of internal sign/verify functions.
* cipher/dsa.c (sign, verify, dsa_verify): Factor out hash truncation.
* cipher/ecc-ecdsa.c (_gcry_ecc_ecdsa_sign): Factor out hash truncation.
* cipher/ecc-ecdsa.c (_gcry_ecc_ecdsa_verify):
  as required by ECDSA scheme, truncate hash values to bitlength of
  used curve.
* tests/pubkey.c (check_ecc_sample_key): add a testcase for hash
  truncation.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
cipher/dsa-common.c
cipher/dsa.c
cipher/ecc-ecdsa.c
cipher/pubkey-internal.h
tests/pubkey.c