summaryrefslogtreecommitdiff
path: root/rsa.h
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2010-03-23 16:40:24 +0100
committerNiels Möller <nisse@lysator.liu.se>2010-03-23 16:40:24 +0100
commit3eebb3fd42b8122565a6b675c1f0d04d901cef94 (patch)
tree289afcb035a9f4521db9e66103edea1351b64ad2 /rsa.h
parentd93024e9118da4ddd8e9252e4c169ab344c1333e (diff)
downloadnettle-3eebb3fd42b8122565a6b675c1f0d04d901cef94.tar.gz
* 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
Diffstat (limited to 'rsa.h')
-rw-r--r--rsa.h35
1 files changed, 30 insertions, 5 deletions
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)