Changeset 185500 in webkit


Ignore:
Timestamp:
Jun 12, 2015 5:58:36 AM (9 years ago)
Author:
Antti Koivisto
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:
Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r185498 r185500  
     12015-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
    1222015-06-12  Csaba Osztrogonác  <ossy@webkit.org>
    223
  • trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp

    r185458 r185500  
    167167}
    168168
    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 
    179169void Coder<SHA1::Digest>::encode(Encoder& encoder, const SHA1::Digest& digest)
    180170{
  • trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.h

    r185458 r185500  
    3636#include <wtf/HashMap.h>
    3737#include <wtf/HashSet.h>
    38 #include <wtf/MD5.h>
    3938#include <wtf/SHA1.h>
    4039#include <wtf/Vector.h>
     
    255254};
    256255
    257 template<> struct Coder<MD5::Digest> {
    258     static void encode(Encoder&, const MD5::Digest&);
    259     static bool decode(Decoder&, MD5::Digest&);
    260 };
    261 
    262256template<> struct Coder<SHA1::Digest> {
    263257    static void encode(Encoder&, const SHA1::Digest&);
  • trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.cpp

    r184690 r185500  
    6565}
    6666
    67 static void hashString(MD5& md5, const String& string)
     67static void hashString(SHA1& sha1, const String& string)
    6868{
    69     const uint8_t zero = 0;
    70 
    7169    if (string.isNull())
    7270        return;
    7371
    7472    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);
    7776        return;
    7877    }
    7978    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);
    8281}
    8382
     
    8584{
    8685    // We don't really need a cryptographic hash. The key is always verified against the entry header.
    87     // MD5 just 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);
    9594    return hash;
    9695}
  • trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheKey.h

    r184690 r185500  
    2929#if ENABLE(NETWORK_CACHE)
    3030
    31 #include <wtf/MD5.h>
     31#include <wtf/SHA1.h>
    3232#include <wtf/text/WTFString.h>
    3333
     
    4040class Key {
    4141public:
    42     typedef MD5::Digest HashType;
     42    typedef SHA1::Digest HashType;
    4343
    4444    Key() { }
  • trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp

    r185452 r185500  
    223223        m_blobStorage.synchronize();
    224224
     225        deleteEmptyRecordsDirectories(recordsPath());
     226
    225227        LOG(NetworkCacheStorage, "(NetworkProcess) cache synchronization completed size=%zu count=%d", recordsSize, count);
    226228    });
     
    860862        });
    861863
    862         deleteEmptyRecordsDirectories(recordsPath);
    863 
    864864        RunLoop::main().dispatch([this] {
    865865            m_shrinkInProgress = false;
Note: See TracChangeset for help on using the changeset viewer.