Chromium Code Reviews| Index: chrome/browser/net/transport_security_persister.cc |
| =================================================================== |
| --- chrome/browser/net/transport_security_persister.cc (revision 151057) |
| +++ chrome/browser/net/transport_security_persister.cc (working copy) |
| @@ -20,32 +20,46 @@ |
| #include "net/base/x509_certificate.h" |
| using content::BrowserThread; |
| -using net::Fingerprint; |
| -using net::FingerprintVector; |
| +using net::HashValue; |
| +using net::HashValueTag; |
| +using net::HashValueVector; |
| using net::TransportSecurityState; |
| namespace { |
| -ListValue* SPKIHashesToListValue(const FingerprintVector& hashes) { |
| +ListValue* SPKIHashesToListValue(const HashValueVector& hashes) { |
| ListValue* pins = new ListValue; |
| - for (FingerprintVector::const_iterator i = hashes.begin(); |
| + for (HashValueVector::const_iterator i = hashes.begin(); |
| i != hashes.end(); ++i) { |
| - std::string hash_str(reinterpret_cast<const char*>(i->data), |
| - sizeof(i->data)); |
| + std::string label; |
|
Ryan Sleevi
2012/08/11 01:39:55
nit: declare label outside the loop?
palmer
2012/08/14 19:40:42
This is resolved with the new HashValue.label meth
|
| + switch (i->tag) { |
| + case net::HASH_VALUE_SHA1: |
| + label = "sha1/"; |
| + break; |
| + case net::HASH_VALUE_SHA256: |
| + label = "sha256/"; |
| + break; |
| + default: |
| + LOG(WARNING) << "Skipping invalid fingerprint with unknown type " |
| + << i->tag; |
| + continue; |
| + } |
| + |
| + std::string hash_str(reinterpret_cast<const char*>(i->data()), i->size()); |
| std::string b64; |
| base::Base64Encode(hash_str, &b64); |
| - pins->Append(new StringValue("sha1/" + b64)); |
| + pins->Append(new StringValue(label + b64)); |
| } |
| return pins; |
| } |
| -void SPKIHashesFromListValue(const ListValue& pins, FingerprintVector* hashes) { |
| +void SPKIHashesFromListValue(const ListValue& pins, HashValueVector* hashes) { |
| size_t num_pins = pins.GetSize(); |
| for (size_t i = 0; i < num_pins; ++i) { |
| std::string type_and_base64; |
| - Fingerprint fingerprint; |
| + HashValue fingerprint; |
| if (pins.GetString(i, &type_and_base64) && |
| TransportSecurityState::ParsePin(type_and_base64, &fingerprint)) { |
| hashes->push_back(fingerprint); |