| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 <!DOCTYPE html> |  | 
| 2 <html> |  | 
| 3 <head> |  | 
| 4 <script src="../../resources/js-test.js"></script> |  | 
| 5 <script src="resources/common.js"></script> |  | 
| 6 </head> |  | 
| 7 <body> |  | 
| 8 <p id="description"></p> |  | 
| 9 <div id="console"></div> |  | 
| 10 |  | 
| 11 <script> |  | 
| 12 description("Test generating an RSA key pair for RSASSA-PKCS1-v1_5."); |  | 
| 13 |  | 
| 14 jsTestIsAsync = true; |  | 
| 15 |  | 
| 16 var algorithmKeyGen = { |  | 
| 17     name: "RSASSA-PKCS1-v1_5", |  | 
| 18     hash: {name: "sha-256"}, |  | 
| 19     // RsaKeyGenParams |  | 
| 20     modulusLength: 512, |  | 
| 21     publicExponent: new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537 |  | 
| 22 }; |  | 
| 23 var extractable = true; |  | 
| 24 |  | 
| 25 debug("Generating a key pair..."); |  | 
| 26 crypto.subtle.generateKey(algorithmKeyGen, extractable, ["sign", "verify"]).then
    (function(result) { |  | 
| 27     keyPair = result; |  | 
| 28     shouldBe("keyPair.toString()", "'[object Object]'"); |  | 
| 29     shouldBe("keyPair.publicKey.type", "'public'"); |  | 
| 30     shouldBe("keyPair.publicKey.algorithm.name", "'RSASSA-PKCS1-v1_5'"); |  | 
| 31     shouldBe("keyPair.publicKey.algorithm.hash.name", "'SHA-256'"); |  | 
| 32     shouldBe("keyPair.publicKey.algorithm.modulusLength", "512"); |  | 
| 33     shouldBe("bytesToHexString(keyPair.publicKey.algorithm.publicExponent)", "'0
    10001'"); |  | 
| 34     shouldBe("keyPair.publicKey.usages", '["verify"]'); |  | 
| 35     shouldBe("keyPair.privateKey.type", "'private'"); |  | 
| 36     shouldBe("keyPair.privateKey.algorithm.name", "'RSASSA-PKCS1-v1_5'"); |  | 
| 37     shouldBe("keyPair.privateKey.algorithm.hash.name", "'SHA-256'"); |  | 
| 38     shouldBe("keyPair.privateKey.algorithm.modulusLength", "512"); |  | 
| 39     shouldBe("bytesToHexString(keyPair.privateKey.algorithm.publicExponent)", "'
    010001'"); |  | 
| 40     shouldBe("keyPair.privateKey.usages", '["sign"]'); |  | 
| 41 |  | 
| 42     debug("\nTesting that custom attributes on keys survive garbage collection..
    ."); |  | 
| 43     keyPair.publicKey.foo = "bar"; |  | 
| 44     gc(); |  | 
| 45     setTimeout(function() { |  | 
| 46         gc(); |  | 
| 47         setTimeout(function() { |  | 
| 48             shouldBe("keyPair.publicKey.foo", "'bar'"); |  | 
| 49             finishJSTest(); |  | 
| 50         }, 0); |  | 
| 51     }, 0); |  | 
| 52 }).catch(failAndFinishJSTest); |  | 
| 53 |  | 
| 54 </script> |  | 
| 55 |  | 
| 56 </body> |  | 
| 57 </html> |  | 
| OLD | NEW | 
|---|