| Index: Source/modules/crypto/KeyOperation.h
|
| diff --git a/Source/modules/crypto/SubtleCrypto.h b/Source/modules/crypto/KeyOperation.h
|
| similarity index 61%
|
| copy from Source/modules/crypto/SubtleCrypto.h
|
| copy to Source/modules/crypto/KeyOperation.h
|
| index d3cf99000b662102e872e99d272109f189f1da90..f5e96ff6d40cf77b1aea61d7e5e51a5f42be9199 100644
|
| --- a/Source/modules/crypto/SubtleCrypto.h
|
| +++ b/Source/modules/crypto/KeyOperation.h
|
| @@ -28,33 +28,59 @@
|
| * 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 WebKit {
|
| +class WebCryptoKeyOperation;
|
| +class WebCryptoKey;
|
| +}
|
|
|
| namespace WebCore {
|
|
|
| -class CryptoOperation;
|
| -class Dictionary;
|
| class ExceptionState;
|
| +class ScriptPromiseResolver;
|
| +
|
| +typedef int ExceptionCode;
|
|
|
| -class SubtleCrypto : public ScriptWrappable, public RefCounted<SubtleCrypto> {
|
| +// todo: m_exceptionCode
|
| +// create the promise resolver.
|
| +
|
| +class KeyOperation : public ThreadSafeRefCounted<KeyOperation> {
|
| public:
|
| - static PassRefPtr<SubtleCrypto> create() { return adoptRef(new SubtleCrypto()); }
|
| + static PassRefPtr<KeyOperation> create();
|
| +
|
| + ~KeyOperation();
|
|
|
| - PassRefPtr<CryptoOperation> encrypt(const Dictionary&, ExceptionState&);
|
| - PassRefPtr<CryptoOperation> decrypt(const Dictionary&, ExceptionState&);
|
| - PassRefPtr<CryptoOperation> sign(const Dictionary&, ExceptionState&);
|
| - // Note that this is not named "verify" because when compiling on Mac that expands to a macro and breaks.
|
| - PassRefPtr<CryptoOperation> verifySignature(const Dictionary&, ExceptionState&);
|
| - PassRefPtr<CryptoOperation> digest(const Dictionary&, ExceptionState&);
|
| + // Implementation of WebKit::WebCryptoKeyOperationResult.
|
| + void initializationFailed();
|
| + void initializationSucceeded(WebKit::WebCryptoKeyOperation*);
|
| + void completeWithError();
|
| + void completeWithKey(const WebKit::WebCryptoKey&);
|
| +
|
| + ScriptObject returnValue(ExceptionState&);
|
|
|
| private:
|
| - SubtleCrypto();
|
| + enum State {
|
| + Initializing,
|
| + InProgress,
|
| + Done,
|
| + };
|
| +
|
| + KeyOperation();
|
| +
|
| + ScriptPromiseResolver* promiseResolver();
|
| +
|
| + State m_state;
|
| + WebKit::WebCryptoKeyOperation* m_impl;
|
| + ExceptionCode m_exceptionCode;
|
| + RefPtr<ScriptPromiseResolver> m_promiseResolver;
|
| };
|
|
|
| } // namespace WebCore
|
|
|