2018-05-04 16:08:28 +02:00
|
|
|
<!-- 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/. -->
|
2015-10-21 05:03:22 +02:00
|
|
|
|
|
|
|
<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>
|