Index: crypto/rsa_private_key_mac.cc |
diff --git a/crypto/rsa_private_key_mac.cc b/crypto/rsa_private_key_mac.cc |
index 85dadfa9ee67fe4df267514d845a48e2c4f9cd60..8dcf14a61fc91b32b93ae1e2b45764e9432e2729 100644 |
--- a/crypto/rsa_private_key_mac.cc |
+++ b/crypto/rsa_private_key_mac.cc |
@@ -174,17 +174,24 @@ RSAPrivateKey::~RSAPrivateKey() { |
} |
} |
-bool RSAPrivateKey::ExportPrivateKey(std::vector<uint8>* output) { |
+RSAPrivateKey* RSAPrivateKey::Copy() const { |
+ std::vector<uint8> key_bytes; |
+ if (!ExportPrivateKey(&key_bytes)) |
+ return NULL; |
+ return CreateFromPrivateKeyInfo(key_bytes); |
+} |
+ |
+bool RSAPrivateKey::ExportPrivateKey(std::vector<uint8>* output) const { |
if (!key_.KeyData.Data || !key_.KeyData.Length) { |
return false; |
} |
output->clear(); |
output->insert(output->end(), key_.KeyData.Data, |
- key_.KeyData.Data + key_.KeyData.Length); |
+ key_.KeyData.Data + key_.KeyData.Length); |
return true; |
} |
-bool RSAPrivateKey::ExportPublicKey(std::vector<uint8>* output) { |
+bool RSAPrivateKey::ExportPublicKey(std::vector<uint8>* output) const { |
PrivateKeyInfoCodec private_key_info(true); |
std::vector<uint8> private_key_data; |
private_key_data.assign(key_.KeyData.Data, |