Index: content/renderer/webcrypto/webcrypto_impl.cc |
diff --git a/content/renderer/webcrypto/webcrypto_impl.cc b/content/renderer/webcrypto/webcrypto_impl.cc |
deleted file mode 100644 |
index c36f997ff4230d3a3d5c66dcb9dadd1fb881f22b..0000000000000000000000000000000000000000 |
--- a/content/renderer/webcrypto/webcrypto_impl.cc |
+++ /dev/null |
@@ -1,210 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/renderer/webcrypto/webcrypto_impl.h" |
- |
-#include "base/logging.h" |
-#include "content/renderer/webcrypto/crypto_data.h" |
-#include "content/renderer/webcrypto/shared_crypto.h" |
-#include "content/renderer/webcrypto/webcrypto_util.h" |
-#include "third_party/WebKit/public/platform/WebString.h" |
-#include "third_party/WebKit/public/platform/WebCryptoKeyAlgorithm.h" |
- |
-namespace content { |
- |
-using webcrypto::Status; |
- |
-namespace { |
- |
-void CompleteWithError(const Status& status, blink::WebCryptoResult* result) { |
- DCHECK(status.IsError()); |
- if (status.HasErrorDetails()) |
- result->completeWithError(blink::WebString::fromUTF8(status.ToString())); |
- else |
- result->completeWithError(); |
-} |
- |
-bool IsAlgorithmAsymmetric(const blink::WebCryptoAlgorithm& algorithm) { |
- // TODO(padolph): include all other asymmetric algorithms once they are |
- // defined, e.g. EC and DH. |
- return (algorithm.id() == blink::WebCryptoAlgorithmIdRsaEsPkcs1v1_5 || |
- algorithm.id() == blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5 || |
- algorithm.id() == blink::WebCryptoAlgorithmIdRsaOaep); |
-} |
- |
-} // namespace |
- |
-WebCryptoImpl::WebCryptoImpl() { webcrypto::Init(); } |
- |
-WebCryptoImpl::~WebCryptoImpl() {} |
- |
-void WebCryptoImpl::encrypt(const blink::WebCryptoAlgorithm& algorithm, |
- const blink::WebCryptoKey& key, |
- const unsigned char* data, |
- unsigned int data_size, |
- blink::WebCryptoResult result) { |
- DCHECK(!algorithm.isNull()); |
- blink::WebArrayBuffer buffer; |
- Status status = webcrypto::Encrypt( |
- algorithm, key, webcrypto::CryptoData(data, data_size), &buffer); |
- if (status.IsError()) |
- CompleteWithError(status, &result); |
- else |
- result.completeWithBuffer(buffer); |
-} |
- |
-void WebCryptoImpl::decrypt(const blink::WebCryptoAlgorithm& algorithm, |
- const blink::WebCryptoKey& key, |
- const unsigned char* data, |
- unsigned int data_size, |
- blink::WebCryptoResult result) { |
- DCHECK(!algorithm.isNull()); |
- blink::WebArrayBuffer buffer; |
- Status status = webcrypto::Decrypt( |
- algorithm, key, webcrypto::CryptoData(data, data_size), &buffer); |
- if (status.IsError()) |
- CompleteWithError(status, &result); |
- else |
- result.completeWithBuffer(buffer); |
-} |
- |
-void WebCryptoImpl::digest(const blink::WebCryptoAlgorithm& algorithm, |
- const unsigned char* data, |
- unsigned int data_size, |
- blink::WebCryptoResult result) { |
- DCHECK(!algorithm.isNull()); |
- blink::WebArrayBuffer buffer; |
- Status status = webcrypto::Digest( |
- algorithm, webcrypto::CryptoData(data, data_size), &buffer); |
- if (status.IsError()) |
- CompleteWithError(status, &result); |
- else |
- result.completeWithBuffer(buffer); |
-} |
- |
-void WebCryptoImpl::generateKey(const blink::WebCryptoAlgorithm& algorithm, |
- bool extractable, |
- blink::WebCryptoKeyUsageMask usage_mask, |
- blink::WebCryptoResult result) { |
- DCHECK(!algorithm.isNull()); |
- if (IsAlgorithmAsymmetric(algorithm)) { |
- blink::WebCryptoKey public_key = blink::WebCryptoKey::createNull(); |
- blink::WebCryptoKey private_key = blink::WebCryptoKey::createNull(); |
- Status status = webcrypto::GenerateKeyPair( |
- algorithm, extractable, usage_mask, &public_key, &private_key); |
- if (status.IsError()) { |
- CompleteWithError(status, &result); |
- } else { |
- DCHECK(public_key.handle()); |
- DCHECK(private_key.handle()); |
- DCHECK_EQ(algorithm.id(), public_key.algorithm().id()); |
- DCHECK_EQ(algorithm.id(), private_key.algorithm().id()); |
- DCHECK_EQ(true, public_key.extractable()); |
- DCHECK_EQ(extractable, private_key.extractable()); |
- DCHECK_EQ(usage_mask, public_key.usages()); |
- DCHECK_EQ(usage_mask, private_key.usages()); |
- result.completeWithKeyPair(public_key, private_key); |
- } |
- } else { |
- blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); |
- Status status = |
- webcrypto::GenerateSecretKey(algorithm, extractable, usage_mask, &key); |
- if (status.IsError()) { |
- CompleteWithError(status, &result); |
- } else { |
- DCHECK(key.handle()); |
- DCHECK_EQ(algorithm.id(), key.algorithm().id()); |
- DCHECK_EQ(extractable, key.extractable()); |
- DCHECK_EQ(usage_mask, key.usages()); |
- result.completeWithKey(key); |
- } |
- } |
-} |
- |
-void WebCryptoImpl::importKey( |
- blink::WebCryptoKeyFormat format, |
- const unsigned char* key_data, |
- unsigned int key_data_size, |
- const blink::WebCryptoAlgorithm& algorithm_or_null, |
- bool extractable, |
- blink::WebCryptoKeyUsageMask usage_mask, |
- blink::WebCryptoResult result) { |
- blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); |
- Status status = |
- webcrypto::ImportKey(format, |
- webcrypto::CryptoData(key_data, key_data_size), |
- algorithm_or_null, |
- extractable, |
- usage_mask, |
- &key); |
- if (status.IsError()) { |
- CompleteWithError(status, &result); |
- } else { |
- DCHECK(key.handle()); |
- DCHECK(!key.algorithm().isNull()); |
- DCHECK_EQ(extractable, key.extractable()); |
- result.completeWithKey(key); |
- } |
-} |
- |
-void WebCryptoImpl::exportKey(blink::WebCryptoKeyFormat format, |
- const blink::WebCryptoKey& key, |
- blink::WebCryptoResult result) { |
- blink::WebArrayBuffer buffer; |
- Status status = webcrypto::ExportKey(format, key, &buffer); |
- if (status.IsError()) |
- CompleteWithError(status, &result); |
- else |
- result.completeWithBuffer(buffer); |
-} |
- |
-void WebCryptoImpl::sign(const blink::WebCryptoAlgorithm& algorithm, |
- const blink::WebCryptoKey& key, |
- const unsigned char* data, |
- unsigned int data_size, |
- blink::WebCryptoResult result) { |
- DCHECK(!algorithm.isNull()); |
- blink::WebArrayBuffer buffer; |
- Status status = webcrypto::Sign( |
- algorithm, key, webcrypto::CryptoData(data, data_size), &buffer); |
- if (status.IsError()) |
- CompleteWithError(status, &result); |
- else |
- result.completeWithBuffer(buffer); |
-} |
- |
-void WebCryptoImpl::verifySignature(const blink::WebCryptoAlgorithm& algorithm, |
- const blink::WebCryptoKey& key, |
- const unsigned char* signature, |
- unsigned int signature_size, |
- const unsigned char* data, |
- unsigned int data_size, |
- blink::WebCryptoResult result) { |
- DCHECK(!algorithm.isNull()); |
- bool signature_match = false; |
- Status status = webcrypto::VerifySignature( |
- algorithm, |
- key, |
- webcrypto::CryptoData(signature, signature_size), |
- webcrypto::CryptoData(data, data_size), |
- &signature_match); |
- if (status.IsError()) |
- CompleteWithError(status, &result); |
- else |
- result.completeWithBoolean(signature_match); |
-} |
- |
-bool WebCryptoImpl::digestSynchronous( |
- const blink::WebCryptoAlgorithmId algorithm_id, |
- const unsigned char* data, |
- unsigned int data_size, |
- blink::WebArrayBuffer& result) { |
- blink::WebCryptoAlgorithm algorithm = |
- blink::WebCryptoAlgorithm::adoptParamsAndCreate(algorithm_id, NULL); |
- return (webcrypto::Digest( |
- algorithm, webcrypto::CryptoData(data, data_size), &result)) |
- .IsSuccess(); |
-} |
- |
-} // namespace content |