Title: [174337] trunk/Source/WebCore
Revision
174337
Author
[email protected]
Date
2014-10-05 22:08:31 -0700 (Sun, 05 Oct 2014)

Log Message

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):

Modified Paths

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;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to