aboutsummaryrefslogtreecommitdiffstats
path: root/src/pubkey/keypair/keypair.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pubkey/keypair/keypair.cpp')
-rw-r--r--src/pubkey/keypair/keypair.cpp30
1 files changed, 12 insertions, 18 deletions
diff --git a/src/pubkey/keypair/keypair.cpp b/src/pubkey/keypair/keypair.cpp
index 486577fc5..d54d8e442 100644
--- a/src/pubkey/keypair/keypair.cpp
+++ b/src/pubkey/keypair/keypair.cpp
@@ -1,13 +1,11 @@
/*
* Keypair Checks
-* (C) 1999-2007 Jack Lloyd
+* (C) 1999-2010 Jack Lloyd
*
* Distributed under the terms of the Botan license
*/
#include <botan/keypair.h>
-#include <botan/look_pk.h>
-#include <memory>
namespace Botan {
@@ -17,22 +15,20 @@ namespace KeyPair {
* Check an encryption key pair for consistency
*/
void check_key(RandomNumberGenerator& rng,
- PK_Encryptor* encryptor, PK_Decryptor* decryptor)
+ PK_Encryptor& encryptor,
+ PK_Decryptor& decryptor)
{
- if(encryptor->maximum_input_size() == 0)
+ if(encryptor.maximum_input_size() == 0)
return;
- std::auto_ptr<PK_Encryptor> enc(encryptor);
- std::auto_ptr<PK_Decryptor> dec(decryptor);
-
- SecureVector<byte> message(enc->maximum_input_size() - 1);
+ SecureVector<byte> message(encryptor.maximum_input_size() - 1);
rng.randomize(message, message.size());
- SecureVector<byte> ciphertext = enc->encrypt(message, rng);
+ SecureVector<byte> ciphertext = encryptor.encrypt(message, rng);
if(ciphertext == message)
throw Self_Test_Failure("Encryption key pair consistency failure");
- SecureVector<byte> message2 = dec->decrypt(ciphertext);
+ SecureVector<byte> message2 = decryptor.decrypt(ciphertext);
if(message != message2)
throw Self_Test_Failure("Encryption key pair consistency failure");
}
@@ -41,11 +37,9 @@ void check_key(RandomNumberGenerator& rng,
* Check a signature key pair for consistency
*/
void check_key(RandomNumberGenerator& rng,
- PK_Signer* signer, PK_Verifier* verifier)
+ PK_Signer& signer,
+ PK_Verifier& verifier)
{
- std::auto_ptr<PK_Signer> sig(signer);
- std::auto_ptr<PK_Verifier> ver(verifier);
-
SecureVector<byte> message(16);
rng.randomize(message, message.size());
@@ -53,18 +47,18 @@ void check_key(RandomNumberGenerator& rng,
try
{
- signature = sig->sign_message(message, rng);
+ signature = signer.sign_message(message, rng);
}
catch(Encoding_Error)
{
return;
}
- if(!ver->verify_message(message, signature))
+ if(!verifier.verify_message(message, signature))
throw Self_Test_Failure("Signature key pair consistency failure");
++message[0];
- if(ver->verify_message(message, signature))
+ if(verifier.verify_message(message, signature))
throw Self_Test_Failure("Signature key pair consistency failure");
}