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

Unified Diff: public/platform/WebCryptoAlgorithm.h

Issue 18475002: WebCrypto: Add framework for AlgorithmIdentifier normalization. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rename verify --> verifySignature (because "verify" is a macro on Mac) Created 7 years, 6 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/modules.gypi ('k') | public/platform/WebCryptoAlgorithmParams.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: public/platform/WebCryptoAlgorithm.h
diff --git a/public/platform/WebRTCConfiguration.h b/public/platform/WebCryptoAlgorithm.h
similarity index 50%
copy from public/platform/WebRTCConfiguration.h
copy to public/platform/WebCryptoAlgorithm.h
index e641ba7aa17ad43bc9ffe231bd09ec3094bf9a56..7703614a1a945719a40981b3a147bb4aec2a9892 100644
--- a/public/platform/WebRTCConfiguration.h
+++ b/public/platform/WebCryptoAlgorithm.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -28,80 +28,79 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebRTCConfiguration_h
-#define WebRTCConfiguration_h
+#ifndef WebCryptoAlgorithm_h
+#define WebCryptoAlgorithm_h
#include "WebCommon.h"
-#include "WebNonCopyable.h"
#include "WebPrivatePtr.h"
-#include "WebVector.h"
-namespace WebCore {
-class RTCIceServer;
-class RTCConfiguration;
-}
+#if WEBKIT_IMPLEMENTATION
+#include "wtf/PassOwnPtr.h"
+#endif
namespace WebKit {
-class WebString;
-class WebURL;
-
-class WebRTCICEServer {
-public:
- WebRTCICEServer() { }
- WebRTCICEServer(const WebRTCICEServer& other) { assign(other); }
- ~WebRTCICEServer() { reset(); }
- WebRTCICEServer& operator=(const WebRTCICEServer& other)
- {
- assign(other);
- return *this;
- }
+enum WebCryptoAlgorithmId {
+ WebCryptoAlgorithmIdAesCbc,
+ WebCryptoAlgorithmIdSha1,
+ WebCryptoAlgorithmIdSha224,
+ WebCryptoAlgorithmIdSha256,
+ WebCryptoAlgorithmIdSha384,
+ WebCryptoAlgorithmIdSha512,
+#if WEBKIT_IMPLEMENTATION
+ NumberOfWebCryptoAlgorithmId,
+#endif
+};
- WEBKIT_EXPORT void assign(const WebRTCICEServer&);
+enum WebCryptoAlgorithmParamsType {
+ WebCryptoAlgorithmParamsTypeNone,
+ WebCryptoAlgorithmParamsTypeAesCbcParams,
+ WebCryptoAlgorithmParamsTypeAesKeyGenParams,
+};
- WEBKIT_EXPORT void reset();
- bool isNull() const { return m_private.isNull(); }
+class WebCryptoAesCbcParams;
+class WebCryptoAesKeyGenParams;
- WEBKIT_EXPORT WebURL uri() const;
- WEBKIT_EXPORT WebString username() const;
- WEBKIT_EXPORT WebString credential() const;
+class WebCryptoAlgorithmParams;
+class WebCryptoAlgorithmPrivate;
+// The WebCryptoAlgorithm represents a normalized algorithm and its parameters.
+// * Immutable
+// * Threadsafe
+// * Copiable (cheaply)
+class WebCryptoAlgorithm {
+public:
#if WEBKIT_IMPLEMENTATION
- WebRTCICEServer(const WTF::PassRefPtr<WebCore::RTCIceServer>&);
+ WebCryptoAlgorithm() { }
+ WebCryptoAlgorithm(WebCryptoAlgorithmId, const char*, PassOwnPtr<WebCryptoAlgorithmParams>);
#endif
-private:
- WebPrivatePtr<WebCore::RTCIceServer> m_private;
-};
-
-class WebRTCConfiguration {
-public:
- WebRTCConfiguration() { }
- WebRTCConfiguration(const WebRTCConfiguration& other) { assign(other); }
- ~WebRTCConfiguration() { reset(); }
+ ~WebCryptoAlgorithm() { reset(); }
- WebRTCConfiguration& operator=(const WebRTCConfiguration& other)
+ WebCryptoAlgorithm(const WebCryptoAlgorithm& other) { assign(other); }
+ WebCryptoAlgorithm& operator=(const WebCryptoAlgorithm& other)
{
assign(other);
return *this;
}
- WEBKIT_EXPORT void assign(const WebRTCConfiguration&);
-
- WEBKIT_EXPORT void reset();
- bool isNull() const { return m_private.isNull(); }
+ WEBKIT_EXPORT WebCryptoAlgorithmId algorithmId() const;
+ WEBKIT_EXPORT const char* algorithmName() const;
- WEBKIT_EXPORT size_t numberOfServers() const;
- WEBKIT_EXPORT WebRTCICEServer server(size_t index) const;
+ WEBKIT_EXPORT WebCryptoAlgorithmParamsType paramsType() const;
-#if WEBKIT_IMPLEMENTATION
- WebRTCConfiguration(const WTF::PassRefPtr<WebCore::RTCConfiguration>&);
-#endif
+ // Retrieves the type-specific parameters. The algorithm contains at most 1
+ // type of parameters. Retrieving an invalid parameter will return 0.
+ WebCryptoAesCbcParams* aesCbcParams() const;
+ WebCryptoAesKeyGenParams* aesKeyGenParams() const;
private:
- WebPrivatePtr<WebCore::RTCConfiguration> m_private;
+ WEBKIT_EXPORT void assign(const WebCryptoAlgorithm& other);
+ WEBKIT_EXPORT void reset();
+
+ WebPrivatePtr<WebCryptoAlgorithmPrivate> m_private;
};
} // namespace WebKit
-#endif // WebRTCConfiguration_h
+#endif
« no previous file with comments | « Source/modules/modules.gypi ('k') | public/platform/WebCryptoAlgorithmParams.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698