Chromium Code Reviews| Index: net/quic/crypto/channel_id_test.cc |
| diff --git a/net/quic/crypto/channel_id_test.cc b/net/quic/crypto/channel_id_test.cc |
| index d29bfced05954d9082d631b7592449f02d553d07..a36e881b4b9ffa8cf32807f93774bdffcf766edf 100644 |
| --- a/net/quic/crypto/channel_id_test.cc |
| +++ b/net/quic/crypto/channel_id_test.cc |
| @@ -5,6 +5,7 @@ |
| #include "net/quic/crypto/channel_id.h" |
| #include "net/quic/test_tools/crypto_test_utils.h" |
| +#include "net/quic/test_tools/quic_test_utils.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| using base::StringPiece; |
| @@ -185,85 +186,36 @@ const TestVector test_vector[] = { |
| { NULL } |
| }; |
| -// Returns true if |ch| is a lowercase hexadecimal digit. |
| -bool IsHexDigit(char ch) { |
| - return ('0' <= ch && ch <= '9') || ('a' <= ch && ch <= 'f'); |
| -} |
| - |
| -// Converts a lowercase hexadecimal digit to its integer value. |
| -int HexDigitToInt(char ch) { |
| - if ('0' <= ch && ch <= '9') { |
| - return ch - '0'; |
| - } |
| - return ch - 'a' + 10; |
| -} |
| - |
| -// |in| is a string consisting of lowercase hexadecimal digits, where |
| -// every two digits represent one byte. |out| is a buffer of size |max_len|. |
| -// Converts |in| to bytes and stores the bytes in the |out| buffer. The |
| -// number of bytes converted is returned in |*out_len|. Returns true on |
| -// success, false on failure. |
| -bool DecodeHexString(const char* in, |
| - char* out, |
| - size_t* out_len, |
| - size_t max_len) { |
| - if (!in) { |
| - *out_len = (size_t)-1; |
| - return true; |
| - } |
| - *out_len = 0; |
| - while (*in != '\0') { |
| - if (!IsHexDigit(*in) || !IsHexDigit(*(in + 1))) { |
| - return false; |
| - } |
| - if (*out_len >= max_len) { |
| - return false; |
| - } |
| - out[*out_len] = HexDigitToInt(*in) * 16 + HexDigitToInt(*(in + 1)); |
| - (*out_len)++; |
| - in += 2; |
| - } |
| - return true; |
| -} |
| - |
| } // namespace |
| // A known answer test for ChannelIDVerifier. |
| TEST(ChannelIDTest, VerifyKnownAnswerTest) { |
| - char msg[1024]; |
| - size_t msg_len; |
| - char key[64]; |
| - size_t qx_len; |
| - size_t qy_len; |
| - char signature[64]; |
| - size_t r_len; |
| - size_t s_len; |
| + string msg; |
| + string qx; |
| + string qy; |
| + string r; |
| + string s; |
| for (size_t i = 0; test_vector[i].msg != NULL; i++) { |
| SCOPED_TRACE(i); |
| // Decode the test vector. |
| - ASSERT_TRUE( |
| - DecodeHexString(test_vector[i].msg, msg, &msg_len, sizeof(msg))); |
| - ASSERT_TRUE(DecodeHexString(test_vector[i].qx, key, &qx_len, sizeof(key))); |
| - ASSERT_TRUE(DecodeHexString(test_vector[i].qy, key + qx_len, &qy_len, |
| - sizeof(key) - qx_len)); |
| - ASSERT_TRUE(DecodeHexString(test_vector[i].r, signature, &r_len, |
| - sizeof(signature))); |
| - ASSERT_TRUE(DecodeHexString(test_vector[i].s, signature + r_len, &s_len, |
| - sizeof(signature) - r_len)); |
| + ASSERT_TRUE(DecodeHexString(test_vector[i].msg, &msg)); |
| + ASSERT_TRUE(DecodeHexString(test_vector[i].qx, &qx)); |
| + ASSERT_TRUE(DecodeHexString(test_vector[i].qy, &qy)); |
| + ASSERT_TRUE(DecodeHexString(test_vector[i].r, &r)); |
| + ASSERT_TRUE(DecodeHexString(test_vector[i].s, &s)); |
| + |
| + string key = qx + qy; |
| + string signature = r + s; |
| // The test vector's lengths should look sane. |
| - EXPECT_EQ(sizeof(key) / 2, qx_len); |
| - EXPECT_EQ(sizeof(key) / 2, qy_len); |
| - EXPECT_EQ(sizeof(signature) / 2, r_len); |
| - EXPECT_EQ(sizeof(signature) / 2, s_len); |
| + EXPECT_EQ(key.size() / 2, qx.size()); |
| + EXPECT_EQ(key.size() / 2, qy.size()); |
| + EXPECT_EQ(signature.size() / 2, r.size()); |
| + EXPECT_EQ(signature.size() / 2, s.size()); |
|
wtc
2013/11/04 01:58:27
The new tests are weaker than the original tests.
eroman
2013/11/04 19:39:58
Done.
|
| EXPECT_EQ(test_vector[i].result, |
| - ChannelIDVerifier::VerifyRaw( |
| - StringPiece(key, sizeof(key)), |
| - StringPiece(msg, msg_len), |
| - StringPiece(signature, sizeof(signature)), |
| - false)); |
| + ChannelIDVerifier::VerifyRaw(key, msg, signature, false)); |
| } |
| } |