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

Unified Diff: Source/modules/crypto/KeyOperation.h

Issue 19885002: WebCrypto: Add interfaces for importKey(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Use a wrapper for the result rather than raw pointer Created 7 years, 5 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
Index: Source/modules/crypto/KeyOperation.h
diff --git a/Source/modules/crypto/SubtleCrypto.h b/Source/modules/crypto/KeyOperation.h
similarity index 63%
copy from Source/modules/crypto/SubtleCrypto.h
copy to Source/modules/crypto/KeyOperation.h
index 3df45a197d05977e28b5400d8cbc27464cdfb46e..50c3ba635d2940e71c4c0111dde3f8053b1d62de 100644
--- a/Source/modules/crypto/SubtleCrypto.h
+++ b/Source/modules/crypto/KeyOperation.h
@@ -28,34 +28,54 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef SubtleCrypto_h
-#define SubtleCrypto_h
+#ifndef KeyOperation_h
+#define KeyOperation_h
-#include "bindings/v8/ScriptWrappable.h"
+#include "bindings/v8/ScriptObject.h"
#include "wtf/Forward.h"
#include "wtf/PassRefPtr.h"
-#include "wtf/RefCounted.h"
+#include "wtf/RefPtr.h"
+#include "wtf/ThreadSafeRefCounted.h"
-namespace WebCore {
+namespace WebKit {
+class WebCryptoKeyOperation;
+class WebCryptoKey;
+}
-class CryptoOperation;
-class Dictionary;
+namespace WebCore {
typedef int ExceptionCode;
+class ScriptPromiseResolver;
+
+// todo: m_exceptionCode
+// create the promise resolver.
-class SubtleCrypto : public ScriptWrappable, public RefCounted<SubtleCrypto> {
+class KeyOperation : public ThreadSafeRefCounted<KeyOperation> {
public:
- static PassRefPtr<SubtleCrypto> create() { return adoptRef(new SubtleCrypto()); }
+ KeyOperation();
+ ~KeyOperation();
- PassRefPtr<CryptoOperation> encrypt(const Dictionary&, ExceptionCode&);
- PassRefPtr<CryptoOperation> decrypt(const Dictionary&, ExceptionCode&);
- PassRefPtr<CryptoOperation> sign(const Dictionary&, ExceptionCode&);
- // Note that this is not named "verify" because when compiling on Mac that expands to a macro and breaks.
- PassRefPtr<CryptoOperation> verifySignature(const Dictionary&, ExceptionCode&);
- PassRefPtr<CryptoOperation> digest(const Dictionary&, ExceptionCode&);
+ // Implementation of WebKit::WebCryptoKeyOperationResult.
+ void initializationFailed();
+ void initializationSucceeded(WebKit::WebCryptoKeyOperation*);
+ void completeWithError();
+ void completeWithKey(const WebKit::WebCryptoKey&);
+
+ ScriptObject returnValue(ExceptionCode&);
private:
- SubtleCrypto();
+ enum State {
+ Initializing,
+ InProgress,
+ Done,
+ };
+
+ ScriptPromiseResolver* promiseResolver();
+
+ State m_state;
+ WebKit::WebCryptoKeyOperation* m_impl;
+ ExceptionCode m_exceptionCode;
+ RefPtr<ScriptPromiseResolver> m_promiseResolver;
};
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698