diff options
author | lloyd <[email protected]> | 2010-03-04 17:44:07 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-03-04 17:44:07 +0000 |
commit | 19853ce387c62b220b90019674251b334b823823 (patch) | |
tree | 5137d8be0eb07a3d56e1740add1b8aad33d4f904 /src/pubkey/rsa | |
parent | 788e524d35d01d90c56c825dbf63a96c3c42a32c (diff) |
Remove IF_Scheme_PrivateKey::PKCS8_load_hook
Diffstat (limited to 'src/pubkey/rsa')
-rw-r--r-- | src/pubkey/rsa/rsa.cpp | 13 | ||||
-rw-r--r-- | src/pubkey/rsa/rsa.h | 5 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/pubkey/rsa/rsa.cpp b/src/pubkey/rsa/rsa.cpp index c606e5c53..b181cb9cc 100644 --- a/src/pubkey/rsa/rsa.cpp +++ b/src/pubkey/rsa/rsa.cpp @@ -57,12 +57,19 @@ RSA_PrivateKey::RSA_PrivateKey(RandomNumberGenerator& rng, e = exp; p = random_prime(rng, (bits + 1) / 2, e); q = random_prime(rng, bits - p.bits(), e); - d = inverse_mod(e, lcm(p - 1, q - 1)); - - PKCS8_load_hook(rng, true); + n = p * q; if(n.bits() != bits) throw Self_Test_Failure(algo_name() + " private key generation failed"); + + d = inverse_mod(e, lcm(p - 1, q - 1)); + d1 = d % (p - 1); + d2 = d % (q - 1); + c = inverse_mod(q, p); + + core = IF_Core(rng, e, n, d, p, q, d1, d2, c); + + gen_check(rng); } /* diff --git a/src/pubkey/rsa/rsa.h b/src/pubkey/rsa/rsa.h index ce79e2440..0d5a4ad2e 100644 --- a/src/pubkey/rsa/rsa.h +++ b/src/pubkey/rsa/rsa.h @@ -69,10 +69,7 @@ class BOTAN_DLL RSA_PrivateKey : public RSA_PublicKey, RSA_PrivateKey(const AlgorithmIdentifier& alg_id, const MemoryRegion<byte>& key_bits, RandomNumberGenerator& rng) : - IF_Scheme_PrivateKey(alg_id, key_bits) - { - PKCS8_load_hook(rng); - } + IF_Scheme_PrivateKey(rng, alg_id, key_bits) {} /** * Construct a private key from the specified parameters. |