4 #include "knuth-lfib.h"
9 struct rsa_public_key pub;
10 struct rsa_private_key key;
11 struct knuth_lfib_ctx lfib;
13 /* FIXME: How is this spelled? */
14 const uint8_t *msg = "Squemish ossifrage";
18 unsigned decrypted_length;
22 rsa_private_key_init(&key);
23 rsa_public_key_init(&pub);
26 knuth_lfib_init(&lfib, 17);
28 test_rsa_set_key_1(&pub, &key);
29 msg_length = strlen(msg);
32 fprintf(stderr, "msg: `%s', length = %d\n", msg, msg_length);
34 ASSERT(rsa_encrypt(&pub,
35 &lfib, (nettle_random_func *) knuth_lfib_random,
41 /* In which GMP version was gmp_fprintf introduced? */
42 fprintf(stderr, "encrypted: ");
43 mpz_out_str(stderr, 10, gibberish);
46 decrypted = xalloc(msg_length + 1);
48 decrypted_length = msg_length - 1;
49 ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, gibberish));
51 decrypted_length = msg_length;
52 ASSERT(rsa_decrypt(&key, &decrypted_length, decrypted, gibberish));
53 ASSERT(decrypted_length == msg_length);
54 ASSERT(MEMEQ(msg_length, msg, decrypted));
56 decrypted_length = key.size;
57 ASSERT(rsa_decrypt(&key, &decrypted_length, decrypted, gibberish));
58 ASSERT(decrypted_length == msg_length);
59 ASSERT(MEMEQ(msg_length, msg, decrypted));
61 rsa_private_key_clear(&key);
62 rsa_public_key_clear(&pub);