Make the Q parameter optional for ECC signing.
authorWerner Koch <wk@gnupg.org>
Fri, 5 Apr 2013 16:08:36 +0000 (18:08 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 5 Apr 2013 16:08:51 +0000 (18:08 +0200)
commitfe91a642c7c257aca095b96406fbcace88fa3df4
tree962ace0df029de0035f8acaba0d63b33ddede654
parentf23a068bcb6ec9788710698578d8be0a2a006dbc
Make the Q parameter optional for ECC signing.

* cipher/ecc.c (ecc_sign): Remove the need for Q.
* cipher/pubkey.c (sexp_elements_extract_ecc): Make Q optional for a
private key.
(sexp_to_key): Add optional arg R_IS_ECC.
(gcry_pk_sign): Do not call gcry_pk_get_nbits for ECC keys.
* tests/pubkey.c (die): Make sure to print a LF.
(check_ecc_sample_key): New.
(main): Call new test.
--

Q is the actual public key which is not used for signing.  Thus we
can make it optional and even speed up the signing by parsing less
stuff.

Note: There seems to be a memory leak somewhere.  Running tests/pubkey
with just the new test enabled shows it.

Signed-off-by: Werner Koch <wk@gnupg.org>
cipher/ecc.c
cipher/pubkey.c
doc/gcrypt.texi
tests/pubkey.c