| 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 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 class WebArrayBuffer; | 40 class WebArrayBuffer; |
| 41 class WebCryptoKeyOperation; | 41 class WebCryptoKeyOperation; |
| 42 class WebCryptoKeyOperationResult; | 42 class WebCryptoKeyOperationResult; |
| 43 class WebCryptoOperation; | 43 class WebCryptoOperation; |
| 44 class WebCryptoOperationResult; | 44 class WebCryptoOperationResult; |
| 45 | 45 |
| 46 class WebCrypto { | 46 class WebCrypto { |
| 47 public: | 47 public: |
| 48 // FIXME: Deprecated, delete once chromium side is updated. | 48 // FIXME: Deprecated, delete once chromium side is updated. |
| 49 virtual WebCryptoOperation* digest(const WebCryptoAlgorithm&) { return 0; } | 49 virtual WebCryptoOperation* digest(const WebCryptoAlgorithm&) { WEBKIT_ASSER
T_NOT_REACHED(); return 0; } |
| 50 | 50 |
| 51 // The following methods begin an asynchronous multi-part cryptographic | 51 // The following methods begin an asynchronous multi-part cryptographic |
| 52 // operation. | 52 // operation. |
| 53 // | 53 // |
| 54 // Let the WebCryptoOperationResult& be called "result". | 54 // Let the WebCryptoOperationResult& be called "result". |
| 55 // | 55 // |
| 56 // Before returning, implementations can either: | 56 // Before returning, implementations can either: |
| 57 // | 57 // |
| 58 // * Synchronously fail initialization by calling: | 58 // * Synchronously fail initialization by calling: |
| 59 // result.initializationFailed(errorDetails) | 59 // result.initializationFailed(errorDetails) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 79 // The cryptoOperation pointer MUST remain valid while it is "in progress". | 79 // The cryptoOperation pointer MUST remain valid while it is "in progress". |
| 80 // The cryptoOperation is said to be "in progress" from the time after | 80 // The cryptoOperation is said to be "in progress" from the time after |
| 81 // result->initializationSucceded() has been called, up until either: | 81 // result->initializationSucceded() has been called, up until either: |
| 82 // | 82 // |
| 83 // - Blink calls cryptoOperation->abort() | 83 // - Blink calls cryptoOperation->abort() |
| 84 // OR | 84 // OR |
| 85 // - Embedder calls result.completeWithXXX() | 85 // - Embedder calls result.completeWithXXX() |
| 86 // | 86 // |
| 87 // Once the cryptoOperation is no longer "in progress" the embedder is | 87 // Once the cryptoOperation is no longer "in progress" the embedder is |
| 88 // responsible for freeing the cryptoOperation. | 88 // responsible for freeing the cryptoOperation. |
| 89 virtual void digest(const WebCryptoAlgorithm&, WebCryptoOperationResult&) {
} | 89 virtual void encrypt(const WebCryptoAlgorithm&, const WebCryptoKey&, WebCryp
toOperationResult&) { WEBKIT_ASSERT_NOT_REACHED(); } |
| 90 virtual void decrypt(const WebCryptoAlgorithm&, const WebCryptoKey&, WebCryp
toOperationResult&) { WEBKIT_ASSERT_NOT_REACHED(); } |
| 91 virtual void sign(const WebCryptoAlgorithm&, const WebCryptoKey&, WebCryptoO
perationResult&) { WEBKIT_ASSERT_NOT_REACHED(); } |
| 92 virtual void digest(const WebCryptoAlgorithm&, WebCryptoOperationResult&) {
WEBKIT_ASSERT_NOT_REACHED(); } |
| 90 | 93 |
| 91 // The following methods begin an asynchronous single-part key operation. | 94 // The following methods begin an asynchronous single-part key operation. |
| 92 // | 95 // |
| 93 // Let the WebCryptoKeyOperationResult& be called "result". | 96 // Let the WebCryptoKeyOperationResult& be called "result". |
| 94 // | 97 // |
| 95 // Before returning, implementations can either: | 98 // Before returning, implementations can either: |
| 96 // | 99 // |
| 97 // (a) Synchronously fail initialization by calling: | 100 // (a) Synchronously fail initialization by calling: |
| 98 // result.initializationFailed(errorDetails) | 101 // result.initializationFailed(errorDetails) |
| 99 // (this results in throwing a Javascript exception) | 102 // (this results in throwing a Javascript exception) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 111 // The keyOperation pointer MUST remain valid while it is "in progress". | 114 // The keyOperation pointer MUST remain valid while it is "in progress". |
| 112 // The keyOperation is said to be "in progress" from the time after | 115 // The keyOperation is said to be "in progress" from the time after |
| 113 // result->initializationSucceded() has been called, up until either: | 116 // result->initializationSucceded() has been called, up until either: |
| 114 // | 117 // |
| 115 // - Blink calls keyOperation->abort() | 118 // - Blink calls keyOperation->abort() |
| 116 // OR | 119 // OR |
| 117 // - Embedder calls result.completeWithXXX() | 120 // - Embedder calls result.completeWithXXX() |
| 118 // | 121 // |
| 119 // Once the keyOperation is no longer "in progress" the embedder is | 122 // Once the keyOperation is no longer "in progress" the embedder is |
| 120 // responsible for freeing the cryptoOperation. | 123 // responsible for freeing the cryptoOperation. |
| 121 virtual void importKey(WebCryptoKeyFormat, const unsigned char* keyData, siz
e_t keyDataSize, const WebCryptoAlgorithm&, bool extractable, WebCryptoKeyUsageM
ask, WebCryptoKeyOperationResult&) { } | 124 virtual void importKey(WebCryptoKeyFormat, const unsigned char* keyData, siz
e_t keyDataSize, const WebCryptoAlgorithm&, bool extractable, WebCryptoKeyUsageM
ask, WebCryptoKeyOperationResult&) { WEBKIT_ASSERT_NOT_REACHED(); } |
| 122 | 125 |
| 123 protected: | 126 protected: |
| 124 virtual ~WebCrypto() { } | 127 virtual ~WebCrypto() { } |
| 125 }; | 128 }; |
| 126 | 129 |
| 127 class WebCryptoOperation { | 130 class WebCryptoOperation { |
| 128 public: | 131 public: |
| 129 // Feeds data (bytes, size) to the operation. | 132 // Feeds data (bytes, size) to the operation. |
| 130 // - |bytes| may be 0 if |size| is 0 | 133 // - |bytes| may be 0 if |size| is 0 |
| 131 // - |bytes| is valid only until process() returns | 134 // - |bytes| is valid only until process() returns |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 WEBKIT_EXPORT void reset(); | 248 WEBKIT_EXPORT void reset(); |
| 246 WEBKIT_EXPORT void assign(const WebCryptoKeyOperationResult&); | 249 WEBKIT_EXPORT void assign(const WebCryptoKeyOperationResult&); |
| 247 WEBKIT_EXPORT void assign(WebCryptoKeyOperationResultPrivate*); | 250 WEBKIT_EXPORT void assign(WebCryptoKeyOperationResultPrivate*); |
| 248 | 251 |
| 249 WebPrivatePtr<WebCryptoKeyOperationResultPrivate> m_impl; | 252 WebPrivatePtr<WebCryptoKeyOperationResultPrivate> m_impl; |
| 250 }; | 253 }; |
| 251 | 254 |
| 252 } // namespace WebKit | 255 } // namespace WebKit |
| 253 | 256 |
| 254 #endif | 257 #endif |
| OLD | NEW |