OLD | NEW |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
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 </head> | 5 </head> |
6 <body> | 6 <body> |
7 <script> | 7 <script> |
8 description("Tests RTCPeerConnection.generateCertificate RSA/ECDSA."); | 8 description("Tests RTCPeerConnection.generateCertificate RSA/ECDSA."); |
9 | 9 |
10 // Constants | 10 // Constants |
11 var minuteInMs = 60 * 1000; | 11 var minuteInMs = 60 * 1000; |
12 var dayInMs = 24 * 60 * minuteInMs; | 12 var dayInMs = 24 * 60 * minuteInMs; |
13 | 13 |
14 // Signature of the last generateCertificate call. | 14 // Signature of the last generateCertificate call. |
15 var generateCallString = null; | 15 var generateCallString = null; |
16 // Global certificate variables so that the "should..." methods can evaluate the
m. | 16 // Global certificate variables so that the "should..." methods can evaluate the
m. |
17 var certRSA = null; | 17 var certRSA = null; |
18 var certECDSA = null; | 18 var certECDSA = null; |
19 var certExpiresNegativeOneDay = null; | 19 var certExpiresNegativeOneDay = null; |
20 var certExpiresZero = null; | 20 var certExpiresZero = null; |
21 var certExpiresPositiveOneDay = null; | 21 var certExpiresPositiveOneDay = null; |
22 | 22 |
23 // 1: RSA-2048 using public exponent = 65537. | 23 // 1: RSA-2048 using public exponent = 65537. |
24 function generate1RSA() | 24 function generate1RSA() |
25 { | 25 { |
26 generateCallString = 'generateCertificate({ name: "RSASSA-PKCS1-v1_5", mod
ulusLength: 2048, publicExponent: new Uint8Array([1, 0, 1]), hash: "SHA-256" })'
; | 26 generateCallString = 'generateCertificate({ name: "RSASSA-PKCS1-v1_5", modul
usLength: 2048, publicExponent: new Uint8Array([1, 0, 1]), hash: "SHA-256" })'; |
27 webkitRTCPeerConnection.generateCertificate({ name: "RSASSA-PKCS1-v1_5", mod
ulusLength: 2048, publicExponent: new Uint8Array([1, 0, 1]), hash: "SHA-256" }) | 27 RTCPeerConnection.generateCertificate({ name: "RSASSA-PKCS1-v1_5", modulusLe
ngth: 2048, publicExponent: new Uint8Array([1, 0, 1]), hash: "SHA-256" }) |
28 .then(generate1RSASuccessful, generate1RSAFailed); | 28 .then(generate1RSASuccessful, generate1RSAFailed); |
29 } | 29 } |
30 function generate1RSASuccessful(certificate) | 30 function generate1RSASuccessful(certificate) |
31 { | 31 { |
32 certRSA = certificate; | 32 certRSA = certificate; |
33 testPassed(generateCallString); | 33 testPassed(generateCallString); |
34 certificateSanityCheck('certRSA'); | 34 certificateSanityCheck('certRSA'); |
35 generate2ECDSA(); | 35 generate2ECDSA(); |
36 } | 36 } |
37 function generate1RSAFailed() | 37 function generate1RSAFailed() |
38 { | 38 { |
39 testFailed(generateCallString); | 39 testFailed(generateCallString); |
40 generate2ECDSA(); | 40 generate2ECDSA(); |
41 } | 41 } |
42 | 42 |
43 // 2: ECDSA using NIST P-256. | 43 // 2: ECDSA using NIST P-256. |
44 function generate2ECDSA() | 44 function generate2ECDSA() |
45 { | 45 { |
46 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-
256" })'; | 46 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-25
6" })'; |
47 webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-
256" }) | 47 RTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256" }
) |
48 .then(generate2ECDSASuccessful, generate2ECDSAFailed); | 48 .then(generate2ECDSASuccessful, generate2ECDSAFailed); |
49 } | 49 } |
50 function generate2ECDSASuccessful(certificate) | 50 function generate2ECDSASuccessful(certificate) |
51 { | 51 { |
52 certECDSA = certificate; | 52 certECDSA = certificate; |
53 testPassed(generateCallString); | 53 testPassed(generateCallString); |
54 certificateSanityCheck('certECDSA'); | 54 certificateSanityCheck('certECDSA'); |
55 generate3ExpiresNegativeOneDay(); | 55 generate3ExpiresNegativeOneDay(); |
56 } | 56 } |
57 function generate2ECDSAFailed() | 57 function generate2ECDSAFailed() |
58 { | 58 { |
59 testFailed(generateCallString); | 59 testFailed(generateCallString); |
60 generate3ExpiresNegativeOneDay(); | 60 generate3ExpiresNegativeOneDay(); |
61 } | 61 } |
62 | 62 |
63 // 3-5: Verify that the |expires| attribute works (generate ECDSA because its fa
ster). | 63 // 3-5: Verify that the |expires| attribute works (generate ECDSA because its fa
ster). |
64 function generate3ExpiresNegativeOneDay() | 64 function generate3ExpiresNegativeOneDay() |
65 { | 65 { |
66 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-
256", expires:-dayInMs })'; | 66 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-25
6", expires:-dayInMs })'; |
67 webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-
256", expires:-dayInMs }) | 67 RTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256",
expires:-dayInMs }) |
68 .then(function(certificate) { certExpiresNegativeOneDay = certificate; g
enerate4ExpiresZero(); }, generate4ExpiresZero); | 68 .then(function(certificate) { certExpiresNegativeOneDay = certificate; g
enerate4ExpiresZero(); }, generate4ExpiresZero); |
69 } | 69 } |
70 function generate4ExpiresZero() | 70 function generate4ExpiresZero() |
71 { | 71 { |
72 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-
256", expires:0 })'; | 72 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-25
6", expires:0 })'; |
73 webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-
256", expires:0 }) | 73 RTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256",
expires:0 }) |
74 .then(function(certificate) { certExpiresZero = certificate; generate5Ex
piresPositiveOneDay(); }, generate5ExpiresPositiveOneDay); | 74 .then(function(certificate) { certExpiresZero = certificate; generate5Ex
piresPositiveOneDay(); }, generate5ExpiresPositiveOneDay); |
75 } | 75 } |
76 function generate5ExpiresPositiveOneDay() | 76 function generate5ExpiresPositiveOneDay() |
77 { | 77 { |
78 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-
256", expires:dayInMs })'; // +1 day | 78 generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-25
6", expires:dayInMs })'; // +1 day |
79 webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-
256", expires:dayInMs }) | 79 RTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256",
expires:dayInMs }) |
80 .then(function(certificate) { certExpiresPositiveOneDay = certificate; g
enerate3to5ExpiresResolved(); }, generate3to5ExpiresResolved); | 80 .then(function(certificate) { certExpiresPositiveOneDay = certificate; g
enerate3to5ExpiresResolved(); }, generate3to5ExpiresResolved); |
81 } | 81 } |
82 function generate3to5ExpiresResolved() | 82 function generate3to5ExpiresResolved() |
83 { | 83 { |
84 // A negative |expires| value is not a DOMTimeStamp, it should be ignored an
d | 84 // A negative |expires| value is not a DOMTimeStamp, it should be ignored an
d |
85 // generate a certificate that has not expired. | 85 // generate a certificate that has not expired. |
86 certificateSanityCheck('certExpiresNegativeOneDay'); | 86 certificateSanityCheck('certExpiresNegativeOneDay'); |
87 | 87 |
88 // Check that the zero expiration certificate was generated but has expired. | 88 // Check that the zero expiration certificate was generated but has expired. |
89 shouldBeNonNull('certExpiresZero'); | 89 shouldBeNonNull('certExpiresZero'); |
(...skipping 16 matching lines...) Expand all Loading... |
106 // Run each generate test sequentially. The ith generate method will make sure | 106 // Run each generate test sequentially. The ith generate method will make sure |
107 // the (i+1)st generate method is executed when its promise's callbacks are | 107 // the (i+1)st generate method is executed when its promise's callbacks are |
108 // invoked. generate2ECDSA's callback methods mark the end of the async tests. | 108 // invoked. generate2ECDSA's callback methods mark the end of the async tests. |
109 generate1RSA(); | 109 generate1RSA(); |
110 | 110 |
111 window.jsTestIsAsync = true; | 111 window.jsTestIsAsync = true; |
112 window.successfullyParsed = true; | 112 window.successfullyParsed = true; |
113 </script> | 113 </script> |
114 </body> | 114 </body> |
115 </html> | 115 </html> |
OLD | NEW |