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

Side by Side Diff: LayoutTests/crypto/generateKey.html

Issue 141413003: [webcrypto] Match the error handling defined by the spec. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 6 years, 11 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 | « LayoutTests/crypto/exportKey-expected.txt ('k') | LayoutTests/crypto/generateKey-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
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../resources/js-test.js"></script> 4 <script src="../resources/js-test.js"></script>
5 <script src="resources/common.js"></script> 5 <script src="resources/common.js"></script>
6 </head> 6 </head>
7 <body> 7 <body>
8 <p id="description"></p> 8 <p id="description"></p>
9 <div id="console"></div> 9 <div id="console"></div>
10 10
11 <script> 11 <script>
12 description("Tests crypto.subtle.generateKey."); 12 description("Tests crypto.subtle.generateKey.");
13 jsTestIsAsync = true;
13 14
14 extractable = true; 15 extractable = true;
15 keyUsages = ['encrypt', 'decrypt']; 16 keyUsages = ['encrypt', 'decrypt'];
16 17
17 // Invalid keyUsages 18 // Invalid keyUsages
18 aesCbc = { name: 'aes-cbc', length: 1024 }; 19 aesCbc = { name: 'aes-cbc', length: 1024 };
19 shouldThrow("crypto.subtle.generateKey(aesCbc, extractable, -1)"); 20 shouldThrow("crypto.subtle.generateKey(aesCbc, extractable, -1)");
20 shouldThrow("crypto.subtle.generateKey(aesCbc, extractable, null)"); 21 shouldThrow("crypto.subtle.generateKey(aesCbc, extractable, null)");
21 shouldThrow("crypto.subtle.generateKey(aesCbc, extractable, ['boo'])"); 22 shouldThrow("crypto.subtle.generateKey(aesCbc, extractable, ['boo'])");
22 23
23 // --------------------------------------------------- 24 // ---------------------------------------------------
24 // AES-CBC normalization failures (AesKeyGenParams) 25 // AES-CBC normalization failures (AesKeyGenParams)
25 // --------------------------------------------------- 26 // ---------------------------------------------------
26 27
27 shouldThrow("crypto.subtle.generateKey({ name: 'aes-cbc' }, extractable, keyUsag es)"); 28 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-cbc' }, extr actable, keyUsages)");
28 shouldThrow("crypto.subtle.generateKey({ name: 'aes-cbc', length: 70000 }, extra ctable, keyUsages)"); 29 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-cbc', length : 70000 }, extractable, keyUsages)");
29 shouldThrow("crypto.subtle.generateKey({ name: 'aes-cbc', length: -3 }, extracta ble, keyUsages)"); 30 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-cbc', length : -3 }, extractable, keyUsages)");
30 shouldThrow("crypto.subtle.generateKey({ name: 'aes-cbc', length: -Infinity }, e xtractable, keyUsages)"); 31 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-cbc', length : -Infinity }, extractable, keyUsages)");
31 32
32 // --------------------------------------------------- 33 // ---------------------------------------------------
33 // AES-CTR normalization failures (AesKeyGenParams) 34 // AES-CTR normalization failures (AesKeyGenParams)
34 // --------------------------------------------------- 35 // ---------------------------------------------------
35 36
36 shouldThrow("crypto.subtle.generateKey({ name: 'aes-ctr' }, extractable, keyUsag es)"); 37 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-ctr' }, extr actable, keyUsages)");
37 shouldThrow("crypto.subtle.generateKey({ name: 'aes-ctr', length: 70000 }, extra ctable, keyUsages)"); 38 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-ctr', length : 70000 }, extractable, keyUsages)");
38 shouldThrow("crypto.subtle.generateKey({ name: 'aes-ctr', length: -3 }, extracta ble, keyUsages)"); 39 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-ctr', length : -3 }, extractable, keyUsages)");
39 shouldThrow("crypto.subtle.generateKey({ name: 'aes-ctr', length: -Infinity }, e xtractable, keyUsages)"); 40 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-ctr', length : -Infinity }, extractable, keyUsages)");
40 41
41 // --------------------------------------------------- 42 // ---------------------------------------------------
42 // AES-KW normalization failures (AesKeyGenParams) 43 // AES-KW normalization failures (AesKeyGenParams)
43 // --------------------------------------------------- 44 // ---------------------------------------------------
44 45
45 shouldThrow("crypto.subtle.generateKey({ name: 'aes-kw' }, extractable, keyUsage s)"); 46 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-kw' }, extra ctable, keyUsages)");
46 shouldThrow("crypto.subtle.generateKey({ name: 'aes-kw', length: 70000 }, extrac table, keyUsages)"); 47 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-kw', length: 70000 }, extractable, keyUsages)");
47 shouldThrow("crypto.subtle.generateKey({ name: 'aes-kw', length: -3 }, extractab le, keyUsages)"); 48 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-kw', length: -3 }, extractable, keyUsages)");
48 shouldThrow("crypto.subtle.generateKey({ name: 'aes-kw', length: -Infinity }, ex tractable, keyUsages)"); 49 shouldRejectPromiseWithNull("crypto.subtle.generateKey({ name: 'aes-kw', length: -Infinity }, extractable, keyUsages)");
49 50
50 // --------------------------------------------------- 51 // ---------------------------------------------------
51 // HMAC normalization failures (HmacKeyParams) 52 // HMAC normalization failures (HmacKeyParams)
52 // --------------------------------------------------- 53 // ---------------------------------------------------
53 54
54 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: -3}, extractable , keyUsages)"); 55 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: -3}, extractable , keyUsages)");
55 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: ''}, length: 48}, extractable , keyUsages)"); 56 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: ''}, length: 48}, extractable , keyUsages)");
56 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: 5000000000}, extractable , keyUsages)"); 57 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: 5000000000}, extractable , keyUsages)");
57 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: NaN}, extractable , keyUsages)"); 58 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: NaN}, extractable , keyUsages)");
58 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: Infinity}, extractable , keyUsages)"); 59 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: Infinity}, extractable , keyUsages)");
59 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: -Infinity}, extractable , keyUsages)"); 60 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: -Infinity}, extractable , keyUsages)");
60 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: crypto}, extractable , keyUsages)"); 61 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: crypto}, extractable , keyUsages)");
61 shouldThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, l ength: undefined}, extractable , keyUsages)"); 62 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: undefined}, extractable , keyUsages)");
62 63
63 // The length property doesn't strictly need to be a number according to WebIDL. 64 // The length property doesn't strictly need to be a number according to WebIDL.
64 // It just has to be convertable with ToNumber(). 65 // It just has to be convertable with ToNumber().
65 shouldNotThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'} , length: '48'}, extractable , keyUsages)"); 66 shouldAcceptPromise("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha- 256'}, length: '48'}, extractable , keyUsages)");
66 shouldNotThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'} , length: null}, extractable , keyUsages)"); 67 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'hmac', hash: {nam e: 'sha-256'}, length: null}, extractable , keyUsages)");
67 shouldNotThrow("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'} , length: true}, extractable , keyUsages)"); 68 shouldAcceptPromise("crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha- 256'}, length: true}, extractable , keyUsages)");
68 69
69 // --------------------------------------------------- 70 // ---------------------------------------------------
70 // RSASSA-PKCS1-v1_5 normalization failures (RsaKeyGenParams) 71 // RSASSA-PKCS1-v1_5 normalization failures (RsaKeyGenParams)
71 // --------------------------------------------------- 72 // ---------------------------------------------------
72 73
73 shouldThrow("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5', modulusLength : -30}, extractable , keyUsages)"); 74 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5 ', modulusLength: -30}, extractable , keyUsages)");
74 shouldThrow("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5', modulusLength : NaN}, extractable , keyUsages)"); 75 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5 ', modulusLength: NaN}, extractable , keyUsages)");
75 shouldThrow("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5'}, extractable , keyUsages)"); 76 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5 '}, extractable , keyUsages)");
76 shouldThrow("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5', modulusLength : 10}, extractable , keyUsages)"); 77 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5 ', modulusLength: 10}, extractable , keyUsages)");
77 shouldThrow("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5', modulusLength : 10, publicExponent: 10}, extractable , keyUsages)"); 78 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5 ', modulusLength: 10, publicExponent: 10}, extractable , keyUsages)");
78 shouldThrow("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5', modulusLength : 10, publicExponent: null}, extractable , keyUsages)"); 79 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSASSA-PKCS1-v1_5 ', modulusLength: 10, publicExponent: null}, extractable , keyUsages)");
79 80
80 // --------------------------------------------------- 81 // ---------------------------------------------------
81 // RSAES-PKCS1-v1_5 normalization failures (RsaKeyGenParams) 82 // RSAES-PKCS1-v1_5 normalization failures (RsaKeyGenParams)
82 // --------------------------------------------------- 83 // ---------------------------------------------------
83 84
84 // Note: these are the same tests as for RSASSA-PKCS1-v1_5 above. 85 // Note: these are the same tests as for RSASSA-PKCS1-v1_5 above.
85 86
86 shouldThrow("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5', modulusLength: -30}, extractable , keyUsages)"); 87 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5' , modulusLength: -30}, extractable , keyUsages)");
87 shouldThrow("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5', modulusLength: NaN}, extractable , keyUsages)"); 88 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5' , modulusLength: NaN}, extractable , keyUsages)");
88 shouldThrow("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5'}, extractable , keyUsages)"); 89 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5' }, extractable , keyUsages)");
89 shouldThrow("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5', modulusLength: 10}, extractable , keyUsages)"); 90 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5' , modulusLength: 10}, extractable , keyUsages)");
90 shouldThrow("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5', modulusLength: 10, publicExponent: 10}, extractable , keyUsages)"); 91 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5' , modulusLength: 10, publicExponent: 10}, extractable , keyUsages)");
91 shouldThrow("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5', modulusLength: 10, publicExponent: null}, extractable , keyUsages)"); 92 shouldRejectPromiseWithNull("crypto.subtle.generateKey({name: 'RSAES-PKCS1-v1_5' , modulusLength: 10, publicExponent: null}, extractable , keyUsages)");
93
94 completeTestWhenAllTasksDone();
92 </script> 95 </script>
93 96
94 </body> 97 </body>
95 </html> 98 </html>
OLDNEW
« no previous file with comments | « LayoutTests/crypto/exportKey-expected.txt ('k') | LayoutTests/crypto/generateKey-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698