summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTomáš Mráz <tmraz@redhat.com>2016-03-22 17:12:55 +0100
committerWerner Koch <wk@gnupg.org>2016-03-22 17:12:55 +0100
commit5f9b3c2e220ca6d0eaff32324a973ef67933a844 (patch)
tree3e90cb60586313c06d6a68030c74a5cd828896e3 /tests
parent583919d70763671ed9feeaa14e1f66379aff88cc (diff)
downloadlibgcrypt-5f9b3c2e220ca6d0eaff32324a973ef67933a844.tar.gz
rsa: Add FIPS 186-4 compliant RSA probable prime key generator.
* cipher/primegen.c (_gcry_fips186_4_prime_check): New. * cipher/rsa.c (generate_fips): New. (rsa_generate): Use new function in fips mode or with test-parms. * tests/keygen.c (check_rsa_keys): Add test using e=65539. -- Signed-off-by: Tomáš Mráz <tmraz@redhat.com> Tomáš's patch war originally for libgcrypt 1.6.3 and has been ported to master (1.7) by wk. Further changes: - ChangeLog entries. - Some re-indentation - Use an extra test case instead of changing an existing one. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/keygen.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/keygen.c b/tests/keygen.c
index dcb59e48..4bcea20d 100644
--- a/tests/keygen.c
+++ b/tests/keygen.c
@@ -236,6 +236,28 @@ check_rsa_keys (void)
if (verbose)
+ show ("creating 1024 bit RSA key with e=65539\n");
+ rc = gcry_sexp_new (&keyparm,
+ "(genkey\n"
+ " (rsa\n"
+ " (nbits 4:1024)\n"
+ " (rsa-use-e 5:65539)\n"
+ " ))", 0, 1);
+ if (rc)
+ die ("error creating S-expression: %s\n", gpg_strerror (rc));
+ rc = gcry_pk_genkey (&key, keyparm);
+ gcry_sexp_release (keyparm);
+ if (rc && !in_fips_mode)
+ fail ("error generating RSA key: %s\n", gpg_strerror (rc));
+ else if (!rc && in_fips_mode)
+ fail ("generating RSA key must not work!");
+
+ if (!rc)
+ check_generated_rsa_key (key, 65539);
+ gcry_sexp_release (key);
+
+
+ if (verbose)
show ("creating 512 bit RSA key with e=257\n");
rc = gcry_sexp_new (&keyparm,
"(genkey\n"