[Worker] Test importing a JWK RSA-OAEP public key with SHA-1 in workers.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Starting worker: resources/rsa-import-jwk-public-key.js
[Worker] Importing a key...
PASS [Worker] crypto.subtle.importKey("jwk", jwkKey, {name: "RSA-OAEP", hash: "sha-1"}, extractable, ["decrypt", "unwrapKey"]) rejected promise  with SyntaxError: A required parameter was missing or out-of-range.
PASS [Worker] publicKey.toString() is '[object CryptoKey]'
PASS [Worker] publicKey.type is 'public'
PASS [Worker] publicKey.extractable is true
PASS [Worker] publicKey.algorithm.name is 'RSA-OAEP'
PASS [Worker] publicKey.algorithm.modulusLength is 2048
PASS [Worker] bytesToHexString(publicKey.algorithm.publicExponent) is '010001'
PASS [Worker] publicKey.algorithm.hash.name is 'SHA-1'
PASS [Worker] publicKey.usages is ['encrypt', 'wrapKey']
PASS successfullyParsed is true

TEST COMPLETE

