Changeset 185500 in webkit
- Timestamp:
- Jun 12, 2015 5:58:36 AM (9 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r185498 r185500 1 2015-06-12 Antti Koivisto <antti@apple.com> 2 3 Network Cache: Use SHA1 for key hash 4 https://bugs.webkit.org/show_bug.cgi?id=143829 5 6 Reviewed by Anders Carlsson. 7 8 For consistency with blobs, use SHA1 instead of MD5. 9 10 * NetworkProcess/cache/NetworkCacheCoders.cpp: 11 (WebKit::NetworkCache::Coder<MD5::Digest>::encode): Deleted. 12 (WebKit::NetworkCache::Coder<MD5::Digest>::decode): Deleted. 13 14 No longer needed. 15 16 * NetworkProcess/cache/NetworkCacheCoders.h: 17 * NetworkProcess/cache/NetworkCacheKey.cpp: 18 (WebKit::NetworkCache::hashString): 19 (WebKit::NetworkCache::Key::computeHash): 20 * NetworkProcess/cache/NetworkCacheKey.h: 21 1 22 2015-06-12 Csaba Osztrogonác <ossy@webkit.org> 2 23 -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp
r185458 r185500 167 167 } 168 168 169 void Coder<MD5::Digest>::encode(Encoder& encoder, const MD5::Digest& digest)170 {171 encoder.encodeFixedLengthData(digest.data(), sizeof(digest));172 }173 174 bool Coder<MD5::Digest>::decode(Decoder& decoder, MD5::Digest& digest)175 {176 return decoder.decodeFixedLengthData(digest.data(), sizeof(digest));177 }178 179 169 void Coder<SHA1::Digest>::encode(Encoder& encoder, const SHA1::Digest& digest) 180 170 { -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h
r185458 r185500 36 36 #include <wtf/HashMap.h> 37 37 #include <wtf/HashSet.h> 38 #include <wtf/MD5.h>39 38 #include <wtf/SHA1.h> 40 39 #include <wtf/Vector.h> … … 255 254 }; 256 255 257 template<> struct Coder<MD5::Digest> {258 static void encode(Encoder&, const MD5::Digest&);259 static bool decode(Decoder&, MD5::Digest&);260 };261 262 256 template<> struct Coder<SHA1::Digest> { 263 257 static void encode(Encoder&, const SHA1::Digest&); -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.cpp
r184690 r185500 65 65 } 66 66 67 static void hashString( MD5& md5, const String& string)67 static void hashString(SHA1& sha1, const String& string) 68 68 { 69 const uint8_t zero = 0;70 71 69 if (string.isNull()) 72 70 return; 73 71 74 72 if (string.is8Bit() && string.containsOnlyASCII()) { 75 md5.addBytes(string.characters8(), string.length()); 76 md5.addBytes(&zero, 1); 73 const uint8_t nullByte = 0; 74 sha1.addBytes(string.characters8(), string.length()); 75 sha1.addBytes(&nullByte, 1); 77 76 return; 78 77 } 79 78 auto cString = string.utf8(); 80 md5.addBytes(reinterpret_cast<const uint8_t*>(cString.data()), cString.length());81 md5.addBytes(&zero,1);79 // Include terminating null byte. 80 sha1.addBytes(reinterpret_cast<const uint8_t*>(cString.data()), cString.length() + 1); 82 81 } 83 82 … … 85 84 { 86 85 // We don't really need a cryptographic hash. The key is always verified against the entry header. 87 // MD5just happens to be suitably sized, fast and available.88 MD5 md5;89 hashString( md5, m_method);90 hashString( md5, m_partition);91 hashString( md5, m_identifier);92 hashString( md5, m_range);93 MD5::Digest hash;94 md5.checksum(hash);86 // SHA1 just happens to be suitably sized, fast and available. 87 SHA1 sha1; 88 hashString(sha1, m_method); 89 hashString(sha1, m_partition); 90 hashString(sha1, m_identifier); 91 hashString(sha1, m_range); 92 SHA1::Digest hash; 93 sha1.computeHash(hash); 95 94 return hash; 96 95 } -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.h
r184690 r185500 29 29 #if ENABLE(NETWORK_CACHE) 30 30 31 #include <wtf/ MD5.h>31 #include <wtf/SHA1.h> 32 32 #include <wtf/text/WTFString.h> 33 33 … … 40 40 class Key { 41 41 public: 42 typedef MD5::Digest HashType;42 typedef SHA1::Digest HashType; 43 43 44 44 Key() { } -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp
r185452 r185500 223 223 m_blobStorage.synchronize(); 224 224 225 deleteEmptyRecordsDirectories(recordsPath()); 226 225 227 LOG(NetworkCacheStorage, "(NetworkProcess) cache synchronization completed size=%zu count=%d", recordsSize, count); 226 228 }); … … 860 862 }); 861 863 862 deleteEmptyRecordsDirectories(recordsPath);863 864 864 RunLoop::main().dispatch([this] { 865 865 m_shrinkInProgress = false;
Note: See TracChangeset
for help on using the changeset viewer.