diff options
author | Werner Koch <wk@gnupg.org> | 2008-11-24 16:37:50 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2008-11-24 16:37:50 +0000 |
commit | 8cc2eb702eeed951907db225f25a1088db4e5c44 (patch) | |
tree | cb2d85993036d2a8c755a3729330a767f1e49c03 /src | |
parent | f73ff6ce957e65b40dd7a52e9d96744239eb4996 (diff) | |
download | libgcrypt-8cc2eb702eeed951907db225f25a1088db4e5c44.tar.gz |
Cleaned up the public key module calling conventions.
Add a way to derive RSA keys according to X9.31.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 8 | ||||
-rw-r--r-- | src/cipher-proto.h | 14 | ||||
-rw-r--r-- | src/cipher.h | 11 | ||||
-rw-r--r-- | src/g10lib.h | 4 |
4 files changed, 22 insertions, 15 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index c255fda2..d503dd35 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2008-11-24 Werner Koch <wk@g10code.com> + + * cipher-proto.h (pk_ext_generate_t): Simplify. + (pk_get_param): New. + (pk_extra_spec_t): Add field GET_PARAM. + * cipher.h (PUBKEY_FLAG_TRANSIENT_KEY): Remove. + (_gcry_pubkey_extraspec_elg): New. + 2008-11-05 Werner Koch <wk@g10code.com> * cipher.h (CIPHER_INFO_NO_WEAK_KEY): New. diff --git a/src/cipher-proto.h b/src/cipher-proto.h index 975a2a11..31bf6ba3 100644 --- a/src/cipher-proto.h +++ b/src/cipher-proto.h @@ -43,18 +43,19 @@ typedef gpg_err_code_t (*selftest_func_t) typedef gcry_err_code_t (*pk_ext_generate_t) (int algo, unsigned int nbits, - unsigned int qbits, - unsigned long use_e, - const char *name, - gcry_sexp_t domain, - unsigned int keygen_flags, + unsigned long evalue, + gcry_sexp_t genparms, gcry_mpi_t *skey, gcry_mpi_t **retfactors); -/* The type is used to compute the keygrip. */ +/* The type used to compute the keygrip. */ typedef gpg_err_code_t (*pk_comp_keygrip_t) (gcry_md_hd_t md, gcry_sexp_t keyparm); +/* The type used to quert ECC curve parameters. */ +typedef gcry_err_code_t (*pk_get_param_t) + (const char *name, gcry_mpi_t *pkey); + /* The type used to convey additional information to a cipher. */ typedef gpg_err_code_t (*cipher_set_extra_info_t) (void *c, int what, const void *buffer, size_t buflen); @@ -79,6 +80,7 @@ typedef struct pk_extra_spec selftest_func_t selftest; pk_ext_generate_t ext_generate; pk_comp_keygrip_t comp_keygrip; + pk_get_param_t get_param; } pk_extra_spec_t; diff --git a/src/cipher.h b/src/cipher.h index f84d9ad7..62ca745a 100644 --- a/src/cipher.h +++ b/src/cipher.h @@ -27,7 +27,6 @@ #include "../random/random.h" #define PUBKEY_FLAG_NO_BLINDING (1 << 0) -#define PUBKEY_FLAG_TRANSIENT_KEY (1 << 1) #define CIPHER_INFO_NO_WEAK_KEY 1 @@ -62,18 +61,11 @@ void _gcry_register_pk_dsa_progress (gcry_handler_progress_t cbc, void *cb_data) /*-- elgamal.c --*/ void _gcry_register_pk_elg_progress (gcry_handler_progress_t cb, void *cb_data); -gcry_err_code_t _gcry_elg_generate_using_x (int algo, unsigned int nbits, - gcry_mpi_t x, - gcry_mpi_t *skey, - gcry_mpi_t **retfactors); + /*-- ecc.c --*/ void _gcry_register_pk_ecc_progress (gcry_handler_progress_t cbc, void *cb_data); -gcry_err_code_t _gcry_ecc_generate (int algo, unsigned int nbits, - const char *curve, - gcry_mpi_t *skey, gcry_mpi_t **retfactors); -gcry_err_code_t _gcry_ecc_get_param (const char *name, gcry_mpi_t *pkey); /*-- primegen.c --*/ @@ -138,6 +130,7 @@ extern gcry_pk_spec_t _gcry_pubkey_spec_ecdsa; extern pk_extra_spec_t _gcry_pubkey_extraspec_rsa; extern pk_extra_spec_t _gcry_pubkey_extraspec_dsa; +extern pk_extra_spec_t _gcry_pubkey_extraspec_elg; extern pk_extra_spec_t _gcry_pubkey_extraspec_ecdsa; diff --git a/src/g10lib.h b/src/g10lib.h index 22f9acff..f7ea7816 100644 --- a/src/g10lib.h +++ b/src/g10lib.h @@ -175,6 +175,10 @@ gcry_mpi_t _gcry_generate_public_prime (unsigned int nbits, gcry_mpi_t _gcry_generate_elg_prime (int mode, unsigned int pbits, unsigned int qbits, gcry_mpi_t g, gcry_mpi_t **factors); +gcry_mpi_t _gcry_derive_x931_prime (const gcry_mpi_t xp, + const gcry_mpi_t xp1, const gcry_mpi_t xp2, + const gcry_mpi_t e, + gcry_mpi_t *r_p1, gcry_mpi_t *r_p2); /* replacements of missing functions (missing-string.c)*/ |