Title: [185500] trunk/Source/WebKit2
Revision
185500
Author
[email protected]
Date
2015-06-12 05:58:36 -0700 (Fri, 12 Jun 2015)

Log Message

Network Cache: Use SHA1 for key hash
https://bugs.webkit.org/show_bug.cgi?id=143829

Reviewed by Anders Carlsson.

For consistency with blobs, use SHA1 instead of MD5.

* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<MD5::Digest>::encode): Deleted.
(WebKit::NetworkCache::Coder<MD5::Digest>::decode): Deleted.

    No longer needed.

* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::hashString):
(WebKit::NetworkCache::Key::computeHash):
* NetworkProcess/cache/NetworkCacheKey.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (185499 => 185500)


--- trunk/Source/WebKit2/ChangeLog	2015-06-12 12:54:26 UTC (rev 185499)
+++ trunk/Source/WebKit2/ChangeLog	2015-06-12 12:58:36 UTC (rev 185500)
@@ -1,3 +1,24 @@
+2015-06-12  Antti Koivisto  <[email protected]>
+
+        Network Cache: Use SHA1 for key hash
+        https://bugs.webkit.org/show_bug.cgi?id=143829
+
+        Reviewed by Anders Carlsson.
+
+        For consistency with blobs, use SHA1 instead of MD5.
+
+        * NetworkProcess/cache/NetworkCacheCoders.cpp:
+        (WebKit::NetworkCache::Coder<MD5::Digest>::encode): Deleted.
+        (WebKit::NetworkCache::Coder<MD5::Digest>::decode): Deleted.
+
+            No longer needed.
+
+        * NetworkProcess/cache/NetworkCacheCoders.h:
+        * NetworkProcess/cache/NetworkCacheKey.cpp:
+        (WebKit::NetworkCache::hashString):
+        (WebKit::NetworkCache::Key::computeHash):
+        * NetworkProcess/cache/NetworkCacheKey.h:
+
 2015-06-12  Csaba Osztrogonác  <[email protected]>
 
         Fix mismatched-tags warning in Source/WebKit2/UIProcess/gtk/InputMethodFilter.h

Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp (185499 => 185500)


--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp	2015-06-12 12:54:26 UTC (rev 185499)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp	2015-06-12 12:58:36 UTC (rev 185500)
@@ -166,16 +166,6 @@
     return argumentDecoder.decode(certificateInfo);
 }
 
-void Coder<MD5::Digest>::encode(Encoder& encoder, const MD5::Digest& digest)
-{
-    encoder.encodeFixedLengthData(digest.data(), sizeof(digest));
-}
-
-bool Coder<MD5::Digest>::decode(Decoder& decoder, MD5::Digest& digest)
-{
-    return decoder.decodeFixedLengthData(digest.data(), sizeof(digest));
-}
-
 void Coder<SHA1::Digest>::encode(Encoder& encoder, const SHA1::Digest& digest)
 {
     encoder.encodeFixedLengthData(digest.data(), sizeof(digest));

Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h (185499 => 185500)


--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h	2015-06-12 12:54:26 UTC (rev 185499)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h	2015-06-12 12:58:36 UTC (rev 185500)
@@ -35,7 +35,6 @@
 #include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
-#include <wtf/MD5.h>
 #include <wtf/SHA1.h>
 #include <wtf/Vector.h>
 
@@ -254,11 +253,6 @@
     static bool decode(Decoder&, WebCore::CertificateInfo&);
 };
 
-template<> struct Coder<MD5::Digest> {
-    static void encode(Encoder&, const MD5::Digest&);
-    static bool decode(Decoder&, MD5::Digest&);
-};
-
 template<> struct Coder<SHA1::Digest> {
     static void encode(Encoder&, const SHA1::Digest&);
     static bool decode(Decoder&, SHA1::Digest&);

Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.cpp (185499 => 185500)


--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.cpp	2015-06-12 12:54:26 UTC (rev 185499)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.cpp	2015-06-12 12:58:36 UTC (rev 185500)
@@ -64,34 +64,33 @@
     return *this;
 }
 
-static void hashString(MD5& md5, const String& string)
+static void hashString(SHA1& sha1, const String& string)
 {
-    const uint8_t zero = 0;
-
     if (string.isNull())
         return;
 
     if (string.is8Bit() && string.containsOnlyASCII()) {
-        md5.addBytes(string.characters8(), string.length());
-        md5.addBytes(&zero, 1);
+        const uint8_t nullByte = 0;
+        sha1.addBytes(string.characters8(), string.length());
+        sha1.addBytes(&nullByte, 1);
         return;
     }
     auto cString = string.utf8();
-    md5.addBytes(reinterpret_cast<const uint8_t*>(cString.data()), cString.length());
-    md5.addBytes(&zero, 1);
+    // Include terminating null byte.
+    sha1.addBytes(reinterpret_cast<const uint8_t*>(cString.data()), cString.length() + 1);
 }
 
 Key::HashType Key::computeHash() const
 {
     // We don't really need a cryptographic hash. The key is always verified against the entry header.
-    // MD5 just happens to be suitably sized, fast and available.
-    MD5 md5;
-    hashString(md5, m_method);
-    hashString(md5, m_partition);
-    hashString(md5, m_identifier);
-    hashString(md5, m_range);
-    MD5::Digest hash;
-    md5.checksum(hash);
+    // SHA1 just happens to be suitably sized, fast and available.
+    SHA1 sha1;
+    hashString(sha1, m_method);
+    hashString(sha1, m_partition);
+    hashString(sha1, m_identifier);
+    hashString(sha1, m_range);
+    SHA1::Digest hash;
+    sha1.computeHash(hash);
     return hash;
 }
 

Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.h (185499 => 185500)


--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.h	2015-06-12 12:54:26 UTC (rev 185499)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.h	2015-06-12 12:58:36 UTC (rev 185500)
@@ -28,7 +28,7 @@
 
 #if ENABLE(NETWORK_CACHE)
 
-#include <wtf/MD5.h>
+#include <wtf/SHA1.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebKit {
@@ -39,7 +39,7 @@
 
 class Key {
 public:
-    typedef MD5::Digest HashType;
+    typedef SHA1::Digest HashType;
 
     Key() { }
     Key(const Key&);

Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp (185499 => 185500)


--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp	2015-06-12 12:54:26 UTC (rev 185499)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp	2015-06-12 12:58:36 UTC (rev 185500)
@@ -222,6 +222,8 @@
 
         m_blobStorage.synchronize();
 
+        deleteEmptyRecordsDirectories(recordsPath());
+
         LOG(NetworkCacheStorage, "(NetworkProcess) cache synchronization completed size=%zu count=%d", recordsSize, count);
     });
 }
@@ -859,8 +861,6 @@
             }
         });
 
-        deleteEmptyRecordsDirectories(recordsPath);
-
         RunLoop::main().dispatch([this] {
             m_shrinkInProgress = false;
             // We could synchronize during the shrink traversal. However this is fast and it is better to have just one code path.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to