Diff
Modified: trunk/Source/WebCore/ChangeLog (174336 => 174337)
--- trunk/Source/WebCore/ChangeLog 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/ChangeLog 2014-10-06 05:08:31 UTC (rev 174337)
@@ -1,3 +1,38 @@
+2014-10-05 Christophe Dumez <[email protected]>
+
+ Use is<>() / downcast<>() for CryptoKeyData subclasses
+ https://bugs.webkit.org/show_bug.cgi?id=137437
+
+ Reviewed by Ryosuke Niwa.
+
+ Use is<>() / downcast<>() for CryptoKeyData subclasses.
+
+ No new tests, no behavior change.
+
+ * bindings/js/JSCryptoKeySerializationJWK.cpp:
+ (WebCore::JSCryptoKeySerializationJWK::serialize):
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore::CloneSerializer::write):
+ * crypto/CryptoKeyData.h:
+ * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+ (WebCore::CryptoAlgorithmAES_CBC::importKey):
+ * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+ (WebCore::CryptoAlgorithmAES_KW::importKey):
+ * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+ (WebCore::CryptoAlgorithmHMAC::importKey):
+ * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+ (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
+ * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+ (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
+ * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+ (WebCore::CryptoAlgorithmRSA_OAEP::importKey):
+ * crypto/keys/CryptoKeyDataOctetSequence.h:
+ (WebCore::isCryptoKeyDataOctetSequence): Deleted.
+ * crypto/keys/CryptoKeyDataRSAComponents.h:
+ (WebCore::isCryptoKeyDataRSAComponents): Deleted.
+ * crypto/keys/CryptoKeySerializationRaw.cpp:
+ (WebCore::CryptoKeySerializationRaw::serialize):
+
2014-10-05 Benjamin Poulain <[email protected]>
Add a deprecation warning for Element.webkitMatchesSelector
Modified: trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp (174336 => 174337)
--- trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -698,10 +698,10 @@
if (exec->hadException())
return String();
- if (isCryptoKeyDataOctetSequence(*keyData))
- buildJSONForOctetSequence(exec, toCryptoKeyDataOctetSequence(*keyData).octetSequence(), result);
- else if (isCryptoKeyDataRSAComponents(*keyData))
- buildJSONForRSAComponents(exec, toCryptoKeyDataRSAComponents(*keyData), result);
+ if (is<CryptoKeyDataOctetSequence>(*keyData))
+ buildJSONForOctetSequence(exec, downcast<CryptoKeyDataOctetSequence>(*keyData).octetSequence(), result);
+ else if (is<CryptoKeyDataRSAComponents>(*keyData))
+ buildJSONForRSAComponents(exec, downcast<CryptoKeyDataRSAComponents>(*keyData), result);
else {
throwTypeError(exec, "Key doesn't support exportKey");
return String();
Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (174336 => 174337)
--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -1189,7 +1189,7 @@
write(isRestrictedToHash);
if (isRestrictedToHash)
write(hash);
- write(toCryptoKeyDataRSAComponents(*key->exportData()));
+ write(downcast<CryptoKeyDataRSAComponents>(*key->exportData()));
break;
}
}
Modified: trunk/Source/WebCore/crypto/CryptoKeyData.h (174336 => 174337)
--- trunk/Source/WebCore/crypto/CryptoKeyData.h 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/CryptoKeyData.h 2014-10-06 05:08:31 UTC (rev 174337)
@@ -26,10 +26,11 @@
#ifndef CryptoKeyData_h
#define CryptoKeyData_h
+#if ENABLE(SUBTLE_CRYPTO)
+
#include <wtf/Noncopyable.h>
+#include <wtf/TypeCasts.h>
-#if ENABLE(SUBTLE_CRYPTO)
-
namespace WebCore {
class CryptoKeyData {
@@ -52,10 +53,12 @@
Format m_format;
};
-#define CRYPTO_KEY_DATA_CASTS(ToClassName) \
- TYPE_CASTS_BASE(ToClassName, CryptoKeyData, keyData, WebCore::is##ToClassName(*keyData), WebCore::is##ToClassName(keyData))
-
} // namespace WebCore
+#define SPECIALIZE_TYPE_TRAITS_CRYPTO_KEY_DATA(ToClassName, Format) \
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::ToClassName) \
+ static bool isType(const WebCore::CryptoKeyData& keyData) { return keyData.format() == WebCore::Format; } \
+SPECIALIZE_TYPE_TRAITS_END()
+
#endif // ENABLE(SUBTLE_CRYPTO)
#endif // CryptoKeyData_h
Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -104,11 +104,11 @@
void CryptoAlgorithmAES_CBC::importKey(const CryptoAlgorithmParameters&, const CryptoKeyData& keyData, bool extractable, CryptoKeyUsage usage, KeyCallback callback, VoidCallback, ExceptionCode& ec)
{
- if (keyData.format() != CryptoKeyData::Format::OctetSequence) {
+ if (!is<CryptoKeyDataOctetSequence>(keyData)) {
ec = NOT_SUPPORTED_ERR;
return;
}
- const CryptoKeyDataOctetSequence& keyDataOctetSequence = toCryptoKeyDataOctetSequence(keyData);
+ const CryptoKeyDataOctetSequence& keyDataOctetSequence = downcast<CryptoKeyDataOctetSequence>(keyData);
RefPtr<CryptoKeyAES> result = CryptoKeyAES::create(CryptoAlgorithmIdentifier::AES_CBC, keyDataOctetSequence.octetSequence(), extractable, usage);
callback(*result);
}
Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -99,11 +99,11 @@
void CryptoAlgorithmAES_KW::importKey(const CryptoAlgorithmParameters&, const CryptoKeyData& keyData, bool extractable, CryptoKeyUsage usage, KeyCallback callback, VoidCallback, ExceptionCode& ec)
{
- if (keyData.format() != CryptoKeyData::Format::OctetSequence) {
+ if (!is<CryptoKeyDataOctetSequence>(keyData)) {
ec = NOT_SUPPORTED_ERR;
return;
}
- const CryptoKeyDataOctetSequence& keyDataOctetSequence = toCryptoKeyDataOctetSequence(keyData);
+ const CryptoKeyDataOctetSequence& keyDataOctetSequence = downcast<CryptoKeyDataOctetSequence>(keyData);
RefPtr<CryptoKeyAES> result = CryptoKeyAES::create(CryptoAlgorithmIdentifier::AES_KW, keyDataOctetSequence.octetSequence(), extractable, usage);
callback(*result);
}
Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -107,11 +107,11 @@
void CryptoAlgorithmHMAC::importKey(const CryptoAlgorithmParameters& parameters, const CryptoKeyData& keyData, bool extractable, CryptoKeyUsage usage, KeyCallback callback, VoidCallback, ExceptionCode& ec)
{
- if (keyData.format() != CryptoKeyData::Format::OctetSequence) {
+ if (!is<CryptoKeyDataOctetSequence>(keyData)) {
ec = NOT_SUPPORTED_ERR;
return;
}
- const CryptoKeyDataOctetSequence& keyDataOctetSequence = toCryptoKeyDataOctetSequence(keyData);
+ const CryptoKeyDataOctetSequence& keyDataOctetSequence = downcast<CryptoKeyDataOctetSequence>(keyData);
const CryptoAlgorithmHmacParams& hmacParameters = downcast<CryptoAlgorithmHmacParams>(parameters);
Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -97,7 +97,7 @@
void CryptoAlgorithmRSAES_PKCS1_v1_5::importKey(const CryptoAlgorithmParameters&, const CryptoKeyData& keyData, bool extractable, CryptoKeyUsage usage, KeyCallback callback, VoidCallback failureCallback, ExceptionCode&)
{
- const CryptoKeyDataRSAComponents& rsaComponents = toCryptoKeyDataRSAComponents(keyData);
+ const CryptoKeyDataRSAComponents& rsaComponents = downcast<CryptoKeyDataRSAComponents>(keyData);
RefPtr<CryptoKeyRSA> result = CryptoKeyRSA::create(CryptoAlgorithmIdentifier::RSAES_PKCS1_v1_5, rsaComponents, extractable, usage);
if (!result) {
Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -108,7 +108,7 @@
void CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey(const CryptoAlgorithmParameters& parameters, const CryptoKeyData& keyData, bool extractable, CryptoKeyUsage usage, KeyCallback callback, VoidCallback failureCallback, ExceptionCode&)
{
const CryptoAlgorithmRsaKeyParamsWithHash& rsaKeyParameters = downcast<CryptoAlgorithmRsaKeyParamsWithHash>(parameters);
- const CryptoKeyDataRSAComponents& rsaComponents = toCryptoKeyDataRSAComponents(keyData);
+ const CryptoKeyDataRSAComponents& rsaComponents = downcast<CryptoKeyDataRSAComponents>(keyData);
RefPtr<CryptoKeyRSA> result = CryptoKeyRSA::create(CryptoAlgorithmIdentifier::RSASSA_PKCS1_v1_5, rsaComponents, extractable, usage);
if (!result) {
Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -108,7 +108,7 @@
void CryptoAlgorithmRSA_OAEP::importKey(const CryptoAlgorithmParameters& parameters, const CryptoKeyData& keyData, bool extractable, CryptoKeyUsage usage, KeyCallback callback, VoidCallback failureCallback, ExceptionCode&)
{
const CryptoAlgorithmRsaKeyParamsWithHash& rsaKeyParameters = downcast<CryptoAlgorithmRsaKeyParamsWithHash>(parameters);
- const CryptoKeyDataRSAComponents& rsaComponents = toCryptoKeyDataRSAComponents(keyData);
+ const CryptoKeyDataRSAComponents& rsaComponents = downcast<CryptoKeyDataRSAComponents>(keyData);
RefPtr<CryptoKeyRSA> result = CryptoKeyRSA::create(CryptoAlgorithmIdentifier::RSA_OAEP, rsaComponents, extractable, usage);
if (!result) {
Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyDataOctetSequence.h (174336 => 174337)
--- trunk/Source/WebCore/crypto/keys/CryptoKeyDataOctetSequence.h 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyDataOctetSequence.h 2014-10-06 05:08:31 UTC (rev 174337)
@@ -49,14 +49,9 @@
Vector<uint8_t> m_keyData;
};
-inline bool isCryptoKeyDataOctetSequence(const CryptoKeyData& data)
-{
- return data.format() == CryptoKeyData::Format::OctetSequence;
-}
-
-CRYPTO_KEY_DATA_CASTS(CryptoKeyDataOctetSequence)
-
} // namespace WebCore
+SPECIALIZE_TYPE_TRAITS_CRYPTO_KEY_DATA(CryptoKeyDataOctetSequence, CryptoKeyData::Format::OctetSequence)
+
#endif // ENABLE(SUBTLE_CRYPTO)
#endif // CryptoKeyDataOctetSequence_h
Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyDataRSAComponents.h (174336 => 174337)
--- trunk/Source/WebCore/crypto/keys/CryptoKeyDataRSAComponents.h 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyDataRSAComponents.h 2014-10-06 05:08:31 UTC (rev 174337)
@@ -95,14 +95,9 @@
Vector<PrimeInfo> m_otherPrimeInfos; // When three or more primes have been used, the number of array elements is be the number of primes used minus two.
};
-inline bool isCryptoKeyDataRSAComponents(const CryptoKeyData& data)
-{
- return data.format() == CryptoKeyData::Format::RSAComponents;
-}
-
-CRYPTO_KEY_DATA_CASTS(CryptoKeyDataRSAComponents)
-
} // namespace WebCore
+SPECIALIZE_TYPE_TRAITS_CRYPTO_KEY_DATA(CryptoKeyDataRSAComponents, CryptoKeyData::Format::RSAComponents)
+
#endif // ENABLE(SUBTLE_CRYPTO)
#endif // CryptoKeyDataRSAComponents_h
Modified: trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp (174336 => 174337)
--- trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp 2014-10-06 02:08:53 UTC (rev 174336)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeySerializationRaw.cpp 2014-10-06 05:08:31 UTC (rev 174337)
@@ -69,10 +69,10 @@
return false;
}
- if (!isCryptoKeyDataOctetSequence(*keyData))
+ if (!is<CryptoKeyDataOctetSequence>(*keyData))
return false;
- result.appendVector(toCryptoKeyDataOctetSequence(*keyData).octetSequence());
+ result.appendVector(downcast<CryptoKeyDataOctetSequence>(*keyData).octetSequence());
return true;
}