| Index: content/renderer/webcrypto_impl.cc
|
| diff --git a/content/renderer/webcrypto_impl.cc b/content/renderer/webcrypto_impl.cc
|
| index 1a628a3db353200a33aeee52fade91c0225011a7..69b68465edd0e37dfb97d822e64b013bc0d566b6 100644
|
| --- a/content/renderer/webcrypto_impl.cc
|
| +++ b/content/renderer/webcrypto_impl.cc
|
| @@ -4,7 +4,10 @@
|
|
|
| #include "content/renderer/webcrypto_impl.h"
|
|
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "third_party/WebKit/public/platform/WebArrayBuffer.h"
|
| +#include "third_party/WebKit/public/platform/WebCryptoAlgorithm.h"
|
| +#include "third_party/WebKit/public/platform/WebCryptoKey.h"
|
|
|
| namespace content {
|
|
|
| @@ -21,4 +24,47 @@ void WebCryptoImpl::digest(
|
| }
|
| }
|
|
|
| +void WebCryptoImpl::importKey(
|
| + WebKit::WebCryptoKeyFormat format,
|
| + const unsigned char* key_data,
|
| + unsigned key_data_size,
|
| + const WebKit::WebCryptoAlgorithm& algorithm,
|
| + bool extractable,
|
| + WebKit::WebCryptoKeyUsageMask usage_mask,
|
| + WebKit::WebCryptoResult result) {
|
| + WebKit::WebCryptoKeyType type;
|
| + scoped_ptr<WebKit::WebCryptoKeyHandle> handle;
|
| +
|
| + if (!ImportKeyInternal(format,
|
| + key_data,
|
| + key_data_size,
|
| + algorithm,
|
| + usage_mask,
|
| + &handle,
|
| + &type)) {
|
| + result.completeWithError();
|
| + return;
|
| + }
|
| +
|
| + WebKit::WebCryptoKey key(
|
| + WebKit::WebCryptoKey::create(
|
| + handle.release(), type, extractable, algorithm, usage_mask));
|
| +
|
| + result.completeWithKey(key);
|
| +}
|
| +
|
| +void WebCryptoImpl::sign(
|
| + const WebKit::WebCryptoAlgorithm& algorithm,
|
| + const WebKit::WebCryptoKey& key,
|
| + const unsigned char* data,
|
| + unsigned data_size,
|
| + WebKit::WebCryptoResult result) {
|
| + WebKit::WebArrayBuffer buffer;
|
| + if (!SignInternal(algorithm, key, data, data_size, &buffer)) {
|
| + result.completeWithError();
|
| + } else {
|
| + result.completeWithBuffer(buffer);
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|