summaryrefslogtreecommitdiffstats
path: root/base/ca
diff options
context:
space:
mode:
authorJack Magne <jmagne@localhost.localdomain>2015-06-30 17:22:23 -0700
committerJack Magne <jmagne@localhost.localdomain>2015-07-02 10:53:42 -0700
commitbbd2feaa1f0ca4c338ca490f191184f2bd5c1a41 (patch)
treeaa5d63ed748822eb20f6337027d39c80d42cd361 /base/ca
parent4af223feb262a707b65d4860f6e8552873306209 (diff)
downloadpki-bbd2feaa1f0ca4c338ca490f191184f2bd5c1a41.tar.gz
pki-bbd2feaa1f0ca4c338ca490f191184f2bd5c1a41.tar.xz
pki-bbd2feaa1f0ca4c338ca490f191184f2bd5c1a41.zip
Unable to select ECC Curves from EE fix.
Ticket #1446: Without the crypto object, the user is now presented with a very bared bones keygen tag powered UI. ONe can only select a key strength and only use RSA. This fix adds simple UI to make better use of the keygen tag: 1. Allows the use of ECC. 2. Gives simple info on how the key strengths map to RSA key size and ECC curves. When the user selects High, they get RSA 2043, and ECC nistp384. When the user selects Medium, they get RSA 1024, and ECC nistp256.
Diffstat (limited to 'base/ca')
-rw-r--r--base/ca/shared/webapps/ca/ee/ca/ProfileSelect.template81
1 files changed, 80 insertions, 1 deletions
diff --git a/base/ca/shared/webapps/ca/ee/ca/ProfileSelect.template b/base/ca/shared/webapps/ca/ee/ca/ProfileSelect.template
index 0e68e36e9..5075962d9 100644
--- a/base/ca/shared/webapps/ca/ee/ca/ProfileSelect.template
+++ b/base/ca/shared/webapps/ca/ee/ca/ProfileSelect.template
@@ -47,6 +47,71 @@ var key = new Object();
key.type = "EC";
keyList[1] = key;
+function getKeyStrengthTableForKeyGen() {
+
+ document.writeln("<table border='1'> <caption> KeyGen Key Strength Info </caption> <tr> <th> Key Type </th> <th> High Grade </th> <th> Medium Grade </th> </tr>");
+ document.writeln("<td> RSA </td> <td> 2048 </td> <td> 1024 </tr> </td>");
+ document.writeln("<td> ECC </td> <td> nistp384 </td> <td> nistp256 </td>");
+ document.writeln("</table>");
+
+}
+
+function getKeyTypesOptionsForKeyGen() {
+ var keyTypesDef = "RSA";
+ var keyTypes = null;
+ for (var i = 0; i < policySetListSet.length; i++) {
+ for (var j = 0; j < policySetListSet[i].policySet.length; j++) {
+ if (typeof(policySetListSet[i].policySet[j].constraintSet) != "undefined") {
+ for (var k = 0; k < policySetListSet[i].policySet[j].constraintSet.length; k++) {
+ if (policySetListSet[i].policySet[j].constraintSet[k].name == "keyType") {
+ if (policySetListSet[i].policySet[j].constraintSet[k].value == "-") {
+ keyTypes = "RSA,EC";
+ } else {
+ keyTypes = policySetListSet[i].policySet[j].constraintSet[k].value;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if(keyTypes == null) {
+ keyTypes = keyTypesDef;
+ }
+
+ var keyTypesRet = keyTypes.split(",");
+ var options = "";
+ var optionLabel = "";
+ var selected = "";
+ for(types= 0 ; types < keyTypesRet.length ; types ++) {
+ if(keyTypesRet[types] == "EC") {
+ optionLabel = "ECC";
+ } else {
+ optionLabel = keyTypesRet[types];
+ }
+
+ if( types == 0 ) {
+ selected = "SELECTED";
+ } else {
+ selected = "";
+ }
+
+ options += '<OPTION value=' + '\"' + keyTypesRet[types] + '\" ' + selected + ' > ' + optionLabel + ' </OPTION> ';
+ }
+
+ return options;
+}
+
+function keyGenKeyTypeSelected(keygenObj,keyTypeSelectObj) {
+
+ if(keygenObj == null || keyTypeSelectObj == null)
+ return;
+
+ var selectedValue = keyTypeSelectObj.options[keyTypeSelectObj.selectedIndex].value;
+
+ keygenObj.setAttribute("keytype", selectedValue);
+}
+
function keyTypeOptions (keyPurpose)
{
var keyType = "RSA";
@@ -682,7 +747,21 @@ for (var m = 0; m < inputPluginListSet.length; m++) {
}
document.writeln('<input type=hidden name=cert_request value="">');
} else {
- document.writeln('<KEYGEN name=' + inputListSet[n].inputId + '>');
+
+ getKeyStrengthTableForKeyGen();
+
+ var keyTypesOptions = getKeyTypesOptionsForKeyGen();
+
+ var keygendata = '<KEYGEN id=\"keygentag\" ' + ' name= ' + '\"' + inputListSet[n].inputId + '\" ' + ' KEYTYPE=\"EC\" KEYPARAMS=\"none\" > ' ;
+ document.writeln(keygendata);
+
+ var keygenObj = document.getElementById("keygentag");
+ var selectKeyTypeData = '<SELECT id=\"keyTypeSelectedId\" name=\"selectKeyType\" onChange=\"keyGenKeyTypeSelected(keygenObj,this);\" > ' + keyTypesOptions + '</SELECT> ' ;
+
+ document.writeln(selectKeyTypeData);
+
+ var selectKeyTypeObject = document.getElementById("keyTypeSelectedId");
+ keyGenKeyTypeSelected(keygenObj,selectKeyTypeObject);
}
} else if (inputListSet[n].inputSyntax == 'dual_keygen_request_type') {
keygen_request = 'true';