Index: content/renderer/webcrypto/webcrypto_impl_openssl.cc |
diff --git a/content/renderer/webcrypto/webcrypto_impl_openssl.cc b/content/renderer/webcrypto/webcrypto_impl_openssl.cc |
index 23f89c2e04b2d9cebe53dc5c3aa46eee866cec1d..f3dc397167a908698f33dd82fedc907170927f70 100644 |
--- a/content/renderer/webcrypto/webcrypto_impl_openssl.cc |
+++ b/content/renderer/webcrypto/webcrypto_impl_openssl.cc |
@@ -23,7 +23,7 @@ namespace content { |
namespace { |
-class SymKeyHandle : public WebKit::WebCryptoKeyHandle { |
+class SymKeyHandle : public blink::WebCryptoKeyHandle { |
public: |
SymKeyHandle(const unsigned char* key_data, unsigned key_data_size) |
: key_(key_data, key_data + key_data_size) {} |
@@ -51,18 +51,18 @@ const EVP_CIPHER* GetAESCipherByKeyLength(unsigned key_length_bytes) { |
} |
unsigned WebCryptoHmacParamsToBlockSize( |
- const WebKit::WebCryptoHmacKeyParams* params) { |
+ const blink::WebCryptoHmacKeyParams* params) { |
DCHECK(params); |
switch (params->hash().id()) { |
- case WebKit::WebCryptoAlgorithmIdSha1: |
+ case blink::WebCryptoAlgorithmIdSha1: |
return SHA_DIGEST_LENGTH / 8; |
- case WebKit::WebCryptoAlgorithmIdSha224: |
+ case blink::WebCryptoAlgorithmIdSha224: |
return SHA224_DIGEST_LENGTH / 8; |
- case WebKit::WebCryptoAlgorithmIdSha256: |
+ case blink::WebCryptoAlgorithmIdSha256: |
return SHA256_DIGEST_LENGTH / 8; |
- case WebKit::WebCryptoAlgorithmIdSha384: |
+ case blink::WebCryptoAlgorithmIdSha384: |
return SHA384_DIGEST_LENGTH / 8; |
- case WebKit::WebCryptoAlgorithmIdSha512: |
+ case blink::WebCryptoAlgorithmIdSha512: |
return SHA512_DIGEST_LENGTH / 8; |
default: |
return 0; |
@@ -76,18 +76,18 @@ enum CipherOperation { |
}; |
bool AesCbcEncryptDecrypt(CipherOperation cipher_operation, |
- const WebKit::WebCryptoAlgorithm& algorithm, |
- const WebKit::WebCryptoKey& key, |
+ const blink::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoKey& key, |
const unsigned char* data, |
unsigned data_size, |
- WebKit::WebArrayBuffer* buffer) { |
+ blink::WebArrayBuffer* buffer) { |
// TODO(padolph): Handle other encrypt operations and then remove this gate |
- if (algorithm.id() != WebKit::WebCryptoAlgorithmIdAesCbc) |
+ if (algorithm.id() != blink::WebCryptoAlgorithmIdAesCbc) |
return false; |
DCHECK_EQ(algorithm.id(), key.algorithm().id()); |
- DCHECK_EQ(WebKit::WebCryptoKeyTypeSecret, key.type()); |
+ DCHECK_EQ(blink::WebCryptoKeyTypeSecret, key.type()); |
if (data_size >= INT_MAX - AES_BLOCK_SIZE) { |
// TODO(padolph): Handle this by chunking the input fed into OpenSSL. Right |
@@ -110,7 +110,7 @@ bool AesCbcEncryptDecrypt(CipherOperation cipher_operation, |
GetAESCipherByKeyLength(sym_key->key().size()); |
DCHECK(cipher); |
- const WebKit::WebCryptoAesCbcParams* const params = algorithm.aesCbcParams(); |
+ const blink::WebCryptoAesCbcParams* const params = algorithm.aesCbcParams(); |
if (params->iv().size() != AES_BLOCK_SIZE) |
return false; |
@@ -132,7 +132,7 @@ bool AesCbcEncryptDecrypt(CipherOperation cipher_operation, |
output_max_len += AES_BLOCK_SIZE - remainder; |
DCHECK_GT(output_max_len, data_size); |
- *buffer = WebKit::WebArrayBuffer::create(output_max_len, 1); |
+ *buffer = blink::WebArrayBuffer::create(output_max_len, 1); |
unsigned char* const buffer_data = |
reinterpret_cast<unsigned char*>(buffer->data()); |
@@ -160,12 +160,12 @@ bool AesCbcEncryptDecrypt(CipherOperation cipher_operation, |
void WebCryptoImpl::Init() { crypto::EnsureOpenSSLInit(); } |
-bool WebCryptoImpl::EncryptInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
- const WebKit::WebCryptoKey& key, |
+bool WebCryptoImpl::EncryptInternal(const blink::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoKey& key, |
const unsigned char* data, |
unsigned data_size, |
- WebKit::WebArrayBuffer* buffer) { |
- if (algorithm.id() == WebKit::WebCryptoAlgorithmIdAesCbc) { |
+ blink::WebArrayBuffer* buffer) { |
+ if (algorithm.id() == blink::WebCryptoAlgorithmIdAesCbc) { |
return AesCbcEncryptDecrypt( |
kDoEncrypt, algorithm, key, data, data_size, buffer); |
} |
@@ -173,12 +173,12 @@ bool WebCryptoImpl::EncryptInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
return false; |
} |
-bool WebCryptoImpl::DecryptInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
- const WebKit::WebCryptoKey& key, |
+bool WebCryptoImpl::DecryptInternal(const blink::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoKey& key, |
const unsigned char* data, |
unsigned data_size, |
- WebKit::WebArrayBuffer* buffer) { |
- if (algorithm.id() == WebKit::WebCryptoAlgorithmIdAesCbc) { |
+ blink::WebArrayBuffer* buffer) { |
+ if (algorithm.id() == blink::WebCryptoAlgorithmIdAesCbc) { |
return AesCbcEncryptDecrypt( |
kDoDecrypt, algorithm, key, data, data_size, buffer); |
} |
@@ -186,28 +186,28 @@ bool WebCryptoImpl::DecryptInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
return false; |
} |
-bool WebCryptoImpl::DigestInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
+bool WebCryptoImpl::DigestInternal(const blink::WebCryptoAlgorithm& algorithm, |
const unsigned char* data, |
unsigned data_size, |
- WebKit::WebArrayBuffer* buffer) { |
+ blink::WebArrayBuffer* buffer) { |
crypto::OpenSSLErrStackTracer(FROM_HERE); |
const EVP_MD* digest_algorithm; |
switch (algorithm.id()) { |
- case WebKit::WebCryptoAlgorithmIdSha1: |
+ case blink::WebCryptoAlgorithmIdSha1: |
digest_algorithm = EVP_sha1(); |
break; |
- case WebKit::WebCryptoAlgorithmIdSha224: |
+ case blink::WebCryptoAlgorithmIdSha224: |
digest_algorithm = EVP_sha224(); |
break; |
- case WebKit::WebCryptoAlgorithmIdSha256: |
+ case blink::WebCryptoAlgorithmIdSha256: |
digest_algorithm = EVP_sha256(); |
break; |
- case WebKit::WebCryptoAlgorithmIdSha384: |
+ case blink::WebCryptoAlgorithmIdSha384: |
digest_algorithm = EVP_sha384(); |
break; |
- case WebKit::WebCryptoAlgorithmIdSha512: |
+ case blink::WebCryptoAlgorithmIdSha512: |
digest_algorithm = EVP_sha512(); |
break; |
default: |
@@ -232,7 +232,7 @@ bool WebCryptoImpl::DigestInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
} |
DCHECK_LE(hash_expected_size, EVP_MAX_MD_SIZE); |
- *buffer = WebKit::WebArrayBuffer::create(hash_expected_size, 1); |
+ *buffer = blink::WebArrayBuffer::create(hash_expected_size, 1); |
unsigned char* const hash_buffer = |
reinterpret_cast<unsigned char* const>(buffer->data()); |
@@ -247,16 +247,16 @@ bool WebCryptoImpl::DigestInternal(const WebKit::WebCryptoAlgorithm& algorithm, |
} |
bool WebCryptoImpl::GenerateKeyInternal( |
- const WebKit::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoAlgorithm& algorithm, |
bool extractable, |
- WebKit::WebCryptoKeyUsageMask usage_mask, |
- WebKit::WebCryptoKey* key) { |
+ blink::WebCryptoKeyUsageMask usage_mask, |
+ blink::WebCryptoKey* key) { |
unsigned keylen_bytes = 0; |
- WebKit::WebCryptoKeyType key_type; |
+ blink::WebCryptoKeyType key_type; |
switch (algorithm.id()) { |
- case WebKit::WebCryptoAlgorithmIdAesCbc: { |
- const WebKit::WebCryptoAesKeyGenParams* params = |
+ case blink::WebCryptoAlgorithmIdAesCbc: { |
+ const blink::WebCryptoAesKeyGenParams* params = |
algorithm.aesKeyGenParams(); |
DCHECK(params); |
if (params->length() % 8) |
@@ -265,16 +265,16 @@ bool WebCryptoImpl::GenerateKeyInternal( |
if (!GetAESCipherByKeyLength(keylen_bytes)) { |
return false; |
} |
- key_type = WebKit::WebCryptoKeyTypeSecret; |
+ key_type = blink::WebCryptoKeyTypeSecret; |
break; |
} |
- case WebKit::WebCryptoAlgorithmIdHmac: { |
- const WebKit::WebCryptoHmacKeyParams* params = algorithm.hmacKeyParams(); |
+ case blink::WebCryptoAlgorithmIdHmac: { |
+ const blink::WebCryptoHmacKeyParams* params = algorithm.hmacKeyParams(); |
DCHECK(params); |
if (!params->getLength(keylen_bytes)) { |
keylen_bytes = WebCryptoHmacParamsToBlockSize(params); |
} |
- key_type = WebKit::WebCryptoKeyTypeSecret; |
+ key_type = blink::WebCryptoKeyTypeSecret; |
break; |
} |
@@ -292,7 +292,7 @@ bool WebCryptoImpl::GenerateKeyInternal( |
return false; |
} |
- *key = WebKit::WebCryptoKey::create( |
+ *key = blink::WebCryptoKey::create( |
new SymKeyHandle(&random_bytes[0], random_bytes.size()), |
key_type, extractable, algorithm, usage_mask); |
@@ -300,33 +300,33 @@ bool WebCryptoImpl::GenerateKeyInternal( |
} |
bool WebCryptoImpl::GenerateKeyPairInternal( |
- const WebKit::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoAlgorithm& algorithm, |
bool extractable, |
- WebKit::WebCryptoKeyUsageMask usage_mask, |
- WebKit::WebCryptoKey* public_key, |
- WebKit::WebCryptoKey* private_key) { |
+ blink::WebCryptoKeyUsageMask usage_mask, |
+ blink::WebCryptoKey* public_key, |
+ blink::WebCryptoKey* private_key) { |
// TODO(padolph): Placeholder for OpenSSL implementation. |
// Issue http://crbug.com/267888. |
return false; |
} |
bool WebCryptoImpl::ImportKeyInternal( |
- WebKit::WebCryptoKeyFormat format, |
+ blink::WebCryptoKeyFormat format, |
const unsigned char* key_data, |
unsigned key_data_size, |
- const WebKit::WebCryptoAlgorithm& algorithm_or_null, |
+ const blink::WebCryptoAlgorithm& algorithm_or_null, |
bool extractable, |
- WebKit::WebCryptoKeyUsageMask usage_mask, |
- WebKit::WebCryptoKey* key) { |
+ blink::WebCryptoKeyUsageMask usage_mask, |
+ blink::WebCryptoKey* key) { |
// TODO(eroman): Currently expects algorithm to always be specified, as it is |
// required for raw format. |
if (algorithm_or_null.isNull()) |
return false; |
- const WebKit::WebCryptoAlgorithm& algorithm = algorithm_or_null; |
+ const blink::WebCryptoAlgorithm& algorithm = algorithm_or_null; |
// TODO(padolph): Support all relevant alg types and then remove this gate. |
- if (algorithm.id() != WebKit::WebCryptoAlgorithmIdHmac && |
- algorithm.id() != WebKit::WebCryptoAlgorithmIdAesCbc) { |
+ if (algorithm.id() != blink::WebCryptoAlgorithmIdHmac && |
+ algorithm.id() != blink::WebCryptoAlgorithmIdAesCbc) { |
return false; |
} |
@@ -339,22 +339,22 @@ bool WebCryptoImpl::ImportKeyInternal( |
// they differ? (jwk, probably) |
// Symmetric keys are always type secret |
- WebKit::WebCryptoKeyType type = WebKit::WebCryptoKeyTypeSecret; |
+ blink::WebCryptoKeyType type = blink::WebCryptoKeyTypeSecret; |
const unsigned char* raw_key_data; |
unsigned raw_key_data_size; |
switch (format) { |
- case WebKit::WebCryptoKeyFormatRaw: |
+ case blink::WebCryptoKeyFormatRaw: |
raw_key_data = key_data; |
raw_key_data_size = key_data_size; |
// The NSS implementation fails when importing a raw AES key with a length |
// incompatible with AES. The line below is to match this behavior. |
- if (algorithm.id() == WebKit::WebCryptoAlgorithmIdAesCbc && |
+ if (algorithm.id() == blink::WebCryptoAlgorithmIdAesCbc && |
!GetAESCipherByKeyLength(raw_key_data_size)) { |
return false; |
} |
break; |
- case WebKit::WebCryptoKeyFormatJwk: |
+ case blink::WebCryptoKeyFormatJwk: |
// TODO(padolph): Handle jwk format; need simple JSON parser. |
// break; |
return false; |
@@ -362,7 +362,7 @@ bool WebCryptoImpl::ImportKeyInternal( |
return false; |
} |
- *key = WebKit::WebCryptoKey::create( |
+ *key = blink::WebCryptoKey::create( |
new SymKeyHandle(raw_key_data, raw_key_data_size), |
type, extractable, algorithm, usage_mask); |
@@ -370,21 +370,21 @@ bool WebCryptoImpl::ImportKeyInternal( |
} |
bool WebCryptoImpl::SignInternal( |
- const WebKit::WebCryptoAlgorithm& algorithm, |
- const WebKit::WebCryptoKey& key, |
+ const blink::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoKey& key, |
const unsigned char* data, |
unsigned data_size, |
- WebKit::WebArrayBuffer* buffer) { |
+ blink::WebArrayBuffer* buffer) { |
- WebKit::WebArrayBuffer result; |
+ blink::WebArrayBuffer result; |
switch (algorithm.id()) { |
- case WebKit::WebCryptoAlgorithmIdHmac: { |
+ case blink::WebCryptoAlgorithmIdHmac: { |
- DCHECK_EQ(key.algorithm().id(), WebKit::WebCryptoAlgorithmIdHmac); |
- DCHECK_NE(0, key.usages() & WebKit::WebCryptoKeyUsageSign); |
+ DCHECK_EQ(key.algorithm().id(), blink::WebCryptoAlgorithmIdHmac); |
+ DCHECK_NE(0, key.usages() & blink::WebCryptoKeyUsageSign); |
- const WebKit::WebCryptoHmacParams* const params = algorithm.hmacParams(); |
+ const blink::WebCryptoHmacParams* const params = algorithm.hmacParams(); |
if (!params) |
return false; |
@@ -392,23 +392,23 @@ bool WebCryptoImpl::SignInternal( |
unsigned int hmac_expected_length = 0; |
// Note that HMAC length is determined by the hash used. |
switch (params->hash().id()) { |
- case WebKit::WebCryptoAlgorithmIdSha1: |
+ case blink::WebCryptoAlgorithmIdSha1: |
evp_sha = EVP_sha1(); |
hmac_expected_length = SHA_DIGEST_LENGTH; |
break; |
- case WebKit::WebCryptoAlgorithmIdSha224: |
+ case blink::WebCryptoAlgorithmIdSha224: |
evp_sha = EVP_sha224(); |
hmac_expected_length = SHA224_DIGEST_LENGTH; |
break; |
- case WebKit::WebCryptoAlgorithmIdSha256: |
+ case blink::WebCryptoAlgorithmIdSha256: |
evp_sha = EVP_sha256(); |
hmac_expected_length = SHA256_DIGEST_LENGTH; |
break; |
- case WebKit::WebCryptoAlgorithmIdSha384: |
+ case blink::WebCryptoAlgorithmIdSha384: |
evp_sha = EVP_sha384(); |
hmac_expected_length = SHA384_DIGEST_LENGTH; |
break; |
- case WebKit::WebCryptoAlgorithmIdSha512: |
+ case blink::WebCryptoAlgorithmIdSha512: |
evp_sha = EVP_sha512(); |
hmac_expected_length = SHA512_DIGEST_LENGTH; |
break; |
@@ -429,7 +429,7 @@ bool WebCryptoImpl::SignInternal( |
const unsigned char null_key[] = {}; |
const void* const raw_key_voidp = raw_key.size() ? &raw_key[0] : null_key; |
- result = WebKit::WebArrayBuffer::create(hmac_expected_length, 1); |
+ result = blink::WebArrayBuffer::create(hmac_expected_length, 1); |
crypto::ScopedOpenSSLSafeSizeBuffer<EVP_MAX_MD_SIZE> hmac_result( |
reinterpret_cast<unsigned char*>(result.data()), |
hmac_expected_length); |
@@ -458,16 +458,16 @@ bool WebCryptoImpl::SignInternal( |
} |
bool WebCryptoImpl::VerifySignatureInternal( |
- const WebKit::WebCryptoAlgorithm& algorithm, |
- const WebKit::WebCryptoKey& key, |
+ const blink::WebCryptoAlgorithm& algorithm, |
+ const blink::WebCryptoKey& key, |
const unsigned char* signature, |
unsigned signature_size, |
const unsigned char* data, |
unsigned data_size, |
bool* signature_match) { |
switch (algorithm.id()) { |
- case WebKit::WebCryptoAlgorithmIdHmac: { |
- WebKit::WebArrayBuffer result; |
+ case blink::WebCryptoAlgorithmIdHmac: { |
+ blink::WebArrayBuffer result; |
if (!SignInternal(algorithm, key, data, data_size, &result)) { |
return false; |
} |