Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/test/ct_test_util.h" | 5 #include "net/test/ct_test_util.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 198 | 198 |
| 199 std::string GetTestPublicKeyId() { | 199 std::string GetTestPublicKeyId() { |
| 200 return HexToBytes(kTestKeyId); | 200 return HexToBytes(kTestKeyId); |
| 201 } | 201 } |
| 202 | 202 |
| 203 void GetX509CertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) { | 203 void GetX509CertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) { |
| 204 CHECK(sct_ref != NULL); | 204 CHECK(sct_ref != NULL); |
| 205 *sct_ref = new SignedCertificateTimestamp(); | 205 *sct_ref = new SignedCertificateTimestamp(); |
| 206 SignedCertificateTimestamp *const sct(sct_ref->get()); | 206 SignedCertificateTimestamp *const sct(sct_ref->get()); |
| 207 sct->version = ct::SignedCertificateTimestamp::SCT_VERSION_1; | 207 sct->version = ct::SignedCertificateTimestamp::SCT_VERSION_1; |
| 208 sct->log_id = HexToBytes(kTestKeyId); | 208 sct->log_id = GetTestPublicKeyId(); |
| 209 // Time the log issued a SCT for this certificate, which is | 209 // Time the log issued a SCT for this certificate, which is |
| 210 // Fri Apr 5 10:04:16.089 2013 | 210 // Fri Apr 5 10:04:16.089 2013 |
| 211 sct->timestamp = base::Time::UnixEpoch() + | 211 sct->timestamp = base::Time::UnixEpoch() + |
| 212 base::TimeDelta::FromMilliseconds(INT64_C(1365181456089)); | 212 base::TimeDelta::FromMilliseconds(INT64_C(1365181456089)); |
| 213 sct->extensions.clear(); | 213 sct->extensions.clear(); |
| 214 | 214 |
| 215 sct->signature.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256; | 215 sct->signature.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256; |
| 216 sct->signature.signature_algorithm = ct::DigitallySigned::SIG_ALGO_ECDSA; | 216 sct->signature.signature_algorithm = ct::DigitallySigned::SIG_ALGO_ECDSA; |
| 217 sct->signature.signature_data = HexToBytes(kTestSCTSignatureData); | 217 sct->signature.signature_data = HexToBytes(kTestSCTSignatureData); |
| 218 } | 218 } |
| 219 | 219 |
| 220 void GetPrecertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) { | 220 void GetPrecertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) { |
| 221 CHECK(sct_ref != NULL); | 221 CHECK(sct_ref != NULL); |
| 222 *sct_ref = new SignedCertificateTimestamp(); | 222 *sct_ref = new SignedCertificateTimestamp(); |
| 223 SignedCertificateTimestamp *const sct(sct_ref->get()); | 223 SignedCertificateTimestamp *const sct(sct_ref->get()); |
| 224 sct->version = ct::SignedCertificateTimestamp::SCT_VERSION_1; | 224 sct->version = ct::SignedCertificateTimestamp::SCT_VERSION_1; |
| 225 sct->log_id = HexToBytes(kTestKeyId); | 225 sct->log_id = GetTestPublicKeyId(); |
| 226 // Time the log issued a SCT for this Precertificate, which is | 226 // Time the log issued a SCT for this Precertificate, which is |
| 227 // Fri Apr 5 10:04:16.275 2013 | 227 // Fri Apr 5 10:04:16.275 2013 |
| 228 sct->timestamp = base::Time::UnixEpoch() + | 228 sct->timestamp = base::Time::UnixEpoch() + |
| 229 base::TimeDelta::FromMilliseconds(INT64_C(1365181456275)); | 229 base::TimeDelta::FromMilliseconds(INT64_C(1365181456275)); |
| 230 sct->extensions.clear(); | 230 sct->extensions.clear(); |
| 231 | 231 |
| 232 sct->signature.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256; | 232 sct->signature.hash_algorithm = ct::DigitallySigned::HASH_ALGO_SHA256; |
| 233 sct->signature.signature_algorithm = ct::DigitallySigned::SIG_ALGO_ECDSA; | 233 sct->signature.signature_algorithm = ct::DigitallySigned::SIG_ALGO_ECDSA; |
| 234 sct->signature.signature_data = HexToBytes(kTestSCTPrecertSignatureData); | 234 sct->signature.signature_data = HexToBytes(kTestSCTPrecertSignatureData); |
| 235 } | 235 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 250 return HexToBytes(kFakeOCSPResponseCert); | 250 return HexToBytes(kFakeOCSPResponseCert); |
| 251 } | 251 } |
| 252 | 252 |
| 253 std::string GetDerEncodedFakeOCSPResponseIssuerCert() { | 253 std::string GetDerEncodedFakeOCSPResponseIssuerCert() { |
| 254 return HexToBytes(kFakeOCSPResponseIssuerCert); | 254 return HexToBytes(kFakeOCSPResponseIssuerCert); |
| 255 } | 255 } |
| 256 | 256 |
| 257 // A sample, valid STH | 257 // A sample, valid STH |
| 258 void GetSampleSignedTreeHead(SignedTreeHead* sth) { | 258 void GetSampleSignedTreeHead(SignedTreeHead* sth) { |
| 259 sth->version = SignedTreeHead::V1; | 259 sth->version = SignedTreeHead::V1; |
| 260 sth->log_id = GetTestPublicKeyId(); | |
| 260 sth->timestamp = base::Time::UnixEpoch() + | 261 sth->timestamp = base::Time::UnixEpoch() + |
| 261 base::TimeDelta::FromMilliseconds(kSampleSTHTimestamp); | 262 base::TimeDelta::FromMilliseconds(kSampleSTHTimestamp); |
| 262 sth->tree_size = kSampleSTHTreeSize; | 263 sth->tree_size = kSampleSTHTreeSize; |
| 263 std::string sha256_root_hash = GetSampleSTHSHA256RootHash(); | 264 std::string sha256_root_hash = GetSampleSTHSHA256RootHash(); |
| 264 memcpy(sth->sha256_root_hash, sha256_root_hash.c_str(), kSthRootHashLength); | 265 memcpy(sth->sha256_root_hash, sha256_root_hash.c_str(), kSthRootHashLength); |
| 265 | 266 |
| 266 GetSampleSTHTreeHeadDecodedSignature(&(sth->signature)); | 267 GetSampleSTHTreeHeadDecodedSignature(&(sth->signature)); |
| 267 } | 268 } |
| 268 | 269 |
| 269 std::string GetSampleSTHSHA256RootHash() { | 270 std::string GetSampleSTHSHA256RootHash() { |
| 270 return HexToBytes(kSampleSTHSHA256RootHash); | 271 return HexToBytes(kSampleSTHSHA256RootHash); |
| 271 } | 272 } |
| 272 | 273 |
| 273 std::string GetSampleSTHTreeHeadSignature() { | 274 std::string GetSampleSTHTreeHeadSignature() { |
| 274 return HexToBytes(kSampleSTHTreeHeadSignature); | 275 return HexToBytes(kSampleSTHTreeHeadSignature); |
| 275 } | 276 } |
| 276 | 277 |
| 277 void GetSampleSTHTreeHeadDecodedSignature(DigitallySigned* signature) { | 278 void GetSampleSTHTreeHeadDecodedSignature(DigitallySigned* signature) { |
| 278 std::string tree_head_signature = HexToBytes(kSampleSTHTreeHeadSignature); | 279 std::string tree_head_signature = HexToBytes(kSampleSTHTreeHeadSignature); |
| 279 base::StringPiece sp(tree_head_signature); | 280 base::StringPiece sp(tree_head_signature); |
| 280 CHECK(DecodeDigitallySigned(&sp, signature)); | 281 CHECK(DecodeDigitallySigned(&sp, signature)); |
| 281 CHECK(sp.empty()); | 282 CHECK(sp.empty()); |
| 282 } | 283 } |
| 283 | 284 |
| 285 std::string GetSampleSTH() { | |
| 286 const std::string log_id = ct::GetTestPublicKeyId(); | |
| 287 const std::string timestamp("\x0\x0\x1\x45\x3c\x5f\xb8\x35", 8); | |
|
Eran Messeri
2016/01/14 12:46:45
Why not use the encoding functions you've added to
| |
| 288 const std::string tree_size("\x0\x0\x0\x0\x0\x0\x0\x15", 8); | |
| 289 | |
| 290 std::string expected_output; | |
| 291 expected_output += log_id; | |
| 292 expected_output += timestamp; | |
| 293 expected_output += tree_size; | |
| 294 expected_output += ct::GetSampleSTHSHA256RootHash(); | |
| 295 expected_output += ct::GetSampleSTHTreeHeadSignature(); | |
| 296 | |
| 297 return expected_output; | |
| 298 } | |
| 299 | |
| 284 std::string GetSampleSTHAsJson() { | 300 std::string GetSampleSTHAsJson() { |
| 285 return CreateSignedTreeHeadJsonString(kSampleSTHTreeSize, kSampleSTHTimestamp, | 301 return CreateSignedTreeHeadJsonString(kSampleSTHTreeSize, kSampleSTHTimestamp, |
| 286 GetSampleSTHSHA256RootHash(), | 302 GetSampleSTHSHA256RootHash(), |
| 287 GetSampleSTHTreeHeadSignature()); | 303 GetSampleSTHTreeHeadSignature()); |
| 288 } | 304 } |
| 289 | 305 |
| 290 std::string CreateSignedTreeHeadJsonString(size_t tree_size, | 306 std::string CreateSignedTreeHeadJsonString(size_t tree_size, |
| 291 int64_t timestamp, | 307 int64_t timestamp, |
| 292 std::string sha256_root_hash, | 308 std::string sha256_root_hash, |
| 293 std::string tree_head_signature) { | 309 std::string tree_head_signature) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 325 consistency_proof_json += std::string(","); | 341 consistency_proof_json += std::string(","); |
| 326 } | 342 } |
| 327 consistency_proof_json += std::string("]}"); | 343 consistency_proof_json += std::string("]}"); |
| 328 | 344 |
| 329 return consistency_proof_json; | 345 return consistency_proof_json; |
| 330 } | 346 } |
| 331 | 347 |
| 332 } // namespace ct | 348 } // namespace ct |
| 333 | 349 |
| 334 } // namespace net | 350 } // namespace net |
| OLD | NEW |