| <!-- This Source Code Form is subject to the terms of the Mozilla Public |
| - License, v. 2.0. If a copy of the MPL was not distributed with this |
| - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> |
| |
| <html> |
| <head> |
| <title>CRMF Test Page for PSM</title> |
| <script language=javascript> |
| var request; |
| //This variable must be set to the first value |
| //in the select field "testType" in the form. |
| var keyGenType="SigningOnlyRSA"; |
| |
| var requestedDN = "CN=Javi CA Shack ID, O=NSS"; |
| |
| function setTestType() { |
| var testType = document.crmfForm.testType; |
| |
| keyGenType = testType.options[testType.selectedIndex].value; |
| } |
| |
| function setRequest() { |
| with (document.crmfForm) { |
| CRMFRequest.value = request.request; |
| submit(); |
| } |
| } |
| |
| function generateSignAndEncryptRSARequest() { |
| request = crypto.generateCRMFRequest(requestedDN, |
| null, null, null, "setRequest()", |
| crypto.algorithms.rsa.keyEx.keySizes[0], |
| null, "rsa-dual-use"); |
| } |
| |
| function generateSigningOnlyRSARequest() { |
| request = crypto.generateCRMFRequest(requestedDN,null,null,null,"setRequest()", |
| crypto.algorithms.rsa.signing.keySizes[0], |
| null, "rsa-sign"); |
| } |
| |
| function generateEncryptionOnlyRSARequest() { |
| request = crypto.generateCRMFRequest(requestedDN, null, null, null, "setRequest()", |
| crypto.algorithms.rsa.keyEx.keySizes[0], |
| null, "rsa-ex"); |
| } |
| |
| function generateDualRSAKeys() { |
| request = crypto.generateCRMFRequest(requestedDN, null, null, null, "setRequest()", |
| crypto.algorithms.rsa.keyEx.keySizes[0], |
| null, "rsa-ex", |
| crypto.algorithms.rsa.signing.keySizes[0], |
| null, "rsa-sign"); |
| } |
| |
| function generateDSAKey() { |
| request = crypto.generateCRMFRequest(requestedDN, null, null, null, "setRequest()", |
| crypto.algorithms.dsa.keySizes[0], |
| null, "dsa-sign-nonrepudiation"); |
| } |
| |
| function processForm(form) { |
| with (form) { |
| if (typeof(crypto.version) == "undefined") { |
| alert('You must be running PSM in order to use this page.'); |
| return false; |
| } |
| if (NSSDirectory.value == "") { |
| alert('You must provide a path for NSS to use.'); |
| return false; |
| } |
| if (dbPassword.value == "") { |
| alert('You must provide a password for the certificate database.'); |
| return false; |
| } |
| if (CANickname.value == "") { |
| alert('You must provide a CA Nickname to use.'); |
| return false; |
| } |
| //Now do the correct key generation. |
| if (keyGenType == "SignAndEncryptRSA") { |
| generateSignAndEncryptRSARequest(); |
| } else if (keyGenType == "SigningOnlyRSA") { |
| generateSigningOnlyRSARequest(); |
| } else if (keyGenType == "EncryptionOnlyRSA") { |
| generateEncryptionOnlyRSARequest(); |
| } else if (keyGenType == "DualRSAKeys") { |
| generateDualRSAKeys(); |
| } else if (keyGenType == "DSAKeyGen") { |
| generateDSAKey(); |
| } |
| } |
| return true; |
| } |
| </script> |
| </head> |
| <body> |
| <h1><center>CRMF Test page for PSM</center></h1> |
| This page is designed to be used in combination with the executable |
| produced by ns/security/cmd/crmf-cgi in a CGI environment. In order |
| to successfully use this page, modify its action to post to a a server |
| where you have installed the crmfcgi executable and you'll be able to |
| test the functionality. |
| <hr> |
| <form name="crmfForm" method=post action="http://www.cgi-site.com/cgi-bin/crmfcgi"> |
| <h2>Certificate Database information</h2> |
| First, enter all the information for the CGI to use for initializing |
| NSS. The CGI will use the directory entered below as the directory |
| where to look for the certificate and key databases. |
| <pre> |
| Path for NSS Config: <input size=40 type="text" name="NSSDirectory"> |
| </pre> |
| Enter the password for the certificate database found in the direcotry |
| above. |
| <pre> |
| Database Password: <input type="password" name="dbPassword" size=40> |
| </pre> |
| Now enter the nickname of the certificate to use for signing the |
| certificate issued during this test. |
| <pre> |
| CA Nickname: <input size=40 type="text" name="CANickname"> |
| </pre> |
| <h2>Now, figure out which type of key generation you want to test:</h2> |
| <select name="testType" onChange="setTestType()">` |
| <option value="SigningOnlyRSA">Signing Only-RSA |
| <option value="EncryptionOnlyRSA">Encryption Only-RSA |
| <option value="SignAndEncryptRSA">Sign and Encrypt Single Key -RSA |
| <option value="DualRSAKeys">Dual Keys-RSA |
| <option value="DSAKeyGen">DSA Key Gen |
| </select> |
| <input type="hidden" name=CRMFRequest value=""> |
| <hr> |
| <input type="button" value="OK" onclick="processForm(document.crmfForm)"> |
| </form> |
| </body> |
| </html> |