Index: crypto/hmac.cc |
diff --git a/crypto/hmac.cc b/crypto/hmac.cc |
index 9131313d9e0514d4a4794c40427213862dcd0104..c69eb3f838588364430acb88dc052b8943e99d79 100644 |
--- a/crypto/hmac.cc |
+++ b/crypto/hmac.cc |
@@ -8,9 +8,19 @@ |
#include "base/logging.h" |
#include "crypto/secure_util.h" |
+#include "crypto/symmetric_key.h" |
namespace crypto { |
+bool HMAC::Init(SymmetricKey* key) { |
+ std::string raw_key; |
+ bool result = key->GetRawKey(&raw_key) && Init(raw_key); |
+ // Zero out key copy. This might get optimized away, but one can hope. |
+ // Using std::string to store key info at all is a larger problem. |
+ std::fill(raw_key.begin(), raw_key.end(), 0); |
+ return result; |
+} |
+ |
size_t HMAC::DigestLength() const { |
switch (hash_alg_) { |
case SHA1: |