summaryrefslogtreecommitdiffstats
path: root/base/sha2_unittest.cc
diff options
context:
space:
mode:
authorbryner@chromium.org <bryner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-24 17:45:21 +0000
committerbryner@chromium.org <bryner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-24 17:45:21 +0000
commit6c683f09fd3c1e0b7565b6c93d639b9840e7c1f8 (patch)
tree8966794d268cd876c5497e06c3b7a27409338a52 /base/sha2_unittest.cc
parent4c9a3f412bd09d6378106b37662320d79a6b82ca (diff)
downloadchromium_src-6c683f09fd3c1e0b7565b6c93d639b9840e7c1f8.zip
chromium_src-6c683f09fd3c1e0b7565b6c93d639b9840e7c1f8.tar.gz
chromium_src-6c683f09fd3c1e0b7565b6c93d639b9840e7c1f8.tar.bz2
Fix a bug in the string wrapper for SHA256HashString.
The wrapper was using the size of the input string as the number of hash bytes to compute, rather than the size of the output string (SHA256_LENGTH). Added a test for this. BUG=none TEST=Sha256Test.Test1_String Review URL: http://codereview.chromium.org/3492008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60491 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/sha2_unittest.cc')
-rw-r--r--base/sha2_unittest.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/base/sha2_unittest.cc b/base/sha2_unittest.cc
index a6844dd..b0321e8 100644
--- a/base/sha2_unittest.cc
+++ b/base/sha2_unittest.cc
@@ -30,6 +30,25 @@ TEST(Sha256Test, Test1) {
EXPECT_EQ(expected1[i], static_cast<int>(output_truncated1[i]));
}
+TEST(Sha256Test, Test1_String) {
+ // Same as the above, but using the wrapper that returns a std::string.
+ // Example B.1 from FIPS 180-2: one-block message.
+ std::string input1 = "abc";
+ int expected1[] = { 0xba, 0x78, 0x16, 0xbf,
+ 0x8f, 0x01, 0xcf, 0xea,
+ 0x41, 0x41, 0x40, 0xde,
+ 0x5d, 0xae, 0x22, 0x23,
+ 0xb0, 0x03, 0x61, 0xa3,
+ 0x96, 0x17, 0x7a, 0x9c,
+ 0xb4, 0x10, 0xff, 0x61,
+ 0xf2, 0x00, 0x15, 0xad };
+
+ std::string output1 = base::SHA256HashString(input1);
+ ASSERT_EQ(base::SHA256_LENGTH, output1.size());
+ for (size_t i = 0; i < base::SHA256_LENGTH; i++)
+ EXPECT_EQ(expected1[i], static_cast<uint8>(output1[i]));
+}
+
TEST(Sha256Test, Test2) {
// Example B.2 from FIPS 180-2: multi-block message.
std::string input2 =