From 3eebb3fd42b8122565a6b675c1f0d04d901cef94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Tue, 23 Mar 2010 16:40:24 +0100 Subject: * Makefile.in (hogweed_SOURCES): Added pkcs1-rsa-sha512.c, rsa-sha512-sign.c and rsa-sha512-verify.c. * rsa.h: Added prototypes for sha512-related functions. (RSA_MINIMUM_N_OCTETS, RSA_MINIMUM_N_BITS): Increased. * pkcs1.h: Added prototypes for sha512-related functions. * rsa-sha512-verify.c: New file. * rsa-sha512-sign.c: New file. * pkcs1-rsa-sha512.c: New file. Rev: nettle/ChangeLog:1.52 Rev: nettle/Makefile.in:1.16 Rev: nettle/pkcs1-rsa-sha512.c:1.1 Rev: nettle/pkcs1.h:1.2 Rev: nettle/rsa-sha512-sign.c:1.1 Rev: nettle/rsa-sha512-verify.c:1.1 Rev: nettle/rsa.h:1.3 --- rsa.h | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'rsa.h') diff --git a/rsa.h b/rsa.h index dbdace22..9c29587b 100644 --- a/rsa.h +++ b/rsa.h @@ -52,12 +52,16 @@ extern "C" { #define rsa_sha1_verify nettle_rsa_sha1_verify #define rsa_sha256_sign nettle_rsa_sha256_sign #define rsa_sha256_verify nettle_rsa_sha256_verify +#define rsa_sha512_sign nettle_rsa_sha512_sign +#define rsa_sha512_verify nettle_rsa_sha512_verify #define rsa_md5_sign_digest nettle_rsa_md5_sign_digest #define rsa_md5_verify_digest nettle_rsa_md5_verify_digest #define rsa_sha1_sign_digest nettle_rsa_sha1_sign_digest #define rsa_sha1_verify_digest nettle_rsa_sha1_verify_digest #define rsa_sha256_sign_digest nettle_rsa_sha256_sign_digest #define rsa_sha256_verify_digest nettle_rsa_sha256_verify_digest +#define rsa_sha512_sign_digest nettle_rsa_sha512_sign_digest +#define rsa_sha512_verify_digest nettle_rsa_sha512_verify_digest #define rsa_encrypt nettle_rsa_encrypt #define rsa_decrypt nettle_rsa_decrypt #define rsa_compute_root nettle_rsa_compute_root @@ -75,12 +79,13 @@ extern "C" { /* For PKCS#1 to make sense, the size of the modulo, in octets, must * be at least 11 + the length of the DER-encoded Digest Info. * - * And a DigestInfo is 34 octets for md5, 35 octets for sha1, and 51 - * octets for sha256. 62 octets is 496 bits, and as the upper 7 bits - * may be zero, the smallest useful size of n is 489 bits. */ + * And a DigestInfo is 34 octets for md5, 35 octets for sha1, 51 + * octets for sha256, and 83 octetss for sha512. 94 octets is 752 + * bits, and as the upper 7 bits may be zero, the smallest useful size + * of n is 745 bits. */ -#define RSA_MINIMUM_N_OCTETS 62 -#define RSA_MINIMUM_N_BITS 489 +#define RSA_MINIMUM_N_OCTETS 94 +#define RSA_MINIMUM_N_BITS (8*RSA_MINIMUM_N_OCTETS - 7) struct rsa_public_key { @@ -194,6 +199,16 @@ rsa_sha256_verify(const struct rsa_public_key *key, struct sha256_ctx *hash, const mpz_t signature); +void +rsa_sha512_sign(const struct rsa_private_key *key, + struct sha512_ctx *hash, + mpz_t signature); + +int +rsa_sha512_verify(const struct rsa_public_key *key, + struct sha512_ctx *hash, + const mpz_t signature); + /* Variants taking the digest as argument. */ void rsa_md5_sign_digest(const struct rsa_private_key *key, @@ -225,6 +240,16 @@ rsa_sha256_verify_digest(const struct rsa_public_key *key, const uint8_t *digest, const mpz_t signature); +void +rsa_sha512_sign_digest(const struct rsa_private_key *key, + const uint8_t *digest, + mpz_t s); + +int +rsa_sha512_verify_digest(const struct rsa_public_key *key, + const uint8_t *digest, + const mpz_t signature); + /* RSA encryption, using PKCS#1 */ /* These functions uses the v1.5 padding. What should the v2 (OAEP) -- cgit v1.2.1