/security/nss/cmd/crmf-cgi/crmfcgi.html
http://github.com/zpao/v8monkey · HTML · 168 lines · 122 code · 11 blank · 35 comment · 0 complexity · 21401c99b8f88d2d07d75faea1b7f8ce MD5 · raw file
- <!-- ***** BEGIN LICENSE BLOCK *****
- - Version: MPL 1.1/GPL 2.0/LGPL 2.1
- -
- - The contents of this file are subject to the Mozilla Public License Version
- - 1.1 (the "License"); you may not use this file except in compliance with
- - the License. You may obtain a copy of the License at
- - http://www.mozilla.org/MPL/
- -
- - Software distributed under the License is distributed on an "AS IS" basis,
- - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- - for the specific language governing rights and limitations under the
- - License.
- -
- - The Original Code is the Netscape security libraries.
- -
- - The Initial Developer of the Original Code is
- - Netscape Communications Corporation.
- - Portions created by the Initial Developer are Copyright (C) 1994-2000
- - the Initial Developer. All Rights Reserved.
- -
- - Contributor(s):
- -
- - Alternatively, the contents of this file may be used under the terms of
- - either the GNU General Public License Version 2 or later (the "GPL"), or
- - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- - in which case the provisions of the GPL or the LGPL are applicable instead
- - of those above. If you wish to allow use of your version of this file only
- - under the terms of either the GPL or the LGPL, and not to allow others to
- - use your version of this file under the terms of the MPL, indicate your
- - decision by deleting the provisions above and replace them with the notice
- - and other provisions required by the GPL or the LGPL. If you do not delete
- - the provisions above, a recipient may use your version of this file under
- - the terms of any one of the MPL, the GPL or the LGPL.
- -
- - ***** END LICENSE BLOCK ***** -->
- <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>