Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: net/cert/ct_serialization_unittest.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/cert/ct_serialization.h" 5 #include "net/cert/ct_serialization.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 15 matching lines...) Expand all
26 26
27 protected: 27 protected:
28 std::string test_digitally_signed_; 28 std::string test_digitally_signed_;
29 }; 29 };
30 30
31 TEST_F(CtSerializationTest, DecodesDigitallySigned) { 31 TEST_F(CtSerializationTest, DecodesDigitallySigned) {
32 base::StringPiece digitally_signed(test_digitally_signed_); 32 base::StringPiece digitally_signed(test_digitally_signed_);
33 ct::DigitallySigned parsed; 33 ct::DigitallySigned parsed;
34 34
35 ASSERT_TRUE(ct::DecodeDigitallySigned(&digitally_signed, &parsed)); 35 ASSERT_TRUE(ct::DecodeDigitallySigned(&digitally_signed, &parsed));
36 EXPECT_EQ( 36 EXPECT_EQ(ct::DigitallySigned::HASH_ALGO_SHA256, parsed.hash_algorithm);
37 ct::DigitallySigned::HASH_ALGO_SHA256,
38 parsed.hash_algorithm);
39 37
40 EXPECT_EQ( 38 EXPECT_EQ(ct::DigitallySigned::SIG_ALGO_ECDSA, parsed.signature_algorithm);
41 ct::DigitallySigned::SIG_ALGO_ECDSA,
42 parsed.signature_algorithm);
43 39
44 // The encoded data contains the signature itself from the 4th byte. 40 // The encoded data contains the signature itself from the 4th byte.
45 // The first bytes are: 41 // The first bytes are:
46 // 1 byte of hash algorithm 42 // 1 byte of hash algorithm
47 // 1 byte of signature algorithm 43 // 1 byte of signature algorithm
48 // 2 bytes - prefix containing length of the signature data. 44 // 2 bytes - prefix containing length of the signature data.
49 EXPECT_EQ( 45 EXPECT_EQ(test_digitally_signed_.substr(4), parsed.signature_data);
50 test_digitally_signed_.substr(4),
51 parsed.signature_data);
52 } 46 }
53 47
54
55 TEST_F(CtSerializationTest, FailsToDecodePartialDigitallySigned) { 48 TEST_F(CtSerializationTest, FailsToDecodePartialDigitallySigned) {
56 base::StringPiece digitally_signed(test_digitally_signed_); 49 base::StringPiece digitally_signed(test_digitally_signed_);
57 base::StringPiece partial_digitally_signed( 50 base::StringPiece partial_digitally_signed(
58 digitally_signed.substr(0, test_digitally_signed_.size() - 5)); 51 digitally_signed.substr(0, test_digitally_signed_.size() - 5));
59 ct::DigitallySigned parsed; 52 ct::DigitallySigned parsed;
60 53
61 ASSERT_FALSE(ct::DecodeDigitallySigned(&partial_digitally_signed, &parsed)); 54 ASSERT_FALSE(ct::DecodeDigitallySigned(&partial_digitally_signed, &parsed));
62 } 55 }
63 56
64
65 TEST_F(CtSerializationTest, EncodesDigitallySigned) { 57 TEST_F(CtSerializationTest, EncodesDigitallySigned) {
66 ct::DigitallySigned digitally_signed; 58 ct::DigitallySigned digitally_signed;
67 digitally_signed.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256; 59 digitally_signed.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256;
68 digitally_signed.signature_algorithm = ct::DigitallySigned::SIG_ALGO_ECDSA; 60 digitally_signed.signature_algorithm = ct::DigitallySigned::SIG_ALGO_ECDSA;
69 digitally_signed.signature_data = test_digitally_signed_.substr(4); 61 digitally_signed.signature_data = test_digitally_signed_.substr(4);
70 62
71 std::string encoded; 63 std::string encoded;
72 64
73 ASSERT_TRUE(ct::EncodeDigitallySigned(digitally_signed, &encoded)); 65 ASSERT_TRUE(ct::EncodeDigitallySigned(digitally_signed, &encoded));
74 EXPECT_EQ(test_digitally_signed_, encoded); 66 EXPECT_EQ(test_digitally_signed_, encoded);
75 } 67 }
76 68
77
78 TEST_F(CtSerializationTest, EncodesLogEntryForX509Cert) { 69 TEST_F(CtSerializationTest, EncodesLogEntryForX509Cert) {
79 ct::LogEntry entry; 70 ct::LogEntry entry;
80 GetX509CertLogEntry(&entry); 71 GetX509CertLogEntry(&entry);
81 72
82 std::string encoded; 73 std::string encoded;
83 ASSERT_TRUE(ct::EncodeLogEntry(entry, &encoded)); 74 ASSERT_TRUE(ct::EncodeLogEntry(entry, &encoded));
84 EXPECT_EQ((718U + 5U), encoded.size()); 75 EXPECT_EQ((718U + 5U), encoded.size());
85 // First two bytes are log entry type. Next, length: 76 // First two bytes are log entry type. Next, length:
86 // Length is 718 which is 512 + 206, which is 0x2ce 77 // Length is 718 which is 512 + 206, which is 0x2ce
87 std::string expected_prefix("\0\0\0\x2\xCE", 5); 78 std::string expected_prefix("\0\0\0\x2\xCE", 5);
88 // Note we use std::string comparison rather than ASSERT_STREQ due 79 // Note we use std::string comparison rather than ASSERT_STREQ due
89 // to null characters in the buffer. 80 // to null characters in the buffer.
90 EXPECT_EQ(expected_prefix, encoded.substr(0, 5)); 81 EXPECT_EQ(expected_prefix, encoded.substr(0, 5));
91 } 82 }
92 83
93 TEST_F(CtSerializationTest, EncodesV1SCTSignedData) { 84 TEST_F(CtSerializationTest, EncodesV1SCTSignedData) {
94 base::Time timestamp = base::Time::UnixEpoch() + 85 base::Time timestamp = base::Time::UnixEpoch() +
95 base::TimeDelta::FromMilliseconds(1348589665525); 86 base::TimeDelta::FromMilliseconds(1348589665525);
96 std::string dummy_entry("abc"); 87 std::string dummy_entry("abc");
97 std::string empty_extensions; 88 std::string empty_extensions;
98 // For now, no known failure cases. 89 // For now, no known failure cases.
99 std::string encoded; 90 std::string encoded;
100 ASSERT_TRUE(ct::EncodeV1SCTSignedData( 91 ASSERT_TRUE(ct::EncodeV1SCTSignedData(
101 timestamp, 92 timestamp, dummy_entry, empty_extensions, &encoded));
102 dummy_entry, 93 EXPECT_EQ((size_t)15, encoded.size());
103 empty_extensions,
104 &encoded));
105 EXPECT_EQ((size_t) 15, encoded.size());
106 // Byte 0 is version, byte 1 is signature type 94 // Byte 0 is version, byte 1 is signature type
107 // Bytes 2-10 are timestamp 95 // Bytes 2-10 are timestamp
108 // Bytes 11-14 are the log signature 96 // Bytes 11-14 are the log signature
109 // Byte 15 is the empty extension 97 // Byte 15 is the empty extension
110 //EXPECT_EQ(0, timestamp.ToTimeT()); 98 // EXPECT_EQ(0, timestamp.ToTimeT());
111 std::string expected_buffer( 99 std::string expected_buffer(
112 "\x0\x0\x0\x0\x1\x39\xFE\x35\x3C\xF5\x61\x62\x63\x0\x0", 15); 100 "\x0\x0\x0\x0\x1\x39\xFE\x35\x3C\xF5\x61\x62\x63\x0\x0", 15);
113 EXPECT_EQ(expected_buffer, encoded); 101 EXPECT_EQ(expected_buffer, encoded);
114 } 102 }
115 103
116 TEST_F(CtSerializationTest, DecodesSCTList) { 104 TEST_F(CtSerializationTest, DecodesSCTList) {
117 // Two items in the list: "abc", "def" 105 // Two items in the list: "abc", "def"
118 base::StringPiece encoded("\x0\xa\x0\x3\x61\x62\x63\x0\x3\x64\x65\x66", 12); 106 base::StringPiece encoded("\x0\xa\x0\x3\x61\x62\x63\x0\x3\x64\x65\x66", 12);
119 std::vector<base::StringPiece> decoded; 107 std::vector<base::StringPiece> decoded;
120 108
(...skipping 12 matching lines...) Expand all
133 121
134 TEST_F(CtSerializationTest, DecodesSignedCertificateTimestamp) { 122 TEST_F(CtSerializationTest, DecodesSignedCertificateTimestamp) {
135 std::string encoded_test_sct(ct::GetTestSignedCertificateTimestamp()); 123 std::string encoded_test_sct(ct::GetTestSignedCertificateTimestamp());
136 base::StringPiece encoded_sct(encoded_test_sct); 124 base::StringPiece encoded_sct(encoded_test_sct);
137 125
138 scoped_refptr<ct::SignedCertificateTimestamp> sct; 126 scoped_refptr<ct::SignedCertificateTimestamp> sct;
139 ASSERT_TRUE(ct::DecodeSignedCertificateTimestamp(&encoded_sct, &sct)); 127 ASSERT_TRUE(ct::DecodeSignedCertificateTimestamp(&encoded_sct, &sct));
140 EXPECT_EQ(0, sct->version); 128 EXPECT_EQ(0, sct->version);
141 EXPECT_EQ(ct::GetTestPublicKeyId(), sct->log_id); 129 EXPECT_EQ(ct::GetTestPublicKeyId(), sct->log_id);
142 base::Time expected_time = base::Time::UnixEpoch() + 130 base::Time expected_time = base::Time::UnixEpoch() +
143 base::TimeDelta::FromMilliseconds(1365181456089); 131 base::TimeDelta::FromMilliseconds(1365181456089);
144 EXPECT_EQ(expected_time, sct->timestamp); 132 EXPECT_EQ(expected_time, sct->timestamp);
145 // Subtracting 4 bytes for signature data (hash & sig algs), 133 // Subtracting 4 bytes for signature data (hash & sig algs),
146 // actual signature data should be 71 bytes. 134 // actual signature data should be 71 bytes.
147 EXPECT_EQ((size_t) 71, sct->signature.signature_data.size()); 135 EXPECT_EQ((size_t)71, sct->signature.signature_data.size());
148 EXPECT_TRUE(sct->extensions.empty()); 136 EXPECT_TRUE(sct->extensions.empty());
149 } 137 }
150 138
151 TEST_F(CtSerializationTest, FailsDecodingInvalidSignedCertificateTimestamp) { 139 TEST_F(CtSerializationTest, FailsDecodingInvalidSignedCertificateTimestamp) {
152 // Invalid version 140 // Invalid version
153 base::StringPiece invalid_version_sct("\x2\x0", 2); 141 base::StringPiece invalid_version_sct("\x2\x0", 2);
154 scoped_refptr<ct::SignedCertificateTimestamp> sct; 142 scoped_refptr<ct::SignedCertificateTimestamp> sct;
155 143
156 ASSERT_FALSE( 144 ASSERT_FALSE(
157 ct::DecodeSignedCertificateTimestamp(&invalid_version_sct, &sct)); 145 ct::DecodeSignedCertificateTimestamp(&invalid_version_sct, &sct));
158 146
159 // Valid version, invalid length (missing data) 147 // Valid version, invalid length (missing data)
160 base::StringPiece invalid_length_sct("\x0\xa\xb\xc", 4); 148 base::StringPiece invalid_length_sct("\x0\xa\xb\xc", 4);
161 ASSERT_FALSE( 149 ASSERT_FALSE(ct::DecodeSignedCertificateTimestamp(&invalid_length_sct, &sct));
162 ct::DecodeSignedCertificateTimestamp(&invalid_length_sct, &sct));
163 } 150 }
164 151
165 } // namespace net 152 } // namespace net
166
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698