From bbd2feaa1f0ca4c338ca490f191184f2bd5c1a41 Mon Sep 17 00:00:00 2001 From: Jack Magne Date: Tue, 30 Jun 2015 17:22:23 -0700 Subject: 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. --- .../shared/webapps/ca/ee/ca/ProfileSelect.template | 81 +++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) (limited to 'base/ca/shared/webapps') 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(""); + document.writeln(""); + document.writeln(""); + document.writeln("
KeyGen Key Strength Info
Key Type High Grade Medium Grade
RSA 2048 1024
ECC nistp384 nistp256
"); + +} + +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 += ' '; + } + + 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(''); } else { - document.writeln(''); + + getKeyStrengthTableForKeyGen(); + + var keyTypesOptions = getKeyTypesOptionsForKeyGen(); + + var keygendata = ' ' ; + document.writeln(keygendata); + + var keygenObj = document.getElementById("keygentag"); + var selectKeyTypeData = ' ' ; + + document.writeln(selectKeyTypeData); + + var selectKeyTypeObject = document.getElementById("keyTypeSelectedId"); + keyGenKeyTypeSelected(keygenObj,selectKeyTypeObject); } } else if (inputListSet[n].inputSyntax == 'dual_keygen_request_type') { keygen_request = 'true'; -- cgit