Add gcry_pubkey_get_sexp.
authorWerner Koch <wk@gnupg.org>
Thu, 11 Apr 2013 18:27:46 +0000 (20:27 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 11 Apr 2013 18:27:46 +0000 (20:27 +0200)
commit1f3cfad66456dd6f2e48f20b8eb0c51343449a1c
tree46076f365f00ae81e800a7a30bdcf3d5ab69192d
parenta4e1f6ae7ea7f140e36c331a362bc299dce08416
Add gcry_pubkey_get_sexp.

* src/gcrypt.h.in (GCRY_PK_GET_PUBKEY): New.
(GCRY_PK_GET_SECKEY): New.
(gcry_pubkey_get_sexp): New.
* src/visibility.c (gcry_pubkey_get_sexp): New.
* src/visibility.h (gcry_pubkey_get_sexp): Mark visible.
* src/libgcrypt.def, src/libgcrypt.vers: Add new function.
* cipher/pubkey-internal.h: New.
* cipher/Makefile.am (libcipher_la_SOURCES): Add new file.
* cipher/ecc.c: Include pubkey-internal.h
(_gcry_pk_ecc_get_sexp): New.
* cipher/pubkey.c: Include pubkey-internal.h and context.h.
(_gcry_pubkey_get_sexp): New.
* src/context.c (_gcry_ctx_find_pointer): New.
* src/cipher-proto.h: Add _gcry_pubkey_get_sexp.
* tests/t-mpi-point.c (print_sexp): New.
(context_param, basic_ec_math_simplified): Add tests for the new
function.

* configure.ac (NEED_GPG_ERROR_VERSION): Set to 1.11.
(AH_BOTTOM) Add error codes from gpg-error 1.12
* src/g10lib.h (fips_not_operational): Use GPG_ERR_NOT_OPERATIONAL.

* mpi/ec.c (_gcry_mpi_ec_get_mpi): Fix computation of Q.
(_gcry_mpi_ec_get_point): Ditto.
--

While checking the new code I figured that the auto-computation of Q
must have led to a segv.  It seems we had no test case for that.

Signed-off-by: Werner Koch <wk@gnupg.org>
18 files changed:
NEWS
cipher/Makefile.am
cipher/ecc.c
cipher/pubkey-internal.h [new file with mode: 0644]
cipher/pubkey.c
configure.ac
doc/gcrypt.texi
mpi/ec.c
src/cipher-proto.h
src/context.c
src/context.h
src/g10lib.h
src/gcrypt.h.in
src/libgcrypt.def
src/libgcrypt.vers
src/visibility.c
src/visibility.h
tests/t-mpi-point.c