Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1177)

Side by Side Diff: LayoutTests/crypto/clone-rsaKeyPair.html

Issue 268273002: [webcrypto] Make KeyPair structured clonable. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: change up comment once more Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | LayoutTests/crypto/clone-rsaKeyPair-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../resources/js-test.js"></script>
5 <script src="resources/common.js"></script>
6 <script src="resources/keys.js"></script>
7 </head>
8 <body>
9 <p id="description"></p>
10 <div id="console"></div>
11
12 <script>
13 description("Tests structured cloning of a generated RSA KeyPair.");
14
15 jsTestIsAsync = true;
16
17 function exportKeyPairData(keyPair)
18 {
19 var results = {};
20
21 return crypto.subtle.exportKey('pkcs8', keyPair.privateKey).then(function(re sult) {
22 results.pkcs8Hex = bytesToHexString(result);
23 return crypto.subtle.exportKey('spki', keyPair.publicKey);
24 }).then(function(result) {
25 results.spkiHex = bytesToHexString(result);
26 return result;
27 });
28 }
29
30 function runTest(algorithmName, extractable, keyUsages, spkiData, pkcs8Data)
31 {
32 var extractable = true;
33 var usages = ['encrypt', 'decrypt'];
34 // Note that the modulus length is unusually small in order to speed up
35 // the test (1024 or 2048 would be more typical).
36 var algorithm = {name: "RSAES-PKCS1-v1_5", modulusLength: 256, publicExponen t: hexStringToUint8Array("010001")};
37
38 var results = {};
39
40 return crypto.subtle.generateKey(algorithm, extractable, usages).then(functi on(result) {
41 results.generatedKeyPair = result;
42 result.extraProperty = 'hi';
43 return cloneObject(result);
44 }).then(function(result) {
45 results.clonedKeyPair = result;
46
47 return exportKeyPairData(results.generatedKeyPair);
48 }).then(function(result) {
49 results.generatedKeyPairData = result;
50
51 return exportKeyPairData(results.clonedKeyPair);
52 }).then(function(result) {
53 results.clonedKeyPairData = result;
54
55 generatedKeyPair = results.generatedKeyPair;
56 clonedKeyPair = results.clonedKeyPair;
57
58 shouldEvaluateAs("generatedKeyPair.publicKey.type", "public");
59 shouldEvaluateAs("generatedKeyPair.publicKey.extractable", true);
60 shouldEvaluateAs("generatedKeyPair.publicKey.algorithm.name", algorithm. name);
61 shouldEvaluateAs("generatedKeyPair.publicKey.algorithm.modulusLength", a lgorithm.modulusLength);
62 shouldEvaluateAs("bytesToHexString(generatedKeyPair.publicKey.algorithm. publicExponent)", "010001");
63 shouldEvaluateAs("generatedKeyPair.privateKey.type", "private");
64 shouldEvaluateAs("generatedKeyPair.privateKey.extractable", true);
65 shouldEvaluateAs("generatedKeyPair.privateKey.algorithm.name", algorithm .name);
66 shouldEvaluateAs("generatedKeyPair.privateKey.algorithm.modulusLength", algorithm.modulusLength);
67 shouldEvaluateAs("bytesToHexString(generatedKeyPair.privateKey.algorithm .publicExponent)", "010001");
68
69 shouldEvaluateAs("clonedKeyPair.publicKey.type", "public");
70 shouldEvaluateAs("clonedKeyPair.publicKey.extractable", true);
71 shouldEvaluateAs("clonedKeyPair.publicKey.algorithm.name", algorithm.nam e);
72 shouldEvaluateAs("clonedKeyPair.publicKey.algorithm.modulusLength", algo rithm.modulusLength);
73 shouldEvaluateAs("bytesToHexString(clonedKeyPair.publicKey.algorithm.pub licExponent)", "010001");
74 shouldEvaluateAs("clonedKeyPair.privateKey.type", "private");
75 shouldEvaluateAs("clonedKeyPair.privateKey.extractable", true);
76 shouldEvaluateAs("clonedKeyPair.privateKey.algorithm.name", algorithm.na me);
77 shouldEvaluateAs("clonedKeyPair.privateKey.algorithm.modulusLength", alg orithm.modulusLength);
78 shouldEvaluateAs("bytesToHexString(clonedKeyPair.privateKey.algorithm.pu blicExponent)", "010001");
79
80 shouldNotBe("generatedKeyPair", "clonedKeyPair");
81
82 shouldBeUndefined("clonedKeyPair.extraProperty");
83
84 generatedKeyPairData = results.generatedKeyPairData;
85 clonedKeyPairData = results.clonedKeyPairData;
86
87 shouldBe("generatedKeyPairData.spkiHex", "clonedKeyPairData.spkiHex")
88 shouldBe("generatedKeyPairData.pkcs8Hex", "clonedKeyPairData.pkcs8Hex");
89 });
90 }
91
92 runTest().then(finishJSTest, failAndFinishJSTest);
93
94 </script>
95
96 </body>
97 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/crypto/clone-rsaKeyPair-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698