| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions are | 5  * modification, are permitted provided that the following conditions are | 
| 6  * met: | 6  * met: | 
| 7  * | 7  * | 
| 8  *     * Redistributions of source code must retain the above copyright | 8  *     * Redistributions of source code must retain the above copyright | 
| 9  * notice, this list of conditions and the following disclaimer. | 9  * notice, this list of conditions and the following disclaimer. | 
| 10  *     * Redistributions in binary form must reproduce the above | 10  *     * Redistributions in binary form must reproduce the above | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
| 22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
| 23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
| 24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
| 25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
| 26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
| 27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
| 28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 29  */ | 29  */ | 
| 30 | 30 | 
| 31 #ifndef SubtleCrypto_h | 31 #ifndef KeyOperation_h | 
| 32 #define SubtleCrypto_h | 32 #define KeyOperation_h | 
| 33 | 33 | 
| 34 #include "bindings/v8/ScriptWrappable.h" | 34 #include "bindings/v8/ScriptObject.h" | 
| 35 #include "wtf/Forward.h" | 35 #include "wtf/Forward.h" | 
| 36 #include "wtf/PassRefPtr.h" | 36 #include "wtf/PassRefPtr.h" | 
| 37 #include "wtf/RefCounted.h" | 37 #include "wtf/RefPtr.h" | 
|  | 38 #include "wtf/ThreadSafeRefCounted.h" | 
|  | 39 | 
|  | 40 namespace WebKit { | 
|  | 41 class WebCryptoKeyOperation; | 
|  | 42 class WebCryptoKey; | 
|  | 43 } | 
| 38 | 44 | 
| 39 namespace WebCore { | 45 namespace WebCore { | 
| 40 | 46 | 
| 41 class CryptoOperation; |  | 
| 42 class Dictionary; |  | 
| 43 class ExceptionState; | 47 class ExceptionState; | 
|  | 48 class ScriptPromiseResolver; | 
| 44 | 49 | 
| 45 class SubtleCrypto : public ScriptWrappable, public RefCounted<SubtleCrypto> { | 50 typedef int ExceptionCode; | 
|  | 51 | 
|  | 52 // todo: m_exceptionCode | 
|  | 53 //       create the promise resolver. | 
|  | 54 | 
|  | 55 class KeyOperation : public ThreadSafeRefCounted<KeyOperation> { | 
| 46 public: | 56 public: | 
| 47     static PassRefPtr<SubtleCrypto> create() { return adoptRef(new SubtleCrypto(
    )); } | 57     static PassRefPtr<KeyOperation> create(); | 
| 48 | 58 | 
| 49     PassRefPtr<CryptoOperation> encrypt(const Dictionary&, ExceptionState&); | 59     ~KeyOperation(); | 
| 50     PassRefPtr<CryptoOperation> decrypt(const Dictionary&, ExceptionState&); | 60 | 
| 51     PassRefPtr<CryptoOperation> sign(const Dictionary&, ExceptionState&); | 61     // Implementation of WebKit::WebCryptoKeyOperationResult. | 
| 52     // Note that this is not named "verify" because when compiling on Mac that e
    xpands to a macro and breaks. | 62     void initializationFailed(); | 
| 53     PassRefPtr<CryptoOperation> verifySignature(const Dictionary&, ExceptionStat
    e&); | 63     void initializationSucceeded(WebKit::WebCryptoKeyOperation*); | 
| 54     PassRefPtr<CryptoOperation> digest(const Dictionary&, ExceptionState&); | 64     void completeWithError(); | 
|  | 65     void completeWithKey(const WebKit::WebCryptoKey&); | 
|  | 66 | 
|  | 67     ScriptObject returnValue(ExceptionState&); | 
| 55 | 68 | 
| 56 private: | 69 private: | 
| 57     SubtleCrypto(); | 70     enum State { | 
|  | 71         Initializing, | 
|  | 72         InProgress, | 
|  | 73         Done, | 
|  | 74     }; | 
|  | 75 | 
|  | 76     KeyOperation(); | 
|  | 77 | 
|  | 78     ScriptPromiseResolver* promiseResolver(); | 
|  | 79 | 
|  | 80     State m_state; | 
|  | 81     WebKit::WebCryptoKeyOperation* m_impl; | 
|  | 82     ExceptionCode m_exceptionCode; | 
|  | 83     RefPtr<ScriptPromiseResolver> m_promiseResolver; | 
| 58 }; | 84 }; | 
| 59 | 85 | 
| 60 } // namespace WebCore | 86 } // namespace WebCore | 
| 61 | 87 | 
| 62 #endif | 88 #endif | 
| OLD | NEW | 
|---|