[WebCrypto] Crypto operations should copy their parameters before hoping to another...
authorjiewen_tan@apple.com <jiewen_tan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Jul 2018 21:58:21 +0000 (21:58 +0000)
committerjiewen_tan@apple.com <jiewen_tan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Jul 2018 21:58:21 +0000 (21:58 +0000)
commit78d94a2d25f717942444f88a768c7f7ba3850aba
tree32e8e59d0b2860d6dcc647f65f29b7cda6504f19
parent7a9a1fb9b7d8e1884ffe1700c24cd67acb359b99
[WebCrypto] Crypto operations should copy their parameters before hoping to another thread
https://bugs.webkit.org/show_bug.cgi?id=187501
<rdar://problem/41438160>

Reviewed by Youenn Fablet.

Source/WebCore:

This patch aims at making all captured variables in all crypto lambdas that need to be passed
to a worker thread thread safe, which includes:
1) changing ref counted objects to thread safe ref counted object.
2) adding isolatedCopy methods to non ref counted classes, so they can be called by CrossThreadCopy().

In addition to above changes, this patch also does the following things:
1) change the name CryptoAlgorithm::dispatchOperation => CryptoAlgorithm::dispatchOperationInWorkQueue
to make it clear that lambdas will be passed to a secondary thread.
2) make CryptoAlgorithmParameters as const parameters for all methods.

Tests: crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html
       http/wpt/crypto/aes-cbc-crash.any.html
       http/wpt/crypto/aes-cbc-crash.any.worker.html
       http/wpt/crypto/aes-ctr-crash.any.html
       http/wpt/crypto/aes-ctr-crash.any.worker.html
       http/wpt/crypto/aes-gcm-crash.any.html
       http/wpt/crypto/aes-gcm-crash.any.worker.html
       http/wpt/crypto/derive-hmac-key-crash.any.html
       http/wpt/crypto/derive-hmac-key-crash.any.worker.html
       http/wpt/crypto/ecdsa-crash.any.html
       http/wpt/crypto/ecdsa-crash.any.worker.html
       http/wpt/crypto/hkdf-crash.any.html
       http/wpt/crypto/hkdf-crash.any.worker.html
       http/wpt/crypto/pbkdf2-crash.any.html
       http/wpt/crypto/pbkdf2-crash.any.worker.html
       http/wpt/crypto/rsa-oaep-crash.any.html
       http/wpt/crypto/rsa-oaep-crash.any.worker.html
       http/wpt/crypto/rsa-pss-crash.any.html
       http/wpt/crypto/rsa-pss-crash.any.worker.html
       http/wpt/crypto/unwrap-ec-key-crash.any.html
       http/wpt/crypto/unwrap-ec-key-crash.any.worker.html
       http/wpt/crypto/unwrap-rsa-key-crash.any.html
       http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html

* crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::encrypt):
(WebCore::CryptoAlgorithm::decrypt):
(WebCore::CryptoAlgorithm::sign):
(WebCore::CryptoAlgorithm::verify):
(WebCore::CryptoAlgorithm::deriveBits):
(WebCore::CryptoAlgorithm::importKey):
(WebCore::dispatchAlgorithmOperation):
(WebCore::CryptoAlgorithm::dispatchOperationInWorkQueue):
(WebCore::CryptoAlgorithm::dispatchOperation): Deleted.
* crypto/CryptoAlgorithm.h:
* crypto/SubtleCrypto.cpp:
(WebCore::crossThreadCopyImportParams):
(WebCore::SubtleCrypto::encrypt):
(WebCore::SubtleCrypto::decrypt):
(WebCore::SubtleCrypto::sign):
(WebCore::SubtleCrypto::verify):
(WebCore::SubtleCrypto::deriveKey):
(WebCore::SubtleCrypto::deriveBits):
(WebCore::SubtleCrypto::importKey):
(WebCore::SubtleCrypto::wrapKey):
(WebCore::SubtleCrypto::unwrapKey):
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
(WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmAES_CFB.cpp:
(WebCore::CryptoAlgorithmAES_CFB::encrypt):
(WebCore::CryptoAlgorithmAES_CFB::decrypt):
(WebCore::CryptoAlgorithmAES_CFB::importKey):
* crypto/algorithms/CryptoAlgorithmAES_CFB.h:
* crypto/algorithms/CryptoAlgorithmAES_CTR.cpp:
(WebCore::parametersAreValid):
(WebCore::CryptoAlgorithmAES_CTR::encrypt):
(WebCore::CryptoAlgorithmAES_CTR::decrypt):
(WebCore::CryptoAlgorithmAES_CTR::importKey):
* crypto/algorithms/CryptoAlgorithmAES_CTR.h:
* crypto/algorithms/CryptoAlgorithmAES_GCM.cpp:
(WebCore::CryptoAlgorithmAES_GCM::encrypt):
(WebCore::CryptoAlgorithmAES_GCM::decrypt):
(WebCore::CryptoAlgorithmAES_GCM::importKey):
* crypto/algorithms/CryptoAlgorithmAES_GCM.h:
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
(WebCore::CryptoAlgorithmAES_KW::importKey):
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
* crypto/algorithms/CryptoAlgorithmECDH.cpp:
(WebCore::CryptoAlgorithmECDH::deriveBits):
(WebCore::CryptoAlgorithmECDH::importKey):
* crypto/algorithms/CryptoAlgorithmECDH.h:
* crypto/algorithms/CryptoAlgorithmECDSA.cpp:
(WebCore::CryptoAlgorithmECDSA::sign):
(WebCore::CryptoAlgorithmECDSA::verify):
(WebCore::CryptoAlgorithmECDSA::importKey):
* crypto/algorithms/CryptoAlgorithmECDSA.h:
* crypto/algorithms/CryptoAlgorithmHKDF.cpp:
(WebCore::CryptoAlgorithmHKDF::deriveBits):
(WebCore::CryptoAlgorithmHKDF::importKey):
* crypto/algorithms/CryptoAlgorithmHKDF.h:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
(WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmPBKDF2.cpp:
(WebCore::CryptoAlgorithmPBKDF2::deriveBits):
(WebCore::CryptoAlgorithmPBKDF2::importKey):
* crypto/algorithms/CryptoAlgorithmPBKDF2.h:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::decrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::importKey):
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
* crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp:
(WebCore::CryptoAlgorithmRSA_PSS::sign):
(WebCore::CryptoAlgorithmRSA_PSS::verify):
(WebCore::CryptoAlgorithmRSA_PSS::importKey):
* crypto/algorithms/CryptoAlgorithmRSA_PSS.h:
* crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp:
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
* crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp:
(WebCore::CryptoAlgorithmAES_CFB::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CFB::platformDecrypt):
* crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp:
(WebCore::CryptoAlgorithmAES_CTR::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CTR::platformDecrypt):
* crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp:
(WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
(WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):
* crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp:
(WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
* crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp:
(WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits):
* crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
* crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp:
(WebCore::CryptoAlgorithmRSA_PSS::platformSign):
(WebCore::CryptoAlgorithmRSA_PSS::platformVerify):
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
* crypto/mac/CryptoAlgorithmAES_CFBMac.cpp:
(WebCore::CryptoAlgorithmAES_CFB::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CFB::platformDecrypt):
* crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:
(WebCore::CryptoAlgorithmAES_CTR::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CTR::platformDecrypt):
* crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:
(WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
(WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):
* crypto/mac/CryptoAlgorithmHKDFMac.cpp:
(WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
* crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp:
(WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits):
* crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
* crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp:
(WebCore::CryptoAlgorithmRSA_PSS::platformSign):
(WebCore::CryptoAlgorithmRSA_PSS::platformVerify):
* crypto/parameters/CryptoAlgorithmAesCbcCfbParams.h:
* crypto/parameters/CryptoAlgorithmAesCtrParams.h:
* crypto/parameters/CryptoAlgorithmAesGcmParams.h:
* crypto/parameters/CryptoAlgorithmEcKeyParams.h:
* crypto/parameters/CryptoAlgorithmEcdsaParams.h:
* crypto/parameters/CryptoAlgorithmHkdfParams.h:
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
* crypto/parameters/CryptoAlgorithmPbkdf2Params.h:
* crypto/parameters/CryptoAlgorithmRsaHashedImportParams.h:
* crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
* crypto/parameters/CryptoAlgorithmRsaPssParams.h:

LayoutTests:

crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html is an exception of this series of tests as
it only aims to test the correct behavoir of suggested algorithms. This patch aslo does some test
gardening.

* TestExpectations:
* crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html: Added.
* http/wpt/crypto/aes-cbc-crash.any-expected.txt: Added.
* http/wpt/crypto/aes-cbc-crash.any.html: Added.
* http/wpt/crypto/aes-cbc-crash.any.js: Added.
* http/wpt/crypto/aes-cbc-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/aes-cbc-crash.any.worker.html: Added.
* http/wpt/crypto/aes-ctr-crash.any-expected.txt: Added.
* http/wpt/crypto/aes-ctr-crash.any.html: Added.
* http/wpt/crypto/aes-ctr-crash.any.js: Added.
* http/wpt/crypto/aes-ctr-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/aes-ctr-crash.any.worker.html: Added.
* http/wpt/crypto/aes-gcm-crash.any-expected.txt: Added.
* http/wpt/crypto/aes-gcm-crash.any.html: Added.
* http/wpt/crypto/aes-gcm-crash.any.js: Added.
* http/wpt/crypto/aes-gcm-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/aes-gcm-crash.any.worker.html: Added.
* http/wpt/crypto/derive-hmac-key-crash.any-expected.txt: Added.
* http/wpt/crypto/derive-hmac-key-crash.any.html: Added.
* http/wpt/crypto/derive-hmac-key-crash.any.js: Added.
* http/wpt/crypto/derive-hmac-key-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/derive-hmac-key-crash.any.worker.html: Added.
* http/wpt/crypto/ecdsa-crash.any-expected.txt: Added.
* http/wpt/crypto/ecdsa-crash.any.html: Added.
* http/wpt/crypto/ecdsa-crash.any.js: Added.
* http/wpt/crypto/ecdsa-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/ecdsa-crash.any.worker.html: Added.
* http/wpt/crypto/hkdf-crash.any-expected.txt: Added.
* http/wpt/crypto/hkdf-crash.any.html: Added.
* http/wpt/crypto/hkdf-crash.any.js: Added.
* http/wpt/crypto/hkdf-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/hkdf-crash.any.worker.html: Added.
* http/wpt/crypto/pbkdf2-crash.any-expected.txt: Added.
* http/wpt/crypto/pbkdf2-crash.any.html: Added.
* http/wpt/crypto/pbkdf2-crash.any.js: Added.
* http/wpt/crypto/pbkdf2-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/pbkdf2-crash.any.worker.html: Added.
* http/wpt/crypto/resources/common.js: Added.
* http/wpt/crypto/rsa-oaep-crash.any-expected.txt: Added.
* http/wpt/crypto/rsa-oaep-crash.any.html: Added.
* http/wpt/crypto/rsa-oaep-crash.any.js: Added.
* http/wpt/crypto/rsa-oaep-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/rsa-oaep-crash.any.worker.html: Added.
* http/wpt/crypto/rsa-pss-crash.any-expected.txt: Added.
* http/wpt/crypto/rsa-pss-crash.any.html: Added.
* http/wpt/crypto/rsa-pss-crash.any.js: Added.
* http/wpt/crypto/rsa-pss-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/rsa-pss-crash.any.worker.html: Added.
* http/wpt/crypto/unwrap-ec-key-crash.any-expected.txt: Added.
* http/wpt/crypto/unwrap-ec-key-crash.any.html: Added.
* http/wpt/crypto/unwrap-ec-key-crash.any.js: Added.
* http/wpt/crypto/unwrap-ec-key-crash.any.worker-expected.txt: Added.
* http/wpt/crypto/unwrap-ec-key-crash.any.worker.html: Added.
* http/wpt/crypto/unwrap-rsa-key-crash.any-expected.txt: Added.
* http/wpt/crypto/unwrap-rsa-key-crash.any.html: Added.
* http/wpt/crypto/unwrap-rsa-key-crash.any.js: Added.
* http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html: Added.
* http/wpt/crypto/unwrap-rsa-key-crash.any.worker-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233867 268f45cc-cd09-0410-ab3c-d52691b4dbfc
119 files changed:
LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key-expected.txt [new file with mode: 0644]
LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-cbc-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-cbc-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-cbc-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-cbc-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-cbc-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-ctr-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-ctr-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-ctr-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-ctr-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-ctr-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-gcm-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-gcm-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-gcm-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-gcm-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/aes-gcm-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/derive-hmac-key-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/derive-hmac-key-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/derive-hmac-key-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/derive-hmac-key-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/derive-hmac-key-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/ecdsa-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/ecdsa-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/ecdsa-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/ecdsa-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/ecdsa-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/hkdf-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/hkdf-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/hkdf-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/hkdf-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/hkdf-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/pbkdf2-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/pbkdf2-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/pbkdf2-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/pbkdf2-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/pbkdf2-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/resources/common.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-oaep-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-oaep-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-oaep-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-oaep-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-oaep-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-pss-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-pss-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-pss-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-pss-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/rsa-pss-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-ec-key-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-ec-key-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-ec-key-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-ec-key-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-ec-key-crash.any.worker.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-rsa-key-crash.any-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-rsa-key-crash.any.html [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-rsa-key-crash.any.js [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-rsa-key-crash.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/crypto/CryptoAlgorithm.cpp
Source/WebCore/crypto/CryptoAlgorithm.h
Source/WebCore/crypto/SubtleCrypto.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CFB.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CFB.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CTR.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CTR.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmECDSA.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmECDSA.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmHKDF.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmHKDF.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmPBKDF2.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmPBKDF2.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp
Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.h
Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp
Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmAES_CFBMac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmHKDFMac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp
Source/WebCore/crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp
Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcCfbParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmAesCtrParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmAesGcmParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmEcKeyParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmEcdsaParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmHkdfParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmPbkdf2Params.h
Source/WebCore/crypto/parameters/CryptoAlgorithmRsaHashedImportParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h
Source/WebCore/crypto/parameters/CryptoAlgorithmRsaPssParams.h