34 #ifndef NETTLE_RSA_H_INCLUDED
35 #define NETTLE_RSA_H_INCLUDED
49 #define rsa_public_key_init nettle_rsa_public_key_init
50 #define rsa_public_key_clear nettle_rsa_public_key_clear
51 #define rsa_public_key_prepare nettle_rsa_public_key_prepare
52 #define rsa_private_key_init nettle_rsa_private_key_init
53 #define rsa_private_key_clear nettle_rsa_private_key_clear
54 #define rsa_private_key_prepare nettle_rsa_private_key_prepare
55 #define rsa_pkcs1_verify nettle_rsa_pkcs1_verify
56 #define rsa_pkcs1_sign nettle_rsa_pkcs1_sign
57 #define rsa_pkcs1_sign_tr nettle_rsa_pkcs1_sign_tr
58 #define rsa_md5_sign nettle_rsa_md5_sign
59 #define rsa_md5_sign_tr nettle_rsa_md5_sign_tr
60 #define rsa_md5_verify nettle_rsa_md5_verify
61 #define rsa_sha1_sign nettle_rsa_sha1_sign
62 #define rsa_sha1_sign_tr nettle_rsa_sha1_sign_tr
63 #define rsa_sha1_verify nettle_rsa_sha1_verify
64 #define rsa_sha256_sign nettle_rsa_sha256_sign
65 #define rsa_sha256_sign_tr nettle_rsa_sha256_sign_tr
66 #define rsa_sha256_verify nettle_rsa_sha256_verify
67 #define rsa_sha512_sign nettle_rsa_sha512_sign
68 #define rsa_sha512_sign_tr nettle_rsa_sha512_sign_tr
69 #define rsa_sha512_verify nettle_rsa_sha512_verify
70 #define rsa_md5_sign_digest nettle_rsa_md5_sign_digest
71 #define rsa_md5_sign_digest_tr nettle_rsa_md5_sign_digest_tr
72 #define rsa_md5_verify_digest nettle_rsa_md5_verify_digest
73 #define rsa_sha1_sign_digest nettle_rsa_sha1_sign_digest
74 #define rsa_sha1_sign_digest_tr nettle_rsa_sha1_sign_digest_tr
75 #define rsa_sha1_verify_digest nettle_rsa_sha1_verify_digest
76 #define rsa_sha256_sign_digest nettle_rsa_sha256_sign_digest
77 #define rsa_sha256_sign_digest_tr nettle_rsa_sha256_sign_digest_tr
78 #define rsa_sha256_verify_digest nettle_rsa_sha256_verify_digest
79 #define rsa_sha512_sign_digest nettle_rsa_sha512_sign_digest
80 #define rsa_sha512_sign_digest_tr nettle_rsa_sha512_sign_digest_tr
81 #define rsa_sha512_verify_digest nettle_rsa_sha512_verify_digest
82 #define rsa_pss_sha256_sign_digest_tr nettle_rsa_pss_sha256_sign_digest_tr
83 #define rsa_pss_sha256_verify_digest nettle_rsa_pss_sha256_verify_digest
84 #define rsa_pss_sha384_sign_digest_tr nettle_rsa_pss_sha384_sign_digest_tr
85 #define rsa_pss_sha384_verify_digest nettle_rsa_pss_sha384_verify_digest
86 #define rsa_pss_sha512_sign_digest_tr nettle_rsa_pss_sha512_sign_digest_tr
87 #define rsa_pss_sha512_verify_digest nettle_rsa_pss_sha512_verify_digest
88 #define rsa_encrypt nettle_rsa_encrypt
89 #define rsa_decrypt nettle_rsa_decrypt
90 #define rsa_decrypt_tr nettle_rsa_decrypt_tr
91 #define rsa_sec_decrypt nettle_rsa_sec_decrypt
92 #define rsa_compute_root nettle_rsa_compute_root
93 #define rsa_compute_root_tr nettle_rsa_compute_root_tr
94 #define rsa_generate_keypair nettle_rsa_generate_keypair
95 #define rsa_keypair_to_sexp nettle_rsa_keypair_to_sexp
96 #define rsa_keypair_from_sexp_alist nettle_rsa_keypair_from_sexp_alist
97 #define rsa_keypair_from_sexp nettle_rsa_keypair_from_sexp
98 #define rsa_public_key_from_der_iterator nettle_rsa_public_key_from_der_iterator
99 #define rsa_private_key_from_der_iterator nettle_rsa_private_key_from_der_iterator
100 #define rsa_keypair_from_der nettle_rsa_keypair_from_der
101 #define rsa_keypair_to_openpgp nettle_rsa_keypair_to_openpgp
111 #define RSA_MINIMUM_N_OCTETS 12
112 #define RSA_MINIMUM_N_BITS (8*RSA_MINIMUM_N_OCTETS - 7)
197 size_t length,
const uint8_t *digest_info,
204 size_t length,
const uint8_t *digest_info,
208 size_t length,
const uint8_t *digest_info,
209 const mpz_t signature);
226 const mpz_t signature);
243 const mpz_t signature);
260 const mpz_t signature);
277 const mpz_t signature);
282 const uint8_t *digest,
289 const uint8_t *digest,
mpz_t s);
293 const uint8_t *digest,
294 const mpz_t signature);
298 const uint8_t *digest,
305 const uint8_t *digest,
310 const uint8_t *digest,
311 const mpz_t signature);
315 const uint8_t *digest,
322 const uint8_t *digest,
327 const uint8_t *digest,
328 const mpz_t signature);
332 const uint8_t *digest,
339 const uint8_t *digest,
344 const uint8_t *digest,
345 const mpz_t signature);
352 size_t salt_length,
const uint8_t *salt,
353 const uint8_t *digest,
359 const uint8_t *digest,
360 const mpz_t signature);
366 size_t salt_length,
const uint8_t *salt,
367 const uint8_t *digest,
373 const uint8_t *digest,
374 const mpz_t signature);
380 size_t salt_length,
const uint8_t *salt,
381 const uint8_t *digest,
387 const uint8_t *digest,
388 const mpz_t signature);
401 size_t length,
const uint8_t *cleartext,
411 size_t *length, uint8_t *cleartext,
412 const mpz_t ciphertext);
419 size_t *length, uint8_t *message,
420 const mpz_t gibberish);
428 size_t length, uint8_t *message,
429 const mpz_t gibberish);
463 #define RSA_SIGN(key, algorithm, ctx, length, data, signature) ( \
464 algorithm##_update(ctx, length, data), \
465 rsa_##algorithm##_sign(key, ctx, signature) \
468 #define RSA_VERIFY(key, algorithm, ctx, length, data, signature) ( \
469 algorithm##_update(ctx, length, data), \
470 rsa_##algorithm##_verify(key, ctx, signature) \
481 const char *algorithm_name,
501 size_t length,
const uint8_t *expr);
void nettle_random_func(void *ctx, size_t length, uint8_t *dst)
void nettle_progress_func(void *ctx, int c)
#define rsa_sha1_sign_digest
#define rsa_private_key_clear
#define rsa_sha512_verify
#define rsa_keypair_to_openpgp
#define rsa_sha256_verify
#define rsa_pss_sha512_verify_digest
#define rsa_md5_sign_digest
#define rsa_sha256_sign_digest_tr
#define rsa_sha512_sign_tr
#define rsa_keypair_from_sexp_alist
#define rsa_keypair_from_sexp
#define rsa_sha512_sign_digest
#define rsa_private_key_init
#define rsa_pss_sha384_sign_digest_tr
#define rsa_private_key_prepare
#define rsa_pkcs1_sign_tr
#define rsa_sha256_sign_digest
#define rsa_sha512_sign_digest_tr
#define rsa_sha256_sign_tr
#define rsa_md5_verify_digest
#define rsa_md5_sign_digest_tr
#define rsa_private_key_from_der_iterator
#define rsa_pss_sha256_sign_digest_tr
#define rsa_sha512_verify_digest
#define rsa_pss_sha512_sign_digest_tr
#define rsa_sha1_verify_digest
#define rsa_pss_sha256_verify_digest
#define rsa_generate_keypair
#define rsa_pss_sha384_verify_digest
#define rsa_keypair_from_der
#define rsa_sha256_verify_digest
#define rsa_public_key_prepare
#define rsa_public_key_clear
#define rsa_sha1_sign_digest_tr
#define rsa_keypair_to_sexp
#define rsa_public_key_from_der_iterator
#define rsa_compute_root_tr
#define rsa_public_key_init