Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1220)

Unified Diff: Source/platform/Crypto.h

Issue 189373010: Get rid of WTF::SHA1. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase on ToT and fixed header guard collision. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/modules/websockets/WebSocketHandshake.cpp ('k') | Source/platform/Crypto.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/Crypto.h
diff --git a/Source/platform/Crypto.h b/Source/platform/Crypto.h
new file mode 100644
index 0000000000000000000000000000000000000000..d5556befa24f7c2e8b6b51bf2b80f62a4b29d253
--- /dev/null
+++ b/Source/platform/Crypto.h
@@ -0,0 +1,67 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// TODO(jww) The original Blink-style header guard for this file conflicts with
+// the header guard in Source/modules/crypto/Crypto.h, so this is a
+// Chromium-style header guard instead. There is now a bug
+// (https://crbug.com/360121) to track a proposal to change all header guards
+// to a similar style. Thus, whenever that is resolved, this header guard
+// should be changed to whatever style is agreed upon.
+#ifndef SOURCE_PLATFORM_CRYPTO_H_
+#define SOURCE_PLATFORM_CRYPTO_H_
+
+#include "platform/PlatformExport.h"
+#include "public/platform/WebCrypto.h"
+#include "wtf/HashSet.h"
+#include "wtf/StringHasher.h"
+#include "wtf/Vector.h"
+#include "wtf/text/CString.h"
+
+namespace WebCore {
+
+static const size_t kMaxDigestSize = 64;
+typedef Vector<uint8_t, kMaxDigestSize> DigestValue;
+
+const size_t sha1HashSize = 20;
+enum HashAlgorithm {
+ HashAlgorithmSha1,
+ HashAlgorithmSha256,
+ HashAlgorithmSha384,
+ HashAlgorithmSha512
+};
+
+PLATFORM_EXPORT void computeDigest(HashAlgorithm, const char* digestable, size_t length, DigestValue& digestResult);
+PLATFORM_EXPORT PassOwnPtr<blink::WebCryptoDigestor> createDigestor(HashAlgorithm);
+PLATFORM_EXPORT void finishDigestor(blink::WebCryptoDigestor*, DigestValue& digestResult);
+
+} // namespace WebCore
+
+namespace WTF {
+
+struct DigestValueHash {
+ static unsigned hash(const WebCore::DigestValue& v)
+ {
+ return StringHasher::computeHash(v.data(), v.size());
+ }
+ static bool equal(const WebCore::DigestValue& a, const WebCore::DigestValue& b)
+ {
+ return a == b;
+ };
+ static const bool safeToCompareToEmptyOrDeleted = true;
+};
+template <>
+struct DefaultHash<WebCore::DigestValue> {
+ typedef DigestValueHash Hash;
+};
+
+template <>
+struct DefaultHash<WebCore::HashAlgorithm> {
+ typedef IntHash<WebCore::HashAlgorithm> Hash;
+};
+template <>
+struct HashTraits<WebCore::HashAlgorithm> : UnsignedWithZeroKeyHashTraits<WebCore::HashAlgorithm> {
+};
+
+} // namespace WTF
+#endif // SOURCE_PLATFORM_CRYPTO_H_
« no previous file with comments | « Source/modules/websockets/WebSocketHandshake.cpp ('k') | Source/platform/Crypto.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698