Index: crypto/p224_spake.cc |
diff --git a/crypto/p224_spake.cc b/crypto/p224_spake.cc |
index 31109a43503fe821d525bb055c9aab570292c6ff..f20b10c5ec6f0f78cf14f0e55fa52eea8cf8155f 100644 |
--- a/crypto/p224_spake.cc |
+++ b/crypto/p224_spake.cc |
@@ -240,8 +240,16 @@ const std::string& P224EncryptedKeyExchange::error() const { |
return error_; |
} |
-const std::string& P224EncryptedKeyExchange::GetKey() { |
+const std::string& P224EncryptedKeyExchange::GetKey() const { |
DCHECK_EQ(state_, kStateDone); |
+ return GetUnverifiedKey(); |
+} |
+ |
+const std::string& P224EncryptedKeyExchange::GetUnverifiedKey() const { |
+ // Key is already final when state is kStateSendHash. Subsequent states are |
+ // used only for verification of the key. Some users may combine verification |
+ // with sending verifiable data instead of |expected_authenticator_|. |
+ DCHECK_GE(state_, kStateSendHash); |
return key_; |
} |