diff options
Diffstat (limited to 'dogtag/ca-ui/shared/webapps/ca/ee/ca/ProfileSelect.template')
-rw-r--r-- | dogtag/ca-ui/shared/webapps/ca/ee/ca/ProfileSelect.template | 797 |
1 files changed, 797 insertions, 0 deletions
diff --git a/dogtag/ca-ui/shared/webapps/ca/ee/ca/ProfileSelect.template b/dogtag/ca-ui/shared/webapps/ca/ee/ca/ProfileSelect.template new file mode 100644 index 000000000..0e3ded046 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/ee/ca/ProfileSelect.template @@ -0,0 +1,797 @@ +<!-- --- BEGIN COPYRIGHT BLOCK --- + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Copyright (C) 2007 Red Hat, Inc. + All rights reserved. + --- END COPYRIGHT BLOCK --- --> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Certificate Profile +</font><br> + <Font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> + Use this form to submit the request. +<p> +</font> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/ee/graphics/hr.gif" +width="100%"> + <tr> + <td> </td> + </tr> +</table> +<p> + +<SCRIPT LANGUAGE="JavaScript"> + +var dual = 'false'; +var encryptionKeyOnly = 'false'; +var signingKeyOnly = 'false'; + +var keyList = new Array(); +var key = new Object(); +key.type = "RSA"; +keyList[0] = key; +var key = new Object(); +key.type = "EC"; +keyList[1] = key; + +function keyTypeOptions (keyPurpose) +{ + var keyType = "RSA"; + + 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 != "-") { + if (keyPurpose.length == 0 || (keyPurpose.length > 0 && policySetListSet[i].setId.indexOf(keyPurpose) > -1)) { + keyType = policySetListSet[i].policySet[j].constraintSet[k].value; + } + } + } + } + } + } + } + var keyFound = 0; + for (var i = 0; i < keyList.length; i++) { + if (keyList[i].type == keyType) { + keyFound = 1; + } + } + if (keyFound == 0) { + keyType = "RSA"; + } + if (navigator.appName == "Microsoft Internet Explorer") { + keyType = "RSA"; + } + + return keyType; +} + +function keyLengthsCurvesOptions (keyPurpose) +{ + var keyType = "RSA"; + var options = ""; + var lengthsOrCurves = null; + var keyLengthsCurves = ""; + + 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 != "-") { + if (keyPurpose.length == 0 || (keyPurpose.length > 0 && policySetListSet[i].setId.indexOf(keyPurpose) > -1)) { + keyType = policySetListSet[i].policySet[j].constraintSet[k].value; + } + } + } + + if (keyPurpose.length == 0 || (keyPurpose.length > 0 && policySetListSet[i].setId.indexOf(keyPurpose) > -1)) { + if (policySetListSet[i].policySet[j].constraintSet[k].name == "keyParameters") { + keyLengthsCurves = policySetListSet[i].policySet[j].constraintSet[k].value; + lengthsOrCurves = keyLengthsCurves.split(","); + } + } + } + } + } + } + if (navigator.appName == "Microsoft Internet Explorer") { + keyType = "RSA"; + } + + var value = 0; + var included = true; + var l = 0; + for (l = 0 ; l < lengthsOrCurves.length; l++) { + + value = lengthsOrCurves[l]; + + if (keyType != "EC" && !isNumeric(value)) { + included = false; + } + + if (included) { + options += '<OPTION VALUE="' + value + '"'; + if (i == 0) { + options += ' SELECTED'; + } + options += '>' + value; + } + } + + if (options.length == 0) { + if (keyType != "EC") { + options = '<OPTION VALUE=1024 SELECTED>1024'; + } else { + options = '<OPTION VALUE="nistp256">nistp256'; + } + } + + return options; +} + +function isNumeric(sText) +{ + var validChars = "0123456789"; + var isNumber=true; + var char; + + if( !sText) + return false; + + for (i = 0; i < sText.length && isNumber == true; i++) { + char = sText.charAt(i); + if (validChars.indexOf(char) == -1) { + isNumber = false; + } + } + return isNumber; +} + +function validate() +{ + if (keygen_request == 'false') + return false; + with (document.forms[0]) { + ///////////////////////////////////////////////////////////////// + // To enable dual key feature, this page must be customized with + // appropriate Javascript call. For example, + // + // crmfObject = crypto.generateCRMFRequest( + // "CN=undefined", + // "regToken", "authenticator", + // null, + // "setCRMFRequest();", + // 512, null, "rsa-ex", + // 1024, null, "rsa-sign"); + // Note: This archival text below only applies to CS 7.1 and earlier: + + // To enable key archival feature, this page must be customized with + // KRA's transport certificate. The transport certificate can be + // retrieved in the following ways: + // (1) Access "List Certificates" menu option in end-entity page + // (2) Access https://<host>:<agent_port>/kra/displayTransportCert + // (3) Use certutil command in <instance-dir>/config directory + // (i.e. certutil -L -d . -n "kraTransportCert <instance-id>" -a) + // + // Once the transport certificate is obtained, the following + // javascript should be modified so that the transport certificate + // and appropriate key type are selected. For example, + // + // var kraTransportCert = "MIICDjCCAXegAwIBAgICAfMwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uMREwDwYDVQQLEwhIYXJkY29yZTEnMCUGA1UEAxMeSGFyZGNvcmUgQ2VydGlmaWNhdGUgU2VydmVyIElJMB4XDTk4MTExOTIzNDIxOVoXDTk5MDUxODIzNDIxOVowLjELMAkGA1UEBhMCVVMxETAPBgNVBAoTCG5ldHNjYXBlMQwwCgYDVQQDEwNLUmEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEArrbDiYUI5SCdlCKKa0bEBn1m83kX6bdhytRYNkd/HB95Bp85SRadmdJV+0O/yMxjYAtGCFrmcqEZ4sh2YSov6wIDAQABozYwNDARBglghkgBhvhCAQEEBAMCAEAwHwYDVR0jBBgwFoAUl7FtsrYCFlQMl9fjMm3LnN/u3oAwDQYJKoZIhvcNAQEEBQADgYEApvzcUsVIOstaoYSiWb4+aMVH6s1jiJlr5iVHnOKzfsYxPVdUw6uz04AT8N+1KIarMTKxHPzGAFSLicKLEv4HG4vh6llc86uzRzWpUqqVHg/eKN5A8Jyg56D4DkNr/XEJ7QdKesAp13dk5H5qvHelkSPLYYdMXNwNWPVZKgnWrWg="; + // var keyGenAlg = "rsa-ex"; + // crmfObject = crypto.generateCRMFRequest( + // "CN=undefined", + // "regToken", "authenticator", + // keyTransportCert, + // "setCRMFRequest();", + // 512, null, keyGenAlg); + ///////////////////////////////////////////////////////////////// + var keyTransportCert = null; + + + if (typeof(transportCert) != "undefined" && transportCert != "") { + // from CS7.2, transport certificate will be + // inserted automatically + keyTransportCert = transportCert; + } + // generate keys for nsm. + if (typeof(crypto.version) != "undefined") { + var encKeyType = "rsa-ex"; + var signKeyType = "rsa-sign"; + var dualKeyType = "rsa-dual-use"; + var encKeyParams = null; + var encKeySize = 1024; + var signKeyParams = null; + var signKeySize = 1024; + var keyParams = null; + // Give this default because the ECC crytpo codes requires and integer + // for this value even if presenting ECC curve name parameter. + var keySize = 1024; + + try { + if (dual == 'true') { + + if (keyTypeOptions("encryption") == "EC") { + encKeyType = "ec-ex"; + encKeyParams = "curve=" + encKeyParam.value; + } else { + encKeySize = parseInt(encKeyParam.value); + } + + if (keyTypeOptions("signing") == "EC") { + signKeyType = "ec-sign"; + signKeyParams = "curve=" + signKeyParam.value; + } else { + signKeySize = parseInt(signKeyParam.value); + } + + crmfObject = crypto.generateCRMFRequest( + "CN=x", "regToken", "authenticator", + keyTransportCert, "setCRMFRequest();", + encKeySize, encKeyParams, encKeyType, + signKeySize, signKeyParams, signKeyType); + } else { + if (encryptionKeyOnly == 'true') { + if (keyTypeOptions("") == "EC") { + dualKeyType = "ec-ex"; + keyParams = "curve=" + keyParam.value; + } else { + dualKeyType = "rsa-ex"; + keySize = parseInt(keyParam.value); + } + } else if (signingKeyOnly == 'true') { + if (keyTypeOptions("") == "EC") { + dualKeyType = "ec-sign"; + keyParams = "curve=" + keyParam.value; + } else { + dualKeyType = "rsa-sign"; + keySize = parseInt(keyParam.value); + } + keyTransportCert = null; + } else { + if (keyTypeOptions("") == "EC") { + dualKeyType = "ec-dual-use"; + keyParams = "curve=" + keyParam.value; + } else { + keySize = parseInt(keyParam.value); + } + keyTransportCert = null; + } + crmfObject = crypto.generateCRMFRequest( + "CN=x", "regToken", "authenticator", + keyTransportCert, "setCRMFRequest();", + keySize, keyParams, dualKeyType); + } + } catch (e) { + if (typeof(crmfObject) == "undefined" || crmfObject == null) { + alert("Error generating CRMF request."); + } + } + } + return false; + } +} + +function setCRMFRequest() +{ + with (document.forms[0]) { + cert_request.value = crmfObject.request; + submit(); + } +} + +</SCRIPT> + + +<script language=javascript> + var uri = 'profileSubmit'; + if (typeof(authName) != "undefined") { + if (authIsSSLClientRequired == 'true') { + uri = 'https://[PKI_MACHINE_NAME]:[PKI_EE_SECURE_CLIENT_AUTH_PORT_UI]/[PKI_SUBSYSTEM_TYPE]/eeca/[PKI_SUBSYSTEM_TYPE]/profileSubmitSSLClient'; + } + } + if (navigator.appName == "Microsoft Internet Explorer") { + if ((navigator.appVersion).indexOf("NT 6.") > -1) { + document.writeln("<OBJECT id='g_objClassFactory' CLASSID='clsid:884e2049-217d-11da-b2a4-000e7bbb2b09'></OBJECT>"); + } else { + document.writeln("<OBJECT classid='clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1' CODEBASE='/xenroll.dll' id='Enroll'></OBJECT>"); + } + document.writeln('<form name="ReqForm" onSubmit="if (checkRequest()) {return true;} else {window.location.reload(); return false;}" method="post" action="' + uri + '">'); + } else if (typeof(crypto.version) != "undefined") { + document.writeln('<form name="ReqForm" onSubmit="return validate();" method="post" action="' + uri + '">'); + } else { + document.writeln('<form name="ReqForm" method="post" action="' + uri + '">'); + } +</script> + +<SCRIPT LANGUAGE=VBS> +<!-- +'Get OS Version, works for Vista and below only +Function GetOSVersion + dim agent + dim result + dim pos + + agent = Navigator.appVersion + pos = InStr(agent,"NT 6.") + + If pos > 0 Then + GetOSVersion = 6 ' Vista + Exit Function + End If + + pos = InStr(agent,"NT 5.") + + If pos > 0 Then + GetOSVersion = 5 ' XP etc + Exit Function + End If + +' Default + GetOSVersion = 5 +End Function + +Function checkRequest + Dim TheForm + Dim szName + Dim options + Dim osVersion + Dim result + Dim keyLen + Dim keyIndex + Set TheForm = Document.ReqForm + + checkRequest = False + + keyIndex = TheForm.all.keyLength.options.selectedIndex + keyLen = CInt (TheForm.all.keyLength.options(keyIndex).value) + + osVersion = GetOSVersion() + + If osVersion <> 6 Then 'Not Vista + + ' Contruct the X500 distinguished name + szName = "CN=NAME" + + On Error Resume Next + Enroll.HashAlgorithm = "MD5" + Enroll.KeySpec = 1 + + ' Pick the provider that is selected + set options = TheForm.all.cryptprovider.options + index = options.selectedIndex + Enroll.providerType = options(index).value + Enroll.providerName = options(index).text + + ' adding 2 to "GenKeyFlags" will enable the 'High Security' + ' (USER_PROTECTED) mode, which means IE will pop up a dialog + ' asking what level of protection you would like to give + ' the key - this varies from 'none' to 'confirm password + ' every time the key is used' + ' Enroll.GenKeyFlags = 1 ' key PKCS12-exportable + Enroll.GenKeyFlags = (65536 * (CLng(keyLen))) + 1 + szCertReq = Enroll.createPKCS10(szName, "1.3.6.1.5.5.7.3.2") + theError = Err.Number + On Error Goto 0 + ' + ' If the user has cancelled things the we simply ignore whatever + ' they were doing ... need to think what should be done here + ' + If (szCertReq = Empty AND theError = 0) Then + Exit Function + End If + + If (szCertReq = Empty OR theError <> 0) Then + ' + ' There was an error in the key pair generation. The error value + ' is found in the variable 'theError' which we snarfed above before + ' we did the 'On Error Goto 0' which cleared it again. + ' + sz = "The error '" & Hex(theError) & "' occurred." & chr(13) & chr(10) & "Your credentials could not be generated." + result = MsgBox(sz, 0, "Credentials Enrollment") + Exit Function + End If + + TheForm.cert_request.Value = szCertReq + + ' TheForm.Submit + + Else 'Vista + Dim enrollment + Dim privateKey + Dim request + Dim csr + Dim objDN + + 'certUsage is "1.3.6.1.5.5.7.3.2" + + On Error Resume Next + 'CreateObject("X509Enrollment.CX509EnrollmentWebClassFactory") + + If IsObject(g_objClassFactory) = False Then + result = MsgBox("Can't create Factory Object " & " Error: " & Err.number & " :" & Err.description,0,"") + Exit Function + End If + + Set enrollment = g_objClassFactory.CreateObject("X509Enrollment.CX509Enrollment") + + If IsObject(enrollment) = False Then + result = MsgBox("Can't create enroll Object! " & " Error: " & Err.number & " :" & Err.description,"") + Exit Function + End If + + Set privateKey = g_objClassFactory.CreateObject("X509Enrollment.CX509PrivateKey") + + If IsObject(privateKey) = False Then + result = MsgBox("Can't create Key Object! " & " Error: " & Err.number & " :" & Err.description,0,"") + Exit Function + End If + + Set request = g_objClassFactory.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10") + + If IsObject(request) = False Then + result = MsgBox("Can't create Request Object. ! " & " Error: " & Err.number & " :" & Err.description,0,"") + Exit Function + End If + + privateKey.KeySpec= "1" + + ' Pick the provider that is selected + set options = TheForm.all.cryptprovider.options + index = options.selectedIndex + privateKey.ProviderType = index + privateKey.ProviderName = options(index).text + privateKey.Length = keyLen + + szName = "0.9.2342.19200300.100.1.1=" & TheForm.uid.Value & ",E=" & TheForm.email.Value & ",CN=" & TheForm.cn.Value + + Set objDN = g_objClassFactory.CreateObject("X509Enrollment.CX500DistinguishedName") + + If IsObject(objDN) = False Then + result = MsgBox("Can't create DN Object. ! " & " Error: " & Err.number & " :" & Err.description,0,"") + Exit Function + End If + + objDN.Encode szName,0 + + request.InitializeFromPrivateKey 1,privateKey,"" + request.Subject = objDN + + enrollment.InitializeFromRequest(request) + csr=enrollment.CreateRequest(1) + + If len(csr) = 0 Then + result = MsgBox("Error Creating Request! "& " Error: " & Err.number & " :" & Err.description,0,"") + Exit Function + End If + + TheForm.cert_request.Value = csr + + End If + checkRequest = True +End Function + +--> +</SCRIPT> + +<script language=javascript> +if (errorCode == 0) { +document.writeln('<br>'); +document.writeln('<b>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('Certificate Profile - ' + profileName); +document.writeln('</FONT>'); +document.writeln('</b>'); +document.writeln('<p>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileDesc); +document.writeln('</FONT>'); +document.writeln('<p>'); +if (typeof(authName) != "undefined") { +document.writeln('<table width=100%>'); +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>'); +document.writeln('Authentication - ' + authName); +document.writeln('</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(authDesc); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<p>'); +document.writeln('<table width=100%>'); +for (var i = 0; i < authListSet.length; i++) { + document.writeln('<tr>'); + document.writeln('<td width=40%>'); + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<li>'); + document.writeln(authListSet[i].authName); + document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('<td>'); + if (authListSet[i].authSyntax == 'string') { + document.writeln('<input type=text name=' + authListSet[i].authId + '>'); + } else if (authListSet[i].authSyntax == 'password') { + document.writeln('<input type=password name=' + authListSet[i].authId + '>'); + } + document.writeln('</td>'); + document.writeln('</tr>'); +} +document.writeln('</table>'); +} +document.writeln('<p>'); +document.writeln('<table width=100%>'); +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>'); +document.writeln('Inputs'); +document.writeln('</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<p>'); +document.writeln('<table width=100%>'); +for (var m = 0; m < inputPluginListSet.length; m++) { + document.writeln('<tr>'); + document.writeln('<td spancol=2>'); + document.writeln('<b>'); + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(inputPluginListSet[m].inputPluginName); + document.writeln('</FONT>'); + document.writeln('</b>'); + document.writeln('</td>'); + document.writeln('</tr>'); + for (var n = 0; n < inputListSet.length; n++) { + if (inputPluginListSet[m].inputPluginId != inputListSet[n].inputPluginId) + continue; + document.writeln('<tr>'); + document.writeln('<td width=40%>'); + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<li>'); + document.writeln(inputListSet[n].inputName); + document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('<td>'); + if (inputListSet[n].inputSyntax == 'string') { + document.writeln('<input type=text name=' + inputListSet[n].inputId + '>'); + } else if (inputListSet[n].inputSyntax == 'cert_request') { + document.writeln('<textarea cols=60 rows=10 name=' + inputListSet[n].inputId + '></textarea>'); + } else if (inputListSet[n].inputSyntax == 'cert_request_type') { + document.writeln('<select name=' + inputListSet[n].inputId + '><option value="pkcs10">PKCS#10</option><option value="crmf">CRMF</option></select>'); + } else if (inputListSet[n].inputSyntax == 'dual_keygen_request') { + if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('<input type=hidden name=' + inputListSet[n].inputId + '>'); + } else if (typeof(crypto.version) != "undefined") { + document.write('<SELECT NAME="encKeyParam">'+keyLengthsCurvesOptions("encryption")+'</SELECT>'); + document.write('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif"> '); + document.write(keyTypeOptions("encryption")+' (Encryption), </FONT>'); + document.write('<SELECT NAME="signKeyParam">'+keyLengthsCurvesOptions("signing")+'</SELECT>'); + document.write('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif"> '); + document.write(keyTypeOptions("signing")+' (Signing)</FONT>'); + document.writeln('<input type=hidden name=cert_request value="">'); + dual = 'true'; + } else { + document.writeln('Not Supported<input type=hidden name=cert_request value="">'); + } + } else if ((inputListSet[n].inputSyntax == 'keygen_request') || + (inputListSet[n].inputSyntax == 'enc_keygen_request') || + (inputListSet[n].inputSyntax == 'sign_keygen_request')) { + if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('<input type=hidden name=' + inputListSet[n].inputId + '>'); + document.writeln('<SELECT NAME="keyLength">'+keyLengthsCurvesOptions("")+'</SELECT> <SELECT NAME=\"cryptprovider\"></SELECT>'); + } else if (typeof(crypto.version) != "undefined") { + document.write('<SELECT NAME="keyParam">'+keyLengthsCurvesOptions("")+'</SELECT>'); + document.write('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.write(' '+keyTypeOptions("")+' '); + if (inputListSet[n].inputSyntax == 'keygen_request') { + document.write('(Encryption and Signing)</FONT>'); + } else if (inputListSet[n].inputSyntax == 'enc_keygen_request') { + document.write('(Encryption)</FONT>'); + encryptionKeyOnly = 'true'; + } else if (inputListSet[n].inputSyntax == 'sign_keygen_request') { + document.write('(Signing)</FONT>'); + signingKeyOnly = 'true'; + } + document.writeln('<input type=hidden name=cert_request value="">'); + } else { + document.writeln('<KEYGEN name=' + inputListSet[n].inputId + '>'); + } + } else if (inputListSet[n].inputSyntax == 'dual_keygen_request_type') { + keygen_request = 'true'; + if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('Not Supported<input type=hidden name=' + inputListSet[n].inputId + ' value=>'); + } else if (typeof(crypto.version) != "undefined") { + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">crmf</FONT><input type=hidden name=' + inputListSet[n].inputId + ' value=crmf>'); + } else { + document.writeln('Not Supported<input type=hidden name=' + inputListSet[n].inputId + ' value=>'); + } + } else if ((inputListSet[n].inputSyntax == 'keygen_request_type') || + (inputListSet[n].inputSyntax == 'enc_keygen_request_type') || + (inputListSet[n].inputSyntax == 'sign_keygen_request_type')) { + keygen_request = 'true'; + if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">pkcs10</FONT><input type=hidden name=' + inputListSet[n].inputId + ' value=pkcs10>'); + } else if (typeof(crypto.version) != "undefined") { + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">crmf</FONT><input type=hidden name=' + inputListSet[n].inputId + ' value=crmf>'); + } else { + document.writeln('keygen<input type=hidden name=' + inputListSet[n].inputId + ' value=keygen>'); + } + } + document.writeln('</td>'); + document.writeln('</tr>'); + } +} +document.writeln('</table>'); +document.writeln('<p>'); +document.writeln('<input type=hidden name=profileId value="' + + profileId + '">'); +document.writeln('<input type=hidden name=renewal value="' + + renewal + '">'); +document.writeln('<input type=hidden name=xmlOutput value="' + + xmlOutput + '">'); +} else { + document.write('Sorry, your request is not submitted. The error code is "' + errorReason + '".'); +} +</script> +<p> +<p> +<script language=javascript> +if (errorCode == 0) { + if (navigator.appName == "Microsoft Internet Explorer") { + if (typeof(keygen_request) != "undefined") { + document.writeln('<input type=submit value="Submit">'); + } else { + document.writeln('<input type=submit value="Submit">'); + } + } else if (typeof(crypto.version) != "undefined") { + document.writeln('<input type=submit value="Submit">'); + } else { + document.writeln('<input type=submit value="Submit">'); + } +} else { +} + +</script> +<SCRIPT LANGUAGE=VBS> +<!-- +FindProviders + +Function FindProviders + Dim i, j + Dim providers() + i = 0 + j = 1 + Dim el + Dim temp + Dim first + Dim firstE + Dim firstS + Dim TheForm + Set TheForm = document.ReqForm + On Error Resume Next + first = 0 + + Dim osVersion + Dim result + osVersion = GetOSVersion() + + If osVersion <> 6 Then 'Not Vista + Do While True + temp = "" + Enroll.providerType = j + temp = Enroll.enumProviders(i,0) + If Len(temp) = 0 Then + If j < 1 Then + j = j + 1 + i = 0 + Else + Exit Do + End If + Else + set el = document.createElement("OPTION") + el.text = temp + el.value = j + If temp = "Microsoft Base Cryptographic Provider v1.0" Then + first = i + End If + If temp = "Microsoft Strong Cryptographic Provider" Then + firstS = i + End If + If temp = "Microsoft Enhanced Cryptographic Provider v1.0" Then + firstE = i + End If + TheForm.cryptprovider.add(el) + If firstE > 0 Then + TheForm.cryptprovider.selectedIndex = firstE + ElseIf firstS > 0 Then + TheForm.cryptprovider.selectedIndex = firstS + ElseIf first > 0 Then + TheForm.cryptprovider.selectedIndex = first + Else + first = 1 + TheForm.cryptprovider.selectedIndex = 0 + End If + i = i + 1 + End If + Loop + Else 'Vista + Dim csps + Set csps = g_objClassFactory.CreateObject("X509Enrollment.CCspInformations") + If IsObject(csps) = False Then + result = MsgBox("Can't create CSP List Object! " & " Error: " & Err.number & " :" & Err.description,0,"") + Exit Function + + End If + csps.AddAvailableCsps() + 'result = MsgBox(csps.Count,0,"Number of CSPS") + + Dim curName + Dim csp + Dim selected + Dim selectedS + Dim selectedE + selected = 0 + selectedS = 0 + selectedE = 0 + For i = 0 to csps.Count-1 + + curName = csps.ItemByIndex(i).Name + If len(curName) > 0 Then + Set csp = document.createElement("OPTION") + csp.text = curName + csp.value = 1 + TheForm.cryptprovider.add(csp) + + If curName = "Microsoft Base Cryptographic Provider v1.0" Then + selected = i + End If + If curName = "Microsoft Strong Cryptographic Provider" Then + selectedS = i + End If + If curName = "Microsoft Enhanced Cryptographic Provider v1.0" Then + selectedE = i + End If + 'result = MsgBox(curName,0,"") + End If + Next + If selectedE > 0 Then + TheForm.cryptprovider.selectedIndex = selectedE + ElseIf selectedS > 0 Then + TheForm.cryptprovider.selectedIndex = selectedS + Else + TheForm.cryptprovider.selectedIndex = selected + End If + End If +End Function + +--> +</SCRIPT> +</form> +</html> |