| 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 |