diff options
Diffstat (limited to 'dogtag/ca-ui/shared/webapps/ca/agent/ca')
67 files changed, 16154 insertions, 0 deletions
diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/EnrollSuccess.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/EnrollSuccess.template new file mode 100644 index 000000000..a2f8e499d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/EnrollSuccess.template @@ -0,0 +1,219 @@ +<!-- --- 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> +<HEAD> +<CMS_TEMPLATE> + +<TITLE> +CS Enroll Request Success +</TITLE> + +</HEAD> + +<BODY bgcolor="white"> + + +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Enrollment Success +</font> + +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +<p> + +<SCRIPT type="text/javascript"> +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + + return sign + '0x' + '0' + absValue; +} + +document.writeln('Congratulations a certificate has been issued and ' + +'the administrator now has Certificate Manager Agent privileges.' + +'You can now go to '+ +'<a href="' + result.fixed.scheme + '://' + result.fixed.host + +':' + result.fixed.port+ '/agent/ca">' + 'the agent page</a>' + +' to process any pending requests.'); + +document.writeln('<P>'); +document.writeln('Issued Certificates: </font>'); +document.writeln('<P>'); +document.writeln('<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%">'); +document.writeln(' <tr> '); +document.writeln(' <td> </td>'); +document.writeln(' </tr>'); +document.writeln('</table>'); + +if (result.recordSet == null) { + document.writeln('<BLOCKQUOTE><B><PRE>'); + document.writeln('No further details provided.'); + document.writeln('Please consult your local administrator for assistance.'); + document.writeln('</BLOCKQUOTE></B></PRE>'); +} +else if (result.recordSet.length == 0) { + document.writeln('<BLOCKQUOTE><B><PRE>'); + document.writeln('0'); + document.writeln('No further details provided.'); + document.writeln('Please consult your local administrator for assistance.'); + document.writeln('</BLOCKQUOTE></B></PRE>'); +} else { + for (var i = 0; i < result.recordSet.length; i++) { + if (result.recordSet[i].serialNo != null) { + + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size="+1">Serial number '); + document.writeln(' 0x' + result.recordSet[i].serialNo); + document.writeln('</font><br>'); + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Certificate contents</font></td></tr></table>'); + + document.writeln('<pre>'); + document.write(result.recordSet[i].certPrettyPrint); + document.writeln('</pre>'); + document.writeln('<p>'); + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Base 64 encoded certificate</font></td></tr></table>'); + document.writeln('<p><pre>'); + document.writeln(result.recordSet[i].base64Cert); + document.writeln('</pre>'); + } + } + // document.writeln('</UL>'); + +} +document.writeln('</PRE></B></BLOCKQUOTE>'); +document.writeln('<P>'); + +// import certs if cartman. +if (navigator.appName == 'Netscape' && + typeof(crypto.version) != "undefined" && + typeof(result.fixed.crmfReqId) != "undefined") { + +// window.location = result.fixed.scheme + "://" + +// result.fixed.host + ":" + result.fixed.port + +// "/ca/getAdminCertBySerial?serialNumber=" + +// record.serialNo + +// "&importCert=true"; + + var errors = crypto.importUserCertificates(null, + result.fixed.cmmfResponse, false); + + if (errors != '') { + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln( + '<b>ERROR</b>Could not import the certificate into your browser '+ + 'using nickname '+result.fixed.certNickname+'.<p>'); + document.writeln( + 'The following error message was returned by the browser '+ + 'when importing the certificate:'); + document.writeln('</font>'); + document.writeln('<BLOCKQUOTE><PRE>'); + document.writeln(errors); + document.writeln('</PRE></BLOCKQUOTE>'); + } + else { + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln( + 'Your certificate was successfully imported to the browser '+ + 'with nickname '+result.fixed.certNickname); + document.writeln('</font>'); + } + + // crypto.importUserCertificates(result.fixed.certNickname, + // result.fixed.cmmfResponse, false); +} else if (navigator.appName == 'Netscape' && + typeof(crypto.version) == "undefined") { + // non Cartman + window.location = result.fixed.scheme + "://" + result.fixed.host + ":" ++ result.fixed.port + "/ca/getAdminCertBySerial?serialNumber=" + record.serialNo + "&importCert=true"; +} + +</SCRIPT> + +<OBJECT + classid="clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1" + CODEBASE="/xenroll.dll" + id=Enroll > +</OBJECT> + +<SCRIPT LANGUAGE=VBS> +<!-- +'======================================================== +' +' In VBS, there are several ways in which the event handler for the +' click event can be bound to the right control. We use one of the +' methods here, which indicates the binding by appending the +' event name to the control name with an intervening '_'. +' +'======================================================== + Sub ImportCertificate + + Dim pkcs7 + + On Error Resume Next + + 'Convert the cert to PKCS7 format + pkcs7 = result.header.pkcs7ChainBase64 + If (IsEmpty(pkcs7) OR theError <> 0) Then + ret = MsgBox("Could not convert certificate to PKCS7 format", 0, "Import Cert") + Exit Sub + End If + + 'Import the PKCS7 object + Enroll.DeleteRequestCert = FALSE + Enroll.WriteCertToCSP = true + Enroll.acceptPKCS7(pkcs7) + if err.number <> 0 then + Enroll.WriteCertToCSP = false + end if + err.clear + Enroll.acceptPKCS7(pkcs7) + if err.number = 0 then + MsgBox "Certificate has been successfully imported." + else + sz = "Error in acceptPKCS7. Error Number " & Hex(err.number) & "occurred." + MsgBox sz + end if + + Exit Sub + + End Sub + + ImportCertificate() + +</SCRIPT> + +</font> +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ImportCert.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ImportCert.template new file mode 100644 index 000000000..4b828ca6f --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ImportCert.template @@ -0,0 +1,191 @@ +<!-- --- 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> +<HEAD> +<CMS_TEMPLATE> +<TITLE> +CS Enroll Request Success +</TITLE> +</HEAD> + +<BODY bgcolor="white"> + +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Import Certificate(s) +</font> + +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> + + +<SCRIPT type="text/javascript"> +//<!-- + + +function navMajorVersion() +{ + return parseInt( + navigator.appVersion.substring(0, navigator.appVersion.indexOf("."))); +} + +document.writeln('<P>'); + +document.writeln('<P>'); + +if (result.recordSet == null || result.recordSet.length == 0) { + document.writeln('<B><PRE>'); + document.writeln('No more information on your certificate is provided.'); + document.writeln('Please consult your local administrator for assistance.'); + document.writeln('</B></PRE>'); +} else { + //document.writeln('<UL>'); + for (var i = 0; i < result.recordSet.length; i++) { + if (result.recordSet[i].serialNo != null) { + document.write('Serial number: '); + document.write('<B> 0x'+result.recordSet[i].serialNo+'</B>'); + document.writeln('<P>'); + document.write('Certificate in Base 64 encoded form:<BR>'); + document.write('<PRE>'); + document.writeln(result.recordSet[i].base64Cert); + document.write('</PRE>'); + document.writeln('<P>'); + document.write('Certificate Content: <BR>'); + document.write('<PRE>'); + document.writeln(result.recordSet[i].certPrettyPrint); + document.write('</PRE>'); + } + } + //document.writeln('</UL>'); +} +document.writeln('<P>'); + + +// NOTE: importUserCertificate should be done before this point but +// it creates a javascript error that clobbers the result variable set in +// the template. + +if (navigator.appName == 'Netscape' && (navMajorVersion() > 3) && + typeof(crypto.version) != "undefined" && + typeof(result.fixed.crmfReqId) != "undefined") { + //alert('certNickname is '+result.fixed.certNickname); + //alert(result.fixed.cmmfResponse); + var errors = crypto.importUserCertificates(null, + result.fixed.cmmfResponse, false); + // var errors = crypto.importUserCertificates(result.fixed.certNickname, + // result.fixed.cmmfResponse, false); + + // NOTE: Alpha-1 version of cartman always returns a non-empty string + // from importUserCertificates() so we can only always assume succcess. + // Uncomment the following line and add appropriate javascripts/messages + // for use with a later version of cartman. + // This is fixed in Alpha-3. For use with alpha-3 uncomment the lines + + if (errors != '') { + + document.writeln( + '<b>ERROR</b>Could not import the certificate into your browser '+ + 'using nickname '+result.fixed.certNickname+'.<p>'); + document.writeln( + 'The following error message was returned by the browser '+ + 'when importing the certificate:'); + document.writeln('<PRE>'); + document.writeln(errors); + document.writeln('</PRE>'); + } + else { + document.writeln( + 'Your certificate was successfully imported to the browser '+ + 'with nickname '+result.fixed.certNickname); + } + // removed this block for use with cartman Alpha-3. + //{ + //document.writeln( + //'NOTE: Although the certificate was issued, the browser '+ + //'may or may not have successfully imported the certificate. '+ + //'The following was returned by the browser when importing '+ + //'the certificate:'); + //document.writeln('<PRE>'); + //document.writeln(errors); + //document.writeln('</PRE>'); + //document.writeln( + //'If there was an error message you can import the certificate again '+ + //'by going to the end entity port and list the certificate by '+ + //'its serial number.'); + //} +} + +//--> +</SCRIPT> + +<OBJECT + classid="clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1" + CODEBASE="/xenroll.dll" + id=Enroll > +</OBJECT> + +<SCRIPT LANGUAGE=VBS> +<!-- +'======================================================== +' +' In VBS, there are several ways in which the event handler for the +' click event can be bound to the right control. We use one of the +' methods here, which indicates the binding by appending the +' event name to the control name with an intervening '_'. +' +'======================================================== + Sub ImportCertificate + + Dim pkcs7 + + On Error Resume Next + + 'Convert the cert to PKCS7 format + pkcs7 = result.header.pkcs7ChainBase64 + If (IsEmpty(pkcs7) OR theError <> 0) Then + ret = MsgBox("Could not convert certificate to PKCS7 format", 0, "Import Cert") + Exit Sub + End If + + 'Import the PKCS7 object + Enroll.DeleteRequestCert = FALSE + Enroll.WriteCertToCSP = true + Enroll.acceptPKCS7(pkcs7) + if err.number <> 0 then + Enroll.WriteCertToCSP = false + end if + err.clear + Enroll.acceptPKCS7(pkcs7) + if err.number = 0 then + MsgBox "Certificate has been successfully imported." + else + sz = "Error in acceptPKCS7. Error Number " & Hex(err.number) & "occurred." + MsgBox sz + end if + + Exit Sub + + End Sub + + ImportCertificate() +--> +</SCRIPT> + +</font> +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ListRequests.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ListRequests.html new file mode 100644 index 000000000..8043cbb3e --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ListRequests.html @@ -0,0 +1,112 @@ +<!-- --- 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> +<HEAD> +<TITLE>List Certificate Service Requests</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<SCRIPT type="text/javascript" SRC="/ca/agent/funcs.js"></SCRIPT> +<SCRIPT type="text/javascript" SRC="/ca/agent/helpfun.js"></SCRIPT> +<script type="text/javascript"> +<!-- +function doSubmit(form) +{ + if (form.lastEntryOnPage.value != "") { + if (isDecimalNumber(form.lastEntryOnPage.value) || + isHexNumber(form.lastEntryOnPage.value)) { + form.lastEntryOnPage.value = trim(form.lastEntryOnPage.value); + } else { + alert("You must specify a hexadecimal or decimal number " + + "for the starting request identifier."); + return; + } + } + form.submit(); +} +//--> +</script> +</HEAD> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size="+1" face="PrimaSans BT, Verdana, sans-serif">List Requests<br></font> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"> +Use this form to show a list of certificate requests.</font> +<table border="0" cellspacing="0" cellpadding="0" background="/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> + +<FORM ACTION="queryReq" METHOD=POST> + +<table border="0" cellspacing="2" cellpadding="2"> + <tr> + <td valign="top" align="right"> + <font size="-1" face="PrimaSans BT, Verdana, sans-serif">Request type:</font> + </td> + <td valign="top"> + <SELECT NAME="reqType"> + <OPTION SELECTED VALUE="enrollment">Show enrollment requests</OPTION> + <OPTION VALUE="renewal">Show renewal request</OPTION> + <OPTION VALUE="revocation">Show revocation requests</OPTION> + <OPTION VALUE="showAll">Show all requests</OPTION> + </SELECT> + </td> + </tr> + <tr> + <td valign="top" align="right"> + <font size="-1" face="PrimaSans BT, Verdana, sans-serif">Request status:</font> + </td> + <td valign="top"> + <SELECT NAME="reqState"> + <OPTION SELECTED VALUE="showWaiting">Show pending requests</OPTION> + <OPTION VALUE="showCancelled">Show canceled requests</OPTION> + <OPTION VALUE="showRejected">Show rejected requests</OPTION> + <OPTION VALUE="showCompleted">Show completed requests</OPTION> + <OPTION VALUE="showAll">Show all requests</OPTION> + </SELECT> + </td> + </tr> + <tr> + <td valign="top" align="right"> + <font size="-1" face="PrimaSans BT, Verdana, sans-serif">Starting request number:<br></font> + </td> + <td><INPUT TYPE="TEXT" NAME="lastEntryOnPage" VALUE="0" SIZE=10 MAXLENGTH=99></td> + </tr> +</table> + +<p> +<br> +<TABLE cellpadding="6" cellspacing="0" border="0" width="100%" BACKGROUND="/graphics/gray90.gif"> + <TR> + <TD align="right" bgcolor="#e5e5e5"> + <INPUT TYPE="button" VALUE="Find" width="72" onClick="doSubmit(this.form);"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">first</font> + <INPUT TYPE="hidden" NAME="direction" VALUE="first"> + <INPUT TYPE="TEXT" NAME="maxCount" SIZE=7 MAXLENGTH=99 VALUE="20"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">records</font> + <!-- <INPUT TYPE="button" VALUE="Help" width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Listing Certificate Requests')"> --> + </TD> + </TR> +</TABLE> + +</FORM> +</BODY> + +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileApprove.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileApprove.template new file mode 100644 index 000000000..6e0558df9 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileApprove.template @@ -0,0 +1,165 @@ +<!-- --- 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, sans-serif">Manage Certificate Profiles<br></font> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"> +Use this form to approve a certificate profile.</font> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<p> +<form name="ReqForm" method="post" action="profileApprove"> +<script type="text/javascript"> +if (errorCode == 0) { +document.writeln('<br>'); +document.writeln('<b><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate Profile Information:</font></b>'); +document.writeln('<table>'); +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('Certificate Profile Id:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileId); +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('Certificate Profile Name:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<a href="profileSelect?profileId=' + profileId + '">'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileName); +document.writeln('</font>'); +document.writeln('</a>'); +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('Description:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileDesc); +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('Approved:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileIsEnable); +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('Approved By:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +if (profileEnableBy != 'null') { +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileEnableBy); +document.writeln('</font>'); +} +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<input type=hidden name=profileId value="' + + profileId + '">'); +document.writeln('<p>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Policy Information:</b>'); +document.writeln('</font>'); +document.writeln('<p>'); +for (var i = 0; i < policySetListSet.length; i++) { +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('Policy Set: ' + policySetListSet[i].setId); +document.writeln('</font>'); +document.writeln('<p>'); +document.writeln('<table border=1 width=100%>'); +document.writeln('<tr>'); +document.writeln('<td width=10%>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>#</b>'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td width=45%>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Extensions / Fields</b>'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td width=45%>'); +document.writeln('<b>Constraints</b>'); +document.writeln('</td>'); +document.writeln('</tr>'); + for (var j = 0; j < policySetListSet[i].policySet.length; j++) { + document.writeln('<tr valign=top>'); + document.writeln('<td>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(policySetListSet[i].policySet[j].policyId); + document.writeln('</font>'); + document.writeln('</td>'); + document.writeln('<td>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(policySetListSet[i].policySet[j].defDesc); + document.writeln('</font>'); + document.writeln('<br>'); + document.writeln('</td>'); + document.writeln('<td>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(policySetListSet[i].policySet[j].conDesc); + document.writeln('</font>'); + document.writeln('</td>'); + document.writeln('</tr>'); + } // for +document.writeln('</table>'); +document.writeln('<p>'); +} // for +document.writeln('<p>'); +document.writeln('<p>'); +if (profileIsEnable == 'true') { + document.writeln('<input type=submit name=Disable value="Disable">'); +} else { + document.writeln('<input type=submit name=Approve value="Approve">'); +} +} else { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.write('Sorry, your operation is not successful. The error code is "' + errorReason + '".'); + document.writeln('</font>'); +} +</script> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileList.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileList.template new file mode 100644 index 000000000..1514ad754 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileList.template @@ -0,0 +1,75 @@ +<!-- --- 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, sans-serif">Manage Certificate Profiles<br></font> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"> +Use this form to approve a certificate profile.</font> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<p> +<script type="text/javascript"> +document.writeln('<table style="font-family: PrimaSans BT, Verdana, sans-serif; font-size: 75%;">'); +document.writeln('<tr style="font-weight: bold;">'); +document.writeln('<td width=40%>'); +document.writeln('Certificate Profile Name'); +document.writeln('</td>'); +document.writeln('<td width=40%>'); +document.writeln('Description'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('End User Certificate Profile'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('Approved'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('By'); +document.writeln('</td>'); +document.writeln('</tr>'); +for (var i = 0; i < recordSet.length; i++) { + document.writeln('<tr>'); + document.writeln('<td>'); + document.writeln('<a href="profileSelect?profileId=' + + recordSet[i].profileId + '">'); + document.writeln(recordSet[i].profileName); + document.writeln('</a>'); + document.writeln('</td>'); + document.writeln('<td>'); + document.writeln(recordSet[i].profileDesc); + document.writeln('</td>'); + document.writeln('<td>'); + document.writeln(recordSet[i].profileIsVisible); + document.writeln('</td>'); + document.writeln('<td>'); + document.writeln(recordSet[i].profileIsEnable); + document.writeln('</td>'); + document.writeln('<td>'); + if (recordSet[i].profileEnableBy != 'null') { + document.writeln(recordSet[i].profileEnableBy); + } + document.writeln('</td>'); + document.writeln('</tr>'); +} // for +document.writeln('</table>'); +</script> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileProcess.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileProcess.template new file mode 100644 index 000000000..70e7b2ae8 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileProcess.template @@ -0,0 +1,179 @@ +<!-- --- 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> + +<script type="text/javascript"> +function addEscapes(str) +{ + var outStr = str.replace(/</g, "<"); + outStr = outStr.replace(/>/g, ">"); + return outStr; +} + +document.writeln('<font size="+1" face="PrimaSans BT, Verdana, sans-serif">Request '); +if (typeof(requestId) != "undefined") { + document.writeln(requestId); +} +document.writeln('<br></font>'); +</script> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"></font> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<p> + +<script type="text/javascript"> +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Request Information:</b>'); +document.writeln('</FONT>'); +document.writeln('<table border=1 width=100%>'); +if (typeof(requestId) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td width=30%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Request ID:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<a href="profileReview?requestId=' + requestId + '">'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestId); +document.writeln('</FONT>'); +document.writeln('</a>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +if (typeof(requestType) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Request Type:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestType); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +if (typeof(requestStatus) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Request Status:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestStatus); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +if (typeof(profileId) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Certificate Profile Id:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileId); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +if (typeof(op) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Operation Requested:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(op); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +if (typeof(errorCode) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Error Code:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(errorCode); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +if (typeof(errorReason) != "undefined") { +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Error Reason:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(errorReason); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +} +document.writeln('</table>'); +document.writeln('<p>'); +document.writeln('</table>'); +if (typeof(requestStatus) != "undefined" && requestStatus == 'complete') { + document.writeln('<table width=100%>'); +for (var i = 0; i < outputListSet.length; i++) { + document.writeln('<tr valign=top>'); + document.writeln('<td>'); + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">' +); + document.writeln('<li>'); + document.writeln(outputListSet[i].outputName); + document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('<tr valign=top>'); + document.writeln('</tr>'); + document.writeln('<td>'); + if (outputListSet[i].outputSyntax == 'string') { + document.writeln(addEscapes(outputListSet[i].outputVal)); + } else if (outputListSet[i].outputSyntax == 'pretty_print') { + document.writeln('<pre>'); + document.writeln(addEscapes(outputListSet[i].outputVal)); + document.writeln('</pre>'); + } + document.writeln('</td>'); + document.writeln('</tr>'); +} + document.writeln('</table>'); +} +</script> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileReview.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileReview.template new file mode 100644 index 000000000..4e27f5245 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileReview.template @@ -0,0 +1,404 @@ +<!-- --- 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> +<style> +TABLE { border-spacing: 0 0; } +</style> + +<script type="text/javascript"> +function escapeValue(value) +{ + return value.replace(/"/g,'"'); +} + +function addEscapes(str) +{ + var outStr = str.replace(/</g, "<"); + outStr = outStr.replace(/>/g, ">"); + return outStr; +} + +document.writeln('<font size="+1" face="PrimaSans BT, Verdana, sans-serif">Request '); +document.writeln(requestId); +document.writeln('<br></font>'); +</script> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"></font> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" +width="100%"> + <tr> + <td> </td> + </tr> +</table> +<p> +<script type="text/javascript"> +if (requestStatus == 'pending') { + document.writeln('<form method=post action="profileProcess">'); + document.writeln('<input type=hidden name=requestId value=' + requestId + '>'); +} +document.writeln('<p>'); +document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Request Information</FONT></TD></TR></TABLE>'); +document.writeln('<table border=1 width=100%>'); +document.writeln('<tr>'); +document.writeln('<td width=20%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Request ID:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestId); +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('<b>Request Type:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestType); +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('<b>Request Status:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestStatus); +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('<b>Requestor Host:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileRemoteHost); +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('<b>Assigned To:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestOwner); +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('<b>Creation Time:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestCreationTime); +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('<b>Modification Time:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(requestModificationTime); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<p>'); +document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate Profile Information</FONT></TD></TR></TABLE>'); +document.writeln('<table border=1 width=100%>'); +document.writeln('<tr>'); +document.writeln('<td width=20%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Certificate Profile Id:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileId); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('<tr>'); +document.writeln('<td width=20%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Approved By:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileApprovedBy); +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('<b>Certificate Profile Name:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileName); +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('<b>Certificate Profile Description:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileDesc); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<p>'); +if (requestStatus != 'pending') { + document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Additional Notes</FONT></TD></TR></TABLE>'); + document.writeln('<table width=100% border=1>'); + document.writeln('<tr>'); + document.writeln('<td>'); + document.writeln(requestNotes); + document.writeln('</td>'); + document.writeln('</tr>'); + document.writeln('</table>'); + document.writeln('<p>'); +} +if (profileIsVisible == 'true') { +document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate Profile Inputs</FONT></TD></TR></TABLE>'); +document.writeln('<table border=1 width=100%>'); +document.writeln('<tr>'); +document.writeln('<td width=20%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Id</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td width=40%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Input Names</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Input Values</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +for (var i = 0; i < inputListSet.length; i++) { + document.writeln('<tr>'); + document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(inputListSet[i].inputId); +document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(inputListSet[i].inputName); +document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(addEscapes(inputListSet[i].inputVal)); +document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('</tr>'); +} +document.writeln('</table>'); +document.writeln('<p>'); +} +if (requestStatus == 'complete') { +document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate Profile Outputs</FONT></TD></TR></TABLE>'); +for (var i = 0; i < outputListSet.length; i++) { + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">' +); + document.writeln('<li>'); + document.writeln(outputListSet[i].outputName); + document.writeln('</FONT>'); + document.writeln('<p>'); + if (outputListSet[i].outputSyntax == 'string') { + document.writeln(outputListSet[i].outputVal); + } else if (outputListSet[i].outputSyntax == 'pretty_print') { + document.writeln('<pre>'); + document.writeln(outputListSet[i].outputVal); + document.writeln('</pre>'); + } else if (outputListSet[i].outputSyntax == 'der_b64') { + document.writeln('<pre>'); + document.writeln('-----BEGIN CERTIFICATE-----'); + document.writeln(outputListSet[i].outputVal); + document.writeln('-----END CERTIFICATE-----'); + document.writeln('</pre>'); + } + document.writeln('</p>'); +} +} +if (requestStatus == 'pending') { +document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Policy Information</FONT></TD></TR></TABLE>'); +document.writeln('<table>'); +document.writeln('<tr>'); +document.writeln('<td width=20%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Certificate Profile Set Id:</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileSetId); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<table border=1 width=100%>'); +document.writeln('<tr>'); +document.writeln('<td width=10%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>#</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td width=45%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Extensions / Fields</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('<td width=45%>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Constraints</b>'); +document.writeln('</FONT>'); +document.writeln('</td>'); +document.writeln('</tr>'); +for (var i = 0; i < recordSet.length; i++) { + document.writeln('<tr valign=top>'); + document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(recordSet[i].policyId); +document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(recordSet[i].defDesc); +document.writeln('</FONT>'); + document.writeln('<p>'); + document.writeln('<table width=100%>'); + for (var j = 0; j < recordSet[i].defListSet.length; j++) { + document.writeln('<tr valign=top>'); + if (typeof(recordSet[i].defListSet[j].defName) != 'undefined') { + document.writeln('<td width=30%><i>'); + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(recordSet[i].defListSet[j].defName + ':'); + document.writeln('</FONT>'); + document.writeln('</i></td>'); + document.writeln('<td width=70%>'); + if (recordSet[i].defListSet[j].defConstraint == 'readonly') { + document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(recordSet[i].defListSet[j].defVal); + document.writeln('</FONT>'); + } else { + if (recordSet[i].defListSet[j].defSyntax == 'string') { + document.writeln('<input size=32 type=text name="' + recordSet[i].defListSet[j].defId + '" value="' + escapeValue(recordSet[i].defListSet[j].defVal) + '">'); + } else if (recordSet[i].defListSet[j].defSyntax == 'string_list') { + document.writeln('<textarea cols=40 rows=5 name="' + recordSet[i].defListSet[j].defId + '">' + recordSet[i].defListSet[j].defVal + '</textarea>'); + } else if (recordSet[i].defListSet[j].defSyntax == 'integer') { + document.writeln('<input size=6 type=text name="' + recordSet[i].defListSet[j].defId + '" value="' + recordSet[i].defListSet[j].defVal + '">'); + } else if (recordSet[i].defListSet[j].defSyntax == 'image_url') { + document.writeln('<img border=0 src="' + recordSet[i].defListSet[j].defVal + '">'); + document.writeln('<input type=hidden name="' + recordSet[i].defListSet[j].defId + '" value="' + recordSet[i].defListSet[j].defVal + '">'); + } else if (recordSet[i].defListSet[j].defSyntax == 'choice') { + document.writeln('<select name="' + recordSet[i].defListSet[j].defId + '">'); + var c = recordSet[i].defListSet[j].defConstraint.split(','); + for(var k = 0; k < c.length; k++) { + if (recordSet[i].defListSet[j].defVal == c[k]) { + document.writeln('<option selected value=' + c[k] + '>'); + } else { + document.writeln('<option value=' + c[k] + '>'); + } + document.writeln(c[k]); + document.writeln('</option>'); + } + + document.writeln('</select>'); + } else if (recordSet[i].defListSet[j].defSyntax == 'boolean') { + document.writeln('<select name="' + recordSet[i].defListSet[j].defId + '">'); + if (recordSet[i].defListSet[j].defVal == 'true') { + document.writeln('<option selected value=true>true</option>'); + document.writeln('<option value=false>false</option>'); + } else { + document.writeln('<option value=true>true</option>'); + document.writeln('<option selected value=false>false</option>'); + } + document.writeln('</select>'); + } + } + document.writeln('</td>'); + } + document.writeln('</tr>'); + } + document.writeln('</table>'); + document.writeln('</td>'); + document.writeln('<td>'); +document.writeln('<FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(recordSet[i].conDesc); +document.writeln('</FONT>'); + document.writeln('</td>'); + document.writeln('</tr>'); +} // for +document.writeln('</table>'); +document.writeln('<p>'); +document.writeln('<TABLE width=100%><TR><TD valign="top" align="left" colspan="3" bgcolor="#e5e5e5"><FONT size="-1" face="PrimaSans BT, Verdana, sans-serif">Additional Notes</FONT></TD></TR></TABLE>'); +document.writeln('<textarea cols=40 rows=5 name="requestNotes">' + requestNotes + '</textarea>'); +document.writeln('<p>'); + document.writeln('<SELECT NAME="op">'); + document.writeln('<OPTION VALUE="update">Update request</OPTION>'); + document.writeln('<OPTION VALUE="validate">Validate request</OPTION>'); + document.writeln('<OPTION SELECTED VALUE="approve">Approve request</OPTION>'); + document.writeln('<OPTION VALUE="reject">Reject request</OPTION>'); + document.writeln('<OPTION VALUE="cancel">Cancel request</OPTION>'); + document.writeln('<OPTION VALUE="assign">Assign request</OPTION>'); + document.writeln('<OPTION VALUE="unassign">Unassign request</OPTION>'); + document.writeln('</SELECT>'); +if (typeof(nonce) != "undefined") { + document.writeln("<INPUT TYPE=hidden name=nonce value=\"" + nonce +"\">"); +} +document.writeln('<input type=submit name=submit value=submit>'); +document.writeln('</form>'); +} // if +</script> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileSelect.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileSelect.template new file mode 100644 index 000000000..4c7139d69 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/ProfileSelect.template @@ -0,0 +1,175 @@ +<!-- --- 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, sans-serif">Approve Certificate Profile<br></font> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"> +Use this form to approve a certificate profile.</font> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<p> +<form name="ReqForm" method="post" action="profileApprove"> +<script type="text/javascript"> +document.writeln('<br>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Certificate Profile Information:</b>'); +document.writeln('</font>'); +document.writeln('<table>'); +document.writeln('<tr>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('Certificate Profile Id:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileId); +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('Certificate Profile Name:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileName); +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('Description:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileDesc); +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('End User Certificate Profile:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileIsVisible); +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('Approved:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileIsEnable); +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('Approved By:'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td>'); +if (profileEnableBy != 'null') { +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln(profileEnableBy); +document.writeln('</font>'); +} +document.writeln('</td>'); +document.writeln('</tr>'); +document.writeln('</table>'); +document.writeln('<input type=hidden name=profileId value="' + + profileId + '">'); +document.writeln('<p>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Policy Information:</b>'); +document.writeln('</font>'); +document.writeln('<p>'); +for (var i = 0; i < policySetListSet.length; i++) { +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('Policy Set: ' + policySetListSet[i].setId); +document.writeln('</font>'); +document.writeln('<p>'); +document.writeln('<table border=1 width=100%>'); +document.writeln('<tr>'); +document.writeln('<td width=10%>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>#</b>'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td width=45%>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Extensions / Fields</b>'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('<td width=45%>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('<b>Constraints</b>'); +document.writeln('</font>'); +document.writeln('</td>'); +document.writeln('</tr>'); + for (var j = 0; j < policySetListSet[i].policySet.length; j++) { + document.writeln('<tr valign=top>'); + document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(policySetListSet[i].policySet[j].policyId); +document.writeln('</font>'); + document.writeln('</td>'); + document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(policySetListSet[i].policySet[j].defDesc); +document.writeln('</font>'); + document.writeln('<br>'); + document.writeln('</td>'); + document.writeln('<td>'); +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(policySetListSet[i].policySet[j].conDesc); +document.writeln('</font>'); + document.writeln('</td>'); + document.writeln('</tr>'); + } // for +document.writeln('</table>'); +document.writeln('<p>'); +} // for +document.writeln('<p>'); +document.writeln('<p>'); +if (profileIsEnable == 'true') { + document.writeln('<input type=submit name=Disable value="Disable">'); +} else { +document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<input type=submit name=Approve value="Approve">'); +document.writeln('</font>'); +} +</script> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchCert.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchCert.html new file mode 100644 index 000000000..27350286d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchCert.html @@ -0,0 +1,1790 @@ +<!-- --- 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> +<head> + <title>Search for Certificates</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">Search for Certificates +</font><br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to compose queries based on properties of the certificate. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Each section below filters the search. Check the box at the top of the +section if you want to use that filter in your search, then complete the fields. +Leave a box unchecked to ignore that filter. You can click more than one box +to get a combination of search criteria. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Serial Number Range</font></b> +<FORM NAME="serialNumberRangeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates that fall within the following range:</font> +</td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Lowest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialFrom" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Highest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialTo" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> +</table> +</FORM> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter a range of certificate serial numbers in hexadecimal form +(starting with 0x, as in the certificate list), or in decimal form. +</font> + +<SCRIPT type="text/javascript"> +//<!-- +function serialNumberRangeCritInUse() +{ + if (document.serialNumberRangeCritForm.inUse.checked) { + document.queryForm.serialNumberRangeInUse.value = 'on'; + } + document.queryForm.serialFrom.value = document.serialNumberRangeCritForm.serialFrom.value; + document.queryForm.serialTo.value = document.serialNumberRangeCritForm.serialTo.value; + return document.serialNumberRangeCritForm.inUse.checked; +} + +function serialNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + var canonicalFrom = "", canonicalTo = ""; + + if (document.serialNumberRangeCritForm.serialFrom.value != "") { + canonicalFrom = + trim(document.serialNumberRangeCritForm.serialFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom,16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range."); + return null; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId>=" + canonicalFrom + ")"; + } + + if (document.serialNumberRangeCritForm.serialTo.value != "") { + canonicalTo = + trim(document.serialNumberRangeCritForm.serialTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo,16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range."); + return null; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId<=" + canonicalTo + ")"; + } + + /* Can not do this using parseInt */ + /* + if (document.serialNumberRangeCritForm.serialFrom.value != "" && + document.serialNumberRangeCritForm.serialTo.value != "") { + if (parseInt(canonicalFrom) > parseInt(canonicalTo)) { + alert("The low end of the range is larger than the high end."); + return null; + } + } + */ + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Status</font></b> +<FORM NAME="statusCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates that are +<select NAME="status"> +<option value="VALID">VALID +<option value="INVALID">INVALID +<option value="REVOKED">REVOKED +<option value="EXPIRED">EXPIRED +<option value="REVOKED_EXPIRED">REVOKED & EXPIRED +</select> +</font> +</td> +</tr> +</table> +</FORM> +<SCRIPT type="text/javascript"> +//<!-- +function statusCritInUse() +{ + if (document.statusCritForm.inUse.checked) { + document.queryForm.statusInUse.value = 'on'; + } + document.queryForm.status.value = document.statusCritForm.status.value; + return document.statusCritForm.inUse.checked; +} +function statusRangeCrit() +{ + return "(certStatus=" + document.statusCritForm.status.options[document.statusCritForm.status.selectedIndex].value + ")"; +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subject Name</font></b> +<FORM NAME="subjectCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates with a subject name matching the following: +</font> +</td> +</tr> + +<tr align="left"> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Email address:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="eMail" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Common name:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="commonName" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">User ID:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="userID" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization unit:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="orgUnit" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="org" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Locality:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="locality" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="state" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Country:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="country" VALUE="" SIZE=2 MAXLENGTH=2></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Match Method:</font> +</td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" NAME="match" VALUE="exact">Exact</font> +</td> +<tr> +<td> </td> +<td align="right"> </td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" CHECKED NAME="match" VALUE="partial">Partial</font> +</td> +</tr> +</table> +</FORM> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter values for the fields you want to have in your search criteria. +Leave other fields blank. +<br><br> +Exact match method finds certificates for subjects whose name consists +<b>exactly</b> of the components that you have filled in above, and contains +none of the components you have left blank. Pattern matching wildcard +values cannot be used in this search. +<br><br> +Partial match method finds certificates for subjects whose name consists +<b>in part</b> of the components you have specified above, and in addition +may contain arbitrary values for the other components you have left blank above. +Pattern matching wildcard values can be used in this search. +</font> + +<SCRIPT type="text/javascript"> +<!-- +function subjectCritInUse() +{ + if (document.subjectCritForm.inUse.checked) { + document.queryForm.subjectInUse.value = 'on'; + } + document.queryForm.eMail.value = document.subjectCritForm.eMail.value; document.queryForm.commonName.value = document.subjectCritForm.commonName.value; + document.queryForm.userID.value = document.subjectCritForm.userID.value; + document.queryForm.orgUnit.value = document.subjectCritForm.orgUnit.value; + document.queryForm.org.value = document.subjectCritForm.org.value; document.queryForm.locality.value = document.subjectCritForm.locality.value; document.queryForm.state.value = document.subjectCritForm.state.value; + document.queryForm.country.value = document.subjectCritForm.country.value; + if (document.subjectCritForm.match[1].checked) { + document.queryForm.match.value = 'partial'; + } else { + document.queryForm.match.value = 'exact'; + } + return document.subjectCritForm.inUse.checked; +} +function subjectCrit() +{ + return computeNameFilter(document.subjectCritForm); +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=2 CELLPADDING=2 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Revocation Information</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr align="left"> +<FORM NAME="revokedByCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates revoked by:</font> +<INPUT TYPE="text" NAME="revokedBy" SIZE=10> +</td> +</FORM> +</tr> + +<tr> +<FORM NAME="revokedOnCritForm"> +<td> +<INPUT TYPE="CHECKBOX" NAME="inUse"> +</td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates revoked during the period:</font> +</td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign="top" align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="revokedOnFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="revokedOnTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="revocationReasonCritForm"> +<td valign="top" align="left"> +<INPUT TYPE="CHECKBOX" NAME="inUse"> +</td> +</FORM> +<td valign="top" align="left"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates revoked from the reason:</font> +</td> +<FORM NAME="revocationReasonForm"> +<td valign="top" nowrap> +<SELECT NAME="revocationReason" size=4 multiple> +<OPTION VALUE=0>Unspecified +<OPTION VALUE=1>Key compromised +<OPTION VALUE=2>CA key compromised +<OPTION VALUE=3>Affiliation changed +<OPTION VALUE=4>Certificate superceded +<OPTION VALUE=5>Cessation of operation +<OPTION VALUE=6>Certificate is on hold +<OPTION VALUE=8>Remove certificate from CRL +<OPTION VALUE=9>Privilege withdrawn +<OPTION VALUE=10>AA key compromised +</SELECT> +</td> +</FORM> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function revokedByCritInUse() +{ + if (document.revokedByCritForm.inUse.checked) { + document.queryForm.revokedByInUse.value = 'on'; + } + document.queryForm.revokedBy.value = document.revokedByCritForm.revokedBy.value; + return document.revokedByCritForm.inUse.checked; +} +function revokedByCrit() +{ + if (document.revokedByCritForm.revokedBy.value.length == 0) { + alert("User id in 'revoked by' filter is empty"); + return null; + } + return "(certRevokedBy="+ document.revokedByCritForm.revokedBy.value +")"; +} + +function revokedOnCritInUse() +{ + if (document.revokedOnCritForm.inUse.checked) { + document.queryForm.revokedOnInUse.value = 'on'; + } + d = convertToTime(document.revokedOnFrom); + if (d != null) { + document.queryForm.revokedOnFrom.value = d; + } + d = convertToTime(document.revokedOnTo); + if (d != null) { + document.queryForm.revokedOnTo.value = d; + } + return document.revokedOnCritForm.inUse.checked; +} +function revokedOnCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.revokedOnFrom)) { + from = convertDate(document.revokedOnFrom, + "Start date for revocation time range criterion"); + if (from == null) return null; + crit[next++] = "(certRevokedOn>=" + from + ")"; + } + if (!dateIsEmpty(document.revokedOnTo)) { + to = convertDate(document.revokedOnTo, + "End date for revocation time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(certRevokedOn<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for revocation time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Revocation time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} + +function revocationReasonCritInUse() +{ + if (document.revocationReasonCritForm.inUse.checked) { + document.queryForm.revocationReasonInUse.value = 'on'; + } + var values = new Array(); + var next = 0; for (var i = 0; i < document.revocationReasonForm.revocationReason.length; i++) { if (document.revocationReasonForm.revocationReason.options[i].selected == true) { + values[next++] = i; + } + } + document.queryForm.revocationReason.value = values; + return document.revocationReasonCritForm.inUse.checked; +} +function revocationReasonCrit() +{ + var crit = new Array(); + var sum = null; + var next = 0; + + for (var i = 0; i < document.revocationReasonForm.revocationReason.length; i++) { + if (document.revocationReasonForm.revocationReason.options[i].selected == true) { + crit[next++] = "(x509cert.certRevoInfo="+i+")"; + } + } + sum = nsjoin(crit,""); + if (next > 1) { + sum = "(|" + sum + ")" + } else if (next < 1) { + alert("You must select at least one revocation reason."); + return null; + } + return sum; +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Issuing Information</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="issuedByCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates issued by:</font> +<INPUT TYPE="text" NAME="issuedBy" SIZE=10></td> +</FORM> +</tr> + +<tr> +<FORM NAME="profileCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates issued according to the profile:</font> +<INPUT TYPE="text" NAME="profile" SIZE=10></td> +</FORM> +</tr> + +<tr> +<FORM NAME="issuedOnCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates issued during the period:</font></td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function issuedByCritInUse() +{ + if (document.issuedByCritForm.inUse.checked) { + document.queryForm.issuedByInUse.value = 'on'; + } + document.queryForm.issuedBy.value = document.issuedByCritForm.issuedBy.value; + return document.issuedByCritForm.inUse.checked; +} +function issuedByCrit() +{ + if (document.issuedByCritForm.issuedBy.value.length == 0) { + alert("User id in 'issued by' filter is empty"); + return null; + } + return "(certIssuedBy="+ document.issuedByCritForm.issuedBy.value +")"; +} + + +function profileCritInUse() +{ + if (document.profileCritForm.inUse.checked) { + document.queryForm.profileInUse.value = 'on'; + } + document.queryForm.profile.value = document.profileCritForm.profile.value; + return document.profileCritForm.inUse.checked; +} +function profileCrit() +{ + if (document.profileCritForm.profile.value.length == 0) { + alert("Profile id in 'issued according to the profile' filter is empty"); + return null; + } + return "(certMetaInfo=profileId:"+ document.profileCritForm.profile.value +")"; +} + + +function issuedOnCritInUse() +{ + if (document.issuedOnCritForm.inUse.checked) { + document.queryForm.issuedOnInUse.value = 'on'; + } + d = convertToTime(document.issuedOnFrom); + if (d != null) { + document.queryForm.issuedOnFrom.value = d; + } + d = convertToTime(document.issuedOnTo); + if (d != null) { + document.queryForm.issuedOnTo.value = d; + } + return document.issuedOnCritForm.inUse.checked; +} +function issuedOnCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.issuedOnFrom)) { + from = convertDate(document.issuedOnFrom, + "Start date for issue time range criterion"); + if (from == null) return null; + crit[next++] = "(certCreateTime>=" + from + ")"; + } + if (!dateIsEmpty(document.issuedOnTo)) { + to = convertDate(document.issuedOnTo, + "End date for issue time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(certCreateTime<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for issue time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Issue time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Dates of Validity</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotBeforeCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates effective during the period:</font></td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotBeforeCritInUse() +{ + if (document.validNotBeforeCritForm.inUse.checked) { + document.queryForm.validNotBeforeInUse.value = 'on'; + } + d = convertToTime(document.validNotBeforeFrom); + if (d != null) { + document.queryForm.validNotBeforeFrom.value = d; + } + d = convertToTime(document.validNotBeforeTo); + if (d != null) { + document.queryForm.validNotBeforeTo.value = d; + } + return document.validNotBeforeCritForm.inUse.checked; +} + +function validNotBeforeCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotBeforeFrom)) { + from = convertDate(document.validNotBeforeFrom, + "Start date for the validity beginning time range criterion"); + if (from == null) return null; + crit[next++] = "(x509Cert.notBefore>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotBeforeTo)) { + to = convertDate(document.validNotBeforeTo, + "End date for the validity beginning time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(x509Cert.notBefore<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for validity beginning range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Validity beginning time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotAfterCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates expired during the period:</font></td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotAfterCritInUse() +{ + if (document.validNotAfterCritForm.inUse.checked) { + document.queryForm.validNotAfterInUse.value = 'on'; + } + d = convertToTime(document.validNotAfterFrom); + if (d != null) { + document.queryForm.validNotAfterFrom.value = d; + } + d = convertToTime(document.validNotAfterTo); + if (d != null) { + document.queryForm.validNotAfterTo.value = d; + } + return document.validNotAfterCritForm.inUse.checked; +} + +function validNotAfterCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotAfterFrom)) { + from = convertDate(document.validNotAfterFrom, + "Start date for the expiration time range criterion"); + if (from == null) return null; + crit[next++] = "(x509cert.notAfter>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotAfterTo)) { + to = convertDate(document.validNotAfterTo, + "End date for the expiration time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(x509cert.notAfter<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for expiration time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Expiration time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<FORM NAME="validityLengthCritForm"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates with a validity period:</font></td> +</tr> +<tr> +<td> </td> +<td> +<SELECT NAME="validityOp"> +<OPTION VALUE="<="> not greater +<OPTION VALUE=">="> not less +</SELECT> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">than</font> +<INPUT NAME="count" TYPE="text" MAXSIZE=2 SIZE=2> +<SELECT NAME="unit"> +<OPTION VALUE="86400000">Day(s)</OPTION> +<OPTION VALUE="604800000">Week(s)</OPTION> +<OPTION SELECTED VALUE="2592000000">Month(s)</OPTION> +<OPTION VALUE="31536000000">Year(s)</OPTION> +</SELECT> +</td></tr> +</FORM> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validityLengthCritInUse() +{ + if (document.validityLengthCritForm.inUse.checked) { + document.queryForm.validityLengthInUse.value = 'on'; + } + document.queryForm.validityOp.value = document.validityLengthCritForm.validityOp.value; + document.queryForm.count.value = document.validityLengthCritForm.count.value; + document.queryForm.unit.value = document.validityLengthCritForm.unit.value; + return document.validityLengthCritForm.inUse.checked; +} + +function validityLengthCrit() +{ + with(document.validityLengthCritForm) { + if(!isNumber(count.value,10)) { + alert("Invalid number specified in validity length criterion"); + return null; + } + + return "(x509cert.duration" + + validityOp.options[validityOp.selectedIndex].value + + (count.value * unit.options[unit.selectedIndex].value) +")"; + } +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Basic Constraints</b></font> + +<FORM NAME="basicConstraintsForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show CA certificates (based on Basic Constraints extension).</font> +</td> +</tr> +</table> +</FORM> + +<SCRIPT type="text/javascript"> +<!-- +function basicConstraintsInUse() +{ + if (document.basicConstraintsForm.inUse.checked) { + document.queryForm.basicConstraintsInUse.value = 'on'; + } + return document.basicConstraintsForm.inUse.checked; +} + +function basicConstraints() +{ + var result = '(x509cert.BasicConstraints.isCA=on)'; + + return result; +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Type</b></font> + +<FORM NAME="certTypeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates of the following types:</font> +</td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">SSL client:</font> +</td> +<td> +<SELECT NAME="SSLClient"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">SSL server:</font> +</td> +<td> +<SELECT NAME="SSLServer"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Secure email:</font> +</td><td> +<SELECT NAME="SecureEmail"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subordinate SSL CA:</font> +</td><td> +<SELECT NAME="SubordinateSSLCA"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subordinate email CA:</font> +</td><td> +<SELECT NAME="SubordinateEmailCA"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +</table> +</FORM> + +<SCRIPT type="text/javascript"> +<!-- +function certTypeCritInUse() +{ + if (document.certTypeCritForm.inUse.checked) { + document.queryForm.certTypeInUse.value = 'on'; + } + document.queryForm.SSLClient.value = document.certTypeCritForm.SSLClient.value; + document.queryForm.SSLServer.value = document.certTypeCritForm.SSLServer.value; + document.queryForm.SecureEmail.value = document.certTypeCritForm.SecureEmail.value; + document.queryForm.SubordinateSSLCA.value = document.certTypeCritForm.SubordinateSSLCA.value; + document.queryForm.SubordinateEmailCA.value = document.certTypeCritForm.SubordinateEmailCA.value; + return document.certTypeCritForm.inUse.checked; +} + +function certTypeCrit() +{ + var result = ''; + var count = 0; + + for (var i = 1; i < document.certTypeCritForm.length; i++) { + var sel = document.certTypeCritForm[i].selectedIndex; + if (sel > 0) { + count++; + result += '(x509cert.nsExtension.' + + document.certTypeCritForm[i].name + '='+ + document.certTypeCritForm[i].options[sel].value + ')'; + } + } + if (count == 0) { + alert("At least one of the certificate types must be selected"); + return null; + } + + return result; +} +//--> +</SCRIPT> + + +<br> +<SCRIPT type="text/javascript"> +<!-- +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + if (serialNumberRangeCritInUse()) { + if ((andFilter[critCount++] = serialNumberRangeCrit()) == null) + return; + } + if (statusCritInUse()) { + if ((andFilter[critCount++] = statusRangeCrit()) == null) + return; + } + if (subjectCritInUse()) { + if ((andFilter[critCount++] = subjectCrit()) == null) + return; + } + + if (revokedOnCritInUse()) { + if ((andFilter[critCount++] = revokedOnCrit()) == null) + return; + } + if (revokedByCritInUse()) { + if ((andFilter[critCount++] = revokedByCrit()) == null) + return; + } + if (revocationReasonCritInUse()) { + if ((andFilter[critCount++] = revocationReasonCrit()) == null) + return; + } + if (issuedOnCritInUse()) { + if ((andFilter[critCount++] = issuedOnCrit()) == null) + return; + } + if (issuedByCritInUse()) { + if ((andFilter[critCount++] = issuedByCrit()) == null) + return; + } + if (profileCritInUse()) { + if ((andFilter[critCount++] = profileCrit()) == null) + return; + } + if (validNotBeforeCritInUse()) { + if ((andFilter[critCount++] = validNotBeforeCrit()) == null) + return; + } + if (validNotAfterCritInUse()) { + if ((andFilter[critCount++] = validNotAfterCrit()) == null) + return; + } + if (validityLengthCritInUse()) { + if ((andFilter[critCount++] = validityLengthCrit()) == null) + return; + } + if (certTypeCritInUse()) { + if ((andFilter[critCount++] = certTypeCrit()) == null) + return; + } + if (basicConstraintsInUse()) { + if ((andFilter[critCount++] = basicConstraints()) == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } + + var f = nsjoin(andFilter,""); + if (f.length == 0) f = "(certRecordId=*)"; + form.queryCertFilter.value = "(&"+f+")"; + + form.op.value = "srchCerts"; + + form.submit(); +} +//--> +</SCRIPT> + + +<FORM NAME="queryForm" ACTION="srchCerts" METHOD=POST> +<INPUT TYPE="HIDDEN" NAME="op" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="queryCertFilter" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="serialNumberRangeInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="serialFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="serialTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="statusInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="status" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="subjectInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="eMail" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="commonName" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="userID" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="orgUnit" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="org" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="locality" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="state" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="country" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="match" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokedByInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokedBy" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokedOnInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokedOnFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokedOnTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revocationReasonInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revocationReason" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="profileInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="profile" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedByInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedBy" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedOnInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedOnFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedOnTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="basicConstraintsInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotBeforeInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotBeforeFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotBeforeTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotAfterInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotAfterFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotAfterTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validityLengthInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validityOp" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="count" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="unit" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="certTypeInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="SubordinateEmailCA" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="SubordinateSSLCA" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="SecureEmail" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="SSLClient" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="SSLServer" VALUE=""> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Limits</b></font> +<table border="0" cellspacing="2" cellpadding="2"> + <tr> + <td align="right"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Maximum results:</font> + </td> + <td> + <INPUT TYPE="TEXT" NAME="maxResults" VALUE=10 SIZE=5 MAXLENGTH=10> + </td> + </tr> + <tr> + <td align="right"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Time limit (in seconds):</font> + </td> + <td> + <INPUT TYPE="TEXT" NAME="timeLimit" VALUE=5 SIZE=5 MAXLENGTH=10> + </td> + </tr> +</table> +<br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <INPUT TYPE="button" VALUE="Find" width="72" onClick='doSubmit(queryForm)'> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Advanced Certificate Search')"> --> + </td> + </tr> +</table> + +</form> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchRequests.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchRequests.html new file mode 100644 index 000000000..8565b1b90 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchRequests.html @@ -0,0 +1,384 @@ +<!-- --- 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> +<head> + <title>Search for Requests</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">Search for Requests +</font><br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to compose queries based on properties of the request. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Each section below filters the search. Check the box at the top of the +section if you want to use that filter in your search, then complete the fields. +Leave a box unchecked to ignore that filter. You can click more than one box +to get a combination of search criteria. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Request ID Range</font></b> +<FORM NAME="requestNumberRangeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show requests that fall within the following range:</font> +</td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Lowest request id:</font></td> +<td><INPUT TYPE="TEXT" NAME="requestFrom" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Highest request id:</font></td> +<td><INPUT TYPE="TEXT" NAME="requestTo" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> +</table> +</FORM> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter a range of request IDs in decimal form. +</font> + +<SCRIPT type="text/javascript"> +//<!-- +function requestNumberRangeCritInUse() +{ + return document.requestNumberRangeCritForm.inUse.checked; +} + +function requestNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + var canonicalFrom = "", canonicalTo = ""; + + if (document.requestNumberRangeCritForm.requestFrom.value != "") { + canonicalFrom = + trim(document.requestNumberRangeCritForm.requestFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + alert("You must specify a decimal value " + + "for the low end of the request number range."); + return null; + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the request number range."); + return null; + } + crit[next++] = "(requestId>=" + canonicalFrom + ")"; + } + + if (document.requestNumberRangeCritForm.requestTo.value != "") { + canonicalTo = + trim(document.requestNumberRangeCritForm.requestTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + alert("You must specify a decimal value " + + "for the high end of the request number range."); + return null; + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the request number range."); + return null; + } + crit[next++] = "(requestId<=" + canonicalTo + ")"; + } + + /* Can not do this using parseInt */ + /* + if (document.requestNumberRangeCritForm.requestFrom.value != "" && + document.requestNumberRangeCritForm.requestTo.value != "") { + if (parseInt(canonicalFrom) > parseInt(canonicalTo)) { + alert("The low end of the range is larger than the high end."); + return null; + } + } + */ + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Request Type</font></b> +<FORM NAME="typeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show requests that are of +<select NAME="type"> +<option value="ENROLLMENT">enrollment +<option value="RENEWAL">renewal +<option value="REVOCATION">revocation +<option value="ALL">any +</select> +type +</font> +</td> +</tr> +</table> +</FORM> +<SCRIPT type="text/javascript"> +//<!-- +function typeCritInUse() +{ + return document.typeCritForm.inUse.checked; +} +function typeRangeCrit() +{ + if (document.typeCritForm.type.options[document.typeCritForm.type.selectedIndex].value == "ALL") + return "(requesttype=*)"; + else + return "(requesttype=" + document.typeCritForm.type.options[document.typeCritForm.type.selectedIndex].value + ")"; +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Request Status</font></b> +<FORM NAME="statusCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" CHECKED NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show requests that are in +<select NAME="status"> +<option value="PENDING">pending +<option value="CANCELED">canceled +<option value="REJECTED">rejected +<option value="COMPLETE">completed +<option value="ALL">any +</select> +status +</font> +</td> +</tr> +</table> +</FORM> +<SCRIPT type="text/javascript"> +//<!-- +function statusCritInUse() +{ + return document.statusCritForm.inUse.checked; +} +function statusRangeCrit() +{ + if (document.statusCritForm.status.options[document.statusCritForm.status.selectedIndex].value == "ALL") + return "(requeststate=*)"; + else + return "(requeststate=" + document.statusCritForm.status.options[document.statusCritForm.status.selectedIndex].value + ")"; +} +//--> +</SCRIPT> + + +<br> +<SCRIPT type="text/javascript"> +<!-- +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + if (requestNumberRangeCritInUse()) { + if ((andFilter[critCount++] = requestNumberRangeCrit()) == null) + return; + } + if (typeCritInUse()) { + if ((andFilter[critCount++] = typeRangeCrit()) == null) + return; + } + if (statusCritInUse()) { + if ((andFilter[critCount++] = statusRangeCrit()) == null) + return; + } + + if (ownerCritInUse()) { + critCount++; + if (checkEmptyField() == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } + + var f = nsjoin(andFilter,""); + if (f.length == 0) f = "(requestId=*)"; + form.queryRequestFilter.value = "(&"+f+")"; + + form.op.value = "srchRequests"; + + form.submit(); +} +//--> +</SCRIPT> + + +<FORM NAME="queryForm" ACTION="searchReqs" METHOD=POST> +<INPUT TYPE="HIDDEN" NAME="op" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="queryRequestFilter" VALUE=""> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Request Owner</b></font> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" CHECKED NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show requests that belong to the user specified as below:</font> +</td> +</tr> +<tr> +<td> </td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" CHECKED NAME="owner" VALUE="self"> self </font> +</td> +</tr> +<tr> +<td> </td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" NAME="owner" VALUE="others"> uid= +<INPUT TYPE="TEXT" NAME="uid" SIZE=10 MAXLENGTH=99></font> +</td> +</tr> +</table> +<br> + + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Limits</b></font> +<table border="0" cellspacing="2" cellpadding="2"> + <tr> + <td align="right"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Maximum results:</font> + </td> + <td> + <INPUT TYPE="TEXT" NAME="maxResults" VALUE=10 SIZE=5 MAXLENGTH=10> + </td> + </tr> + <tr> + <td align="right"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Time limit (in seconds):</font> + </td> + <td> + <INPUT TYPE="TEXT" NAME="timeLimit" VALUE=5 SIZE=5 MAXLENGTH=10> + </td> + </tr> +</table> +<br> + + + + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <INPUT TYPE="button" VALUE="Find" width="72" onClick='doSubmit(queryForm)'> + </td> + </tr> +</table> + +</form> +<SCRIPT type="text/javascript"> +//<!-- +function ownerCritInUse() +{ + if (!document.queryForm.inUse.checked) { + document.queryForm.owner[0].value = ""; + document.queryForm.owner[1].value = ""; + document.queryForm.uid.value = ""; + } + return document.queryForm.inUse.checked; +} +function checkEmptyField() +{ + if (document.queryForm.owner[1].checked) { + if (document.queryForm.uid.value.length == 0) { + alert("uid field cannot be empty."); + return null; + } + } + + return ""; +} + +</SCRIPT> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchRevokeCert.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchRevokeCert.html new file mode 100644 index 000000000..71384109d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/SrchRevokeCert.html @@ -0,0 +1,1209 @@ +<!-- --- 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> +<head> + <title>Revoke Certificates</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke Certificates</font><br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to revoke a set of certificates determined by one +or more properties of the certificate. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Each section below filters the set of certificates to be revoked. +Check the box at the top of the section if you want to use that +filter in your search, then complete the fields. Leave a box +unchecked to ignore that filter. You can click more than one box +to get a combination of search criteria. +<p> +You will be given a chance to examine the certificates before +they are revoked. +</font> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Serial Number Range</font></b> +<FORM NAME="serialNumberRangeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates that fall within the following range:</font> +</td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Lowest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialFrom" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Highest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialTo" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> +</table> +</FORM> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter a range of certificate serial numbers in hexadecimal form +(starting with 0x, as in the certificate list), or in decimal form. +</font> + +<SCRIPT type="text/javascript"> +//<!-- +function serialNumberRangeCritInUse() +{ + if (document.serialNumberRangeCritForm.inUse.checked) { + document.queryForm.serialNumberRangeInUse.value = 'on'; + } + document.queryForm.serialFrom.value = document.serialNumberRangeCritForm.serialFrom.value; + document.queryForm.serialTo.value = document.serialNumberRangeCritForm.serialTo.value; + return document.serialNumberRangeCritForm.inUse.checked; +} + +function serialNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + var canonicalFrom = "", canonicalTo = ""; + + if (document.serialNumberRangeCritForm.serialFrom.value != "") { + canonicalFrom = + trim(document.serialNumberRangeCritForm.serialFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom,16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range."); + return null; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId>=" + canonicalFrom + ")"; + } + + if (document.serialNumberRangeCritForm.serialTo.value != "") { + canonicalTo = + trim(document.serialNumberRangeCritForm.serialTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo,16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range."); + return null; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId<=" + canonicalTo + ")"; + } + + /* Can not do this using parseInt */ + /* + if (document.serialNumberRangeCritForm.serialFrom.value != "" && + document.serialNumberRangeCritForm.serialTo.value != "") { + if (parseInt(canonicalFrom) > parseInt(canonicalTo)) { + alert("The low end of the range is larger than the high end."); + return null; + } + } + */ + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subject Name</font></b> +<FORM NAME="subjectCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates with a subject name matching the following: +</font> +</td> +</tr> + +<tr align="left"> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Email address:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="eMail" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Common name:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="commonName" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">User ID:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="userID" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization unit:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="orgUnit" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="org" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Locality:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="locality" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="state" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Country:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="country" VALUE="" SIZE=2 MAXLENGTH=2></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Match Method:</font> +</td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" NAME="match" VALUE="exact">Exact</font> +</td> +<tr> +<td> </td> +<td align="right"> </td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" CHECKED NAME="match" VALUE="partial">Partial</font> +</td> +</tr> +</table> +</FORM> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter values for the fields you want to have in your search criteria. +Leave other fields blank. +<br><br> +Exact match method revokes certificates for subjects whose name consists +<b>exactly</b> of the components that you have filled in above, and contains +none of the components you have left blank. Pattern matching wildcard +values cannot be used in this search. +<br><br> +Partial match method revokes certificates for subjects whose name consists +<b>in part</b> of the components you have specified above, and in addition +may contain arbitrary values for the other components you have left blank above. +Pattern matching wildcard values can be used in this search. +</font> + + +<SCRIPT type="text/javascript"> +<!-- +function subjectCritInUse() +{ + if (document.subjectCritForm.inUse.checked) { + document.queryForm.subjectInUse.value = 'on'; + } + document.queryForm.eMail.value = document.subjectCritForm.eMail.value; + document.queryForm.commonName.value = document.subjectCritForm.commonName.value; + document.queryForm.userID.value = document.subjectCritForm.userID.value; + document.queryForm.orgUnit.value = document.subjectCritForm.orgUnit.value; + document.queryForm.org.value = document.subjectCritForm.org.value; + document.queryForm.locality.value = document.subjectCritForm.locality.value; + document.queryForm.state.value = document.subjectCritForm.state.value; + document.queryForm.country.value = document.subjectCritForm.country.value; + if (document.subjectCritForm.match[1].checked) { + document.queryForm.match.value = 'partial'; + } else { + document.queryForm.match.value = 'exact'; + } + return document.subjectCritForm.inUse.checked; +} +function subjectCrit() +{ + return computeNameFilter(document.subjectCritForm); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Issuing Information</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="issuedByCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates issued by:</font> +<INPUT TYPE="text" NAME="issuedBy" SIZE=10></td> +</FORM> +</tr> + +<tr> +<FORM NAME="issuedOnCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates issued during the period:</font> +</td> +</FORM> +<tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function issuedByCritInUse() +{ + if (document.issuedByCritForm.inUse.checked) { + document.queryForm.issuedByInUse.value = 'on'; + } + document.queryForm.issuedBy.value = document.issuedByCritForm.issuedBy.value; + return document.issuedByCritForm.inUse.checked; +} +function issuedByCrit() +{ + if (document.issuedByCritForm.issuedBy.value.length == 0) { + alert("User id in 'issued by' filter is empty"); + return null; + } + return "(certIssuedBy="+ document.issuedByCritForm.issuedBy.value +")"; +} + + +function issuedOnCritInUse() +{ + if (document.issuedOnCritForm.inUse.checked) { + document.queryForm.issuedOnInUse.value = 'on'; + } + d = convertToTime(document.issuedOnFrom); + if (d != null) { + document.queryForm.issuedOnFrom.value = d; + } + d = convertToTime(document.issuedOnTo); + if (d != null) { + document.queryForm.issuedOnTo.value = d; + } + return document.issuedOnCritForm.inUse.checked; +} +function issuedOnCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.issuedOnFrom)) { + from = convertDate(document.issuedOnFrom, + "Start date for issue time range criterion"); + if (from == null) return null; + crit[next++] = "(certCreateTime>=" + from + ")"; + } + if (!dateIsEmpty(document.issuedOnTo)) { + to = convertDate(document.issuedOnTo, + "End date for issue time range criterion"); + if (to == null) return null; + crit[next++] = "(certCreateTime<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for issue time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Invalid issuance time range"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Dates of Validity</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotBeforeCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates effective during the period:</font> +</td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotBeforeCritInUse() +{ + if (document.validNotBeforeCritForm.inUse.checked) { + document.queryForm.validNotBeforeInUse.value = 'on'; + } + d = convertToTime(document.validNotBeforeFrom); + if (d != null) { + document.queryForm.validNotBeforeFrom.value = d; + } + d = convertToTime(document.validNotBeforeTo); + if (d != null) { + document.queryForm.validNotBeforeTo.value = d; + } + return document.validNotBeforeCritForm.inUse.checked; +} + +function validNotBeforeCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotBeforeFrom)) { + from = convertDate(document.validNotBeforeFrom, + "Start date for the validity beginning time range criterion"); + if (from == null) return null; + crit[next++] = "(x509Cert.notBefore>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotBeforeTo)) { + to = convertDate(document.validNotBeforeTo, + "End date for the validity beginning time range criterion"); + if (to == null) return null; + crit[next++] = "(x509Cert.notBefore<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for validity beginning range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Invalid effective time range"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotAfterCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates expire during the period:</font> +</td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotAfterCritInUse() +{ + if (document.validNotAfterCritForm.inUse.checked) { + document.queryForm.validNotAfterInUse.value = 'on'; + } + d = convertToTime(document.validNotAfterFrom); + if (d != null) { + document.queryForm.validNotAfterFrom.value = d; + } + d = convertToTime(document.validNotAfterTo); + if (d != null) { + document.queryForm.validNotAfterTo.value = d; + } + return document.validNotAfterCritForm.inUse.checked; +} + +function validNotAfterCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotAfterFrom)) { + from = convertDate(document.validNotAfterFrom, + "Start date for the expiration time range criterion"); + if (from == null) return null; + crit[next++] = "(x509cert.notAfter>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotAfterTo)) { + to = convertDate(document.validNotAfterTo, + "End date for the expiration time range criterion"); + if (to == null) return null; + crit[next++] = "(x509cert.notAfter<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for the expiration time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Expiration time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<FORM NAME="validityLengthCritForm"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates with a validity period:</font> +</td> +</tr> +<tr> +<td> </td> +<td> +<SELECT NAME="validityOp"> +<OPTION VALUE="<="> not greater +<OPTION VALUE=">="> not less +</SELECT> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">than</font> +<INPUT NAME="count" TYPE="text" MAXSIZE=2 SIZE=2> +<SELECT NAME="unit"> +<OPTION VALUE="86400000">Day(s)</OPTION> +<OPTION VALUE="604800000">Week(s)</OPTION> +<OPTION SELECTED VALUE="2592000000">Month(s)</OPTION> +<OPTION VALUE="31536000000">Year(s)</OPTION> +</SELECT> +</td></tr> +</FORM> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validityLengthCritInUse() +{ + if (document.validityLengthCritForm.inUse.checked) { + document.queryForm.validityLengthInUse.value = 'on'; + } + document.queryForm.validityOp.value = document.validityLengthCritForm.validityOp.value; + document.queryForm.count.value = document.validityLengthCritForm.count.value; + document.queryForm.unit.value = document.validityLengthCritForm.unit.value; + return document.validityLengthCritForm.inUse.checked; +} + +function validityLengthCrit() +{ + with(document.validityLengthCritForm) { + + if (!isNumber(count.value,10)) { + alert("Invalid number specified in validity length criterion"); + return null; + } + + return "(x509cert.duration" + + validityOp.options[validityOp.selectedIndex].value + + (count.value * unit.options[unit.selectedIndex].value) +")"; + } +} +//--> +</SCRIPT> + + +<SCRIPT type="text/javascript"> +<!-- +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + if (serialNumberRangeCritInUse()) { + if ((andFilter[critCount++] = serialNumberRangeCrit()) == null) + return; + } + if (subjectCritInUse()) { + if ((andFilter[critCount++] = subjectCrit()) == null) + return; + } + if (issuedOnCritInUse()) { + if ((andFilter[critCount++] = issuedOnCrit()) == null) + return; + } + if (issuedByCritInUse()) { + if ((andFilter[critCount++] = issuedByCrit()) == null) + return; + } + if (validNotBeforeCritInUse()) { + if ((andFilter[critCount++] = validNotBeforeCrit()) == null) + return; + } + if (validNotAfterCritInUse()) { + if ((andFilter[critCount++] = validNotAfterCrit()) == null) + return; + } + if (validityLengthCritInUse()) { + if ((andFilter[critCount++] = validityLengthCrit()) == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } + + andFilter[critCount++] = "(certStatus=VALID)"; + + form.queryCertFilter.value = "(&"+nsjoin(andFilter,"")+")"; + form.revokeAll.value = form.queryCertFilter.value; + + form.op.value = "srchCerts"; + form.submit(); +} +//--> +</SCRIPT> + +<br> + +<FORM NAME="queryForm" ACTION="srchCerts" METHOD=POST> +<INPUT TYPE="HIDDEN" NAME="op" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="queryCertFilter" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokeAll" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="serialNumberRangeInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="serialFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="serialTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="statusInUse" VALUE="on"> +<INPUT TYPE="HIDDEN" NAME="status" VALUE="VALID"> +<INPUT TYPE="HIDDEN" NAME="subjectInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="eMail" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="commonName" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="userID" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="orgUnit" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="org" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="locality" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="state" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="country" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="match" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedByInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedBy" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedOnInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedOnFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="issuedOnTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotBeforeInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotBeforeFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotBeforeTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotAfterInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotAfterFrom" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validNotAfterTo" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validityLengthInUse" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="validityOp" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="count" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="unit" VALUE=""> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Limits</b></font> +<table border="0" cellspacing="2" cellpadding="2"> + <tr> + <td align="right"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Maximum results:</font> + </td> + <td> + <INPUT TYPE="TEXT" NAME="maxResults" VALUE=10 SIZE=5 MAXLENGTH=10> + </td> + </tr> + <tr> + <td align="right"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Time limit (in seconds):</font> + </td> + <td> + <INPUT TYPE="TEXT" NAME="timeLimit" VALUE=5 SIZE=5 MAXLENGTH=10> + </td> + </tr> +</table> +<br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <INPUT TYPE="button" VALUE="Find" width="72" onClick='doSubmit(queryForm)'> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Searching for Certificates to Revoke')"> --> + </td> + </tr> +</table> + +</form> + +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/UpdateDir.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/UpdateDir.html new file mode 100644 index 000000000..1d50f2507 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/UpdateDir.html @@ -0,0 +1,367 @@ +<!-- --- 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> +<HEAD> + <TITLE>Update Directory Server</TITLE> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + +<SCRIPT type="text/javascript" SRC="/ca/agent/funcs.js"></SCRIPT> +<SCRIPT type="text/javascript" SRC="/ca/agent/helpfun.js"></SCRIPT> + +<script type="text/javascript"> +<!-- +function doSubmit(form) +{ + if ((!form.updateAll.checked) && (!form.updateCRL.checked) && + (!form.updateCA.checked) && (!form.updateValid.checked) && + (!form.updateExpired.checked) && (!form.updateRevoked.checked)) { + alert("You must choose at least one updating selection on this form."); + return; + } + + if (form.updateAll.checked || form.updateValid.checked) { + var canonicalFrom = "", canonicalTo = ""; + + if ( form.validFrom.value!= "") { + canonicalFrom = + trim(form.validFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom, 16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range of valid certificates."); + return; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range of valid certificates."); + return; + } + form.validFrom.value = canonicalFrom; + } + + if ( form.validTo.value!= "") { + canonicalTo = + trim(form.validTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo, 16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range of valid certificates."); + return; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range of valid certificates."); + return; + } + form.validTo.value = canonicalTo; + } + + /* Can't do this using parseInt*/ + /* + if (form.validFrom.value != "" && form.validTo.value != "" ) { + if (parseInt(form.validFrom.value) > parseInt(form.validTo.value)) { + alert("The low end of the range is larger than the high end."); + return; + } + } + */ + } + + if (form.updateAll.checked || form.updateExpired.checked) { + var canonicalFrom = "", canonicalTo = ""; + + if ( form.expiredFrom.value!= "") { + canonicalFrom = + trim(form.expiredFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom, 16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range of expired certificates."); + return; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range of expired certificates."); + return; + } + form.expiredFrom.value = canonicalFrom; + } + + if ( form.expiredTo.value!= "") { + canonicalTo = + trim(form.expiredTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo, 16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range of expired certificates."); + return; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range of expired certificates."); + return; + } + form.expiredTo.value = canonicalTo; + } + + /* Can't do this using parseInt*/ + /* + if (form.expiredFrom.value != "" && form.expiredTo.value != "") { + if (parseInt(form.expiredFrom.value) > parseInt(form.expiredTo.value)) { + alert("The low end of the range for expired certificates " + + "is larger than the high end."); + return; + } + } + */ + } + + if (form.updateAll.checked || form.updateRevoked.checked) { + var canonicalFrom = "", canonicalTo = ""; + + if ( form.revokedFrom.value!= "") { + canonicalFrom = + trim(form.revokedFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom, 16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range of revoked certificates."); + return; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range of revoked certificates."); + return; + } + form.revokedFrom.value = canonicalFrom; + } + + if ( form.revokedTo.value!= "") { + canonicalTo = + trim(form.revokedTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo, 16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range of revoked certificates."); + return; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range of revoked certificates."); + return; + } + form.revokedTo.value = canonicalTo; + } + + /* Can't do this using parseInt*/ + /* + if (form.revokedFrom.value != "" && form.revokedTo.value != "") { + if (parseInt(form.revokedFrom.value) > parseInt(form.revokedTo.value)) { + alert("The low end of the range for revoked certificates " + + "is larger than the high end."); + return; + } + } + */ + } + + form.submit(); +} +//--> +</script> +</HEAD> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Update Directory Server</font><br> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +In most cases, the directory is updated automatically with +the latest changes to certificates and certificate revocation lists. +In a few situations, however, you may need to update the directory manually. +Use this form to make updates manually. +<p> +<b>Note:</b> Any certificates issued or revoked during +the update may not be reflected in the directory. +You can use this form again to update those certificates. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<FORM ACTION="updateDir" METHOD=POST> +<table> +<tr> +<td valign = topline><INPUT TYPE="CHECKBOX" NAME="checkFlag" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Skip certificates already marked as updated.</font></td> +</tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Check one or more of these boxes.</font> + +<table> +<tr> +<td VALIGN=topline><INPUT TYPE="CHECKBOX" NAME="updateAll" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Update everything in the database to the directory. +<br>(This will include all selections below.)</font></td> +</tr> + +<tr> +<td valign = topline><INPUT TYPE="CHECKBOX" NAME="updateCRL" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Update the certificate revocation list to the directory.</font></td> +</tr> + +<tr> +<td valign = topline><INPUT TYPE="CHECKBOX" NAME="updateCA" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Update Certificate Manager certificate to the directory.</font></td> +</tr> + +<tr> +<td valign = topline><INPUT TYPE="CHECKBOX" NAME="updateValid" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Update valid certificates to the directory.</font></td> +</tr> + +<tr> <td></td> +<td align="right"><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +From serial number:</font></td> +<td><input type=text size=10 name=validFrom> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> + +<tr> <td></td> +<td align="right"><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +To serial number:</font></td> +<td><input type=text size=10 name=validTo> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> + +<tr> +<td valign = topline><INPUT TYPE="CHECKBOX" NAME="updateExpired" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Remove expired certificates from the directory.</font></td> +</tr> + +<tr><td></td> +<td align="right"><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +From serial number:</font></td> +<td><input type=text size=10 name=expiredFrom> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> + +<tr><td></td> +<td align="right"><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +To serial number:</font></td> +<td><input type=text size=10 name=expiredTo> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> + +<tr> +<td valign = topline><INPUT TYPE="CHECKBOX" NAME="updateRevoked" VALUE="yes"></td> +<td colspan=2><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Remove revoked certificates from the directory.</font></td> +</tr> + +<tr><td></td> +<td align="right"><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +From serial number:</font></td> +<td><input type=text size=10 name=revokedFrom> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> + +<tr><td></td> +<td align="right"><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +To serial number:</font></td> +<td><input type=text size=10 name=revokedTo> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> +</table> + +<br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <INPUT TYPE="button" VALUE="Update Directory" width="72" onClick="doSubmit(this.form);"> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Manual Directory Updates')"> --> + </td> + </tr> +</table> + +</form> + +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/blank.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/blank.html new file mode 100644 index 000000000..e41af69c4 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/blank.html @@ -0,0 +1,27 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC"> +</body> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/bulkissuance.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/bulkissuance.template new file mode 100644 index 000000000..01f57455d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/bulkissuance.template @@ -0,0 +1,24 @@ +<!-- --- 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> +<HEAD> +<CMS_TEMPLATE> +</HEAD> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/cloneRedirect.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/cloneRedirect.template new file mode 100644 index 000000000..ef763e83f --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/cloneRedirect.template @@ -0,0 +1,41 @@ +<!-- --- 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> +<HEAD><TITLE> Feature Unavailable to Clones</TITLE> +<CMS_TEMPLATE> +</HEAD> +<BODY bgcolor="white"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Feature Unavailable to Clones +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +<SCRIPT LANGUAUGE="JavaScript"> + document.writeln('This is a clone CA. The feature you want is not available.<br>'); + document.writeln('You might find the information on the \<a href=\"'+result.header.masterURL+'\" target=\"_top\"\>master CA\<\/a\>'); +</SCRIPT> +</font> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/confirmRevocation.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/confirmRevocation.template new file mode 100644 index 000000000..c1061affa --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/confirmRevocation.template @@ -0,0 +1,212 @@ +<!-- --- 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> +<head> +<CMS_TEMPLATE> +<TITLE>Certificate Revocation Confirmation</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<SCRIPT type="text/javascript"> +//<!-- +function validate(form) +{ + with (form) { + return true; + } +} + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + absValue; +} + +function renderDateFromSecs(secs) +{ + if (secs == null) return ""; + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var year = dateTmp.getYear(); + if (year < 100) { + year += 1900; + } else { + year %= 100; + year += 2000; + } + return (dateTmp.getMonth()+1)+"/"+dateTmp.getDate()+"/"+year; +} +//--> +</SCRIPT> +</head> +<body bgcolor="#FFFFFF"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">Certificate Revocation Confirmation</font><br> +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">Please confirm certificate revocation by selecting appropriate revocation reason(s) and submitting the form.</font><br><br> + +<table border="0" cellspacing="2" cellpadding="2"> + <tr valign="TOP"> + <td><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><b>Important:</b></font></td> + <td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">When making this + request you must use the browser environment in which you have access to your authentication certificate and key. </font></td> + </tr> +</table> +<br><br> + +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +<b>Certificate Details</b><br> +The details of the certificate being revoked are below: +</font> +<br><br> + +<table border="0" cellspacing="2"> + <tr valign="TOP"> + <td><font size="-2" face="PrimaSans BT, Verdana, sans-serif">Serial Number:</font></td> + <td><font size="-2" face="PrimaSans BT, Verdana, sans-serif"> +<SCRIPT type="text/javascript"> + document.write(toHex(result.header.serialNumber)); +</SCRIPT> + </font></td> + </tr> + <tr valign="TOP"> + <td><font size="-2" face="PrimaSans BT, Verdana, sans-serif">Subject Name:</font></td> + <td><font size="-2" face="PrimaSans BT, Verdana, sans-serif"> +<SCRIPT type="text/javascript"> + document.write( result.header.subjectName); +</SCRIPT> + </font></td> + </tr> + <tr valign="TOP"> + <td><font size="-2" face="PrimaSans BT, Verdana, sans-serif">Valid:</font></td> + <td><font size="-2" face="PrimaSans BT, Verdana, sans-serif"> +<SCRIPT type="text/javascript"> +document.write('not before: '+ renderDateFromSecs(result.header.validNotBefore) +' and not after' + renderDateFromSecs(result.header.validNotAfter)); +</SCRIPT> + </font></td> + </tr> +</table> + + +<form method="post" action="doRevoke" onSubmit="return validate(document.forms[0])"> + <table border="0" width="100%" cellspacing="2" cellpadding="2"> + <tr> + <td valign="TOP" colspan="2"><b><font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1">Select Revocation Reason<br> + </font></b><font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1"> + Please select one or more reasons for revocation.</font></td> + </tr> + <tr> + <td> + <table border="0" cellspacing="0" cellpadding="0"> + <tr> + <td width="1%"> + <input type="RADIO" checked name="revocationReason" value="0"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Unspecified</font></td> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="1"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key compromised</font></td> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="2"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">CA Key Compromised</font></td> + </tr> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="3"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Affiliation changed</font></td> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="4"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate superceded</font></td> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="5"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Cessation of operation</font></td> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="6"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate is on hold</font></td> + </tr> + <tr> + <td width="1%"> + <input type="RADIO" name="revocationReason" value="9"> + </td> + <td width="99%"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Privilege withdrawn</font></td> + </tr> + </table> + </td> + </tr> + <tr> + <td colspan="2"><font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"><b>Additional + comments if any, regarding this request</b><br> + Please write any additional comments directed to the person who will process + your certificate request. </font></td> + </tr> + <tr> + <td> + <textarea name="csrRequestorComments" rows="6" cols="39" wrap="virtual"> +</textarea> + </td> + </tr> + <tr> + <td colspan="2"> + <table border="0" width="100%" cellspacing="0" cellpadding="6" bgcolor="#cccccc"> + <tr> + <td> + <div> + <input type="submit" value="Submit" name="submit" width="72"> + <input type="hidden" name="op" value="DoRevocation"> + <input type="hidden" name="templateType" value="RevocationSuccess"> + <input type="reset" value="Reset" name="reset" width="72"> + <!-- <input type="button" value="Help" + onclick="help('http://www.redhat.com/docs/manuals/cert-system#Confirming a Revocation')" name="button" width="72"> --> +<SCRIPT type="text/javascript"> +document.write("<INPUT TYPE=hidden name=serialNumber value=\"" + +result.header.serialNumber +"\">"); +</SCRIPT> + </div> + </td> + </tr> + </table> + </td> + </tr> + </table> + </form> +</body> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayBySerial.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayBySerial.template new file mode 100644 index 000000000..4f2d6f2d5 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayBySerial.template @@ -0,0 +1,298 @@ +<!-- --- 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> +<head> + <title>Display Certificate</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<CMS_TEMPLATE> +</head> + + +<SCRIPT type="text/javascript"> +//<!-- + +function navMajorVersion() +{ + return parseInt(navigator.appVersion.substring(0, navigator.appVersion.indexOf("."))); +} + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + + return sign + '0x' + '0' + absValue; +} + +function getReason(reasonId) +{ + var reason = ""; + reasonDescription = new Array("unspecified", + "key compromised", + "CA key compromised", + "affiliation changed", + "certificate superceded", + "cessation of operation", + "certificate is on hold", + "unspecified", + "remove from CRL", + "privilege withdrawn", + "AA key compromised"); + + if (reasonId >= 0 && reasonId < reasonDescription.length) { + reason = reasonDescription[reasonId]; + } else { + reason = "Unknown reason"; + } + + return reason; +} + +function doReload() +{ + if (navigator.appName == "Netscape") { + document.reloadForm.submit(); + } +} + +function addEscapes(str) +{ + var outStr = str.replace(/</g, "<"); + outStr = outStr.replace(/>/g, ">"); + return outStr; +} + +//--> +</SCRIPT> + +<body onResize=doReload() bgcolor="#FFFFFF" link="#6666CC" vlink="#6666CC" alink="#333399"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1">Certificate +<SCRIPT type="text/javascript"> +//<!-- +document.write(' 0x0' + result.header.serialNumber); +if (navigator.appName == 'Netscape' && + typeof(crypto.version) != "undefined") { + document.write( + '<input type=hidden name=cmmfResponse value=true>'); +} + +//--> +</SCRIPT> +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> + +<table border="0" cellspacing="2" cellpadding="2" width="100%"> +<tr align="left" bgcolor="#e5e5e5"><td align="left"> +<font face="PrimaSans BT, Verdana, sans-serif" size="-1"> +Certificate contents</font></td></tr></table> + +<pre> +<SCRIPT type="text/javascript"> +document.write(addEscapes(result.header.certPrettyPrint)); +</SCRIPT> +</pre> + +<SCRIPT type="text/javascript"> +//<!-- +if (result.header.revocationReason != null) { + Reason = new Array("Unspecified", "Key Compromise", "CA Compromise", "Affiliation Changed"); + document.write('<p>\n'); + document.write('<table border="0" cellspacing="2" cellpadding="2" width="100%">\n'); + document.write('<tr align="left" bgcolor="#e5e5e5"><td align="left">\n'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">\n'); + document.write('Certificate revocation reason</font></td></tr></table>\n'); + document.write('<p><font size=-1 face="PrimaSans BT, Verdana, sans-serif">\n'); + document.write('This certificate is revoked from the following reason: '); + document.write('</font>\n'); + document.write('<font size=-1 face="PrimaSans BT, Verdana, sans-serif" color="red">\n'); + document.write(getReason(result.header.revocationReason)+'\n'); + document.write('</font>\n'); + + if (result.header.revocationReason == 6) { // on hold + document.write("<center>"); + var loc = 'doUnrevoke?serialNumber=0x'+ result.header.serialNumber; + loc = loc + '&cmmfResponse=true'; + document.write('<form>\n'+ + '<INPUT TYPE=\"button\" VALUE=\"Take Certificate Off Hold\"'+ + ' onClick=\"location.href=\''+ loc + '\'\">\n'+ + '</form>\n'); + document.write("</center><br>"); + } else { + document.write('<br> \n'); + } +} +//--> +</SCRIPT> + +<p> +<table border="0" cellspacing="2" cellpadding="2" width="100%"> +<tr align="left" bgcolor="#e5e5e5"><td align="left"> +<font face="PrimaSans BT, Verdana, sans-serif" size="-1"> +Installing this certificate in a server</font></td></tr></table> + +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +The following format can be used to install this certificate into a server. +<p> +Base 64 encoded certificate +</font> +<p><pre> +-----BEGIN CERTIFICATE----- +<SCRIPT type="text/javascript"> +document.write(result.header.certChainBase64); +</SCRIPT> +-----END CERTIFICATE----- +</pre> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<p> +Base 64 encoded certificate with CA certificate chain in pkcs7 format +</font> +<p><pre> +-----BEGIN CERTIFICATE CHAIN----- +<SCRIPT type="text/javascript"> +document.write(result.header.pkcs7ChainBase64); +</SCRIPT> +-----END CERTIFICATE CHAIN----- +</pre> + +<br><p> + +<SCRIPT type="text/javascript"> +//<!-- +if (result.header.noCertImport != null && result.header.noCertImport == false) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Importing this certificate</font></td></tr></table>'); + document.writeln('<p><font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('To import the certificate into your client, click the following button.'); + document.writeln('</font><p>'); +} +//--> +</SCRIPT> + +<OBJECT + classid="clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1" + CODEBASE="/xenroll.dll" + id=Enroll > +</OBJECT> + +<SCRIPT LANGUAGE=VBS> +<!-- +'======================================================== +' +' In VBS, there are several ways in which the event handler for the +' click event can be bound to the right control. We use one of the +' methods here, which indicates the binding by appending the +' event name to the control name with an intervening '_'. +' +'======================================================== + Sub ImportCertificate_OnClick + + Dim pkcs7 + + On Error Resume Next + + 'Convert the cert to PKCS7 format + pkcs7 = result.header.pkcs7ChainBase64 + If (IsEmpty(pkcs7) OR theError <> 0) Then + ret = MsgBox("Could not convert certificate to PKCS7 format", 0, "Import Cert") + Exit Sub + End If + + 'Import the PKCS7 object + Enroll.DeleteRequestCert = FALSE + Enroll.WriteCertToCSP = true + Enroll.acceptPKCS7(pkcs7) + if err.number <> 0 then + Enroll.WriteCertToCSP = false + end if + err.clear + Enroll.acceptPKCS7(pkcs7) + if err.number = 0 then + MsgBox "Certificate has been successfully imported." + else + sz = "Error in acceptPKCS7. Error Number " & Hex(err.number) & "occurred." + MsgBox sz + end if + + Exit Sub + + End Sub +--> +</SCRIPT> + +<SCRIPT type="text/javascript"> +document.write("<center>"); +var loc = 'getBySerial?serialNumber='+ result.header.serialNumber; +if (navigator.appName == "Netscape") { + loc = loc + '&importCert=true'; + if (navMajorVersion() > 3 && typeof(crypto.version) != "undefined") { + loc = loc + '&cmmfResponse=true'; + } +} +if (result.header.noCertImport != null && result.header.noCertImport == false) { + document.write('<form>\n'+ + '<INPUT TYPE=\"button\" VALUE=\"Import Your Certificate\"'+ + ' onClick=\"location.href=\''+ loc + '\'\">\n'+ + '</form>\n'); +} + +if (navigator.appName == "Netscape" && + result.header.emailCert != null && + result.header.emailCert == true && + result.header.noCertImport != null && + result.header.noCertImport == false) { + var loc1 = '/ca/getBySerial?serialNumber='+ result.header.serialNumber; + if (navMajorVersion() > 3 && typeof(crypto.version) != "undefined") { + loc1 = loc1 + '&cmmfResponse=true'; + } + else { + loc1 = loc1 + '&importCert=true&emailCert=true'; + } + document.write('<form>\n'+ + '<INPUT TYPE=\"button\" VALUE=\"Import S/MIME Certificate\"'+ + ' onClick=\"location.href=\''+ loc1 + '\'\">\n'+ + '</form>\n'); +} + +document.write("</center>"); + +document.write('<form name=reloadForm action=displayBySerial>\n'+ + '<INPUT TYPE="HIDDEN" NAME="serialNumber" VALUE="'+ + '0x'+result.header.serialNumber+'">\n</form>\n'); +</SCRIPT> + +</font> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayBySerial2.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayBySerial2.template new file mode 100644 index 000000000..5c700da66 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayBySerial2.template @@ -0,0 +1,131 @@ +<!-- --- 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> +<head> + <title>Display Certificate</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<CMS_TEMPLATE> +</head> + + + +<SCRIPT type="text/javascript"> +//<!-- + +function navMajorVersion() +{ + return parseInt(navigator.appVersion.substring(0, navigator.appVersion.indexOf("."))); +} + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + + return sign + '0x' + '0' + absValue; +} +//--> +</SCRIPT> + +<body bgcolor="#FFFFFF" link="#6666CC" vlink="#6666CC" alink="#333399"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1">Certificate +<SCRIPT type="text/javascript"> +//<!-- +document.write(' ' + '0x0'+result.header.serialNumber); +if (navigator.appName == 'Netscape' && + navMajorVersion() > 3 && + typeof(crypto.version) != "undefined") { + document.write( + '<input type=hidden name=cmmfResponse value=true>'); +} + +//--> +</SCRIPT> +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="art/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> + +<table border="0" cellspacing="2" cellpadding="2" width="100%"> +<tr align="left" bgcolor="#e5e5e5"><td align="left"> +<font face="PrimaSans BT, Verdana, sans-serif" size="-1"> +Certificate contents</font></td></tr></table> + +<pre> +<SCRIPT type="text/javascript"> +document.write(result.header.certPrettyPrint); +</SCRIPT> +</pre> + +<p> +<table border="0" cellspacing="2" cellpadding="2" width="100%"> +<tr align="left" bgcolor="#e5e5e5"><td align="left"> +<font face="PrimaSans BT, Verdana, sans-serif" size="-1"> +Installing this certificate in a server</font></td></tr></table> + +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +The following format can be used to install this certificate into a server. +<p> +Base 64 encoded certificate +</font> +<p><pre> +-----BEGIN CERTIFICATE CHAIN----- +<SCRIPT type="text/javascript"> +document.write(result.header.certChainBase64); +</SCRIPT> +-----END CERTIFICATE CHAIN----- +</pre> + +<br><p> +<table border="0" cellspacing="2" cellpadding="2" width="100%"> +<tr align="left" bgcolor="#e5e5e5"><td align="left"> +<font face="PrimaSans BT, Verdana, sans-serif" size="-1"> +Downloading this certificate</font></td></tr></table> +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +To download the certificate into your system, click the following button. +</font> +<p> + +<SCRIPT type="text/javascript"> +document.write("<center>"); +var loc = '/ca/getBySerial?serialNumber='+ result.header.serialNumber; +document.write('<form>\n'+ + '<INPUT TYPE=\"button\" VALUE=\"Download This Certificate\"'+ + ' onClick=\"location.href=\''+ loc + '\'\">\n'+ + '</form>\n'); + +document.write("</center>"); +</SCRIPT> + +</font> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayCRL.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayCRL.template new file mode 100644 index 000000000..b3f0a50a0 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayCRL.template @@ -0,0 +1,217 @@ +<!-- --- 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> +<head> + <title>Display CRL</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<SCRIPT type="text/javascript" SRC="../helpfun.js"></SCRIPT> +<SCRIPT type="text/javascript"> +<!-- +if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('<META HTTP-EQUIV="Pragma" CONTENT="no-cache">'); +} +//--> +</SCRIPT> +</head> + +<CMS_TEMPLATE> + +<body bgcolor="#FFFFFF" link="#6666CC" vlink="#6666CC" alink="#333399"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1"> +Certificate Revocation List +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<br> + +<SCRIPT type="text/javascript"> +<!-- +if (result.header.crlNumber != null && + result.header.crlSize != null && + result.header.crlIssuingPoint != null) { + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Certificate revocation list summary</font></td></tr></table>'); + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('CRL issuing point:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.crlIssuingPoint+'</font></td></tr>'); + + if (result.header.crlDisplayType != null && + result.header.crlDisplayType == "deltaCRL" && + result.header.deltaCRLSize == null && + result.header.error != null) { + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Status:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.error+'</font></td></tr>'); + } else { + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('CRL number:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.crlNumber+'</font></td></tr>'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Number of CRL entries:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.deltaCRLSize != null) { + document.writeln(result.header.deltaCRLSize+'</font></td></tr>'); + } else { + document.writeln(result.header.crlSize+'</font></td></tr>'); + } + if (result.header.crlDescription != null) { + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('CRL issuing point description:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.crlDescription+'</font></td></tr>'); + } + } + document.writeln('</table><br>'); + + if (result.header.crlPrettyPrint != null) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Certificate revocation list contents</font></td></tr></table>'); + document.writeln('<pre>'); + document.writeln(result.header.crlPrettyPrint); + document.writeln('</pre>'); + } + if (result.recordSet.length > 0) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Certificate revocation list base64 encoded</font></td></tr></table>'); + + document.writeln('<pre>'); + document.writeln('-----BEGIN CERTIFICATE REVOCATION LIST-----'); + for (var i = 0; i < result.recordSet.length; i++) { + document.writeln(result.recordSet[i].crlBase64Encoded); + } + document.writeln('-----END CERTIFICATE REVOCATION LIST-----'); + document.writeln('</pre>'); + } else if (result.header.crlBase64 != null) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Certificate revocation list base64 encoded</font></td></tr></table>'); + + document.writeln('<pre>'); + document.writeln('-----BEGIN CERTIFICATE REVOCATION LIST-----'); + document.writeln(result.header.crlBase64); + document.writeln('-----END CERTIFICATE REVOCATION LIST-----'); + document.writeln('</pre>'); + } +} else { + document.writeln('Certificate revocation list is not found'); + if (result.header.error != null) { + document.write('\nAdditional information:\n '); + document.writeln(result.header.error); + } +} + +function doNext() +{ + var ip = (result.header.crlIssuingPoint != null && result.header.crlIssuingPoint.length > 0)? + result.header.crlIssuingPoint: "MasterCRL"; + var dt = (result.header.crlDisplayType != null && result.header.crlDisplayType.length > 0)? + result.header.crlDisplayType: "entireCRL"; + var loc = location.protocol + '//' + location.hostname + ':' + + location.port + '/ca/agent/ca/displayCRL?crlIssuingPoint='+ip+ + '&crlDisplayType='+dt+'&pageStart='+ + (parseInt(result.header.pageStart)+parseInt(document.displayCRLForm.pageSize.value))+ + '&pageSize='+parseInt(document.displayCRLForm.pageSize.value); + location.href = loc; +} + +function doPrevious() +{ + var ip = (result.header.crlIssuingPoint != null && result.header.crlIssuingPoint.length > 0)? + result.header.crlIssuingPoint: "MasterCRL"; + var dt = (result.header.crlDisplayType != null && result.header.crlDisplayType.length > 0)? + result.header.crlDisplayType: "entireCRL"; + var loc = location.protocol + '//' + location.hostname + ':' + + location.port + '/ca/agent/ca/displayCRL?crlIssuingPoint='+ip+ + '&crlDisplayType='+dt+'&pageStart='+ + (parseInt(result.header.pageStart)-parseInt(document.displayCRLForm.pageSize.value))+ + '&pageSize='+parseInt(document.displayCRLForm.pageSize.value); + location.href = loc; +} + +if (result.header.crlSize != null && + result.header.pageSize != null && + result.header.pageStart != null && + (parseInt(result.header.crlSize) > parseInt(result.header.pageSize))) { + document.writeln('<FORM NAME="displayCRLForm" ACTION="/ca/agent/ca/displayCRL" METHOD=POST>'); + document.writeln('<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%">'); + document.writeln('<tr><td ALIGN=LEFT BGCOLOR="#E5E5E5">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + var upperLimit = 0; + if (parseInt(result.header.pageStart)+parseInt(result.header.pageSize)-1 > + parseInt(result.header.crlSize)) { + upperLimit = parseInt(result.header.crlSize); + } else { + upperLimit = parseInt(result.header.pageStart)+parseInt(result.header.pageSize)-1; + } + document.writeln(result.header.pageStart+'-'+upperLimit+ + ' of '+result.header.crlSize+' CRL entries'); + document.writeln('</font></td>'); + document.writeln('<td ALIGN=RIGHT BGCOLOR="#E5E5E5">'); + var n = 0; + if (parseInt(result.header.pageStart) > 1) { + document.writeln('<INPUT TYPE="button" VALUE="Previous" width="72"'+ + ' onClick="doPrevious();"> '); + n++; + } + if (parseInt(result.header.pageStart) + parseInt(result.header.pageSize) - 1 < + parseInt(result.header.crlSize)) { + document.writeln('<INPUT TYPE="button" VALUE="Next" width="72"'+ + ' onClick="doNext();"> '); + n++; + } + if (n > 0) { + document.writeln('<INPUT TYPE=text SIZE=4 MAXLENGTH=8 NAME=pageSize VALUE='+ + result.header.pageSize+'> '); + } + + document.writeln('</td></tr></table>'); + document.writeln('</FORM>'); +} +//--> +</SCRIPT> + +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayCertFromRequest.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayCertFromRequest.template new file mode 100644 index 000000000..13bbb166b --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/displayCertFromRequest.template @@ -0,0 +1,197 @@ +<!-- --- 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> + +<TITLE> +CS Enroll Request Success +</TITLE> + +<script type="text/javascript"> + +function navMajorVersion() +{ + return parseInt(navigator.appVersion.substring(0, navigator.appVersion.indexOf("."))); +} + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + + return sign + '0x' + '0' + absValue; +} + +function displayCert(cert) +{ + document.writeln( + '<font face="PrimaSans BT, Verdana, sans-serif" size="+1">'+ + 'Certificate 0x'+cert.serialNo+ + '</font><br>'); + document.writeln( + '<table border="0" cellspacing="0" cellpadding="0" '+ + 'background="/ca/agent/graphics/hr.gif" width="100%">'+ + '<tr>'+ + '<td> </td>'+ + '</tr>'+ + '</table>'); + + document.writeln( + '<table border="0" cellspacing="2" cellpadding="2" width="100%">'+ + '<tr align="left" bgcolor="#e5e5e5"><td align="left">'+ + '<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'+ + 'Certificate contents</font></td></tr></table>'+ + '<pre>'+ + cert.certPrettyPrint+ + '</pre>'); + + document.writeln('<p>'+ + '<table border="0" cellspacing="2" cellpadding="2" width="100%">'+ + '<tr align="left" bgcolor="#e5e5e5"><td align="left">'+ + '<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'+ + 'Certificate fingerprint</font></td></tr></table>'+ + '<pre>'+ + cert.certFingerprint+ + '</pre>'+ + '</font>'); + + document.writeln('<p>'+ + '<table border="0" cellspacing="2" cellpadding="2" width="100%">'+ + '<tr align="left" bgcolor="#e5e5e5"><td align="left">'+ + '<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'+ + 'Installing this certificate in a server</font></td></tr></table>'+ + '<p>'+ + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'+ + 'The following format can be used to install this certificate '+ + 'into a server.'+ + '<p>' + + 'Base 64 encoded certificate'+ + '</font>'+ + '<p><pre>'+ + //'-----BEGIN CERTIFICATE-----'+ + cert.base64Cert+ + //'-----END CERTIFICATE-----'+ + '</pre>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'+ + '<p>'+ + 'Base 64 encoded certificate with CA certificate chain in pkcs7 format'+ + '</font>'+ + '<p><pre>'+ + '-----BEGIN CERTIFICATE CHAIN-----'); + document.writeln(cert.pkcs7ChainBase64); + document.writeln('-----END CERTIFICATE CHAIN-----'+ + '</pre>'); + +} + +function importCertificates(numCerts, requestId) +{ + var grammar = 'this'; + var plural = ''; + if (numCerts > 1) { + grammar = 'these'; + plural = 's' + } + document.writeln( '<p>'+ + '<table border="0" cellspacing="2" cellpadding="2" width="100%">'+ + '<tr align="left" bgcolor="#e5e5e5"><td align="left">'+ + '<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'+ + 'Importing certificate</font></td></tr></table>'+ + '<p>'+ + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'+ + 'To import '+grammar+' certificate'+plural+' into your client, '+ + 'click the following button.'+ + '</font>'+ + '<p>'); + + var loc = '/ca/getCertFromRequest?requestId='+result.header.requestId; + if (navigator.appName == "Netscape") { + if (navMajorVersion() > 3 && typeof(crypto.version) != "undefined") + loc = loc+'&cmmfResponse=true'; + else + loc = loc + '&importCert=true'; + } + + document.writeln('<center>'); + document.writeln('<form>\n'+ + '<INPUT TYPE=\"button\" VALUE=\"Import Certificate(s)\"'+ + ' onClick=\"location.href=\''+ loc + '\'\">\n'+ + '</form>\n'); + + if (navigator.appName == "Netscape" && + result.header.emailCert != null && + result.header.emailCert == true) { + var loc1 = '/ca/getCertFromRequest?requestId='+result.header.requestId; + if (navMajorVersion() > 3 && typeof(crypto.version) != "undefined") { + loc1 = loc1 + '&cmmfResponse=true'; + } + else { + loc1 = loc1 + '&importCert=true&emailCert=true'; + } + + document.write('<form>\n'+ + '<INPUT TYPE=\"button\" VALUE=\"Import S/MIME Certificate\"'+ + ' onClick=\"location.href=\''+ loc1 + '\'\">\n'+ + '</form>\n'); + } + + document.writeln('</center>'); +} +</script> + +<!--BODY bgcolor="white"--> + +<body bgcolor="#FFFFFF" link="#6666CC" vlink="#6666CC" alink="#333399"> + + +<SCRIPT type="text/javascript"> + +if (result.recordSet == null || result.recordSet.length == 0) { + document.writeln('<BLOCKQUOTE><B><PRE>'); + document.writeln('No further details provided.'); + document.writeln('Please consult your local administrator for assistance.'); + document.writeln('</BLOCKQUOTE></B></PRE>'); +} else { + for (var i = 0; i < result.recordSet.length; i++) { + if (result.recordSet[i].serialNo != null) { + displayCert(result.recordSet[i]); + } + } + if (result.header.noCertImport != null && + result.header.noCertImport == false) { + importCertificates(result.recordSet.length, result.header.requestId); + } + +} +document.writeln('<P>'); +</SCRIPT> + + +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/error.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/error.template new file mode 100644 index 000000000..b1940a820 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/error.template @@ -0,0 +1,56 @@ +<!-- --- 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> +<HEAD> +<CMS_TEMPLATE> +<TITLE>Certificate Service Error</TITLE> +</HEAD> +<BODY bgcolor="white"> +<center><h2><b>Problem Processing Your Request</b></h2></center> +<p> +The certificate service encountered a problem when processing your +request. This problem may indicate a flaw in the form used to +submit your request or the values that were entered into the form. +The following message supplies more information about the error +that occurred. +<p> +<blockquote><b><pre> +<SCRIPT type="text/javascript"> +if (result.header.errorDetails != null) { + document.write(result.header.errorDetails); +} else { + document.write('Unable to provide details. Contact Administrator.'); +} +</SCRIPT> +</pre></b></blockquote> + +<SCRIPT type="text/javascript"> +if (result.header.errorDescription != null) { + document.write('<p>Additional Information:<p>'); + document.write('<blockquote><b>'); + document.write(result.header.errorDescription); + document.write('</b></blockquote>'); +} +</SCRIPT> +<p> +Please consult your local administrator for further assistance. +The certificate server's log may provide further information. +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameCRL.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameCRL.html new file mode 100644 index 000000000..a0483c7e4 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameCRL.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuCRL.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="getInfo?template=/agent/ca/toUpdateCRL" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameDir.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameDir.html new file mode 100644 index 000000000..bcf5df10e --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameDir.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuDir.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="updateDir.html" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameDisplayCRL.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameDisplayCRL.html new file mode 100644 index 000000000..79a11aab6 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameDisplayCRL.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuDisplayCRL.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="getInfo?template=/agent/ca/toDisplayCRL" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameList.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameList.html new file mode 100644 index 000000000..98f514696 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameList.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuList.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="queryBySerial.html" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameListReq.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameListReq.html new file mode 100644 index 000000000..c4b3d1e62 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameListReq.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuListReq.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="listRequests.html" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameOCSP.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameOCSP.html new file mode 100644 index 000000000..8cc976d02 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameOCSP.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuOCSP.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="getOCSPInfo" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameProfile.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameProfile.html new file mode 100644 index 000000000..2a15bae4c --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameProfile.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuProfile.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="profileList" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameRevoke.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameRevoke.html new file mode 100644 index 000000000..ebaee6df8 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameRevoke.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuRevoke.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="srchRevokeCert.html" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameSearch.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameSearch.html new file mode 100644 index 000000000..b75a6272b --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameSearch.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuSearch.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="srchCert.html" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameSrchRequests.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameSrchRequests.html new file mode 100644 index 000000000..0e73ea82f --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameSrchRequests.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuSrchRequests.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="SrchRequests.html" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameStats.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameStats.html new file mode 100644 index 000000000..75a4dbebb --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/frameStats.html @@ -0,0 +1,32 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<frameset cols="140,1*" border="0" frameborder="NO"> + <frame src="menuStats.html" scrolling="NO" noresize frameborder="NO" name="left"> + <frame src="getStats" marginwidth="16" marginheight="16" frameborder="NO" noresize name="content"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/getOCSPInfo.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/getOCSPInfo.template new file mode 100644 index 000000000..46e4ccf32 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/getOCSPInfo.template @@ -0,0 +1,117 @@ +<!-- --- 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> +<head> + <title>Display CRL</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<SCRIPT type="text/javascript" SRC="../helpfun.js"></SCRIPT> +<SCRIPT type="text/javascript"> +<!-- +if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('<META HTTP-EQUIV="Pragma" CONTENT="no-cache">'); +} +//--> +</SCRIPT> +<CMS_TEMPLATE> +</head> + + +<body bgcolor="#FFFFFF" link="#6666CC" vlink="#6666CC" alink="#333399"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1"> +OCSP Service +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<br> + +<SCRIPT type="text/javascript"> +<!-- + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Detailed Information (Since Startup)</font></td></tr></table>'); + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('OCSP Responses:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.numReq+'</font></td></tr>'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Total Signed Response Data (in bytes):</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.totalData+'</font></td></tr>'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Processing Time (in ms):</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln((result.header.totalSec-result.header.totalSignSec)+'</font></td></tr>'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Signing Time (in ms):</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.totalSignSec+'</font></td></tr>'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Total Time (in ms):</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.totalSec+'</font></td></tr>'); + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Signing Time Per Response (in ms):</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.numReq == '0') { + document.writeln(result.header.numReq+'</font></td></tr>'); + } else { + document.writeln((result.header.totalSignSec/result.header.numReq)+'</font></td></tr>'); + } + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Total Time Per Response (in ms):</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.numReq == '0') { + document.writeln(result.header.numReq+'</font></td></tr>'); + } else { + document.writeln((result.header.totalSec/result.header.numReq)+'</font></td></tr>'); + } + document.writeln('<tr><td align="right" width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Responses Per Second:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.header.ReqSec+'</font></td></tr>'); + document.writeln('</table><br>'); + +//--> +</SCRIPT> + +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/getStats.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/getStats.template new file mode 100644 index 000000000..59c59eea5 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/getStats.template @@ -0,0 +1,140 @@ +<!-- --- 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> +<head> + <title>Display CRL</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<SCRIPT type="text/javascript" SRC="../helpfun.js"></SCRIPT> +<SCRIPT type="text/javascript"> +<!-- +if (navigator.appName == "Microsoft Internet Explorer") { + document.writeln('<META HTTP-EQUIV="Pragma" CONTENT="no-cache">'); +} +//--> +</SCRIPT> +<CMS_TEMPLATE> +</head> + + +<body bgcolor="#FFFFFF" link="#6666CC" vlink="#6666CC" alink="#333399"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1"> +Statistics +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<br> + +<SCRIPT type="text/javascript"> +<!-- + document.writeln('<table border="0" cellspacing="0" cellpadding="0" width="100%">'); + document.writeln('<tr align="left" bgcolor="#e5e5e5"><td align="left">'); + document.writeln('<font face="PrimaSans BT, Verdana, sans-serif" size="-1">'); + document.writeln('Detailed Information (Start Time <b>' + header.startTime + '</b>, Current Time: <b>' + header.curTime + '</b>)</font></td><td align=right><a href="getStats?op=clear">Clear Statistics</a></td></tr></table>'); + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr>'); + document.writeln('<td width="40%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Action</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b># of operations</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Time Taken (in msec)</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Min</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Max</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Std Dev</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Avg</b></font></td>'); + document.writeln('<td align="left">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<b>Percentage</b></font></td>'); + document.writeln('</tr>'); + for (var i = 0; i <= recordCount; i++) { + if (result.recordSet[i].name.charAt(0) == '-') { + document.writeln('<tr><td>'); + } else { + document.writeln('<tr bgcolor="#cccccc"><td>'); + } + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.recordSet[i].name + '</font></td>'); + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.recordSet[i].noOfOp+'</font></td>'); + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.recordSet[i].timeTaken+'</font></td>'); + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.recordSet[i].max == -1) { + document.writeln('-</font></td>'); + } else { + document.writeln(result.recordSet[i].min+'</font></td>'); + } + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.recordSet[i].max == -1) { + document.writeln('-</font></td>'); + } else { + document.writeln(result.recordSet[i].max+'</font></td>'); + } + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.recordSet[i].stddev == -1) { + document.writeln('-</font></td>'); + } else { + document.writeln(result.recordSet[i].stddev+'</font></td>'); + } + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.recordSet[i].noOfOp == 0) { + document.writeln('-'); + } else { + document.writeln(Math.round(100*(result.recordSet[i].avg))/100); + } + document.writeln('</font></td>'); + document.writeln('<td>'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (result.recordSet[i].noOfOp == 0) { + document.writeln('-'); + } else { + document.writeln(Math.round(100*(result.recordSet[i].percentage))/100 + '%'); + } + document.writeln('</font></td>'); + document.writeln('</tr>'); + } + document.writeln('</table><br>'); + +//--> +</SCRIPT> + +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/index.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/index.html new file mode 100644 index 000000000..05756ed3a --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/index.html @@ -0,0 +1,33 @@ +<!-- --- 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> +<head> +<title>CA Agent</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<link rel="shortcut icon" href="/ca/agent/graphics/favicon.ico" /> +</head> + +<frameset rows="105,1*" frameborder="NO" border="0" cols="*"> + <frame src="/ca/agent/header?selected=ca" name="top" frameborder="NO" noresize scrolling="NO" marginwidth="0" marginheight="0"> + <frame src="frameListReq.html" scrolling="NO" noresize frameborder="NO" marginwidth="0" marginheight="0" name="middle"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> +</body></noframes> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuCRL.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuCRL.html new file mode 100644 index 000000000..2c4984e9e --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuCRL.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b><font color=black>Update Revocation List</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuDir.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuDir.html new file mode 100644 index 000000000..7fa9f658d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuDir.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b><font color=black>Update Directory Server</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuDisplayCRL.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuDisplayCRL.html new file mode 100644 index 000000000..de76603c4 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuDisplayCRL.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b><font color=black>Display Revocation List</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuList.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuList.html new file mode 100644 index 000000000..21452599d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuList.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><font color=black><b>List Certificates</b></font></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuListReq.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuListReq.html new file mode 100644 index 000000000..f3b541962 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuListReq.html @@ -0,0 +1,74 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b><font color=black>List Requests</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuOCSP.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuOCSP.html new file mode 100644 index 000000000..0b73aa60e --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuOCSP.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b><font color=black>OCSP Service</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuProfile.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuProfile.html new file mode 100644 index 000000000..a7bcd66df --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuProfile.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b><font color=black>Manage Certificate Profiles</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuRevoke.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuRevoke.html new file mode 100644 index 000000000..1148bf7c4 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuRevoke.html @@ -0,0 +1,70 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b><font color=black>Revoke Certificates</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuSearch.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuSearch.html new file mode 100644 index 000000000..a088ef030 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuSearch.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b><font color=black>Search for Certificates</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuSrchRequests.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuSrchRequests.html new file mode 100644 index 000000000..3b16a1a20 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuSrchRequests.html @@ -0,0 +1,75 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b><font color=black>Search for Requests</font></b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b>View Server Statistics</b></a></font></td> + </tr> + + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuStats.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuStats.html new file mode 100644 index 000000000..c251356bd --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/menuStats.html @@ -0,0 +1,74 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#333399"> + <table border="0" cellspacing="4" cellpadding="4" width="100%"> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameListReq.html" target="middle"><b>List Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSrchRequests.html" target="middle"><b>Search for Requests</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameList.html" target="middle"><b>List Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameSearch.html" target="middle"><b>Search for Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRevoke.html" target="middle"><b>Revoke Certificates</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDisplayCRL.html" target="middle"><b>Display Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameCRL.html" target="middle"><b>Update Revocation List</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameDir.html" target="middle"><b>Update Directory Server</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameOCSP.html" target="middle"><b>OCSP Service</b></a></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameProfile.html" target="middle"><b>Manage Certificate Profiles</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><font color="black"><b>Statistics</b></font></a></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/monitor.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/monitor.html new file mode 100644 index 000000000..a5ee3db8f --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/monitor.html @@ -0,0 +1,77 @@ +<!-- --- 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> +<head> + <title>Performance Monitor</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + + +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">Performance Monitor</font> +<br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to query performance of this authority within a specified time range.</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<form ACTION="monitor" METHOD=POST> + +<table BORDER=0 CELLSPACING=2 CELLPADDING=0> + <tr> + <td ALIGN=RIGHT><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Start time: </font> + </td> + <td><input TYPE="TEXT" NAME="startTime" SIZE=15 MAXLENGTH=14></td> + <td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + (use one of two formats YYYYMMDDHHMMSS or -S)</font> + </td> + </tr> + <tr> + <td ALIGN=RIGHT><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Interval length: </font> + </td> + <td><input TYPE="TEXT" NAME="interval" SIZE=15 MAXLENGTH=14></td> + <td> </td> + </tr> + <tr> + <td ALIGN=RIGHT><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Number of intervals: </font> + </td> + <td><input TYPE="TEXT" NAME="numberOfIntervals" SIZE=15 MAXLENGTH=14></td> + <td> </td> + </tr> +</table> +<br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <input TYPE="submit" VALUE="Display" width="72"> + </td> + </tr> +</table> +</form> +</body> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/monitor.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/monitor.template new file mode 100644 index 000000000..1d84f9f20 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/monitor.template @@ -0,0 +1,200 @@ +<!-- --- 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> +<HEAD><TITLE>Monitor</TITLE> +<CMS_TEMPLATE> +</HEAD> +<BODY bgcolor="white"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Monitor +</font> +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<SCRIPT LANGUAUGE="JavaScript"> +if (result.header.error != null) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('CS monitor encountered the following error:'+result.header.error); + document.writeln('</font>'); +} else if (result.header.issuerName != null && + result.header.startDate != null && + result.header.interval != null && + result.header.numberOfIntervals != null && + result.header.totalNumberOfRequests != null && + result.header.totalNumberOfCertificates != null) { + var timeRange = result.header.interval * result.header.numberOfIntervals; + + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + + document.write('The following authority: '+result.header.issuerName+ + ' during <b>'+timeRange+' seconds</b>, starting from '+ + result.header.startDate+', processed <b>'+ + result.header.totalNumberOfRequests+' requests</b>'); + if (result.header.totalNumberOfCertificates > 0) + document.write(' and generated <b>'+result.header.totalNumberOfCertificates+ + ' certificates</b>'); + document.writeln('.<br> '); + document.writeln('</font>'); + + if ((typeof(result.recordSet) != "undefined") && (result.recordSet.length > 0)) { + var addCerts = 0; + if (result.recordSet[0].numberOfCertificates != null) + addCerts = 1; + + document.writeln('<table BORDER=1 CELLSPACING=0 CELLPADDING=4 align="center">'); + document.writeln('<tr>'); + document.writeln('<td align="center" BGCOLOR="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Interval number</font></td>'); + document.writeln('<td align="center" BGCOLOR="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Number of requests</font></td>'); + if (addCerts == 1) { + document.writeln('<td align="center" BGCOLOR="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Number of certificates</font></td>'); + } + document.writeln('</tr>'); + + var maxCerts = 0; + var maxReqs = 0; + for (var i = 0; i < result.recordSet.length; i++) { + document.writeln('<tr>'); + document.writeln('<td align="center">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(' '+(i+1)+' </font></td>'); + document.writeln('<td align="center">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.recordSet[i].numberOfRequests != null && + result.recordSet[i].numberOfRequests > 0 && + result.recordSet[i].firstRequest != null) { + document.write('<a href="queryReq?seqNumFrom='+result.recordSet[i].firstRequest+ + '&reqType=showAll&reqState=showAll&maxCount='+ + result.recordSet[i].numberOfRequests+ + '&totalRecordCount='+result.recordSet[i].numberOfRequests+'">'+ + result.recordSet[i].numberOfRequests+'</a>'); + } else if (result.recordSet[i].numberOfRequests != null) { + document.write(' '+result.recordSet[i].numberOfRequests); + } else { + document.write(' 0'); + } + document.writeln('</font></td>'); + if (result.recordSet[i].numberOfRequests > maxReqs) + maxReqs = result.recordSet[i].numberOfRequests; + if (addCerts == 1) { + document.writeln('<td align="center">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.recordSet[i].numberOfCertificates != null && + result.recordSet[i].numberOfCertificates > 0 && + result.recordSet[i].startTime != null && + result.recordSet[i].endTime != null) { + document.write('<a href="srchCerts?queryCertFilter=(%26(requestCreateTime%3e%3d'+ + result.recordSet[i].startTime+ + ')(requestCreateTime%3c%3d'+ + result.recordSet[i].endTime+'))&maxResults='+ + (result.recordSet[i].numberOfCertificates+1)+'">'+ + result.recordSet[i].numberOfCertificates+'</a>'); + if (result.recordSet[i].numberOfCertificates > maxCerts) + maxCerts = result.recordSet[i].numberOfCertificates; + } else if (result.recordSet[i].numberOfCertificates != null) { + document.write(' '+result.recordSet[i].numberOfCertificates); + } else { + document.write(' 0'); + } + document.writeln('</font></td>'); + } + document.writeln('</tr>'); + } + if (result.header.totalNumberOfRequests != null) { + document.writeln('<tr>'); + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Total</font></td>'); + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(' '+result.header.totalNumberOfRequests+' </font></td>'); + if (addCerts == 1) { + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.header.totalNumberOfCertificates != null) { + document.write(' '+result.header.totalNumberOfCertificates); + } else { + document.write('0'); + } + document.writeln('</font></td>'); + } + document.writeln('</tr>'); + } + if (result.recordSet.length > 0) { + document.writeln('<tr>'); + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Average</font></td>'); + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(' '+result.header.totalNumberOfRequests+' / '+timeRange+'s = '+ + (result.header.totalNumberOfRequests/timeRange)+'</font></td>'); + if (addCerts == 1) { + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.write(' '+result.header.totalNumberOfCertificates+' / '+timeRange+'s = '+ + (result.header.totalNumberOfCertificates/timeRange)+'</font></td>'); + } + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Max</font></td>'); + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(' '+maxReqs+' / '+result.header.interval+'s = '+ + (maxReqs/result.header.interval)+'</font></td>'); + if (addCerts == 1) { + document.writeln('<td align="center" BGCOLOR="#eeeeee">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.write(' '+maxCerts+' / '+result.header.interval+'s = '+ + (maxCerts/result.header.interval)+'</font></td>'); + } + document.writeln('</tr>'); + } + document.writeln('</table><br>'); + + document.writeln('<DIV ALIGN="CENTER">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('This table presents authority activity in the time range of '+ + timeRange+' seconds divided into '+result.header.numberOfIntervals+ + ' intervals ('+result.header.interval+' seconds each).'); + document.writeln('</font>'); + document.writeln('</DIV>'); + } +} else { + document.writeln('Error'); +} + + +</SCRIPT> + + +</BODY> +</HTML> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/notImplemented.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/notImplemented.html new file mode 100644 index 000000000..cbdd43f6a --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/notImplemented.html @@ -0,0 +1,30 @@ +<!-- --- 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> +<head> +<TITLE>Not implemented</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> +<body bgcolor="#FFFFFF"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">Not Implemented</font><br> +<!-- +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">This will be completed on next beta release.</font><br><br> +--> +</body> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/processCertReq.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/processCertReq.template new file mode 100644 index 000000000..437895934 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/processCertReq.template @@ -0,0 +1,228 @@ +<!-- --- 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> +<head> +<TITLE></TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> +<CMS_TEMPLATE> +<BODY bgcolor="white"> +<SCRIPT type="text/javascript"> +<!-- +function toHex1(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + + return sign + '0x' + absValue; +} + +function toHex(number) +{ + return '0x' + number; +} + +function renderFoot() +{ + document.writeln(""); + document.writeln('<FORM ACTION= 'processCertReq?seqNum='+result.header.seqNum+ + ' METHOD=POST>'); + document.writeln('<INPUT TYPE="HIDDEN" NAME="seqNum" VALUE="'+result.header.seqNum +'">'); + + document.writeln('<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%">'); + document.writeln('<tr><td ALIGN=RIGHT BGCOLOR="#E5E5E5">'); + if (result.header.assignedTo == null || + result.header.assignedTo == result.header.callerName) { + document.writeln('<SELECT NAME="toDo">'); + document.writeln('<OPTION VALUE="clone">Clone this request</OPTION>'); + document.writeln('</SELECT> '); + document.writeln('<INPUT TYPE="submit" Value="Do It" width="72"> '); + //document.writeln('<INPUT TYPE="reset" VALUE="Reset" width="72"> '); + } + // document.writeln('<INPUT TYPE="button" VALUE="Help" width="72"'); + // document.writeln('onClick="help(\'http://www.redhat.com/docs/manuals/cert-system#1005417\')">'); + document.writeln('</td></tr></table>'); + document.writeln('</form>'); +} + +if (result.header.seqNum == null) { + document.writeln('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Problem Processing Your Request</font>'); + document.writeln('<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif">'); + agent/document.writeln('<tr><td> </td></tr></table>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.write('<P>The Certificate Manager encountered a problem while processing your request.'); + document.writeln(' The following is a detailed message of the error that occurred.'); + if (result.header.errors != null || result.header.errorDetails != null) { + document.writeln('<blockquote><B><pre>'); + if (result.header.errors != null) document.writeln(result.header.errors); + if (result.header.errorDetails != null) document.writeln(result.header.errorDetails); + document.writeln('</pre></B></blockquote>'); + } + document.write('<P>Please consult your local administrator for further assistance.'); + document.write(' The Certificate System logs may provide further information.'); + document.writeln('</font>'); +} else { + document.writeln('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Request <b>' + result.header.seqNum + '</b></font>'); + document.writeln('<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif">'); + document.writeln('<tr><td> </td></tr></table>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + + if ((result.header.toDo == 'accept' || result.header.toDo == 'reject' || + result.header.toDo == 'cancel') && result.header.status == 'pending') { + if (result.header.toDo == 'accept') { + document.writeln('<P>Request has not been accepted.'); + } + if (result.header.toDo == 'reject') { + document.writeln('<P>Request has not been rejected.'); + } + if (result.header.toDo == 'cancel') { + document.writeln('<P>Request has not been canceled.'); + } + if (result.header.errors != null) { + document.writeln('<P>Additional information:'); + document.writeln('<blockquote><B><pre>'+result.header.errors+'</pre></B></blockquote>'); + } + } + + if ((result.header.toDo == 'accept' || result.header.toDo == 'reject' || + result.header.toDo == 'cancel') && + (result.header.status == 'approved' || result.header.status == 'svc_pending')) { + document.writeln('<P>Request has been submitted.'); + } + + if ((result.header.toDo == 'accept' || result.header.toDo == 'reject') && + result.header.status == 'rejected') { + document.writeln('<P>Request has been rejected.'); + if (result.header.toDo == 'accept' && result.header.errors != null) { + document.writeln('<P>Additional information:'); + document.writeln('<blockquote><B><pre>'+result.header.errors+'</pre></B></blockquote>'); + } + } + if ((result.header.toDo == 'accept' || result.header.toDo == 'cancel') && + result.header.status == 'canceled') { + document.writeln('<P>Request has been canceled.'); + if (result.header.toDo == 'accept' && result.header.errors != null) { + document.writeln('<P>Additional information:'); + document.writeln('<blockquote><B><pre>'+result.header.errors+'</pre></B></blockquote>'); + } + } + + if (result.header.toDo == 'clone') { + var cloneRequestLoc = '/' + result.header.authorityid + + '/processReq?seqNum='+ + result.header.clonedRequestId; + var backRequestLoc = '/' + result.header.authorityid + + '/processReq?seqNum='+ + result.header.seqNum; + document.writeln('<P>Request has been cloned as '+ + '<a href="'+cloneRequestLoc+'">request '+ + result.header.clonedRequestId+'</a>.'); + document.writeln('<P>Go back to '+ + '<a href="'+backRequestLoc+'">request '+ + result.header.seqNum+'</a>.'); + } + + // XXX set repeat record of issued certs. + if (result.header.toDo == 'accept' && + result.header.status == 'complete') { + if (result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal') { + if (result.header.serialNumber != null && + result.header.authorityid != null) { + document.write('<P>Generated certificate(s) with serial number(s): '); + document.writeln('0x'+result.header.serialNumber+' '); + if (typeof(result.header.grantError) != "undefined") { + document.writeln('<P>'); + if (result.header.grantError == 'SUCCESS') { + document.writeln('User ID '+result.header.grantUID+ + ' has been created using this certificate with '+ + result.header.grantPrivilege+ + ' privileges.'); + } + else { + var grantAccess = "trusted manager or agent"; + if (typeof(result.header.grantPrivilege) != "undefined") + grantAccess = result.header.grantPrivilege; + + document.writeln('However, a '+grantAccess+ + ' was not created from this request in the'+ + ' user and group database.<br>'); + document.writeln( + 'Error details: <b>'+result.header.grantError+'</b>'); + document.writeln( + '<p>You can still create a '+grantAccess+ + ' with this certificate through the Console.'); + } + } + + document.writeln('<FORM METHOD=post ACTION="/'+ result.header.authorityid + + '/displayCertFromRequest">\n'); + document.writeln('<INPUT TYPE=hidden NAME="requestId" VALUE="'+ + result.header.seqNum +'">\n'); + document.writeln('<INPUT TYPE=hidden NAME="op" VALUE="displayBySerial">\n'); + document.writeln('<INPUT TYPE=hidden NAME="serialNumber" VALUE="'+ + '0x'+result.header.serialNumber +'">\n'); + document.writeln('<INPUT TYPE=submit VALUE="Show Certificate" width="72"></FORM>\n'); +/* + if (result.header.dirEnabled != null && result.header.dirEnabled == 'yes') { + if (result.header.certsUpdated > 0) { + document.writeln('<P>The certificate(s) have been successfully published.'); + } else { + document.writeln('<P>One or more certificates could not be published. See log files for more details.'); + } + } +*/ + } else { + document.writeln('<P>Request has been completed but no certificate has been generated.'); + if (result.header.errors != null) { + document.writeln('<P>Additional information:'); + document.writeln('<blockquote><B><pre>'+result.header.errors+'</pre></B></blockquote>'); + } + document.write('<P>The Certificate System logs may provide further information.'); + document.write('<P>'); + renderFoot(); + } + } else { + document.writeln('<P>Request has been completed.'); + if (result.header.errors != null) { + document.writeln('<P>Additional information:'); + document.writeln('<blockquote><B><pre>'+result.header.errors+'</pre></B></blockquote>'); + document.write('<P>The Certificate System logs may provide further information.'); + } + } + } + + document.writeln('</font>'); +} +//--> +</SCRIPT> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/processReq.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/processReq.template new file mode 100644 index 000000000..2f8fc7778 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/processReq.template @@ -0,0 +1,1415 @@ +<!-- --- 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> +<head> + <title>Display Request</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<SCRIPT type="text/javascript" SRC="/ca/agent/funcs.js"></SCRIPT> +<SCRIPT type="text/javascript" SRC="/ca/agent/helpfun.js"></SCRIPT> +<SCRIPT type="text/javascript" SRC="/ca/agent/dynamicVars.js"></SCRIPT> + +<CMS_TEMPLATE> + +<SCRIPT type="text/javascript"> +<!-- +if (header.profile == 'true') { + document.location="profileReview?requestId=" + header.seqNum; +} +var lengthOptions = new Array(0, "", + 86400, "1 Day", + 604800, "1 Week", + 1209600, "2 Weeks", + 2592000, "1 Month (30 days)", + 15552000, "6 Months (180 days)", + 31536000, "1 Year (365 days)", + 46656000, "18 Months (540 days)", + 63072000, "2 Years (730 days)"); + +function addSpaces(str) +{ + var outStr = ""; + var str0 = ""; + var i0 = 0; + var i1 = 0; + + while (i1 < str.length) { + i1 = str.indexOf(',', i0); + if (i1 > -1) { + i1++; + str0 += str.substring(i0, i1); + str0 += " "; + i0 = i1; + } else { + str0 += str.substring(i0, str.length); + i1 = str.length; + } + } + + i0 = 0; + i1 = 0; + while (i1 < str0.length) { + i1 = str0.indexOf('+', i0); + if (i1 > -1) { + i1++; + outStr += str0.substring(i0, i1); + outStr += " "; + i0 = i1; + } else { + outStr += str0.substring(i0, str0.length); + i1 = str0.length; + } + } + + return outStr; +} + +function renderRequestInfo() +{ + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Request</font></td></tr>'); + + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Status:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.status + '</font></td></tr>'); + + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Type:</font></td>'); + document.write('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.requestType != null) { + document.write(result.header.requestType); + } else { + document.write('unknown'); + } + document.writeln('</font></td></tr>'); + + if (result.header.status == 'pending') { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Assigned to:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ((result.header.assignedTo != null)? result.header.assignedTo: 'unassigned')+ + ' '); + if (result.header.assignedTo == null) { + document.write('<a href="processReq?doAssign=toMe&seqNum='+ + result.header.seqNum + '"' + + 'onMouseOver="return helpstatus(\'Click to assign the '+ + 'request to yourself\')" '+ + 'onMouseOut="return helpstatus(\'\')">'+ + 'assign to me</a>'); + } else if (result.header.assignedTo != result.header.callerName) { + document.write('<a href="processReq?doAssign=reassignToMe&seqNum=' + + result.header.seqNum + '"' + + 'onMouseOver=" return helpstatus(\'Click to re-assign the '+ + 'request to yourself\')" '+ + 'onMouseOut="return helpstatus(\'\')">'+ + 're-assign to me</a>'); + } else if (result.header.assignedTo == result.header.callerName) { + document.write('<a href="processReq?doAssign=reassignToNobody&seqNum=' + + result.header.seqNum + '"' + + 'onMouseOver=" return helpstatus(\'Click to cancel request '+ + 'assignment\')" '+ + 'onMouseOut="return helpstatus(\'\')">'+ + 'cancel request assignment</a>'); + } + document.writeln('</font></td></tr>'); + +// document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ +// ((result.header.assignedTo != null)? result.header.assignedTo: 'unassigned')+ +// '</font></td></tr>'); + } + + if (result.header.certType != null) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Certificate type:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.certType + '</font></td></tr>'); + } + + if (result.header.status == 'complete' && result.header.Result != null && + result.header.Result == '2' && result.header.errors != null) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Error:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.errors + '</font></td></tr>'); + } +} + +function renderRequesterInfo() +{ + if (result.header.requestType != 'revocation' && + result.header.requestType != 'unrevocation' && + result.header.requestType != 'getCertificates' && + (result.header.csrRequestorName != null || + result.header.csrRequestorEmail != null || + result.header.csrRequestorPhone != null || + result.header.subject != null)) { + + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Subject (requester)</font></td></tr>'); + + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Subject name:</font></td>'); + if (result.header.status == 'pending') { + document.writeln('<td valign="top" colspan="2">'+ + '<INPUT TYPE="TEXT" NAME="subject" SIZE=40 MAXLENGTH=254 VALUE="'+ + ((result.header.subject != null)? result.header.subject: '') + + '"></font></td></tr>'); + } else { + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ((result.header.subject != null)? addSpaces(result.header.subject): '') + + '</font></td></tr>'); + } + + if (result.header.csrRequestorName != null && + result.header.csrRequestorName != "") { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Name:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.csrRequestorName + '</font></td></tr>'); + } + + if (result.header.csrRequestorEmail != null && + result.header.csrRequestorEmail != "") { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Email:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.csrRequestorEmail + '</font></td></tr>'); + } + + if (result.header.csrRequestorPhone != null && + result.header.csrRequestorPhone != "") { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Phone:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.csrRequestorPhone + '</font></td></tr>'); + } + } + + if (result.header.csrRequestorComments != null && + result.header.csrRequestorComments != "") { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Comments:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.csrRequestorComments + '</font></td></tr>'); + } +} + +function renderPublicKeyInfo() +{ + if (result.header.requestType == 'Enrollment' || + result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal') { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Subject public key</font></td></tr>'); + + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Algorithm:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.subjectPublicKeyInfo + '</font></td></tr>'); + + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Public key:</font></td>'); + document.writeln('<td valign="top" colspan="2"><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.subjectPublicKey.replace(/\n/g, "<br>") + '</font></td></tr>'); + + //if (result.header.status == 'pending') { + //document.writeln('<tr><td valign="top" align="right"></td>'); + //document.writeln('<td valign="top">'+ + //'<INPUT TYPE="checkbox" NAME="checkPubKeyUniqueness" VALUE="no">'+ + //'</td>'); + //document.writeln('<td valign="top" align=left>'+ + //'<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + //'Override public key uniqueness requirement'+ + //'</font></td>'); + //} + } +} + +function renderSelectionWithNames(name, from, to, selected, names) +{ + document.writeln('<SELECT NAME="'+name+'" onChange="checkValidityLength()">'); + for (var i = from; i < to; i++) { + if (i == selected) { + document.writeln('<OPTION VALUE='+i+' SELECTED>'+names[i]); + } else { + document.writeln('<OPTION VALUE='+i+'>'+names[i]); + } + } + document.writeln('</SELECT>'); +} + +function renderSelection(name, from, to, selected) +{ + document.writeln('<SELECT NAME="'+name+'" onChange="checkValidityLength()">'); + for (var i = from; i < to; i++) { + if (i == selected) { + document.writeln('<OPTION VALUE='+i+' SELECTED>'+i); + } else { + document.writeln('<OPTION VALUE='+i+'>'+i); + } + } + document.writeln('</SELECT>'); +} + +function checkValidityLength() +{ + var i; + var fromDate; + i = document.forms[0].fromDay.selectedIndex; + var day = document.forms[0].fromDay.options[i].value; + i = document.forms[0].fromMonth.selectedIndex; + var month = document.forms[0].fromMonth.options[i].value; + i = document.forms[0].fromYear.selectedIndex; + var year = document.forms[0].fromYear.options[i].value; + i = document.forms[0].fromHour.selectedIndex; + var hour = document.forms[0].fromHour.options[i].value; + i = document.forms[0].fromMinute.selectedIndex; + var minute = document.forms[0].fromMinute.options[i].value; + i = document.forms[0].fromSecond.selectedIndex; + var second = document.forms[0].fromSecond.options[i].value; + + fromDate = new Date(year,month,day,hour,minute,second); + if (fromDate.getMonth() != month || fromDate.getDate() != day || year == 0) { + alert((++month)+"/"+day+"/"+year+" is invalid"); + return; + } + var fromTime = fromDate.getTime(); + + var toDate; + i = document.forms[0].toDay.selectedIndex; + day = document.forms[0].toDay.options[i].value; + i = document.forms[0].toMonth.selectedIndex; + month = document.forms[0].toMonth.options[i].value; + i = document.forms[0].toYear.selectedIndex; + year = document.forms[0].toYear.options[i].value; + i = document.forms[0].toHour.selectedIndex; + hour = document.forms[0].toHour.options[i].value; + i = document.forms[0].toMinute.selectedIndex; + minute = document.forms[0].toMinute.options[i].value; + i = document.forms[0].toSecond.selectedIndex; + second = document.forms[0].toSecond.options[i].value; + + toDate = new Date(year,month,day,hour,minute,second); + if (toDate.getMonth() != month || toDate.getDate() != day || year == 0) { + alert((++month)+"/"+day+"/"+year+" is invalid"); + return; + } + var toTime = toDate.getTime(); + + var len = (toTime - fromTime)/1000; + + for (i=2; i < lengthOptions.length; i+=2) { + if (lengthOptions[i] == len) { + document.forms[0].validityLength.selectedIndex = i/2; + break; + } + } + + if (i >= lengthOptions.length) + document.forms[0].validityLength.selectedIndex = 0; + + if (len < 0) + alert("NOT VALID AFTER date should not be earlier than NOT VALID BEFORE date."); + + return; +} + +function updateEndDate() +{ + var i; + var fromDate; + i = document.forms[0].fromDay.selectedIndex; + var day = document.forms[0].fromDay.options[i].value; + i = document.forms[0].fromMonth.selectedIndex; + var month = document.forms[0].fromMonth.options[i].value; + i = document.forms[0].fromYear.selectedIndex; + var year = document.forms[0].fromYear.options[i].value; + i = document.forms[0].fromHour.selectedIndex; + var hour = document.forms[0].fromHour.options[i].value; + i = document.forms[0].fromMinute.selectedIndex; + var minute = document.forms[0].fromMinute.options[i].value; + i = document.forms[0].fromSecond.selectedIndex; + var second = document.forms[0].fromSecond.options[i].value; + + fromDate = new Date(year,month,day,hour,minute,second); + if (fromDate.getMonth() != month || fromDate.getDate() != day || year == 0) { + alert((++month)+"/"+day+"/"+year+" is invalid"); + return; + } + var fromTime = fromDate.getTime(); + + i = document.forms[0].validityLength.selectedIndex; + var len = document.forms[0].validityLength.options[i].value; + var toDate = new Date(fromTime + len*1000); + + document.forms[0].toDay.selectedIndex = toDate.getDate() - 1; + document.forms[0].toMonth.selectedIndex = toDate.getMonth(); + document.forms[0].toHour.selectedIndex = toDate.getHours(); + document.forms[0].toMinute.selectedIndex = toDate.getMinutes(); + document.forms[0].toSecond.selectedIndex = toDate.getSeconds(); + i = document.forms[0].fromYear.options[0].value; + document.forms[0].toYear.selectedIndex = toDate.getFullYear() - i; +} + +function getNotValidBefore() +{ + var i; + var fromDate; + i = document.forms[0].fromDay.selectedIndex; + var day = document.forms[0].fromDay.options[i].value; + i = document.forms[0].fromMonth.selectedIndex; + var month = document.forms[0].fromMonth.options[i].value; + i = document.forms[0].fromYear.selectedIndex; + var year = document.forms[0].fromYear.options[i].value; + i = document.forms[0].fromHour.selectedIndex; + var hour = document.forms[0].fromHour.options[i].value; + i = document.forms[0].fromMinute.selectedIndex; + var minute = document.forms[0].fromMinute.options[i].value; + i = document.forms[0].fromSecond.selectedIndex; + var second = document.forms[0].fromSecond.options[i].value; + + fromDate = new Date(year,month,day,hour,minute,second); + if (fromDate.getMonth() != month || fromDate.getDate() != day || year == 0) { + alert((++month)+"/"+day+"/"+year+" is invalid"); + return null; + } + return (fromDate.getTime())/1000; +} + +function getNotValidAfter() +{ + var i; + var toDate; + i = document.forms[0].toDay.selectedIndex; + var day = document.forms[0].toDay.options[i].value; + i = document.forms[0].toMonth.selectedIndex; + var month = document.forms[0].toMonth.options[i].value; + i = document.forms[0].toYear.selectedIndex; + var year = document.forms[0].toYear.options[i].value; + i = document.forms[0].toHour.selectedIndex; + var hour = document.forms[0].toHour.options[i].value; + i = document.forms[0].toMinute.selectedIndex; + var minute = document.forms[0].toMinute.options[i].value; + i = document.forms[0].toSecond.selectedIndex; + var second = document.forms[0].toSecond.options[i].value; + + toDate = new Date(year,month,day,hour,minute,second); + if (toDate.getMonth() != month || toDate.getDate() != day || year == 0) { + alert((++month)+"/"+day+"/"+year+" is invalid"); + return null; + } + return (toDate.getTime())/1000; +} + +function renderValidityInfo() +{ + if ((result.header.requestType == 'Enrollment' || + result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal') && + result.header.status == 'pending') { + + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Validity</font></td></tr>'); + + + var months = new Array("January", "February", "March", "April", + "May", "June", "July", "August", + "September", "October", "November", "December"); + + var sel = -1; + if (result.header.validityLength != null) { + if (result.header.validityLength == 0 && + result.header.defaultValidityLength != null && + result.header.defaultValidityLength > 0) { + result.header.validityLength = result.header.defaultValidityLength; + } + for (i=0; i < lengthOptions.length; i+=2) { + if (lengthOptions[i] == result.header.validityLength) { + sel = i; + break; + } + } + } + if (sel <= 0 && result.header.validityLength == 0) { + sel = 10; // 6 Months (180 days) + result.header.validityLength = lengthOptions[sel]; + } else if (sel < 0 && result.header.validityLength > 0) { + sel = 0; + } + + var startDay = new Date(serverdate); + var year = startDay.getFullYear(); + var time = startDay.getTime(); + time += 1000*result.header.validityLength; + var endDay = new Date(time); + + + document.writeln('<tr><td align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Not valid before:</font></td>'); + document.writeln('<td valign="top" colspan="2">'); + + renderSelection("fromDay", 1, 32, startDay.getDate()); + renderSelectionWithNames("fromMonth", 0, months.length, startDay.getMonth(), months); + renderSelection("fromYear", year-2, year+10, year); + document.writeln(' '); + renderSelection("fromHour", 0, 24, startDay.getHours()); + renderSelection("fromMinute", 0, 60, startDay.getMinutes()); + renderSelection("fromSecond", 0, 60, startDay.getSeconds()); + + document.writeln('</td></tr>'); + + + document.writeln('<tr><td align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Not valid after:</font></td>'); + + document.writeln('<td valign="top" colspan="2">'); + + renderSelection("toDay", 1, 32, endDay.getDate()); + renderSelectionWithNames("toMonth", 0, months.length, endDay.getMonth(), months); + renderSelection("toYear", year-2, year+10, endDay.getFullYear()); + document.writeln(' '); + renderSelection("toHour", 0, 24, endDay.getHours()); + renderSelection("toMinute", 0, 60, endDay.getMinutes()); + renderSelection("toSecond", 0, 60, endDay.getSeconds()); + + document.writeln('</td></tr>'); + + + + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Length of validity period:</font></td>'); + + document.writeln('<td valign="top" colspan="2">'); + + + + // Output a selection menu with the requested value selected + document.writeln('<SELECT NAME="validityLength" onChange="updateEndDate()">'); + for (i=0; i < lengthOptions.length; i+=2) { + if (i == sel) { + document.writeln('<OPTION VALUE='+lengthOptions[i]+' SELECTED>'+lengthOptions[i+1]); + } else { + document.writeln('<OPTION VALUE='+lengthOptions[i]+'>'+lengthOptions[i+1]); + } + } + document.writeln('</SELECT>'); + + document.writeln('</td></tr>'); + + +// document.writeln('<tr><td valign="top" align="right"></td>'); +// document.writeln('<td valign="top">'+ +// '<INPUT TYPE="checkbox" NAME="checkValidityNesting" VALUE="no">'+ +// '</td>'); +// document.writeln('<td valign="top" aligh=left>'+ +// '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ +// 'Override validity nesting requirement'+ +// '</font></td></tr>'); + } +} + +function renderExtensionsInfo() +{ + if ((result.header.requestType == 'Enrollment' || + result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal') && + result.header.status == 'pending') { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Extensions</font></td></tr>'); + + // NS Cert Type Extension + + var clientcert = ""; + var servercert = ""; + var emailcert = ""; + var objectsigningcert = ""; + var cacert = ""; + var sslcacert = ""; + var emailcacert = ""; + var objectsigningcacert = ""; + + if (result.header.ext_ssl_client != null && result.header.ext_ssl_client == "true") { + clientcert = "CHECKED"; + } + if (result.header.ext_ssl_server != null && result.header.ext_ssl_server == "true") { + servercert = "CHECKED"; + } + if (result.header.ext_email != null && result.header.ext_email == "true") { + emailcert = "CHECKED"; + } + if (result.header.ext_object_signing != null && result.header.ext_object_signing == "true") { + objectsigningcert = "CHECKED"; + } + if (result.header.ext_ssl_ca != null && result.header.ext_ssl_ca == "true") { + sslcacert = "CHECKED"; + } + if (result.header.ext_email_ca != null && result.header.ext_email_ca == "true") { + emailcacert = "CHECKED"; + } + if (result.header.ext_object_signing_ca != null && result.header.ext_object_signing_ca == "true") { + objectsigningcacert = "CHECKED"; + } + if (result.header.certType == 'ca') { + cacert = "CHECKED"; + } + + if (result.header.certType == "ca") { + document.writeln('<tr><td valign="top" align="right" rowspan="7">'); + } else { + document.writeln('<tr><td valign="top" align="right" rowspan="4">'); + } + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Netscape certificate type (usage):</font></td>'); + + document.writeln('<td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + clientcert + + ' NAME="certTypeSSLClient" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' SSL Client</font></td></tr>'); + document.writeln('<tr><td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + servercert + + ' NAME="certTypeSSLServer" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' SSL Server</font></td></tr>'); + document.writeln('<tr><td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + emailcert + + ' NAME="certTypeEmail" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' Secure Email</font></td></tr>'); + if (result.header.certType == "client") { + document.writeln( + '<tr><td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + objectsigningcert + + ' NAME="certTypeObjSigning" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' Object Signing</font></td></tr>'); + } + + if (result.header.certType == "ca") { + document.writeln('<tr><td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + sslcacert + + ' NAME="certTypeSSLCA" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' Subordinate SSL CA</font></td></tr>'); + document.writeln('<tr><td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + emailcacert + + ' NAME="certTypeEmailCA" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' Subordinate Email CA</font></td></tr>'); + document.writeln('<tr><td valign="top">'+ + '<INPUT TYPE=CHECKBOX ' + objectsigningcacert + + ' NAME="certTypeObjSigningCA" VALUE="yes">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' Subordinate Executable Object Signing CA</font></td></tr>'); + } + document.writeln('<tr><td valign="top" colspan="3"></td></tr>'); + + + // Basic Constraints Extension + if (result.header.pathLenBasicConstraints != null) { + document.writeln('<tr><td valign="top" align="right">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Basic Constraints:</font></td>'); + document.write('<td valign="top" colspan="2">' + + '<INPUT TYPE="TEXT" NAME="pathLenBasicConstraint" SIZE=8 MAXLENGTH=10'); + if (result.header.pathLenBasicConstraints >= 0 && + result.header.caPathLen != null && (result.header.caPathLen < 0 || + (result.header.caPathLen > 0 && + result.header.pathLenBasicConstraints < result.header.caPathLen))) { + document.writeln(' VALUE="'+ result.header.pathLenBasicConstraints + '">'); + } else if (result.header.caPathLen != null && result.header.caPathLen > 0) { + document.writeln(' VALUE="'+ (result.header.caPathLen-1) + '">'); + } else if (result.header.caPathLen != null && result.header.caPathLen == 0) { + document.writeln(' VALUE="0">'); + } else { + document.writeln(' VALUE="">'); + } + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' Path Length Constraint</font>'); + document.writeln('<INPUT TYPE="HIDDEN" NAME="pathLenConstraint" VALUE="">'); + document.writeln('</td></tr>'); + } + document.writeln('<tr><td valign="top" colspan="3"></td></tr>'); + + + // handle Presence Server Extension + if (result.header.PresenceServerExtension != null) { + document.writeln('<tr><td valign="top" align="right">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ 'Presence Server Extension:</font></td>'); + document.write('<td valign="top" colspan="2">'); + document.write('<input type=checkbox name="PSE_Enable" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Enable</font><br>'); + document.write('<input type=checkbox name="PSE_Critical" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Critical</font><br>'); + document.write('<input type=text name="PSE_Version" value=""><font size= "-1" face="PrimaSans BT, Verdana, sans-serif"> Version (Integer)</font><br>'); + document.write('<input type=text name="PSE_StreetAddress" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> Street Address (String)</font><br>'); + document.write('<input type=text name="PSE_TelephoneNumber" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> Telephone Number (String)</font><br>'); + document.write('<input type=text name="PSE_RFC822Name" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> RFC822 Name (String)</font><br>'); + document.write('<input type=text name="PSE_IMID" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> IM ID (String)</font><br>'); + document.write('<input type=text name="PSE_HostName" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> Host Name (String)</font><br>'); + document.write('<input type=text name="PSE_PortNumber" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> Port Number (Integer)</font><br>'); + document.write('<input type=text name="PSE_MaxUsers" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> Max Users (Integer)</font><br>'); + document.write('<input type=text name="PSE_ServiceLevel" value=""><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> Service Level (Integer)</font><br>'); + document.write('</td>'); + document.writeln('<tr><td valign="top" colspan="3"></td></tr>'); + } + // Other extensions + + if (result.recordSet.length > 0) { + var nRows = 0; + for (var i = 0; i < result.recordSet.length; i++) { + if (typeof(result.recordSet[i].ext_prettyprint) == "undefined") + continue; + else + nRows++; + } + nRows++; + document.writeln('<tr><td valign="top" align="right" rowspan="'+nRows+'">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Other Extensions:</font></td></tr>'); + for (var i = 0; i < result.recordSet.length; i++) { + if (typeof(result.recordSet[i].ext_prettyprint) == "undefined") + continue; + document.writeln('<tr><td valign="top" align="left" >'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + '<pre>'+ result.recordSet[i].ext_prettyprint+ + '</pre></font></td><td></td><td></td></tr>'); + } + } + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Additional Extensions:</font></td>\n<td valign="top" colspan="2">'+ + '<textarea name="addExts" rows="5" cols="40"></textarea></td></tr>'); + } +} + +function renderSignatureInfo() +{ + if ((result.header.requestType == 'Enrollment' || + result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal') && + result.header.status == 'pending' && + result.header.validAlgorithms != null) { + + algorithmName = result.header.validAlgorithms.split('+'); + if (algorithmName.length > 0) { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Signature</font></td></tr>'); + + document.writeln('<tr><td align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Algorithm:</font></td>'); + + document.writeln('<td valign="top" colspan="2">'); + document.writeln('<SELECT NAME="signatureAlgorithm">'); + + var signingAlgorithm; + if (result.header.caSigningAlgorithm != null) + signingAlgorithm = result.header.caSigningAlgorithm; + else + signingAlgorithm = result.header.signatureAlgorithmName; + + var i; + for (i = 0; i < algorithmName.length; i++) { + document.write('<OPTION VALUE="' + algorithmName[i] + '"'); + if (signingAlgorithm == algorithmName[i]) + document.write(' SELECTED'); + document.writeln('>' + algorithmName[i] + '</OPTION>'); + } + + document.writeln('</SELECT>'); + document.writeln('</td></tr>'); + } + } +} + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + + if (number < 0) { + sign = "-"; + number = -number; + } + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + + return sign + absValue; +} + +function renderHexNumber(number,width) +{ + var num = number; + while (num.length < width) + num = "0"+num; + return "0x"+num; +} + +function renderCertificateInfo() +{ + if ((result.header.status == 'complete' && + (result.header.requestType == 'Enrollment' || + result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal')) || + result.header.requestType == 'getRevocationInfo') { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.requestType == 'getRevocationInfo') { + document.writeln('Certificate</font></td></tr>'); + } else { + document.writeln('Issued certificate</font></td></tr>'); + } + + if (result.header.serialNumber != null) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Serial number:</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<a href="displayBySerial?serialNumber='+ + '0x'+result.header.serialNumber + '"' + + ' onMouseOver=" return helpstatus(\'Click to display this '+ + 'certificate \')" onMouseOut="return helpstatus(\'\')">'); + document.write(renderHexNumber(result.header.serialNumber,8)); + if (result.header.serialNumber2 != null) { + document.writeln('</a> '); + document.writeln('<a href="displayBySerial?serialNumber='+ + '0x'+result.header.serialNumber2 + '"' + + ' onMouseOver=" return helpstatus(\'Click to display this '+ + 'certificate \')" onMouseOut="return helpstatus(\'\')">'); + document.write(renderHexNumber(result.header.serialNumber2,8)); + } + document.writeln('</a></font></td></tr>'); + + if (result.header.requestType == 'getRevocationInfo' && + result.header.status == 'complete') { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Verified</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.reason == null) { + document.writeln('as not revoked'); + } else { + document.write('as revoked with the reason: '+ + result.header.reason); + } + document.writeln('</font></td></tr>'); + } + } else { + if (result.header.requestType == 'getRevocationInfo') { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + '</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(''); + } else { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Error:</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Certificate not issued'); + } + document.writeln('</font></td></tr>'); + + if (result.header.errors != null) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Additional information:</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + result.header.errors + '</font></td></tr>'); + } + } + } + + if (result.header.requestType == 'revocation' || + result.header.requestType == 'unrevocation' || + result.header.requestType == 'getCertificates' || + result.header.requestType == 'getCAChain') { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.recordSet.length > 0) { + if (result.header.requestType == 'getCAChain') { + document.writeln('Certificate Chain</font></td></tr>'); + } else if (result.recordSet.length > 1) { + document.writeln('Certificates</font></td></tr>'); + } else { + document.writeln('Certificate</font></td></tr>'); + } + for (var i = 0; i < result.recordSet.length; i++) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Serial number:</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.requestType != 'getCAChain') { + document.writeln('<a href="displayBySerial?serialNumber='+ + '0x'+result.recordSet[i].serialNumber + '"' + + ' onMouseOver=" return helpstatus(\'Click to display this '+ + 'certificate \')" onMouseOut="return helpstatus(\'\')">'); + } + document.writeln(renderHexNumber(result.recordSet[i].serialNumber,8) + + '</font></a></td></tr>'); + if (result.recordSet[i].reason != null) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Reason:</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(result.recordSet[i].reason +'</font></a></td></tr>'); + } + } + } else { + if (result.header.requestType == 'getCAChain') { + document.writeln('Certificate Chain</font></td></tr>'); + } else { + document.writeln('Certificates</font></td></tr>'); + } + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'Error:</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Request contains no certificate to revoke.</font></a></td></tr>'); + } + } +} + +function renderFingerprints() +{ + if (result.header.fingerprints != null) { + + fingerprintValues = result.header.fingerprints.split('+'); + if (fingerprintValues.length > 0) { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Fingerprints</font></td></tr>'); + + var i; + for (i = 0; i < fingerprintValues.length; i += 2) { + document.writeln('<tr><td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + fingerprintValues[i] + ':</font></td>'); + document.writeln('<td valign="top" colspan="2">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(fingerprintValues[i+1] +'</font></a></td></tr>'); + } + } + } +} + +function renderPolicyInfo() +{ + if ((result.header.status == 'rejected' || result.header.status == 'canceled') && + result.header.errors != null) { + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Policy information</font></td></tr>'); + + document.writeln('<tr><td valign="top" align="left" colspan="3">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif"><pre>'); + document.writeln(result.header.errors); + document.writeln('</pre></font></td></tr>'); + } +} + +function renderLongStrings(value) +{ + var len = value.toString().length; + if (len > 64 && value.toString().indexOf("\n") > 0) { + document.writeln(value.toString().replace(/\n/g, "<br>")); + } else if (len > 64) { + for (var i = 0; i < len; i += 64) { + var n = len; + var b = ""; + if (i+64 < len) { + n = i + 64; + b = "<br>"; + } + document.writeln(value.toString().substring(i, n)+b); + } + } else { + document.writeln(value); + } +} + +function renderNameAndValue(name, value) +{ + document.writeln('<tr><td valign="top" align="right">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(name); + document.writeln('</font></td>'); + document.writeln('<td valign="top" align="left" colspan="2">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + renderLongStrings(value); + document.writeln('</font></td></tr>'); +} + +function renderRequestAttrs() +{ + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Unauthenticated Request Attributes</font></td></tr>'); + + if (result.header.HTTP_PARAMS.length > 0) { + for (var i = 0; i < result.header.HTTP_PARAMS.length; i++) { + renderNameAndValue("HTTP_PARAMS."+result.header.HTTP_PARAMS[i].name+":", result.header.HTTP_PARAMS[i].value); + } + } + if (result.header.HTTP_HEADERS.length > 0) { + document.writeln(""); + for (var j = 0; j < result.header.HTTP_HEADERS.length; j++) { + renderNameAndValue("HTTP_HEADERS."+result.header.HTTP_HEADERS[j].name+":", result.header.HTTP_HEADERS[j].value); + } + } + + document.writeln('<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Authenticate Request Attributes (from authentication, policy and other server modules)</font></td></tr>'); + if (result.header.AUTH_TOKEN.length > 0) { + document.writeln(""); + for (var k = 0; k < result.header.AUTH_TOKEN.length; k++) { + if (result.header.AUTH_TOKEN[k].name == 'authtime') { + renderNameAndValue("AUTH_TOKEN."+result.header.AUTH_TOKEN[k].name+":", + new Date(parseInt(result.header.AUTH_TOKEN[k].value))); + } else if (result.header.AUTH_TOKEN[k].name == 'authTime') { + continue; + } else { + renderNameAndValue("AUTH_TOKEN."+result.header.AUTH_TOKEN[k].name+":", + result.header.AUTH_TOKEN[k].value); + } + } + } + if (result.header.SERVER_ATTRS.length > 0) { + document.writeln(""); + for (var l = 0; l < result.header.SERVER_ATTRS.length; l++) { + //if (result.header.SERVER_ATTRS[l].name != 'CERT_INFO') + renderNameAndValue(result.header.SERVER_ATTRS[l].name+":", result.header.SERVER_ATTRS[l].value); + } + } + +} + + +function getValue(str, name) +{ + var i = str.indexOf(name); + var s = ""; + if (i > -1) { + var j = str.indexOf(",", i); + if (j > -1) { + s += str.substring(i+name.length, j); + } else { + s += str.substring(i+name.length); + } + j = s.indexOf("@"); + if (j > -1) { + s = s.substring(0, j); + } + } + return s; +} + +function renderGrantPrivileges() +{ + if ((result.header.requestType != 'Enrollment' && + result.header.requestType != 'enrollment') || + result.header.status != 'pending' || + (result.header.ext_ssl_client != "true" && + result.header.ext_ssl_server != "true" && + result.header.ext_email != "true" && + result.header.ext_object_signing != null && + result.header.ext_object_signing == "true")) + return; + + var id = ""; + if (result.header.subject != null) { + id = getValue(result.header.subject, "UID="); + if (id.length < 1) + id = getValue(result.header.subject, "E="); + } + + if (result.header.certType == 'ra') { + if (result.header.requestTrustedManagerPrivilege != "undefined" && + result.header.requestTrustedManagerPrivilege == "true") + checked = "CHECKED"; + else + checked = "UNCHECKED"; + + document.writeln( + '<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln( + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Privileges</font></td></tr>'); + document.writeln('<tr><td valign=top align=right></td>'); + document.writeln('<td valign="top">'+ + '<input type=checkbox '+checked+ + ' name="grantTrustedManagerPrivilege">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' This certificate is for a Trusted Manager'+ + '</font></td></tr>'); + if (id.length < 1) id = "ra" + result.header.seqNum; + document.writeln('<tr>'+ + '<td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'New User ID for the Trusted Manager:'+'</font></td>'+ + '<td valign="top" align="left">'+ + '<input type=text name=grantUID size=15 value="'+id+'">'+ + '</td></tr>'); + } + else if (result.header.certType == 'client') { + document.writeln( + '<tr><td valign="top" align="left" colspan="3" bgcolor="#e5e5e5">'); + document.writeln( + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Privileges</font></td></tr>'); + if (typeof(result.header.localca) != "undefined") { + document.writeln('<tr><td valign=top align=right></td>'+ + '<td valign="top">'+ + '<input type=checkbox name="grantCMAgentPrivilege">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' This certificate is for a Certificate Manager agent'+ + '</font></td></tr>'); + } + if (typeof(result.header.localkra) != "undefined") { + document.writeln('<tr><td valign=top align=right></td>'+ + '<td valign="top">'+ + '<input type=checkbox name="grantDRMAgentPrivilege">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' This certificate is for a Data Recovery Manager agent'+ + '</font></td></tr>'); + } + if (typeof(result.header.localra) != "undefined") { + document.writeln('<tr><td valign=top align=right></td>'+ + '<td valign="top">'+ + '<input type=checkbox name="grantRMAgentPrivilege">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + ' This certificate is for a Registration Manager agent'+ + '</font></td></tr>'); + } + if (id.length < 1) id = "u" + result.header.seqNum; + document.writeln('<tr>'+ + '<td valign="top" align="right">'+ + '<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'+ + 'New User ID for the agent:'+'</font></td>'+ + '<td valign="top" align="left">'+ + '<input type=text name="grantUID" size=30 value="'+id+'">'+ + '</td></tr>'); + } +} + +function renderFoot() +{ + document.writeln('<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%">'); + document.writeln('<tr><td ALIGN=RIGHT BGCOLOR="#E5E5E5">'); + + document.writeln('<SELECT NAME="toDo">'); + if (result.header.status == 'pending' && + (result.header.assignedTo == null || + result.header.assignedTo == result.header.callerName)) { + document.writeln('<OPTION VALUE="accept">Accept this request</OPTION>'); + document.writeln('<OPTION VALUE="cancel">Cancel this request</OPTION>'); + document.writeln('<OPTION VALUE="reject">Reject this request</OPTION>'); + } else if (result.header.status == 'svc_pending') { + document.writeln('<OPTION VALUE="cancel">Cancel this request</OPTION>'); + } + document.writeln('<OPTION VALUE="clone">Clone this request</OPTION>'); + document.writeln('</SELECT> '); + + document.writeln('<INPUT TYPE="submit" Value="Do It" width="72"> '); + + // document.writeln('<INPUT TYPE="button" VALUE="Help" width="72"'); + // document.writeln('onClick="help(\'http://www.redhat.com/docs/manuals/cert-system#Approving Requests\')">'); + document.writeln('</td></tr></table>'); +} + + +function isblank(s) +{ + for (var i=0; i<s.length; i++) { + var c = s.charAt(i) + if ((c != ' ') && (c != '\n') && (c != '\t') ) return false + } + return true +} + +function checkSubject() +{ + if (document.forms[0].subject != null && + document.forms[0].subject.value != null && + document.forms[0].subject.value.length > 0) { + + var outStr = ""; + var str = ""; + var subject = document.forms[0].subject.value; + var i0 = subject.indexOf('='); + var i1 = 0; + var i2 = 0; + var i3 = 0; + var i4 = 0; + + if (i0 > -1) i0++; + + while (i0 > -1 && i1 > -1) { + i1 = subject.indexOf('=', i0+1); + if (i1 > -1) { + str = subject.substring(i0, i1); + i2 = str.indexOf(','); + i3 = 0; + while (i2 > -1 && i3 > -1) { + i3 = str.indexOf(',', i2+1); + if (i3 > -1 && (i2 < 1 || str.charAt(i2-1) != "\\")) { + outStr += subject.substring(i4, i0+i2); + outStr += "\\"; + i4 = i0+i2; + } + i2 = i3; + } + i0 = i1++; + } else { + str = subject.substring(i0, subject.length); + i2 = str.indexOf(','); + while (i2 > -1) { + if (i2 < 1 || str.charAt(i2-1) != "\\") { + outStr += subject.substring(i4, i0+i2); + outStr += "\\"; + i4 = i0+i2; + } + i2++; + i2 = str.indexOf(',', i2); + } + } + } + + if (i4 > 0) { + outStr += subject.substring(i4, subject.length); + document.forms[0].subject.value = outStr; + } + } +} + + +function uid_check() +{ + if ((result.header.requestType == 'Enrollment' || + result.header.requestType == 'enrollment' || + result.header.requestType == 'renewal') && + result.header.status == 'pending') { + + var t1 = getNotValidBefore(); + if (t1 == null) return false; + var t2 = getNotValidAfter(); + if (t2 == null) return false; + if (t1 > t2) { + alert("NOT VALID AFTER date should not be earlier than NOT VALID BEFORE date."); + return false; + } + document.forms[0].notValidBefore.value = t1; + document.forms[0].notValidAfter.value = t2; + + if (result.header.pathLenBasicConstraints != null) { + if (result.header.caPathLen != null && result.header.caPathLen == 0 && + document.forms[0].toDo.selectedIndex == 0) { + alert("This CA is not allowed to sign subordinate CA certificate. "+ + "This request has to be canceled or rejected.") + return false + } + if (typeof(document.forms[0].pathLenBasicConstraint) != "undefined") { + document.forms[0].pathLenConstraint.value = + document.forms[0].pathLenBasicConstraint.value; + if (document.forms[0].pathLenConstraint.value != "") { + if (isDecimalNumber(document.forms[0].pathLenConstraint.value)) { + document.forms[0].pathLenConstraint.value = + trim(document.forms[0].pathLenConstraint.value); + if (result.header.caPathLen != null && result.header.caPathLen > 0 && + parseInt(document.forms[0].pathLenConstraint.value) >= result.header.caPathLen) { + alert("Choose integer number from 0 to "+ + (result.header.caPathLen-1)+" for Path Length Constraint") + return false + } + } else { + alert("You must provide non-negative integer number for "+ + "Path Length Constraint or leave it empty") + return false + } + } else { + if (result.header.caPathLen != null && result.header.caPathLen > 0) { + alert("Choose integer number from 0 to "+ + (result.header.caPathLen-1)+" for Path Length Constraint") + return false + } else { + document.forms[0].pathLenConstraint.value = "-1"; + } + } + } + } + + checkSubject(); + + if ( result.header.certType == 'ra') { + if (typeof(document.forms[0].grantTrustedManagerPrivilege.checked) != + "undefined" && + document.forms[0].grantTrustedManagerPrivilege.checked && + (document.forms[0].grantUID.value == "" || + document.forms[0].grantUID.value == null || + isblank(document.forms[0].grantUID.value)) ) { + alert("You must provide a non-empty UID for the new trusted manager!") + return false + } + } else if (result.header.certType == 'client') { + if (typeof(result.header.localca) != "undefined") { + if ( + typeof(document.forms[0].grantCMAgentPrivilege) != "undefined" && + document.forms[0].grantCMAgentPrivilege.checked && + (document.forms[0].grantUID.value == "" || + document.forms[0].grantUID.value == null || + isblank(document.forms[0].grantUID.value)) ) { + alert("You must provide a non-empty UID for the new Certificate Manager agent!") + return false + } + } + if (typeof(result.header.localkra) != "undefined") { + if ( + typeof(document.forms[0].grantDRMAgentPrivilege) != "undefined" && + document.forms[0].grantDRMAgentPrivilege.checked && + (document.forms[0].grantUID.value == "" || + document.forms[0].grantUID.value == null || + isblank(document.forms[0].grantUID.value)) ) { + alert("You must provide a non-empty UID for the new Data Recovery Manager agent!") + return false + } + } + if (typeof(result.header.localra) != "undefined") { + if ( + typeof(document.forms[0].grantRMAgentPrivilege) != "undefined" && + document.forms[0].grantRMAgentPrivilege.checked && + document.forms[0].grantRMAgentPrivilege.checked && + (document.forms[0].grantUID.value == "" || + document.forms[0].grantUID.value == null || + isblank(document.forms[0].grantUID.value)) ) { + alert("You must provide a non-empty UID for the new Registration Manager agent!") + return false + } + } + } + } + + return true +} +document.writeln('<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366">'); +document.writeln('<font size=+1 face="PrimaSans BT, Verdana, sans-serif">'); +document.writeln('Request <a href="/ca/agent/ca/processReq?seqNum='+ + result.header.seqNum + '"' + + 'onMouseOver=" return helpstatus(\'Click to redisplay this '+ + 'request \')" onMouseOut="return helpstatus(\'\')">'+ + result.header.seqNum + '</a></font>'); + +document.writeln('<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif">'); +document.writeln('<tr><td> </td></tr></table>'); + +document.writeln('<FORM ACTION=/ca/processCertReq METHOD=POST ' + +'onSubmit="return uid_check()">'); + +document.writeln('<INPUT TYPE="HIDDEN" NAME="seqNum" VALUE="' + + result.header.seqNum + '">'); + +document.writeln('<INPUT TYPE="HIDDEN" NAME="notValidBefore" VALUE="">'); +document.writeln('<INPUT TYPE="HIDDEN" NAME="notValidAfter" VALUE="">'); + +if (result.header.csrRequestorName != null) { + document.writeln('<INPUT TYPE="HIDDEN" NAME="csrRequestorName" VALUE="' + + result.header.csrRequestorName + '">'); +} +if (result.header.csrRequestorEmail != null) { + document.writeln('<INPUT TYPE="HIDDEN" NAME="csrRequestorEmail" VALUE="' + + result.header.csrRequestorEmail + '">'); +} +if (result.header.csrRequestorPhone != null) { + document.writeln('<INPUT TYPE="HIDDEN" NAME="csrRequestorPhone" VALUE="' + + result.header.csrRequestorPhone + '">'); +} + +document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); +document.writeln('<tr align="left">'+ + '<td width="15%"></td>'+ + '<td width="1%"></td>'+ + '<td width="60%"></td></tr>'); + +renderRequestInfo(); + +renderRequesterInfo(); + +renderPublicKeyInfo(); + +renderValidityInfo(); + +renderExtensionsInfo(); + +renderSignatureInfo(); + +renderFingerprints(); + +renderRequestAttrs(); + +renderGrantPrivileges(); + +renderCertificateInfo(); + +renderPolicyInfo(); + +document.writeln('</table><br> '); + +//renderFoot(); + + +document.writeln('</FORM>'); +document.writeln('</BODY>'); + +//--> +</SCRIPT> + +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryBySerial.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryBySerial.html new file mode 100644 index 000000000..95f8ed653 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryBySerial.html @@ -0,0 +1,186 @@ +<!-- --- 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> +<head> + <title>List Certificates Within a Serial Number Range</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> + +<script type="text/javascript"> +<!-- +function doSubmit(form) +{ + var canonicalFrom = "", canonicalTo = ""; + + if ( form.serialFrom.value!= "") { + canonicalFrom = + trim(form.serialFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom, 16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range."); + return; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range."); + return; + } + form.serialFrom.value = canonicalFrom; + } + + if ( form.serialTo.value!= "") { + canonicalTo = + trim(form.serialTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo, 16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range."); + return; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range."); + return; + } + form.serialTo.value = canonicalTo; + } + + /* Can't do this using parseInt*/ + /* + if (form.serialFrom.value != "" && form.serialTo.value != "" ) { + if (parseInt(form.serialFrom.value) > parseInt(form.serialTo.value)) { + alert("The low end of the range is larger than the high end."); + return; + } + } + */ + + if (!form.skipRevoked.checked && !form.skipNonValid.checked) { + form.queryCertFilter.value = "(certStatus=*)"; + } else if (form.skipRevoked.checked && form.skipNonValid.checked) { + form.queryCertFilter.value = "(certStatus=VALID)"; + } else if (form.skipRevoked.checked) { + form.queryCertFilter.value = "(|(certStatus=VALID)(certStatus=INVALID)(certStatus=EXPIRED))"; + } else if (form.skipNonValid.checked) { + form.queryCertFilter.value = "(|(certStatus=VALID)(certStatus=REVOKED))"; + } + + if (form.serialFrom.value == "") { + form.querySentinelDown.value = "0"; + } else { + form.querySentinelDown.value = form.serialFrom.value; + form.querySentinelUp.value = form.serialFrom.value; + form.direction.value = "down"; + } + form.op.value = "listCerts"; + form.submit(); +} +//--> +</script> +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">List Certificates</font> +<br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to list certificates whose serial numbers fall within a specified range.</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<form ACTION="listCerts" METHOD=POST> + <input TYPE="HIDDEN" NAME="op" VALUE=""> + <input TYPE="HIDDEN" NAME="queryCertFilter" VALUE=""> + +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter a range of certificate serial numbers in hexadecimal form +(starting with 0x, as in the certificate list), or in decimal form. +</font> + +<p> +<table BORDER=0 CELLSPACING=2 CELLPADDING=0> + <tr> + <td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Lowest serial number</font> + </td> + <td><input TYPE="TEXT" NAME="serialFrom" SIZE=10 MAXLENGTH=99></td> + <td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + (leave blank for no lower limit)</font> + </td> + </tr> + <tr> + <td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + Highest serial number</font></font></td> + <td><input TYPE="TEXT" NAME="serialTo" SIZE=10 MAXLENGTH=99></td> + <td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> + (leave blank for no upper limit)</font> + </td> + </tr> +</table> + +<p> +<input TYPE="CHECKBOX" NAME="skipRevoked"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Do not show certificates that have been revoked</font> +<br> +<input TYPE="CHECKBOX" CHECKED NAME="skipNonValid"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Do not show certificates that have expired or are not yet valid</font> +<br> +<br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <input TYPE="button" VALUE="Find" width="72" onClick="doSubmit(this.form);"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">first</font> + <INPUT TYPE="hidden" NAME="querySentinelDown" VALUE=""> + <INPUT TYPE="hidden" NAME="querySentinelUp" VALUE=""> + <INPUT TYPE="hidden" NAME="direction" VALUE="begin"> + <INPUT TYPE="TEXT" NAME="maxCount" SIZE=4 MAXLENGTH=99 VALUE="20"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">records</font> + <!-- <input TYPE="button" VALUE="Help" width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Basic Certificate Listing')"> --> + </td> + </tr> +</table> +</form> +</body> +</html> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryCert.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryCert.html new file mode 100644 index 000000000..73d59ef30 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryCert.html @@ -0,0 +1,1543 @@ +<!-- --- 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> +<head> + <title>Search for Certificates</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">Search for Certificates +</font><br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to compose queries based on properties of the certificate. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Each section below filters the search. Check the box at the top of the +section if you want to use that filter in your search, then complete the fields. +Leave a box unchecked to ignore that filter. You can click more than one box +to get a combination of search criteria. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Serial Number Range</font></b> +<FORM NAME="serialNumberRangeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates that fall within the following range:</font> +</td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Lowest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialFrom" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Highest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialTo" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> +</table> +</FORM> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter a range of certificate serial numbers in hexadecimal form +(starting with 0x, as in the certificate list), or in decimal form. +</font> + +<SCRIPT type="text/javascript"> +//<!-- +function serialNumberRangeCritInUse() +{ + return document.serialNumberRangeCritForm.inUse.checked; +} + +function serialNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + var canonicalFrom = "", canonicalTo = ""; + + if (document.serialNumberRangeCritForm.serialFrom.value != "") { + canonicalFrom = + trim(document.serialNumberRangeCritForm.serialFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom,16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range."); + return null; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId>=" + canonicalFrom + ")"; + } + + if (document.serialNumberRangeCritForm.serialTo.value != "") { + canonicalTo = + trim(document.serialNumberRangeCritForm.serialTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo,16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range."); + return null; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId<=" + canonicalTo + ")"; + } + + /* Can not do this using parseInt */ + /* + if (document.serialNumberRangeCritForm.serialFrom.value != "" && + document.serialNumberRangeCritForm.serialTo.value != "") { + if (parseInt(canonicalFrom) > parseInt(canonicalTo)) { + alert("The low end of the range is larger than the high end."); + return null; + } + } + */ + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Status</font></b> +<FORM NAME="statusCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates that are +<select NAME="status"> +<option value="VALID">VALID +<option value="INVALID">INVALID +<option value="REVOKED">REVOKED +<option value="EXPIRED">EXPIRED +<option value="REVOKED_EXPIRED">REVOKED & EXPIRED +</select> +</font> +</td> +</tr> +</table> +</FORM> +<SCRIPT type="text/javascript"> +//<!-- +function statusCritInUse() +{ + return document.statusCritForm.inUse.checked; +} +function statusRangeCrit() +{ + return "(certStatus=" + document.statusCritForm.status.options[document.statusCritForm.status.selectedIndex].value + ")"; +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subject Name</font></b> +<FORM NAME="subjectCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates with a subject name matching the following: +</font> +</td> +</tr> + +<tr align="left"> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Email address:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="eMail" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Common name:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="commonName" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">User ID:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="userID" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization unit:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="orgUnit" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="org" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Locality:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="locality" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="state" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Country:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="country" VALUE="" SIZE=2 MAXLENGTH=2></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Match Method:</font> +</td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" NAME="match" VALUE="exact">Exact</font> +</td> +<tr> +<td> </td> +<td align="right"> </td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" CHECKED NAME="match" VALUE="partial">Partial</font> +</td> +</tr> +</table> +</FORM> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter values for the fields you want to have in your search criteria. +Leave other fields blank. +<br><br> +Exact match method finds certificates for subjects whose name consists +<b>exactly</b> of the components that you have filled in above, and contains +none of the components you have left blank. Pattern matching wildcard +values cannot be used in this search. +<br><br> +Partial match method finds certificates for subjects whose name consists +<b>in part</b> of the components you have specified above, and in addition +may contain arbitrary values for the other components you have left blank above. +Pattern matching wildcard values can be used in this search. +</font> + +<SCRIPT type="text/javascript"> +<!-- +function subjectCritInUse() +{ + return document.subjectCritForm.inUse.checked; +} +function subjectCrit() +{ + return computeNameFilter(document.subjectCritForm); +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=2 CELLPADDING=2 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Revocation Information</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr align="left"> +<FORM NAME="revokedByCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates revoked by:</font> +<INPUT TYPE="text" NAME="revokedBy" SIZE=10> +</td> +</FORM> +</tr> + +<tr> +<FORM NAME="revokedOnCritForm"> +<td> +<INPUT TYPE="CHECKBOX" NAME="inUse"> +</td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates revoked during the period:</font> +</td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign="top" align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="revokedOnFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="revokedOnTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="revocationReasonCritForm"> +<td valign="top" align="left"> +<INPUT TYPE="CHECKBOX" NAME="inUse"> +</td> +</FORM> +<td valign="top" align="left"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates revoked from the reason:</font> +</td> +<FORM NAME="revocationReasonForm"> +<td valign="top" nowrap> +<SELECT NAME="revocationReason" size=4 multiple> +<OPTION VALUE=0>Unspecified +<OPTION VALUE=1>Key compromised +<OPTION VALUE=2>CA key compromised +<OPTION VALUE=3>Affiliation changed +<OPTION VALUE=4>Certificate superceded +<OPTION VALUE=5>Cessation of operation +<OPTION VALUE=6>Certificate is on hold +<OPTION VALUE=8>Remove certificate from CRL +<OPTION VALUE=9>Privilege withdrawn +<OPTION VALUE=10>AA key compromised +</SELECT> +</td> +</FORM> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function revokedByCritInUse() +{ + return document.revokedByCritForm.inUse.checked; +} +function revokedByCrit() +{ + if (document.revokedByCritForm.revokedBy.value.length == 0) { + alert("User id in 'revoked by' filter is empty"); + return null; + } + return "(certRevokedBy="+ document.revokedByCritForm.revokedBy.value +")"; +} + +function revokedOnCritInUse() +{ + return document.revokedOnCritForm.inUse.checked; +} +function revokedOnCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.revokedOnFrom)) { + from = convertDate(document.revokedOnFrom, + "Start date for revocation time range criterion"); + if (from == null) return null; + crit[next++] = "(certRevokedOn>=" + from + ")"; + } + if (!dateIsEmpty(document.revokedOnTo)) { + to = convertDate(document.revokedOnTo, + "End date for revocation time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(certRevokedOn<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for revocation time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Revocation time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} + +function revocationReasonCritInUse() +{ + return document.revocationReasonCritForm.inUse.checked; +} +function revocationReasonCrit() +{ + var crit = new Array(); + var sum = null; + var next = 0; + + for (var i = 0; i < document.revocationReasonForm.revocationReason.length; i++) { + if (document.revocationReasonForm.revocationReason.options[i].selected == true) { + crit[next++] = "(x509cert.certRevoInfo="+i+")"; + } + } + sum = nsjoin(crit,""); + if (next > 1) { + sum = "(|" + sum + ")" + } else if (next < 1) { + alert("You must select at least one revocation reason."); + return null; + } + return sum; +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Issuing Information</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="issuedByCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates issued by:</font> +<INPUT TYPE="text" NAME="issuedBy" SIZE=10></td> +</FORM> +</tr> + +<tr> +<FORM NAME="issuedOnCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates issued during the period:</font></td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function issuedByCritInUse() +{ + return document.issuedByCritForm.inUse.checked; +} +function issuedByCrit() +{ + if (document.issuedByCritForm.issuedBy.value.length == 0) { + alert("User id in 'issued by' filter is empty"); + return null; + } + return "(certIssuedBy="+ document.issuedByCritForm.issuedBy.value +")"; +} + + +function issuedOnCritInUse() +{ + return document.issuedOnCritForm.inUse.checked; +} +function issuedOnCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.issuedOnFrom)) { + from = convertDate(document.issuedOnFrom, + "Start date for issue time range criterion"); + if (from == null) return null; + crit[next++] = "(certCreateTime>=" + from + ")"; + } + if (!dateIsEmpty(document.issuedOnTo)) { + to = convertDate(document.issuedOnTo, + "End date for issue time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(certCreateTime<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for issue time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Issue time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Dates of Validity</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotBeforeCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates effective during the period:</font></td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotBeforeCritInUse() +{ + return document.validNotBeforeCritForm.inUse.checked; +} + +function validNotBeforeCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotBeforeFrom)) { + from = convertDate(document.validNotBeforeFrom, + "Start date for the validity beginning time range criterion"); + if (from == null) return null; + crit[next++] = "(x509Cert.notBefore>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotBeforeTo)) { + to = convertDate(document.validNotBeforeTo, + "End date for the validity beginning time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(x509Cert.notBefore<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for validity beginning range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Validity beginning time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotAfterCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates expired during the period:</font></td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotAfterCritInUse() +{ + return document.validNotAfterCritForm.inUse.checked; +} + +function validNotAfterCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotAfterFrom)) { + from = convertDate(document.validNotAfterFrom, + "Start date for the expiration time range criterion"); + if (from == null) return null; + crit[next++] = "(x509cert.notAfter>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotAfterTo)) { + to = convertDate(document.validNotAfterTo, + "End date for the expiration time range criterion"); + if (to == null) return null; + to += 86399999; + crit[next++] = "(x509cert.notAfter<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for expiration time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Expiration time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<FORM NAME="validityLengthCritForm"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates with a validity period:</font></td> +</tr> +<tr> +<td> </td> +<td> +<SELECT NAME="validityOp"> +<OPTION VALUE="<="> not greater +<OPTION VALUE=">="> not less +</SELECT> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">than</font> +<INPUT NAME="count" TYPE="text" MAXSIZE=2 SIZE=2> +<SELECT NAME="unit"> +<OPTION VALUE="86400000">Day(s)</OPTION> +<OPTION VALUE="604800000">Week(s)</OPTION> +<OPTION SELECTED VALUE="2592000000">Month(s)</OPTION> +<OPTION VALUE="31536000000">Year(s)</OPTION> +</SELECT> +</td></tr> +</FORM> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validityLengthCritInUse() +{ + return document.validityLengthCritForm.inUse.checked; +} + +function validityLengthCrit() +{ + with(document.validityLengthCritForm) { + if(!isNumber(count.value,10)) { + alert("Invalid number specified in validity length criterion"); + return null; + } + + return "(x509cert.duration" + + validityOp.options[validityOp.selectedIndex].value + + (count.value * unit.options[unit.selectedIndex].value) +")"; + } +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"><b>Type</b></font> + +<FORM NAME="certTypeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Show certificates of the following types:</font> +</td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">SSL client:</font> +</td> +<td> +<SELECT NAME="SSLClient"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">SSL server:</font> +</td> +<td> +<SELECT NAME="SSLServer"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Secure email:</font> +</td><td> +<SELECT NAME="SecureEmail"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subordinate SSL CA:</font> +</td><td> +<SELECT NAME="SubordinateSSLCA"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subordinate email CA:</font> +</td><td> +<SELECT NAME="SubordinateEmailCA"> +<OPTION SELECTED VALUE="">Do not care +<OPTION VALUE="on">On +<OPTION VALUE="off">Off +</SELECT> +</td></tr> +</table> +</FORM> + +<SCRIPT type="text/javascript"> +<!-- +function certTypeCritInUse() +{ + return document.certTypeCritForm.inUse.checked; +} + +function certTypeCrit() +{ + var result = ''; + var count = 0; + + for (var i = 1; i < document.certTypeCritForm.length; i++) { + var sel = document.certTypeCritForm[i].selectedIndex; + if (sel > 0) { + count++; + result += '(x509cert.nsExtension.' + + document.certTypeCritForm[i].name + '='+ + document.certTypeCritForm[i].options[sel].value + ')'; + } + } + if (count == 0) { + alert("At least one of the certificate types must be selected"); + return null; + } + + return result; +} +//--> +</SCRIPT> + +<br> +<SCRIPT type="text/javascript"> +<!-- +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + andFilter[critCount++] = "(certRecordId=*)"; + + if (serialNumberRangeCritInUse()) { + if ((andFilter[critCount++] = serialNumberRangeCrit()) == null) + return; + } + if (statusCritInUse()) { + if ((andFilter[critCount++] = statusRangeCrit()) == null) + return; + } + if (subjectCritInUse()) { + if ((andFilter[critCount++] = subjectCrit()) == null) + return; + } + + if (revokedOnCritInUse()) { + if ((andFilter[critCount++] = revokedOnCrit()) == null) + return; + } + if (revokedByCritInUse()) { + if ((andFilter[critCount++] = revokedByCrit()) == null) + return; + } + if (revocationReasonCritInUse()) { + if ((andFilter[critCount++] = revocationReasonCrit()) == null) + return; + } + if (issuedOnCritInUse()) { + if ((andFilter[critCount++] = issuedOnCrit()) == null) + return; + } + if (issuedByCritInUse()) { + if ((andFilter[critCount++] = issuedByCrit()) == null) + return; + } + if (validNotBeforeCritInUse()) { + if ((andFilter[critCount++] = validNotBeforeCrit()) == null) + return; + } + if (validNotAfterCritInUse()) { + if ((andFilter[critCount++] = validNotAfterCrit()) == null) + return; + } + if (validityLengthCritInUse()) { + if ((andFilter[critCount++] = validityLengthCrit()) == null) + return; + } + if (certTypeCritInUse()) { + if ((andFilter[critCount++] = certTypeCrit()) == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } + + form.queryCertFilter.value = "(&"+nsjoin(andFilter,"")+")"; + + form.op.value = "listCerts"; + + form.submit(); +} +//--> +</SCRIPT> + + +<FORM NAME="queryForm" ACTION="listCerts" METHOD=POST> +<INPUT TYPE="HIDDEN" NAME="op" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="queryCertFilter" VALUE=""> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <INPUT TYPE="button" VALUE="Find" width="72" onClick='doSubmit(queryForm)'> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">first</font> + <INPUT TYPE="TEXT" NAME="maxCount" SIZE=4 MAXLENGTH=99 VALUE="5"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">records</font> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#1009897')"> --> + </td> + </tr> +</table> + +</form> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryCert.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryCert.template new file mode 100644 index 000000000..32f30d226 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryCert.template @@ -0,0 +1,527 @@ +<!-- --- 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> +<head> +<title>Query Certificate</title> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + +<style type="text/css"> + +.floating { + position: absolute; + left: 300px; + top: 50px; + width: 400px; + padding: 3px; + border: solid; + border-width: 2px; + background: white; + display: none; + margin: 5px; +} + + +table#t td { + font-size: 0.8em; + padding: 0px; + margin: 0px; +} + +.r { + visibility: visible; + background-color: pink; +} + + +.h { + background-color: #eeeeee; + font-color: #606060; + font-weight: bold; +} + +</STYLE> + +<CMS_TEMPLATE> + +</head> + +<body bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1">Search Results +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> + + +<SCRIPT type="text/javascript"> +//<!-- + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + absValue; +} + +function revokeCert(serialNumber) +{ + return confirm("WARNING!! You are about to do an irreversible operation.\nDo you really want to revoke certificate # "+ + renderHexNumber(serialNumber,8)+ " ?"); +} + +function renderOidName(oid) +{ + if (oid == "1.2.840.113549.1.1.1") + return "PKCS #1 RSA"; + else if (oid == "1.2.840.113549.1.1.4") + return "PKCS #1 MD5 With RSA"; + else if (oid == "1.2.840.10040.4.1") + return "DSA"; + else + return "OID."+oid; +} + +function renderHexNumber(number,width) +{ + var num = number; + while (num.length < width) + num = "0"+num; + return "0x"+num; +} + +function renderDateFromSecs(secs) +{ + if (secs == null) return ""; + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var year = dateTmp.getYear(); + if (year < 100) { + year += 1900; + } else { + year %= 100; + year += 2000; + } + return (dateTmp.getMonth()+1)+"/"+dateTmp.getDate()+"/"+year+" ;"+ + (dateTmp.getHours()<10?" ;":"")+ + dateTmp.getHours()+":"+(dateTmp.getMinutes()<10?"0":"")+ + dateTmp.getMinutes()+":"+(dateTmp.getSeconds()<10?"0":"")+ + dateTmp.getSeconds(); +} + +function renderDetailsButton(serialNumber) +{ + return "<FORM METHOD=post "+ +"ACTION='"+ "displayBySerial" +"'>\n"+ +"<INPUT TYPE=hidden NAME='op' VALUE='"+ "displayBySerial" +"'>\n"+ +"<INPUT TYPE=hidden NAME='serialNumber' VALUE='"+ "0x"+serialNumber +"'>\n"+ +"<INPUT TYPE=submit VALUE='Details' width='72'></FORM>\n"; +} + +function renderRevokeButton(serialNumberDecimal) +{ + return "<FORM METHOD=post "+ +//"onSubmit='return revokeCert("+serialNumberDecimal+");' "+ +"ACTION='"+ "reasonToRevoke" +"'>\n"+ +"<INPUT TYPE=hidden NAME='op' VALUE='"+ "reasonToRevoke" +"'>\n"+ +"<INPUT TYPE=hidden NAME='serialNumber' VALUE='"+ serialNumberDecimal +"'>\n"+ +"<INPUT TYPE=hidden NAME='revokeAll' VALUE='(&(certRecordId="+serialNumberDecimal+"))'>\n"+ +"<INPUT TYPE=hidden NAME='totalRecordCount' VALUE='1'>\n"+ +"<INPUT TYPE=hidden NAME='commit' VALUE='yes'>"+ +"<INPUT TYPE=hidden NAME='updateCRL' VALUE='yes'>"+ +"<INPUT TYPE=submit VALUE='Revoke' width='72'>"+ +"</FORM>\n"; +} + +function renderOffHoldButton(serialNumberDecimal) +{ + return "<FORM METHOD=post "+ +"ACTION='"+ "doUnrevoke" +"'>\n"+ +"<INPUT TYPE=hidden NAME='op' VALUE='"+ "doUnrevoke" +"'>\n"+ +"<INPUT TYPE=hidden NAME='serialNumber' VALUE='"+ serialNumberDecimal +"'>\n"+ +"<INPUT TYPE=hidden NAME='cmmfResponse' VALUE='true'>\n"+ +"<INPUT TYPE=submit VALUE='Off Hold' width='72'></FORM>\n"; +} + +function addSpaces(str) +{ + var outStr = ""; + var i0 = 0; + var i1 = 0; + + while (i1 < str.length) { + i1 = str.indexOf(',', i0); + if (i1 > -1) { + i1++; + outStr += str.substring(i0, i1); + outStr += " "; + i0 = i1; + } else { + outStr += str.substring(i0, str.length); + i1 = str.length; + } + } + + return outStr; +} + +function getRevocationReason(revocationReason) +{ + var reasons = new Array("Unspecified", + "Key compromised", + "CA key compromised", + "Affiliation changed", + "Certificate superceded", + "Cessation of operation", + "Certificate is on hold", + "Unspecified", // value 7 is not used + "Remove from CRL", + "Privilege withdrawn", + "AA key compromise"); + if (revocationReason < 0 || revocationReason >= reasons.length) + revocationReason = 0; + return reasons[revocationReason]; +} + +function isRevoked(index) +{ + return (recordSet[index].revokedOn != null); +} + +function setNode(table,desc,content,style) +{ + var row = table.insertRow(-1); + if (style) { + row.className = style; + } + var cell1 = row.insertCell(-1); + var desc_text = document.createTextNode(desc); + cell1.appendChild(desc_text); + var cell2 = row.insertCell(-1); + var content_text = document.createTextNode(content); + cell2.appendChild(content_text); +} + + + +function mouseover(element,event) +{ + var x = event.clientX; + var y = event.clientY; + + var index= element.getAttribute("index"); + if (index == null) { return false; } + var cert = recordSet[index]; + + element.parentNode.parentNode.parentNode.style.backgroundColor = "#EEEEFF"; + + var v; + var e = document.getElementById("certMetaDatadiv"); + + var t = document.getElementById("t"); + + // delete all the rows in the table + var i=0; + while (i < t.rows.length) { + t.deleteRow(0); + } + + setNode(t,"Certificate details for serial #", " 0x" +cert.serialNumber+" ("+cert.serialNumberDecimal+")","h"); + setNode(t,"Version:", cert.version+1); + setNode(t,"Certificate Type:",cert.type); + setNode(t,"Key algorithm:",renderOidName(cert.subjectPublicKeyAlgorithm)+ + " with "+ cert.subjectPublicKeyLength+"-bit key"); + setNode(t,"Not Valid Before:", renderDateFromSecs(cert.validNotBefore)); + setNode(t,"Not Valid After:", renderDateFromSecs(cert.validNotAfter)); + setNode(t,"Issued On:", renderDateFromSecs(cert.issuedOn)); + setNode(t,"Issued By:", cert.issuedBy); + + if (isRevoked(index)) { + setNode(t,"Revoked on:", renderDateFromSecs(cert.revokedOn),"r"); + setNode(t,"Revoked by:", cert.revokedBy, "r"); + setNode(t,"Revocation Reason:", getRevocationReason(cert.revocationReason), "r"); + assumedheight = 210; + } else { + assumedheight = 180; + } + + e.style.left = x+30 + 'px'; // x-offset of floating div + + var offset = 20; // extra y-offset of floating div + var bottom = y + offset + assumedheight; + if (bottom > window.innerHeight) { + offset = 0 - (2*offset) - assumedheight; + } + + e.style.top = y+ offset + window.pageYOffset+document.body.scrollTop + 'px'; + + // unhide the window + e.style.display ="block"; + + +} + +function mouseout(element) +{ +// window.setTimeout("hide",1); + var index= element.getAttribute("index"); + if (recordSet[index].revokedOn != null) { + element.parentNode.parentNode.parentNode.style.backgroundColor = "#FFEEEE"; + } else { +// element.parentNode.parentNode.parentNode.style.backgroundColor = "#EEFFEE"; + element.parentNode.parentNode.parentNode.style.backgroundColor = "#FFFFFF"; + } + hide(); +} + +function hide() +{ + document.getElementById("certMetaDatadiv").style.display ="none"; +} + + +function displayCertificateRecord(i, cert) +{ + document.write( + "<tr"+ (cert.revokedOn !=null ? " style='background-color: #FFEEEE;' " : "")+">"+ +// "<td width=10%>"+ +// ((cert.serialNumber == result.header.caSerialNumber)? "": +// "<input TYPE='CHECKBOX' NAME=" + cert.serialNumber + ">")+ +// "</td>" + + "<td width=18%><font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ + renderHexNumber(cert.serialNumber,0) + + "</font></td>\n"+ + "<td width=16%>"+(cert.revokedOn != null ?"revoked":"valid")+"</td>\n"+ + "<td style='overflow: hidden; white-space: nowrap;'>"+ + " <font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ + " <div style='overflow: hidden; white-space: nowrap;'>"+ + " <a index='"+i+"' href='displayBySerial?op=displayBySerial&serialNumber=0x"+ + cert.serialNumber+"' onmouseover='mouseover(this,event);' "+ + "onmouseout='mouseout(this);'>"+ + cert.subject+"</a></div></font>"+ + "</td>"+ + "</tr>\n" + + ); +} + +function displaySearchResults() +{ +if (result.recordSet.length == 0) { + document.write( +"<font face='PrimaSans BT, Verdana, sans-serif' size='+1'>No Matching Certificates Found</font>\n" + ); +} else { + + document.write( +"<font face='PrimaSans BT, Verdana, sans-serif' size='+1'>Issuer: " + +(result.header.issuerName != null ? result.header.issuerName : "UNKNOWN") + +"</font><br>\n"+ +"<font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ +"Total number of records found: "+result.header.totalRecordCount+ +"</font>\n" + ); + + + document.write("<table BORDER=0 CELLSPACING=2 CELLPADDING=6 WIDTH='100%'>\n"+ + "<tr align=center><td>\n"); + displayNextForm(); + + document.write( +"<table border='0' width='100%' cellspacing='2' cellpadding='2'>\n"+ +"<tr><td width=18%><td width=16%> </td><td> </td><td> </td></tr>\n"+ + +"<tr bgcolor='#e5e5e5' style='font-weight: bold'>"+ +"<td>\n"+ +//"<font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ +// "Select</font></td>\n"+ +//"<td>\n"+ + "<font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ + "Serial number</font></td>\n"+ + +"<td><font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ +"Status</td>\n"+ + +"<td>\n"+ +"<font face='PrimaSans BT, Verdana, sans-serif' size='-1'>\n"+ +"Subject name</font></td>"+ +"</tr>\n"); + + + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayCertificateRecord(i, result.recordSet[i]); + } +document.write("</table>\n"); + + if ((result.header.revokeAll != null && result.header.totalRecordCount > 1) || + (result.header.querySentinelDown != null)) { + document.write("<br> \n" + + "<table border='0' cellspacing='0' cellpadding='0' background='/graphics/hr.gif' width='100%'>\n"+ + "<tr><td> </td></tr></table>\n"); + } + + document.write("<table BORDER=0 CELLSPACING=2 CELLPADDING=6 WIDTH='100%'>\n"+ + "<tr align=center><td>\n"); + + if (result.header.revokeAll != null && result.header.totalRecordCount > 1) { + displayRevokeAllForm(result.header.totalRecordCount); + document.write("</td><td>\n"); + } + +// if (result.header.querySentinel != null) { + displayNextForm(); +// } + + document.write("</td></tr></table>\n"); +} +} + +function renderHidden(name,value) +{ + return "<INPUT TYPE='hidden' NAME='"+ name +"' VALUE=''>\n"; +} + +/* +* begin - scroll to beginning +* end - scroll to end +* down - page down +* up - page up +*/ +function doNext(element) +{ + var form = element.form; +// form.action = "/"+result.header.op; + form.action = "/ca/agent/ca/listCerts"; + form.op.value = result.header.op; + form.queryCertFilter.value = result.header.queryCertFilter; + form.direction.value= "down"; + + if (element.name == "begin") { + form.querySentinelDown.value = 0; + form.direction.value = "begin"; + } else if (element.name == "end") { + form.querySentinelDown.value = result.header.totalRecordCount - result.header.maxCount+1; + form.direction.value = "end"; + } else if (element.name == "down") { + form.querySentinelDown.value = result.header.querySentinelDown; + form.querySentinelUp.value = result.header.querySentinelUp; + form.direction.value = "down"; + } else if (element.name == "up") { + form.querySentinelUp.value = result.header.querySentinelUp; + form.querySentinelDown.value = result.header.querySentinelDown; + form.direction.value = "up"; + } + + form.totalRecordCount.value = result.header.totalRecordCount; + if (result.header.revokeAll != null) { + form.revokeAll.value = result.header.revokeAll; + } + if (result.header.queryFilterHash != null) { + form.queryFilterHash.value = result.header.queryFilterHash; + } + form.submit(); +} + +function displayNextForm() +{ + document.write( +//"<div align=center> \n"+ +"<FORM NAME ='nextForm' METHOD=POST ACTION=''>\n"+ +renderHidden("op")); + +if (result.header.revokeAll != null) { + document.write(renderHidden("revokeAll")); +} + +if (result.header.queryFilterHash != null) { + document.write(renderHidden("queryFilterHash")); +} +var disabledDown = ((result.header.querySentinelDown == null) || + (result.fixed.maxCount+1 >= result.header.currentRecordCount)) ? "disabled='true'" : ""; +var disabledUp = (result.header.querySentinelUp != null && result.header.querySentinelUp <= 1) ? "disabled='true'" : ""; + +document.write( +"<button NAME=begin onClick='doNext(this)' VALUE='|<<' width='72'>|<<</button>\n"+ +"<button "+disabledUp+" NAME=up onClick='doNext(this)' VALUE='<' width='72'><</button>\n"+ +"<INPUT TYPE=hidden NAME=totalRecordCount VALUE='"+ +result.header.totalRecordCount+ "'>\n"+ +"<INPUT TYPE=hidden NAME=queryCertFilter VALUE='"+ +result.header.queryCertFilter+ "'>\n"+ +"<INPUT TYPE=hidden NAME=querySentinelDown VALUE='"+ +result.header.querySentinelDown+ "'>\n"+ +"<INPUT TYPE=hidden NAME=querySentinelUp VALUE='"+ +result.header.querySentinelUp+ "'>\n"+ +"<INPUT TYPE=hidden NAME=serialTo VALUE='"+ +result.header.serialTo+ "'>\n"+ +"<INPUT TYPE=hidden NAME=direction VALUE='"+ +result.header.direction+ "'>\n"+ +"<INPUT style='padding-left: 2px;' TYPE=text SIZE=16 NAME=maxCount VALUE='"+ +result.header.maxCount+ "'>\n"+ + +"<button "+disabledDown+" NAME=down onClick='doNext(this)' VALUE='>' width='72'>></button>\n"+ +"<button NAME=end onClick='doNext(this)' VALUE='>>|' width='72'>>>|</button>\n"+ +"</FORM>\n"); +} + +function doRevokeAll(form) +{ +// form.action = result.header.serviceURL; + form.totalRecordCount.value = result.header.totalRecordCount; + form.revokeAll.value = result.header.revokeAll; + form.submit(); +} + +function displayRevokeAllForm(recordCount) +{ +// document.write("<DIV align=center><FORM NAME ='revokeAllForm' "+ + document.write("<FORM NAME ='revokeAllForm' "+ + "METHOD=POST onSubmit='doRevokeAll(revokeAllForm);' "+ + "ACTION='"+ "/ca/reasonToRevoke" +"'>\n"+ + "<INPUT TYPE=hidden NAME='op' VALUE='reasonToRevoke'>\n"+ + "<INPUT TYPE=hidden NAME='revokeAll' VALUE=''>\n"+ + "<INPUT TYPE=hidden NAME='totalRecordCount' VALUE='"+ recordCount +"'>\n"+ + "<INPUT TYPE=submit VALUE='Revoke ALL "+ recordCount +" Certificates'>\n"+ + "</FORM>\n"); +// "</FORM></DIV>\n"); +} + + +displaySearchResults(); + +//--> +</SCRIPT> + +<div id="certMetaDatadiv" class="floating"> +<table id="t" width="100%"> +<tr><td/></tr> +</table> +</div> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryReq.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryReq.template new file mode 100644 index 000000000..9fb63a109 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/queryReq.template @@ -0,0 +1,453 @@ +<!-- --- 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> +<head> + <title>Request Queue</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + +<style type="text/css"> + +.floating { + position: absolute; + left: 300px; + top: 50px; + width: 400px; + padding: 3px; + border: solid; + border-width: 2px; + background: white; + display: none; + margin: 5px; +} + + +table#t td { + font-size: 0.8em; + padding: 0px; + margin: 0px; +} + +DIV.subject A:link {text-decoration: none;} +DIV.subject A:visited {text-decoration: none;} +DIV.subject A:hover {text-decoration: underline;} + +.h { + background-color: #eeeeee; + font-color: #606060; + font-weight: bold; +} + +</STYLE> +</head> + +<body bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">Request Queue</font> +<br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<CMS_TEMPLATE> + +<SCRIPT type="text/javascript"> +//<!-- + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + absValue; +} + +function renderHexNumber(number,width) +{ + var num = toHex(number); + while (num.length < width) + num = "0"+num; + return "0x"+num; +} + +function renderDateFromSecs(secs) +{ + if (secs == null) return ""; + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var year = dateTmp.getYear(); + if (year < 100) { + year += 1900; + } else { + year %= 100; + year += 2000; + } + return (dateTmp.getMonth()+1)+"/"+dateTmp.getDate()+"/"+year+" ;"+ + (dateTmp.getHours()<10?" ;":"")+ + dateTmp.getHours()+":"+(dateTmp.getMinutes()<10?"0":"")+ + dateTmp.getMinutes()+":"+(dateTmp.getSeconds()<10?"0":"")+ + dateTmp.getSeconds(); +} + +function stateCodeToColor(code) +{ + if (code == "waiting") + return "darkgreen"; + else if (code == "cancelled" || code == "rejected") + return "red"; + else if (code == "complete") + return "black"; + else + return "magenta"; +} + +function addSpaces(str) +{ + var outStr = ""; + var str0 = ""; + var i0 = 0; + var i1 = 0; + + while (i1 < str.length) { + i1 = str.indexOf(',', i0); + if (i1 > -1) { + i1++; + str0 += str.substring(i0, i1); + str0 += " "; + i0 = i1; + } else { + str0 += str.substring(i0, str.length); + i1 = str.length; + } + } + + i0 = 0; + i1 = 0; + while (i1 < str0.length) { + i1 = str0.indexOf('+', i0); + if (i1 > -1) { + i1++; + outStr += str0.substring(i0, i1); + outStr += " "; + i0 = i1; + } else { + outStr += str0.substring(i0, str0.length); + i1 = str0.length; + } + } + + return outStr; +} + +function addEscapes(str) +{ + var outStr = str.replace(/</g, "<"); + outStr = outStr.replace(/>/g, ">"); + return outStr; +} + +function renderDetailsButtonForProfile(serialNumber) +{ + return '<form method=post '+ + 'action="'+ + 'profileReview' +'">\n'+ + '<input type=hidden name="requestId" value="'+ + serialNumber + + '">\n'+ + '<input type=submit value="Details"></form>\n'; +} + +function renderDetailsButton(serialNumber) +{ + return '<form method=post '+ + 'action="'+ + '/ca/agent/ca/processReq' +'">\n'+ + '<input type=hidden name="seqNum" value="'+ + serialNumber + + '">\n'+ + '<input type=submit value="Details"></form>\n'; +} + +function setNode(table,desc,content,style) +{ + var row = table.insertRow(-1); + if (style) { + row.className = style; + } + var cell1 = row.insertCell(-1); + var desc_text = document.createTextNode(desc); + cell1.appendChild(desc_text); + var cell2 = row.insertCell(-1); + var content_text = document.createTextNode(content); + cell2.appendChild(content_text); +} + +function mouseover(element,event) +{ + var x = event.clientX; + var y = event.clientY; + + var index= element.getAttribute("index"); + if (index == null) { return false; } + var req = recordSet[index]; + + element.parentNode.parentNode.parentNode.style.backgroundColor = "#EEEEFF"; + + var v; + var e = document.getElementById("reqMetaDatadiv"); + + var t = document.getElementById("t"); + + // delete all the rows in the table + var i=0; + while (i < t.rows.length) { + t.deleteRow(0); + } + + setNode(t,"Request details for request #", req.seqNum,"h"); + setNode(t,"Request Type:",req.requestType); + setNode(t,"Submitted On:", renderDateFromSecs(req.createdOn)); + setNode(t,"Updated On:", renderDateFromSecs(req.updatedOn)); + setNode(t,"Updated By:", req.updatedBy); + assumedheight = 120; + e.style.left = x+30 + 'px'; // x-offset of floating div + + var offset = 20; // extra y-offset of floating div + var bottom = y + offset + assumedheight; + if (bottom > window.innerHeight) { + offset = 0 - (2*offset) - assumedheight; + } + + e.style.top = y+ offset + window.pageYOffset+ document.body.scrollTop + 'px'; + + // unhide the window + e.style.display ="block"; + + +} + +function mouseout(element) +{ +// window.setTimeout("hide",1); + var index= element.getAttribute("index"); + element.parentNode.parentNode.parentNode.style.backgroundColor = "#FFFFFF"; + + hide(); +} + +function hide() +{ + document.getElementById("reqMetaDatadiv").style.display ="none"; +} + + +function displayRequest(i, req) +{ + // request table items + + var url= ""; + if (req.profile != null && req.profile == 'true') { + // profile + url = "profileReview?requestId="; + } else { + // policy + url = "/ca/agent/ca/processReq?seqNum="; + } + + var link = "<a index='"+i+"' href='"+url+ req.seqNum + "'" + + " onmouseover='mouseover(this,event);' "+ + "onmouseout='mouseout(this);'>"; + + // request number + document.write("<tr><td align=right>"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">"+ + link + req.seqNum +"</a></font></td>\n"); + + //State + document.write("<td>"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\" color=\""+ + stateCodeToColor(req.status) +"\">"+req.status); + if (req.status == "complete" && req.Result != null && req.Result != "1") { + document.write("d with error"); + } + document.write("</font></td>\n"); + + // Assigned to + document.write("<td><font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\""+ + (req.assignedTo == null? " color=\"magenta\"": "")+ ">\n"+ + ((req.status != "pending")? "": + (req.assignedTo == null? "unassigned":req.assignedTo))+ + "</font></td>"); + + //Subject + if (req.subject != null) { + document.write("<TD colspan=2>\n"+ + "<div class='subject'><font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"+ + link+ + addSpaces(addEscapes(req.subject)) + "</a></font></div></td></tr>\n"); + } else { + document.write("<TD></TD><TD></TD></tr>\n"); + } + +// document.write("</table>\n"); +} + +function displayRequestList() +{ + document.write("<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"); + if (result.header.error != null) { + document.write(result.header.error + "</font>\n"); + } else if (result.recordSet.length == 0) { + document.write("No Matching Request Records Found</font>\n"); + } else { + document.write("Total Number of Records Found : " + + result.header.totalRecordCount + "</font></br>\n"); +// result.header.totalRecordCount + "</font></br> \n"); + + document.write("<table BORDER=0 CELLSPACING=2 CELLPADDING=6 WIDTH='100%'>\n"+ + "<tr align=center><td>\n"); + displayNextForm(); + + document.write( + "<table border=\"0\" width=\"100%\" cellspacing=\"2\" cellpadding=\"2\">\n"+ + "<tr><td width=10%> </td>"+ + "<td width=10%> </td>"+ + "<td width=20%> </td>"+ + "<td width=60%> </td>"+ + "</tr>\n"); + + document.write( +// "<table border=\"0\" width=\"100%\" cellspacing=\"2\" cellpadding=\"2\">\n"+ +// "<tr><td width=5%> </td><td width=25%> </td><td width=25%> </td>\n"+ +// "<td width=25%> </td><td width=20%> </td></tr>\n"+ + "<TR BGCOLOR=\"#E5E5E5\">\n"+ + "<TD align=right width=10%>\n"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"+ + "#</font></TD>\n"+ + "<TD width=10%>\n"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"+ + "Status</font></TD>\n"+ + "<TD width=20%>\n"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"+ + "Assigned to</font></TD>\n"+ + "<TD width=60%>\n"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"+ + "Subject</font></TD></TR>\n" + ); + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayRequest(i, result.recordSet[i]); + } + document.write("</table>"); + displayNextForm(); +} +} + +function renderHidden(name,value) +{ + return "<INPUT TYPE='hidden' NAME='"+ name +"' VALUE=''>\n"; +} + + +function doNext(element) +{ + var form = element.form; + form.action = "queryReq"; + form.op.value = result.header.op; + + form.direction.value = element.name; + form.firstEntryOnPage.value = result.header.firstEntryOnPage; + form.lastEntryOnPage.value = result.header.lastEntryOnPage; + form.totalRecordCount.value = result.header.totalRecordCount; + + form.submit(); +} + +function displayNextForm() +{ +if (typeof(result.fixed.maxCount) != "undefined") { +var seqNum=parseInt(result.recordSet[result.recordSet.length-1].seqNum) + 1; +//alert("in displayNextForm seqNum="+seqNum); + document.write( +//"<div align=center> \n"+ +"<FORM NAME='nextForm' METHOD='POST' ACTION=''>\n"+ renderHidden("op")); + +var disabledDown = ((result.fixed.maxCount > result.header.currentRecordCount) || + (result.header.currentRecordCount == result.header.totalRecordCount)) ? + "disabled='true'" : ""; +var disabledUp = (result.header.firstEntryOnPage != null && + result.header.firstEntryOnPage <= 1) ? "disabled='true'" : ""; + +document.write( +"<button NAME='begin' onClick='doNext(this)' VALUE='|<<' width='72'>|<<</button>\n"+ +"<button "+disabledUp+" NAME='previous' onClick='doNext(this)' VALUE='<' width='72'><</button>\n"+ +"<INPUT TYPE='hidden' NAME='totalRecordCount' VALUE='"+ +result.header.totalRecordCount+ "'>\n"+ +"<INPUT TYPE='hidden' NAME='op' VALUE='"+ "queryReq"+ "'>\n"+ +"<INPUT TYPE='hidden' NAME='querySentinelDown' VALUE='"+ + result.header.querySentinelDown+ "'>\n"+ +"<INPUT TYPE='hidden' NAME='querySentinelUp' VALUE='"+ + result.header.querySentinelUp+ "'>\n"+ + +"<INPUT TYPE='hidden' NAME='firstEntryOnPage' VALUE='"+ + result.header.querySentinelUp +"'>\n"+ +"<INPUT TYPE='hidden' NAME='lastEntryOnPage' VALUE='"+ + result.header.querySentinelDown +"'>\n"+ +"<INPUT TYPE='hidden' NAME='direction' VALUE='"+ + result.header.direction+ "'>\n"); + + if (result.fixed.reqType != null) + document.write("<INPUT TYPE='hidden' NAME='reqType' VALUE='" + result.fixed.reqType + "'>\n"); + + if (result.fixed.reqState != null) + document.write("<INPUT TYPE='hidden' NAME='reqState' VALUE='" + result.fixed.reqState + "'>\n"); + + document.write("<INPUT TYPE=\"hidden\" NAME=\"totalRecordCount\" VALUE=\"" + + result.header.totalRecordCount + "\">\n"); + + document.write("<INPUT style='padding-left: 2px;' TYPE=text SIZE=16 NAME=maxCount VALUE='"+ +result.fixed.maxCount+ "'>\n"+ +"<button "+disabledDown+" NAME='next' onClick='doNext(this)' VALUE='>' width='72'>></button>\n"+ +"<button NAME='end' onClick='doNext(this)' VALUE='>>|' width='72'>>>|</button>\n"+ +"</FORM>\n"); +} +} + + +displayRequestList(); + +//--> +</SCRIPT> + +<div id="reqMetaDatadiv" class="floating"> +<table id="t" width="100%"> +<tr><td/></tr> +</table> +</div> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/reasonToRevoke.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/reasonToRevoke.template new file mode 100644 index 000000000..12c14dfda --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/reasonToRevoke.template @@ -0,0 +1,481 @@ +<!-- --- 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> +<head> +<CMS_TEMPLATE> +<TITLE>Certificate Revocation Confirmation</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> + +<SCRIPT type="text/javascript"> +//<!-- +function validate() +{ + var caCert = -1; + var filter = "(|"; + var n = 0; + + if (!dateIsEmpty(document.forms[0])) { + var d = convertDate(document.forms[0], "Invalidity Date"); + if (d == null) return false; + document.forms[0].invalidityDate.value = d; + } + + for (var i = 0; i < result.recordSet.length; ++i ) { + if (result.recordSet[i].serialNumber != null) { + for (var j = 0; j < document.forms[0].length; j++) { + if (result.recordSet[i].serialNumber == + document.forms[0].elements[j].name) { + if (document.forms[0].elements[j].checked) { + n++; + filter += "(certRecordId="+ + result.recordSet[i].serialNumberDecimal+")"; + if (result.header.caSerialNumber != null && + result.recordSet[i].serialNumber == + result.header.caSerialNumber) { + caCert = result.header.caSerialNumber; + } + } + break; + } + } + } + } + if (n > 0) { + filter += ")"; + document.forms[0].revokeAll.value = filter; + } else { + alert("No certificate has been selected."); + return false; + } + + if (caCert > -1) { + return confirm("WARNING!!!\n"+ + "You are about to do an irreversible operation.\n"+ + "Certificate #"+toHex(caCert)+ + " belongs to your Certificate Authority.\n"+ + "Do you really want to revoke this certificate?"); + } + return true; +} + +function toHex1(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + '0x' + '0' + absValue; +} + +function toHex(number) +{ + return '0x' + '0' + number; +} + +function renderDateFromSecs(secs) +{ + if (secs == null) return ""; + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var year = dateTmp.getYear(); + if (year < 100) { + year += 1900; + } else { + year %= 100; + year += 2000; + } + return (dateTmp.getMonth()+1)+"/"+dateTmp.getDate()+"/"+year; +} + +function renderCell(cellData) +{ + return ("<td><font size=\"-2\" face=\"PrimaSans BT, Verdana, sans-serif\">"+ + cellData+ "</font></td>\n"); +} + +function renderRow(cell1, cell2) +{ + var twoCells = renderCell(cell1) + renderCell(cell2); + return ("<tr valign=\"TOP\">\n" + twoCells + "</tr>\n"); +} + +function renderRowWithCheckbox(serialNumber, cell1, cell2) +{ + var allCells = "<td rowspan=4><input TYPE=\"CHECKBOX\" checked NAME=" + + serialNumber + "></td>\n" + + renderCell(cell1) + renderCell(cell2); + return ("<tr valign=\"TOP\">\n" + allCells + "</tr>\n"); +} + +function renderRowWithoutCheckbox(cell1, cell2) +{ + var allCells = "<td rowspan=4> </td>\n" + + renderCell(cell1) + renderCell(cell2); + return ("<tr valign=\"TOP\">\n" + allCells + "</tr>\n"); +} + +function addSpaces(str) +{ + var outStr = ""; + var i0 = 0; + var i1 = 0; + + while (i1 < str.length) { + i1 = str.indexOf(',', i0); + if (i1 > -1) { + i1++; + outStr += str.substring(i0, i1); + outStr += " "; + i0 = i1; + } else { + outStr += str.substring(i0, str.length); + i1 = str.length; + } + } + + return outStr; +} + +function addEscapes(str) +{ + var outStr = str.replace(/</g, "<"); + outStr = outStr.replace(/>/g, ">"); + return outStr; +} + +function displayCertInfo() +{ + document.write("<table border=\"0\" cellspacing=\"2\">"); + for (var i = 0; i < result.recordSet.length; ++i ) { + if (result.recordSet[i].serialNumber != null) { + if (result.header.caSerialNumber != null && + result.recordSet[i].serialNumber == + result.header.caSerialNumber) { + document.write(renderRowWithoutCheckbox("Serial Number:", + toHex(result.recordSet[i].serialNumber))); + } else { + document.write(renderRowWithCheckbox( + result.recordSet[i].serialNumber, + "Serial Number:", + toHex(result.recordSet[i].serialNumber))); + } + } + if (result.recordSet[i].subject != null) { + document.write(renderRow("Subject Name:", + addSpaces(addEscapes(result.recordSet[i].subject)))); + } + if ((result.recordSet[i].validNotBefore != null) && + (result.recordSet[i].validNotAfter != null)) { + validity = 'not before: '+ + renderDateFromSecs(result.recordSet[i].validNotBefore) + + ' and not after: ' + + renderDateFromSecs(result.recordSet[i].validNotAfter); + document.write(renderRow("Valid:", validity)); + } + document.write(renderRow(" ", " ")); + } + document.write("</table>"); +} + +function renderReason() +{ + var reason = new Array("Unspecified", + "Key compromised", + "CA key compromised", + "Affiliation changed", + "Certificate superseded", + "Cessation of operation", + "Certificate is on hold", + "Privilege Withdrawn"); + document.write("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"); + for (var i = 0; i < reason.length; i++) { + document.write("<tr><td width=\"1%\">\n"); + document.write("<input type=\"RADIO\""); + if ((result.header.reason != null && result.header.reason == i) || + (i == 0 && result.header.reason == null)) { + document.write(" checked"); + } + if (i > 6) { // value 7 is not used + document.write(" name=\"revocationReason\" value=\""+(i+2)+"\">\n"); + } else { + document.write(" name=\"revocationReason\" value=\""+i+"\">\n"); + } + document.write("</td><td width=\"99%\">\n"); + document.write("<font size=\"-1\" face=\"PrimaSans BT, Verdana, sans-serif\">\n"); + document.write(reason[i]+"</font></td></tr>\n"); + } + document.write("</table>\n"); +} +//--> +</SCRIPT> +</head> +<body bgcolor="#FFFFFF"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Certificate Revocation Confirmation</font><br> +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Use this form to confirm certificate revocation by selecting appropriate +revocation reason and submitting the form.</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<table border="0" cellspacing="2" cellpadding="2"> + <tr valign="TOP"> + <td><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><b>Important:</b></font></td> + <td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">When making this + request you must use the browser environment in which you have access to your authentication certificate and key. </font></td> + </tr> +</table> +<br><br> + +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +<b>Certificate Details</b><br> +The details of the certificate being revoked are below: +</font> + +<form method="post" action="doRevoke" onSubmit="return validate()"> + +<SCRIPT type="text/javascript"> +//<!-- +if (result.recordSet.length == 0) { + document.write("<font size=\"-1\" face=\"PrimaSans BT, Verdana, Arial, Helvetica, sans-serif\">"+ + "No Matching Certificates Found</font><br><br>\n"); +} else { + displayCertInfo(); +} +//--> +</SCRIPT> +<br> + + <table border="0" width="100%" cellspacing="2" cellpadding="2"> + <tr> + <td valign="TOP" colspan="2"> + <b><font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1"> + Select Invalidity Date</font></b><br> + <font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1"> + Please select the date on which it is known or suspected that the private key + was compromised or that the certificate otherwise became invalid.</font> + </td> + </tr> + <tr> + <td valign="TOP" colspan="2"> + <font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1"> + Invalidity date: + <SELECT NAME="day"> + <OPTION VALUE=0> + <OPTION VALUE=1>1 + <OPTION VALUE=2>2 + <OPTION VALUE=3>3 + <OPTION VALUE=4>4 + <OPTION VALUE=5>5 + <OPTION VALUE=6>6 + <OPTION VALUE=7>7 + <OPTION VALUE=8>8 + <OPTION VALUE=9>9 + <OPTION VALUE=10>10 + <OPTION VALUE=11>11 + <OPTION VALUE=12>12 + <OPTION VALUE=13>13 + <OPTION VALUE=14>14 + <OPTION VALUE=15>15 + <OPTION VALUE=16>16 + <OPTION VALUE=17>17 + <OPTION VALUE=18>18 + <OPTION VALUE=19>19 + <OPTION VALUE=20>20 + <OPTION VALUE=21>21 + <OPTION VALUE=22>22 + <OPTION VALUE=23>23 + <OPTION VALUE=24>24 + <OPTION VALUE=25>25 + <OPTION VALUE=26>26 + <OPTION VALUE=27>27 + <OPTION VALUE=28>28 + <OPTION VALUE=29>29 + <OPTION VALUE=30>30 + <OPTION VALUE=31>31 + </SELECT> + <SELECT NAME="month"> + <OPTION VALUE=13> + <OPTION VALUE=0>January + <OPTION VALUE=1>February + <OPTION VALUE=2>March + <OPTION VALUE=3>April + <OPTION VALUE=4>May + <OPTION VALUE=5>June + <OPTION VALUE=6>July + <OPTION VALUE=7>August + <OPTION VALUE=8>September + <OPTION VALUE=9>October + <OPTION VALUE=10>November + <OPTION VALUE=11>December + </SELECT> + <SELECT NAME="year"> + <OPTION VALUE=0> +<SCRIPT type="text/javascript"> +//<!-- + var today = new Date(); + var year = today.getYear(); + if (year < 100) { + year += 1900; + } else { + year %= 100; + year += 2000; + } + for (var i = year-7; i < year+5; i++) { + document.writeln("<OPTION VALUE="+i+">"+i); + } +//--> +</SCRIPT> + </SELECT> + <br> + </font> + </td> + </tr> + <tr> + <td valign="TOP" colspan="2"> + <b><font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1"> + Select Revocation Reason</font></b><br> + <font face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif" size="-1"> + Please select reason for revocation.</font> + </td> + </tr> + <tr> + <td> +<SCRIPT type="text/javascript"> +//<!-- + renderReason(); +//--> +</SCRIPT> +<br> + </td> + </tr> + <tr> + <td colspan="2"> + <font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> + <b>Additional Comments</b><br> + If you want to include any additional comments in your revocation request, write them here. + </font> + </td> + </tr> + <tr> + <td> + <textarea name="csrRequestorComments" rows="6" cols="39" wrap="virtual"></textarea> + </td> + </tr> + </table> + <br> + +<SCRIPT type="text/javascript"> +//<!-- +//var caCert = isOnTheListToBeRevoked(result.header.caSerialNumber); +var caCert = -1; +if (caCert > -1) { + document.write("<font size=\"-1\" color=\"red\" "+ + "face=\"PrimaSans BT, Verdana, Arial, Helvetica, sans-serif\">"+ + "<b>WARNING!!!</b><br>"+ + "You are about to do an irreversible operation.<br>"+ + "Certificate #"+toHex(caCert)+ + " belongs to your Certificate Authority.<br>"+ + "Do you really want to revoke this certificate?"+ + "</font><br> <br> \n"); +} + +function isOnTheListToBeRevoked(serialNumber) +{ + if (result.recordSet.length > 0 && serialNumber != null) { + for (var i = 0; i < result.recordSet.length; i++) { + if (result.recordSet[i].serialNumber != null) { + if (result.recordSet[i].serialNumber == serialNumber) { + return serialNumber; + } + } + } + } + return (-1); +} + +function revokeCert(serialNumber) +{ + return confirm("WARNING!!! You are about to do an irreversible operation.\n"+ + "Certificate # "+ toHex(serialNumber)+ + " belongs to your Certificate Authority."+ + "Do you really want to revoke this certificate ?"); +} +//--> +</SCRIPT> + + <table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <input type="submit" value="Submit" name="submit" width="72"> + <input type="hidden" name="op" value="doRevoke"> + <input type="hidden" name="templateType" value="RevocationSuccess"> + <input type="reset" value="Reset" name="reset" width="72"> + <!-- <input type="button" value="Help" width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Confirming a Revocation')"> --> +<SCRIPT type="text/javascript"> +//<!-- + + for (var i = 0; i < result.recordSet.length; i++) { + if (result.recordSet[i].serialNumber != null) { + document.writeln("<INPUT TYPE=hidden name=serialNumber value=\"" + + result.recordSet[i].serialNumber +"\">"); + } + } + document.writeln("<INPUT TYPE=hidden name=revokeAll value=\"" + + result.header.revokeAll +"\">"); + document.writeln("<INPUT TYPE=hidden name=totalRecordCount value=\"" + + result.header.totalRecordCount +"\">"); + document.writeln("<INPUT TYPE=hidden name=verifiedRecordCount value=\"" + + result.header.verifiedRecordCount +"\">"); + document.writeln("<INPUT TYPE=hidden name=invalidityDate value=\"0\">"); + if (result.header.request != null) { + document.writeln("<INPUT TYPE=hidden name=requestId value=\"" + + result.header.request +"\">"); + } + if (result.header.b64eCertificate != null) { + document.writeln("<INPUT TYPE=hidden name=b64eCertificate value=\"" + + result.header.b64eCertificate +"\">"); + } + if (typeof(result.header.nonce) != "undefined") { + document.writeln("<INPUT TYPE=hidden name=nonce value=\"" + + result.header.nonce +"\">"); + } +//--> +</SCRIPT> + </td> + </tr> + </table> + </form> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/revocationResult.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/revocationResult.template new file mode 100644 index 000000000..bd356841d --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/revocationResult.template @@ -0,0 +1,190 @@ +<!-- --- 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> +<HEAD> +<TITLE>Revocation Result</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<CMS_TEMPLATE> +<BODY bgcolor="white"> +<SCRIPT type="text/javascript"> +//<!-- +function toHex1(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + '0x' + absValue; +} + +function toHex(number) +{ + return '0x' + number; +} + +if (result.header.revoked == 'yes') { + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate Revocation Has Been Completed</font><br><br>'); + if (result.recordSet.length == 0 && result.header.totalRecordCount > 0) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.write('All requested certificates were already revoked.'); + document.writeln('</font><br>'); + } else if (result.recordSet.length == 1) { + if (result.recordSet[0].error == null) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate with serial number <b>' + + toHex(result.recordSet[0].serialNumber) + + '</b> has been revoked.'); + document.writeln('</font><br>'); + + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.header.updateCRL && result.header.updateCRL == "yes") { + if (result.header.updateCRLSuccess != null && + result.header.updateCRLSuccess == "yes") { + document.writeln('The Certificate Revocation List has been successfully updated.'); + } else { + document.writeln('The Certificate Revocation List update Failed'); + if (result.header.updateCRLSuccess != null) + document.writeln(' with error '+ result.header.updateCRLError); + else + document.writeln('. No further details provided.'); + } + } else { + document.writeln( + 'The Certificate Revocation List will be updated '+ + 'automatically at the next scheduled update.'); + } + document.writeln('</font><br>'); +/* + if (result.header.dirEnabled != null && result.header.dirEnabled == 'yes') { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.header.certsUpdated > 0) { + document.write('Directory has been successfully updated.'); + } else { + document.write('Directory has not been updated. See log files for more details.'); + } + document.writeln('</font><br>'); + } +*/ + } else { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate with serial number <b>' + + toHex(result.recordSet[0].serialNumber) + + '</b> is not revoked.<br><br>'); + document.writeln('Additional Information:'); + document.writeln('</font>'); + document.writeln('<blockquote>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(result.recordSet[0].error); + document.writeln('</font>'); + document.writeln('</blockquote>'); + } + } else if (result.recordSet.length > 1) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.write('The following certificates were processed to complete revocation request:'); + document.writeln('</font>'); + + document.writeln('<blockquote>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + var revokedCerts = 0; + for(var i = 0; i < result.recordSet.length; i++) { + if (result.recordSet[i].error == null) { + revokedCerts++; + document.writeln(toHex(result.recordSet[i].serialNumber) + ' - revoked<BR>\n'); + } else { + document.write(toHex(result.recordSet[i].serialNumber) + ' - failed'); + if (result.recordSet[i].error != null) + document.write(': ' + result.recordSet[i].error); + document.writeln('<BR>\n'); + } + } + document.writeln('</font>'); + document.write('</blockquote>'); + + if (revokedCerts > 0 && result.header.dirEnabled != null && result.header.dirEnabled == 'yes') { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.header.updateCRL && result.header.updateCRL == "yes") { + if (result.header.updateCRLSuccess != null && + result.header.updateCRLSuccess == "yes") { + document.writeln('The Certificate Revocation List has been successfully updated.'); + } else { + document.writeln('The Certificate Revocation List update Failed'); + if (result.header.updateCRLSuccess != null) + document.writeln(' with error '+ + result.header.updateCRLError); + else + document.writeln('. No further details provided.'); + } + } else { + document.writeln( + 'The Certificate Revocation List will be updated '+ + 'automatically at the next scheduled update.'); + } + document.writeln('<br>'); +/* + if (result.header.certsUpdated > 0) { + if (result.header.certsUpdated == result.header.certsToUpdate) { + document.write('Directory has been successfully updated.'); + } else { + document.write('Directory has been partially updated. See log files for more details.'); + } + } else { + document.write('Directory has not been updated. See log files for more details.'); + } +*/ + document.writeln('</font><br>'); + } + } +} else if (result.header.revoked == 'pending') { + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Revocation Request Has Been Submitted</font><br><br>'); +} else if (result.header.revoked == 'rejected') { + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate Revocation Has Been Rejected</font><br><br>'); + if (result.header.error != null) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">Additional information:</font>'); + document.writeln('<blockquote>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(result.header.error); + document.writeln('</font>'); + document.writeln('</blockquote>'); + } +} else { + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Revocation Request Cannot Be Completed</font><br><br>'); + if (result.header.error != null) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">Additional information:</font>'); + document.writeln('<blockquote>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(result.header.error); + document.writeln('</font>'); + document.writeln('</blockquote>'); + } +} +//--> +</SCRIPT> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/revokeBySerial.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/revokeBySerial.template new file mode 100644 index 000000000..cae2a93da --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/revokeBySerial.template @@ -0,0 +1,88 @@ +<!-- --- 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> +<HEAD><TITLE> Certificate Revocation Result </TITLE></HEAD> +<CMS_TEMPLATE> +<BODY bgcolor="white"> +<center><h2><b> Certificate Revocation Result</b></h2></center> +<p> +<SCRIPT type="text/javascript"> + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + absValue; +} + +with (result.header) { + if (revoked == 'yes') { + document.write('Certificate with serial number ' + toHex(serialNumber) + ' has been marked revoked.'); + if (updateCRL == 'yes') { + if (updateCRLSuccess == 'yes') { + document.write('<p>The Certificate Revocation List has also been updated.'); + } else { + document.write('<p><b> Note: Update of Certificate Revocation List Failed!.</b>'); + } + } else { + document.write('<p><b> Note: Certificate Revocation List was not updated.</b>'); + } + } else { + document.write('<p><b>Certificate with serial number ' + toHex(serialNumber) + ' has not been revoked.</b>'); + if (error != null) { + document.write('<p>Additional Information:<p>'); + document.write('<blockquote><b>'); + document.write(error); + document.write('</b></blockquote>'); + } + } + + if (dirConfigured == 'yes') { + document.write('<h4>Update Directory Server Result</h4>'); + document.write('<b>'+numRevUpdated+'</b> out of '); + document.write('<b>'+numRevToUpdate+'</b> revoked certificates '); + document.write('were removed from the Directory Server.<br>'); + if (numRevUpdated != numRevToUpdate) { + document.write('<b>Note:</b> The Certificate System logs may contain more information on ones that could not be removed.<p>'); + } + if (updateCRL == 'yes') { + if (dirUpdateCrlStatus == 'Success') { + document.write('The new Certificate Revocation List has been published in the Directory Server.<p>'); + } else { + document.write('<b>Note:</b> The new Certificate Revocation List could not be published in the Directory Server. <br><b>Error returned:</b> '); + document.write(dirUpdateCrlStatus); + document.write('<p>'); + } + } else { + document.write('<b>Note:</b> No new Certificate Revocation List to update the Directory Server.'); + } + } +} +</SCRIPT> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/revokeCert.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/revokeCert.html new file mode 100644 index 000000000..c20c949ed --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/revokeCert.html @@ -0,0 +1,1086 @@ +<!-- --- 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> +<head> + <title>Revoke Certificates</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + +<script type="text/javascript" SRC="/ca/agent/funcs.js"></script> +<script type="text/javascript" SRC="/ca/agent/helpfun.js"></script> +</head> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke Certificates</font><br> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to revoke a set of certificates determined by one +or more properties of the certificate. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Each section below filters the set of certificates to be revoked. +Check the box at the top of the section if you want to use that +filter in your search, then complete the fields. Leave a box +unchecked to ignore that filter. You can click more than one box +to get a combination of search criteria. +<p> +You will be given a chance to examine the certificates before +they are revoked. +</font> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Serial Number Range</font></b> +<FORM NAME="serialNumberRangeCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="3"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates that fall within the following range:</font> +</td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Lowest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialFrom" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no lower limit)</font></td> +</tr> +<tr> +<td> </td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Highest serial number:</font></td> +<td><INPUT TYPE="TEXT" NAME="serialTo" SIZE=10 MAXLENGTH=99></td> +<td><font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +(leave blank for no upper limit)</font></td> +</tr> +</table> +</FORM> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter a range of certificate serial numbers in hexadecimal form +(starting with 0x, as in the certificate list), or in decimal form. +</font> + +<SCRIPT type="text/javascript"> +//<!-- +function serialNumberRangeCritInUse() +{ + return document.serialNumberRangeCritForm.inUse.checked; +} + +function serialNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + var canonicalFrom = "", canonicalTo = ""; + + if (document.serialNumberRangeCritForm.serialFrom.value != "") { + canonicalFrom = + trim(document.serialNumberRangeCritForm.serialFrom.value); + } + + if (canonicalFrom != "") { + if (!isDecimalNumber(canonicalFrom)) { + if (isNumber(canonicalFrom,16)) { + canonicalFrom = "0x" + + removeColons(stripPrefix(canonicalFrom)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the low end of the serial number range."); + return null; + } + } + if (isNegative(canonicalFrom)) { + alert("You must specify a positive value for the low " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId>=" + canonicalFrom + ")"; + } + + if (document.serialNumberRangeCritForm.serialTo.value != "") { + canonicalTo = + trim(document.serialNumberRangeCritForm.serialTo.value); + } + + if (canonicalTo != "") { + if (!isDecimalNumber(canonicalTo)) { + if (isNumber(canonicalTo,16)) { + canonicalTo = "0x" + + removeColons(stripPrefix(canonicalTo)); + } else { + alert("You must specify a decimal or hexadecimal value" + + "for the high end of the serial number range."); + return null; + } + } + if (isNegative(canonicalTo)) { + alert("You must specify a positive value for the high " + + "end of the serial number range."); + return null; + } + crit[next++] = "(certRecordId<=" + canonicalTo + ")"; + } + + /* Can not do this using parseInt */ + /* + if (document.serialNumberRangeCritForm.serialFrom.value != "" && + document.serialNumberRangeCritForm.serialTo.value != "") { + if (parseInt(canonicalFrom) > parseInt(canonicalTo)) { + alert("The low end of the range is larger than the high end."); + return null; + } + } + */ + return nsjoin(crit,""); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Subject Name</font></b> +<FORM NAME="subjectCritForm"> +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates with a subject name matching the following: +</font> +</td> +</tr> + +<tr align="left"> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Email address:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="eMail" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Common name:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="commonName" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">User ID:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="userID" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization unit:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="orgUnit" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Organization:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="org" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Locality:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="locality" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="state" SIZE=30></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Country:</font> +</td> +<td><INPUT TYPE="TEXT" NAME="country" VALUE="" SIZE=2 MAXLENGTH=2></td> +</tr> +<tr> +<td> </td> +<td align="right"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Match Method:</font> +</td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" NAME="match" VALUE="exact">Exact</font> +</td> +<tr> +<td> </td> +<td align="right"> </td> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<INPUT TYPE="RADIO" CHECKED NAME="match" VALUE="partial">Partial</font> +</td> +</tr> +</table> +</FORM> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter values for the fields you want to have in your search criteria. +Leave other fields blank. +<br><br> +Exact match method revokes certificates for subjects whose name consists +<b>exactly</b> of the components that you have filled in above, and contains +none of the components you have left blank. Pattern matching wildcard +values cannot be used in this search. +<br><br> +Partial match method revokes certificates for subjects whose name consists +<b>in part</b> of the components you have specified above, and in addition +may contain arbitrary values for the other components you have left blank above. +Pattern matching wildcard values can be used in this search. +</font> + + +<SCRIPT type="text/javascript"> +<!-- +function subjectCritInUse() +{ + return document.subjectCritForm.inUse.checked; +} +function subjectCrit() +{ + return computeNameFilter(document.subjectCritForm); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Issuing Information</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="issuedByCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates issued by:</font> +<INPUT TYPE="text" NAME="issuedBy" SIZE=10></td> +</FORM> +</tr> + +<tr> +<FORM NAME="issuedOnCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates issued during the period:</font> +</td> +</FORM> +<tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="issuedOnTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function issuedByCritInUse() +{ + return document.issuedByCritForm.inUse.checked; +} +function issuedByCrit() +{ + if (document.issuedByCritForm.issuedBy.value.length == 0) { + alert("User id in 'issued by' filter is empty"); + return null; + } + return "(certIssuedBy="+ document.issuedByCritForm.issuedBy.value +")"; +} + + +function issuedOnCritInUse() +{ + return document.issuedOnCritForm.inUse.checked; +} +function issuedOnCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.issuedOnFrom)) { + from = convertDate(document.issuedOnFrom, + "Start date for issue time range criterion"); + if (from == null) return null; + crit[next++] = "(certCreateTime>=" + from + ")"; + } + if (!dateIsEmpty(document.issuedOnTo)) { + to = convertDate(document.issuedOnTo, + "End date for issue time range criterion"); + if (to == null) return null; + crit[next++] = "(certCreateTime<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for issue time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Invalid issuance time range"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +<b>Dates of Validity</b></font> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotBeforeCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates effective during the period:</font> +</td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotBeforeTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotBeforeCritInUse() +{ + return document.validNotBeforeCritForm.inUse.checked; +} + +function validNotBeforeCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotBeforeFrom)) { + from = convertDate(document.validNotBeforeFrom, + "Start date for the validity beginning time range criterion"); + if (from == null) return null; + crit[next++] = "(x509Cert.notBefore>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotBeforeTo)) { + to = convertDate(document.validNotBeforeTo, + "End date for the validity beginning time range criterion"); + if (to == null) return null; + crit[next++] = "(x509Cert.notBefore<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for validity beginning range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Invalid effective time range"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<tr> +<FORM NAME="validNotAfterCritForm"> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates expire during the period:</font> +</td> +</FORM> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Start date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterFrom"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> + +<tr> +<td> </td> +<td valign=top align=right> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">End date:</font> +</td> +<td valign="top" nowrap> +<FORM NAME="validNotAfterTo"> +<SELECT NAME="day"> +<OPTION VALUE=0> +<OPTION VALUE=1>1 +<OPTION VALUE=2>2 +<OPTION VALUE=3>3 +<OPTION VALUE=4>4 +<OPTION VALUE=5>5 +<OPTION VALUE=6>6 +<OPTION VALUE=7>7 +<OPTION VALUE=8>8 +<OPTION VALUE=9>9 +<OPTION VALUE=10>10 +<OPTION VALUE=11>11 +<OPTION VALUE=12>12 +<OPTION VALUE=13>13 +<OPTION VALUE=14>14 +<OPTION VALUE=15>15 +<OPTION VALUE=16>16 +<OPTION VALUE=17>17 +<OPTION VALUE=18>18 +<OPTION VALUE=19>19 +<OPTION VALUE=20>20 +<OPTION VALUE=21>21 +<OPTION VALUE=22>22 +<OPTION VALUE=23>23 +<OPTION VALUE=24>24 +<OPTION VALUE=25>25 +<OPTION VALUE=26>26 +<OPTION VALUE=27>27 +<OPTION VALUE=28>28 +<OPTION VALUE=29>29 +<OPTION VALUE=30>30 +<OPTION VALUE=31>31 +</SELECT> +<SELECT NAME="month"> +<OPTION VALUE=13> +<OPTION VALUE=0>January +<OPTION VALUE=1>February +<OPTION VALUE=2>March +<OPTION VALUE=3>April +<OPTION VALUE=4>May +<OPTION VALUE=5>June +<OPTION VALUE=6>July +<OPTION VALUE=7>August +<OPTION VALUE=8>September +<OPTION VALUE=9>October +<OPTION VALUE=10>November +<OPTION VALUE=11>December +</SELECT> +<SELECT NAME="year"> +<OPTION VALUE=0> +<OPTION VALUE=1997>1997 +<OPTION VALUE=1998>1998 +<OPTION VALUE=1999>1999 +<OPTION VALUE=2000>2000 +<OPTION VALUE=2001>2001 +<OPTION VALUE=2002>2002 +<OPTION VALUE=2003>2003 +<OPTION VALUE=2004>2004 +<OPTION VALUE=2005>2005 +<OPTION VALUE=2006>2006 +<OPTION VALUE=2007>2007 +<OPTION VALUE=2008>2008 +<OPTION VALUE=2009>2009 +<OPTION VALUE=2010>2010 +<OPTION VALUE=2011>2011 +<OPTION VALUE=2012>2012 +</SELECT> +</FORM> +</td> +</tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validNotAfterCritInUse() +{ + return document.validNotAfterCritForm.inUse.checked; +} + +function validNotAfterCrit() +{ + var from = null, to = null; + var crit = new Array(); + var next = 0; + if (!dateIsEmpty(document.validNotAfterFrom)) { + from = convertDate(document.validNotAfterFrom, + "Start date for the expiration time range criterion"); + if (from == null) return null; + crit[next++] = "(x509cert.notAfter>=" + from + ")"; + } + if (!dateIsEmpty(document.validNotAfterTo)) { + to = convertDate(document.validNotAfterTo, + "End date for the expiration time range criterion"); + if (to == null) return null; + crit[next++] = "(x509cert.notAfter<=" + to + ")"; + } + + if (from == null && to == null) { + alert("You must enter a date for the expiration time range."); + return null; + } + if (from != null && to != null && from > to) { + alert("Expiration time range specified is empty"); + return null; + } + return nsjoin(crit,""); +} +//--> +</SCRIPT> + +<table border="0" cellspacing="2" cellpadding="2"> +<FORM NAME="validityLengthCritForm"> +<tr> +<td><INPUT TYPE="CHECKBOX" NAME="inUse"></td> +<td align="left" colspan="2"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Revoke certificates with a validity period:</font> +</td> +</tr> +<tr> +<td> </td> +<td> +<SELECT NAME="validityOp"> +<OPTION VALUE="<="> not greater +<OPTION VALUE=">="> not less +</SELECT> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">than</font> +<INPUT NAME="count" TYPE="text" MAXSIZE=2 SIZE=2> +<SELECT NAME="unit"> +<OPTION VALUE="86400000">Day(s)</OPTION> +<OPTION VALUE="604800000">Week(s)</OPTION> +<OPTION SELECTED VALUE="2592000000">Month(s)</OPTION> +<OPTION VALUE="31536000000">Year(s)</OPTION> +</SELECT> +</td></tr> +</FORM> +</table> + +<SCRIPT type="text/javascript"> +<!-- +function validityLengthCritInUse() +{ + return document.validityLengthCritForm.inUse.checked; +} + +function validityLengthCrit() +{ + with(document.validityLengthCritForm) { + + if (!isNumber(count.value,10)) { + alert("Invalid number specified in validity length criterion"); + return null; + } + + return "(x509cert.duration" + + validityOp.options[validityOp.selectedIndex].value + + (count.value * unit.options[unit.selectedIndex].value) +")"; + } +} + +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + andFilter[critCount++] = "(certRecordId=*)"; + + if (serialNumberRangeCritInUse()) { + if ((andFilter[critCount++] = serialNumberRangeCrit()) == null) + return; + } + if (subjectCritInUse()) { + if ((andFilter[critCount++] = subjectCrit()) == null) + return; + } + if (issuedOnCritInUse()) { + if ((andFilter[critCount++] = issuedOnCrit()) == null) + return; + } + if (issuedByCritInUse()) { + if ((andFilter[critCount++] = issuedByCrit()) == null) + return; + } + if (validNotBeforeCritInUse()) { + if ((andFilter[critCount++] = validNotBeforeCrit()) == null) + return; + } + if (validNotAfterCritInUse()) { + if ((andFilter[critCount++] = validNotAfterCrit()) == null) + return; + } + if (validityLengthCritInUse()) { + if ((andFilter[critCount++] = validityLengthCrit()) == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } + + andFilter[critCount++] = "(certStatus=VALID)"; + + form.queryCertFilter.value = "(&"+nsjoin(andFilter,"")+")"; + form.revokeAll.value = form.queryCertFilter.value; + + form.op.value = "listCerts"; + form.submit(); +} +//--> +</SCRIPT> + +<br> + +<FORM NAME="queryForm" ACTION="listCerts" METHOD=POST> +<INPUT TYPE="HIDDEN" NAME="op" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="queryCertFilter" VALUE=""> +<INPUT TYPE="HIDDEN" NAME="revokeAll" VALUE=""> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%" BACKGROUND="/ca/agent/graphics/gray90.gif"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <INPUT TYPE="button" VALUE="Find" width="72" onClick='doSubmit(queryForm)'> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">first</font> + <INPUT TYPE="TEXT" NAME="maxCount" SIZE=4 MAXLENGTH=99 VALUE="5"> + <font size=-1 face="PrimaSans BT, Verdana, sans-serif">records</font> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#1011030')"> --> + </td> + </tr> +</table> + +</form> + +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/srchCert.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/srchCert.template new file mode 100644 index 000000000..fcaa1adf8 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/srchCert.template @@ -0,0 +1,435 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> + +<body bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> +<font face="PrimaSans BT, Verdana, sans-serif" size="+1">Search Results +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/ca/agent/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> + +<CMS_TEMPLATE> + +<SCRIPT type="text/javascript"> +//<!-- +var onHoldCounter = 0; +var onHoldList = ""; +var canRevokeCounter = 0; +var canRevokeList = ""; + +function toHex(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + absValue; +} + +function revokeCert(serialNumber) +{ + return confirm("WARNING!! You are about to do an irreversible operation.\nDo you really want to revoke certificate # "+ + renderHexNumber(serialNumber,8)+ " ?"); +} + +function renderOidName(oid) +{ + if (oid == "1.2.840.113549.1.1.1") + return "PKCS #1 RSA"; + else if (oid == "1.2.840.113549.1.1.4") + return "PKCS #1 MD5 With RSA"; + else if (oid == "1.2.840.10040.4.1") + return "DSA"; + else + return "OID."+oid; +} + +function renderHexNumber(number,width) +{ + var num = number; + while (num.length < width) + num = "0"+num; + return "0x"+num; +} + +function renderDateFromSecs(secs) +{ + if (secs == null) return ""; + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var year = dateTmp.getYear(); + if (year < 100) { + year += 1900; + } else { + year %= 100; + year += 2000; + } + return (dateTmp.getMonth()+1)+"/"+dateTmp.getDate()+"/"+year+" "+ + (dateTmp.getHours()<10?" ":"")+ + dateTmp.getHours()+":"+(dateTmp.getMinutes()<10?"0":"")+ + dateTmp.getMinutes()+":"+(dateTmp.getSeconds()<10?"0":"")+ + dateTmp.getSeconds(); +} + +function renderDetailsButton(serialNumber) +{ + return "<FORM METHOD=post "+ +"ACTION=\""+ "displayBySerial" +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"op\" VALUE=\""+ "displayBySerial" +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"serialNumber\" VALUE=\""+ "0x"+serialNumber +"\">\n"+ +"<INPUT TYPE=submit VALUE=\"Details\" width=\"72\"></FORM>\n"; +} + +function renderRevokeButton(serialNumberDecimal) +{ + canRevokeList += "(certRecordId="+serialNumberDecimal+")"; + canRevokeCounter++; + return "<FORM METHOD=post "+ +//"onSubmit=\"return revokeCert("+serialNumberDecimal+");\" "+ +"ACTION=\""+ "reasonToRevoke" +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"op\" VALUE=\""+ "reasonToRevoke" +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"serialNumber\" VALUE=\""+ serialNumberDecimal +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"revokeAll\" VALUE=\"(&(certRecordId="+serialNumberDecimal+"))\">\n"+ +"<INPUT TYPE=hidden NAME=\"totalRecordCount\" VALUE=\"1\">\n"+ +"<INPUT TYPE=hidden NAME=\"commit\" VALUE=\"yes\">"+ +"<INPUT TYPE=hidden NAME=\"updateCRL\" VALUE=\"yes\">"+ +"<INPUT TYPE=submit VALUE=\"Revoke\" width=\"72\">"+ +"</FORM>\n"; +} + +function renderOffHoldButton(serialNumberDecimal) +{ + if (onHoldCounter > 0) onHoldList += " "; + onHoldCounter++; + onHoldList += serialNumberDecimal; + return "<FORM METHOD=post "+ +"ACTION=\""+ "doUnrevoke" +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"op\" VALUE=\""+ "doUnrevoke" +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"serialNumber\" VALUE=\""+ serialNumberDecimal +"\">\n"+ +"<INPUT TYPE=hidden NAME=\"cmmfResponse\" VALUE=\"true\">\n"+ +"<INPUT TYPE=submit VALUE=\"Off Hold\" width=\"72\"></FORM>\n"; +} + +function addSpaces(str) +{ + var outStr = ""; + var i0 = 0; + var i1 = 0; + + while (i1 < str.length) { + i1 = str.indexOf(',', i0); + if (i1 > -1) { + i1++; + outStr += str.substring(i0, i1); + outStr += " "; + i0 = i1; + } else { + outStr += str.substring(i0, str.length); + i1 = str.length; + } + } + + return outStr; +} + +function addEscapes(str) +{ + var outStr = str.replace(/</g, "<"); + outStr = outStr.replace(/>/g, ">"); + return outStr; +} + +function getRevocationReason(revocationReason) +{ + var reasons = new Array("Unspecified", + "Key compromised", + "CA key compromised", + "Affiliation changed", + "Certificate superceded", + "Cessation of operation", + "Certificate is on hold", + "Unspecified", // value 7 is not used + "Remove from CRL", + "Privilege withdrawn", + "AA key compromise"); + if (revocationReason < 0 || revocationReason >= reasons.length) + revocationReason = 0; + return reasons[revocationReason]; +} + +function displayCertificateRecord(cert) +{ + document.write( +"<table border=\"0\" width=\"100%\" cellspacing=\"2\" cellpadding=\"2\">\n"+ +"<tr><td width=18%> </td><td width=41%> </td><td width=41%> </td></tr>\n"+ + +"<tr bgcolor=\"#e5e5e5\"><td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Serial number</font></td>\n"+ +"<td colspan=\"2\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Subject name</font></td></tr>\n"+ +"<tr><td><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"<a href=\"displayBySerial?op=displayBySerial&serialNumber=0x"+ cert.serialNumber + "\">"+renderHexNumber(cert.serialNumber,8) +"</a></font></td>\n"+ +"<td colspan=\"2\"><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +addSpaces(addEscapes(cert.subject)) +"</font></td></tr>\n"+ + +"<tr bgcolor=\"#e5e5e5\"><td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Version</font></td>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Certificate Type</font></td>\n"+ +"<td bgcolor=\"#e5e5e5\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Subject public key algorithm</font></td></tr>\n"+ +"<tr><td><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +(cert.version+1) +"</font></td>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +(cert.type) +"</font></td>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +renderOidName(cert.subjectPublicKeyAlgorithm) + +(cert.subjectPublicKeyLength != null ? + " with "+cert.subjectPublicKeyLength+"-bit key" : "")+ +"</font></td></tr>\n"+ + +"<tr><td rowspan=\"2\">" +renderDetailsButton(cert.serialNumber)+ "</td>\n"+ +"<td bgcolor=\"#e5e5e5\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Not valid before</font></td>\n"+ +"<td bgcolor=\"#e5e5e5\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Not valid after</font></td></tr>\n"+ + +"<tr>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +renderDateFromSecs(cert.validNotBefore) + "</font></td>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +renderDateFromSecs(cert.validNotAfter)+ "</font></td></tr>\n"+ + +"<tr><td rowspan=\"2\">"+ +(cert.revokedOn == null && cert.serialNumber != result.header.caSerialNumber? + renderRevokeButton(cert.serialNumberDecimal): + (cert.revocationReason != null && cert.revocationReason == 6? + renderOffHoldButton(cert.serialNumberDecimal): " "))+ +"</td>\n"+ +"<td bgcolor=\"#e5e5e5\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Issued on</font></td>\n"+ +"<td bgcolor=\"#e5e5e5\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Issued by</font></td></tr>\n"+ + +"<tr>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +renderDateFromSecs(cert.issuedOn) + "</font></td>\n"+ +"<td>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +cert.issuedBy + "</font></td></tr>\n"+ + +(cert.revokedOn != null ? + "<tr><td></td>\n"+ + "<td bgcolor=\"#e5e5e5\"><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\" color=\"red\">"+ + "Revoked on</font></td>\n"+ + "<td bgcolor=\"#e5e5e5\"><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\" color=\"red\">"+ + "Revoked by</font></td></tr>\n"+ + "<tr><td></td>\n"+ + "<td><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\" color=\"red\">"+ + renderDateFromSecs(cert.revokedOn)+ "</font></td>\n"+ + "<td><font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\" color=\"red\">"+ + cert.revokedBy + "</font></td></tr>\n" : "") + +(cert.revocationReason != null ? + "<tr><td></td>\n"+ + "<td bgcolor=\"#e5e5e5\" colspan=\"2\">"+ + "<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\" color=\"red\">"+ + "Revocation Reason</font></td></tr>\n"+ + "<tr><td></td>\n"+ + "<td colspan=\"2\">"+ + "<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\" color=\"red\">"+ + getRevocationReason(cert.revocationReason)+"</font></td></tr>\n" : "") + + +"</table>\n" + ); +} + +function displaySearchResults() +{ +if (result.recordSet.length == 0) { + document.write( +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"+1\">No Matching Certificates Found</font>\n" + ); +} else { + + document.write( +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"+1\">Issuer: " + +(result.header.issuerName != null ? result.header.issuerName : "UNKNOWN") + +"</font><br>\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"Total number of records found: "+result.header.totalRecordCount+ +"</font>\n" + ); + if (result.header.totalRecordCount == result.header.maxSize) { + document.write( +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +"(Maximum size reached)"+ +"</font>\n" + ); + } + + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayCertificateRecord(result.recordSet[i]); + } + if (((result.header.revokeAll != null || onHoldCounter > 1 || canRevokeCounter > 1) && + result.header.totalRecordCount > 1) || + (result.header.querySentinel != null)) { + document.write("<br> \n" + + "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" background=\"/ca/agent/graphics/hr.gif\" width=\"100%\">\n"+ + "<tr><td> </td></tr></table>\n"); + } + + document.write("<table BORDER=0 CELLSPACING=2 CELLPADDING=6 WIDTH=\"100%\">\n"+ + "<tr align=center><td>\n"); + + if (result.header.revokeAll != null && result.header.totalRecordCount > 1) { + displayRevokeAllForm(result.header.totalRecordCount, result.header.revokeAll); + } else if (result.header.totalRecordCount > 1) { + if (canRevokeCounter > 1) { + canRevokeList = "(|"+canRevokeList+")"; + displayRevokeAllForm(canRevokeCounter, canRevokeList); + } + if (onHoldCounter > 1) { + displayReleaseAllForm(); + } + } + + if (result.header.querySentinel != null) { + displayNextForm(); + } + + document.write("</td></tr></table>\n"); +} +} + +function renderHidden(name,value) +{ + return "<INPUT TYPE=\"hidden\" NAME=\""+ name +"\" VALUE=\"\">\n"; +} + +function doNext(form) +{ + //form.action = "/ca"+result.header.op; + form.action = "listCerts"; + form.op.value = result.header.op; + form.queryCertFilter.value = result.header.queryCertFilter; + if (result.header.revokeAll != null) { + form.revokeAll.value = result.header.revokeAll; + } + if (result.header.queryFilterHash != null) { + form.queryFilterHash.value = result.header.queryFilterHash; + } + // form.submit(); +} + +function displayNextForm() +{ + document.write( +//"<div align=center> \n"+ +"<FORM NAME =\"nextForm\" METHOD=POST onSubmit=\"doNext(nextForm);\" "+ +"ACTION=\"\">\n"+ +renderHidden("op")); + +if (result.header.revokeAll != null) { + document.write(renderHidden("revokeAll")); +} + +if (result.header.queryFilterHash != null) { + document.write(renderHidden("queryFilterHash")); +} + +document.write("<INPUT TYPE=submit VALUE=\"Find\" width=\"72\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +" next</font>\n"+ +"<INPUT TYPE=hidden NAME=totalRecordCount VALUE=\""+ +result.header.totalRecordCount+ "\">\n"+ +"<INPUT TYPE=hidden NAME=queryCertFilter VALUE=\""+ +result.header.queryCertFilter+ "\">\n"+ +"<INPUT TYPE=hidden NAME=querySentinel VALUE=\""+ +result.header.querySentinel+ "\">\n"+ +"<INPUT TYPE=hidden NAME=serialTo VALUE=\""+ +result.header.serialTo+ "\">\n"+ +"<INPUT TYPE=text SIZE=4 MAXLENGTH=99 NAME=maxCount VALUE=\""+ +result.header.maxCount+ "\">\n"+ +"<font face=\"PrimaSans BT, Verdana, sans-serif\" size=\"-1\">\n"+ +" record(s)</font>\n"+ +"</FORM>\n"); +//"</FORM></DIV>\n"); +} + +function displayRevokeAllForm(recordCount, revokeAllFilter) +{ +// document.write("<DIV align=center><FORM NAME =\"revokeAllForm\" "+ + document.write("<FORM NAME =\"revokeAllForm\" "+ + "METHOD=POST "+ + "ACTION=\""+ "/ca/agent/ca/reasonToRevoke" +"\">\n"+ + "<INPUT TYPE=hidden NAME=\"op\" VALUE=\"reasonToRevoke\">\n"+ + "<INPUT TYPE=hidden NAME=\"revokeAll\" VALUE=\""+ revokeAllFilter +"\">\n"+ + "<INPUT TYPE=hidden NAME=\"totalRecordCount\" VALUE=\""+ recordCount +"\">\n"+ + "<INPUT TYPE=submit VALUE=\"Revoke ALL "+ recordCount +" Certificates\">\n"+ + "</FORM>\n"); +// "</FORM></DIV>\n"); +} + +function displayReleaseAllForm() +{ + document.write("<FORM NAME =\"releaseAllForm\" "+ + "METHOD=post "+ + "ACTION=\""+ "/ca/agent/ca/doUnrevoke" +"\">\n"+ + "<INPUT TYPE=hidden NAME=\"op\" VALUE=\""+ "doUnrevoke" +"\">\n"+ + "<INPUT TYPE=hidden NAME=\"serialNumber\" VALUE=\""+ onHoldList +"\">\n"+ + "<INPUT TYPE=hidden NAME=\"cmmfResponse\" VALUE=\"true\">\n"+ + "<INPUT TYPE=submit VALUE=\"Release ALL "+ onHoldCounter + + " Certificates From Hold\" width=\"72\"></FORM>\n"); +} + +displaySearchResults(); + +//--> +</SCRIPT> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/toDisplayCRL.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/toDisplayCRL.template new file mode 100644 index 000000000..a1467810e --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/toDisplayCRL.template @@ -0,0 +1,364 @@ +<!-- --- 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> +<HEAD> +<TITLE>Display Certificate Revocation List</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + +<SCRIPT type="text/javascript" SRC="/ca/agent/helpfun.js"></SCRIPT> +<CMS_TEMPLATE> + +</HEAD> + +<body bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Display Certificate Revocation List</font><br> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Use this form to view a certificate revocation list.<br> +The numbers displayed in the recent changes column are +representing newly revoked, taken off hold, and expired certificates. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<FORM NAME="displayCRLForm" ACTION="displayCRL" METHOD=POST> + +<!-- <table border="0" cellspacing="2" cellpadding="2" width="100%"> --> + +<SCRIPT type="text/javascript"> +<!-- +var splitLabel = new Array("Copying delta CRL cache:", + "Preparing data for delta CRL generation:", + "Signing and encoding delta CRL:", + "Storing delta CRL:", + "Delta CRL publishing:", + "Preparing data for CRL generation:", + "Adding extensions:", + "Signing and encoding CRL:", + "Storing CRL:", + "Publishing CRL:"); +var i; + +function write_new_window(timeSplits) { + var new_window = window.open('', 'TestWindow', + 'width=400,height=410,status=no,location=no,menubar=no,toolbar=no,personalbar=no,resizable=yes,scrollbars=no'); + new_window.focus(); + var new_doc = new_window.document; + new_doc.writeln('<HTML><HEAD><TITLE>Newly Opened Window</TITLE></HEAD><BODY>\n'); + + var crlTime; + if (timeSplits != null && timeSplits.length > 0) { + crlTime = timeSplits.split(','); + } else { + crlTime = null; + } + + if (crlTime != null && crlTime.length > 0) { + new_doc.writeln('<font size=+1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('CRL split times</font><br> '); + new_doc.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + new_doc.writeln('<tr>'); + new_doc.writeln('<td width="75%" bgcolor="#e0e0e0">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Operation</font></td>'); + new_doc.writeln('<td bgcolor="#e0e0e0">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Time in ms</font></td>'); + + var total = 0; + var deltaTotal = 0; + var crlTotal = 0; + var deltaColor; + for (i = 0; i < splitLabel.length; i++) { + if (i > 0 && i < 5) { + deltaColor = ' bgcolor="#eeeeee"'; + deltaTotal += parseInt(crlTime[i]); + } else { + deltaColor = ''; + crlTotal += parseInt(crlTime[i]); + } + new_doc.writeln('<tr><td align="right"'+deltaColor+'>'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln(splitLabel[i]+'</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right"'+deltaColor+'>'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (i < crlTime.length) { + if (crlTime[i].charAt(0) == '-') { + var d = new Date(parseInt(crlTime[i].substr(1))); + new_doc.writeln((d.getMonth()+1)+'/'+d.getDate()+'/'+ + d.getFullYear()+" "+d.getHours()+':'+ + (d.getMinutes()<10?"0":"")+d.getMinutes()+':'+ + (d.getSeconds()<10?"0":"")+d.getSeconds()); + } else { + new_doc.writeln(crlTime[i]); + } + total += parseInt(crlTime[i]); + } else { + new_doc.writeln(' '); + } + new_doc.writeln('</font></td></tr>'); + } + new_doc.writeln('<tr><td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Delta CRL total:</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (deltaTotal < 0) deltaTotal = "incomplete"; + new_doc.writeln(deltaTotal+'</font></td></tr>'); + + new_doc.writeln('<tr><td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('CRL total:</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (crlTotal < 0) crlTotal = "incomplete"; + new_doc.writeln(crlTotal+'</font></td></tr>'); + + new_doc.writeln('<tr><td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Total:</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (total < 0) total = "incomplete"; + new_doc.writeln(total+'</font></td></tr>'); + + new_doc.writeln('</table>'); + } else { + new_doc.writeln('CRL split times are not available.'); + } + new_doc.writeln('</BODY></HTML>'); + new_doc.close(); +} + +var issuingPoint; +var crlNumber; +var deltaNumber; +var crlSize; +var deltaSize; +var crlTesting; +var recentChanges; +var crlTimeSplits; + +if (result.header.crlIssuingPoints != null && + result.header.crlIssuingPoints.length > 0) { + issuingPoint = result.header.crlIssuingPoints.split('+'); +} else { + issuingPoint = null; +} + +if (result.header.crlNumbers != null && + result.header.crlNumbers.length > 0) { + crlNumber = result.header.crlNumbers.split('+'); +} else { + crlNumber = null; +} + +if (result.header.deltaNumbers != null && + result.header.deltaNumbers.length > 0) { + deltaNumber = result.header.deltaNumbers.split('+'); +} else { + deltaNumber = null; +} + +if (result.header.crlSizes != null && + result.header.crlSizes.length > 0) { + crlSize = result.header.crlSizes.split('+'); +} else { + crlSize = null; +} + +if (result.header.deltaSizes != null && + result.header.deltaSizes.length > 0) { + deltaSize = result.header.deltaSizes.split('+'); +} else { + deltaSize = null; +} + +if (result.header.crlTesting != null && + result.header.crlTesting.length > 0) { + crlTesting = result.header.crlTesting.split('+'); +} else { + crlTesting = null; +} + +if (result.header.recentChanges != null && + result.header.recentChanges.length > 0) { + recentChanges = result.header.recentChanges.split('+'); +} else { + recentChanges = null; +} + +if (result.header.crlSplits != null && + result.header.crlSplits.length > 0) { + crlTimeSplits = result.header.crlSplits.split('+'); +} else { + crlTimeSplits = null; +} + +if (issuingPoint != null && issuingPoint.length > 0) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + + document.writeln('<tr><td align="right" width="30%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Issuing point:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<SELECT NAME="crlIssuingPoint">'); + for (i = 0; i < issuingPoint.length; i++) { + document.write('<OPTION VALUE="' + issuingPoint[i] + '"'); + if (result.header.masterCRLIssuingPoint == issuingPoint[i]) + document.write(' SELECTED'); + document.writeln('>' + issuingPoint[i] + '</OPTION>'); + } + document.writeln('</SELECT></td></tr>'); + + document.writeln('<tr><td align="right" width="30%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(' Display type:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<SELECT NAME="crlDisplayType">'); + if (result.header.master_host != null && result.header.master_host.length && + result.header.master_port != null && result.header.master_port.length) { + document.write('<OPTION VALUE="entireCRL" SELECTED>Entire CRL'); + } else { + document.write('<OPTION VALUE="cachedCRL" SELECTED>Cached CRL'); + document.write('<OPTION VALUE="entireCRL">Entire CRL'); + } + document.write('<OPTION VALUE="crlHeader">CRL header'); + document.write('<OPTION VALUE="base64Encoded">Base64 encoded'); + if (result.header.isDeltaCRLEnabled != null && + result.header.isDeltaCRLEnabled == true) { + document.write('<OPTION VALUE="deltaCRL">Delta CRL'); + } + document.writeln('</SELECT></td></tr>'); + document.writeln('</table><br> '); + + if (crlNumber != null && crlNumber.length == issuingPoint.length && + crlSize != null && crlSize.length == issuingPoint.length && + recentChanges != null && recentChanges.length == issuingPoint.length) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Issuing point</font></td>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('CRL numbers</font></td>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Number of entries</font></td>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Recent changes</font></td>'); + document.writeln('</tr>'); + for (i = 0; i < issuingPoint.length; i++) { + document.writeln('<tr>'); + document.writeln('<td align="right">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(issuingPoint[i]+'</font>'); + document.writeln('</td>'); + document.writeln('<td align="right">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (crlTimeSplits != null && + crlTimeSplits.length == issuingPoint.length && + crlTimeSplits[i] != "0,0,0,0,0,0,0,0,0,0") { + if (deltaSize != null && deltaSize.length > i && deltaSize[i] != '-1' && + result.header.isDeltaCRLEnabled != null && result.header.isDeltaCRLEnabled == true && + deltaNumber != null && deltaNumber.length > i) { + document.write('<A HREF="#" onClick="write_new_window(\''+crlTimeSplits[i]+'\');return false">'+crlNumber[i]+', '+deltaNumber[i]+'</A>'); + } else { + document.write('<A HREF="#" onClick="write_new_window(\''+crlTimeSplits[i]+'\');return false">'+crlNumber[i]+'</A>'); + } + } else { + document.write(crlNumber[i]); + if (deltaSize != null && deltaSize.length > i && deltaSize[i] != '-1' && + result.header.isDeltaCRLEnabled != null && result.header.isDeltaCRLEnabled == true && + deltaNumber != null && deltaNumber.length > i) { + document.write(', '+deltaNumber[i]); + } + } + document.writeln('</font></td>'); + document.writeln('<td align="right">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (crlSize[i] == '-1') { + document.writeln('unknown'); + } else { + document.write(crlSize[i]); + if (result.header.isDeltaCRLEnabled != null && result.header.isDeltaCRLEnabled == true && + deltaSize != null && deltaSize.length > i && deltaSize[i] != '-1') { + document.write(', '+deltaSize[i]); + } + } + document.writeln('</font></td>'); + document.writeln('<td align="right">'); + if (crlTesting[i] == '1') { + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif" color="gray">'); + } else { + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + } + if (crlNumber[i] == '0' && crlSize[i] == '-1') { + document.writeln('CRL is not built</font>'); + } else { + document.writeln(recentChanges[i]+'</font>'); + } + document.writeln('</td>'); + document.writeln('</tr>'); + } + document.writeln('</table><br>'); + } +} else { + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<br> '+ + 'CRL issuing points are not available.'); + document.writeln('</font><br><br> '); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> +<SCRIPT type="text/javascript"> +<!-- + if (issuingPoint != null && issuingPoint.length > 0) { + document.writeln('<INPUT TYPE="submit" VALUE="Display" width="72"> '); + } +//--> +</SCRIPT> + <INPUT TYPE="hidden" NAME="pageStart" VALUE="1"> + <INPUT TYPE="hidden" NAME="pageSize" VALUE="50"> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Viewing or Examining CRLs')"> --> + </td> + </tr> +</table> + +</FORM> +</BODY> + +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/toUpdateCRL.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/toUpdateCRL.template new file mode 100644 index 000000000..1d804a604 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/toUpdateCRL.template @@ -0,0 +1,386 @@ +<!-- --- 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> +<HEAD> +<TITLE>Update Certificate Revocation List</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + +<SCRIPT type="text/javascript" SRC="/ca/agent/helpfun.js"></SCRIPT> + </HEAD> +<CMS_TEMPLATE> + +<body bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#000000"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Update Certificate Revocation List</font><br> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +In most cases, the certificate revocation list (CRL) is updated automatically. +In a few situations, however, you may want to update the CRL manually. +Use this form to update the CRL manually. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<SCRIPT type="text/javascript"> +<!-- + +if (result.header.master_host == null) { + document.write('<FORM NAME="updateCRLForm" ACTION="updateCRL" METHOD=POST>'); +} else { + document.write('<FORM NAME="updateCRLForm" ACTION="https://' + result.header.master_host + ':' + result.header.master_port + '/ca/agent/ca/updateCRL" METHOD=POST>'); +} + +//--> +</SCRIPT> + + +<SCRIPT type="text/javascript"> +<!-- +var splitLabel = new Array("Copying delta CRL cache:", + "Preparing data for delta CRL generation:", + "Signing and encoding delta CRL:", + "Storing delta CRL:", + "Delta CRL publishing:", + "Preparing data for CRL generation:", + "Adding extensions:", + "Signing and encoding CRL:", + "Storing CRL:", + "Publishing CRL:"); +var i; + +function write_new_window(timeSplits) { + var new_window = window.open('', 'TestWindow', + 'width=400,height=410,status=no,location=no,menubar=no,toolbar=no,personalbar=no,resizable=yes,scrollbars=no'); + new_window.focus(); + var new_doc = new_window.document; + new_doc.writeln('<HTML><HEAD><TITLE>Newly Opened Window</TITLE></HEAD><BODY>\n'); + + var crlTime; + if (timeSplits != null && timeSplits.length > 0) { + crlTime = timeSplits.split(','); + } else { + crlTime = null; + } + + if (crlTime != null && crlTime.length > 0) { + new_doc.writeln('<font size=+1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('CRL split times</font><br> '); + new_doc.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + new_doc.writeln('<tr>'); + new_doc.writeln('<td width="75%" bgcolor="#e0e0e0">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Operation</font></td>'); + new_doc.writeln('<td bgcolor="#e0e0e0">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Time in ms</font></td>'); + + var total = 0; + var deltaTotal = 0; + var crlTotal = 0; + var deltaColor; + for (i = 0; i < splitLabel.length; i++) { + if (i > 0 && i < 5) { + deltaColor = ' bgcolor="#eeeeee"'; + deltaTotal += parseInt(crlTime[i]); + } else { + deltaColor = ''; + crlTotal += parseInt(crlTime[i]); + } + new_doc.writeln('<tr><td align="right"'+deltaColor+'>'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln(splitLabel[i]+'</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right"'+deltaColor+'>'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (i < crlTime.length) { + if (crlTime[i].charAt(0) == '-') { + var d = new Date(parseInt(crlTime[i].substr(1))); + new_doc.writeln((d.getMonth()+1)+'/'+d.getDate()+'/'+ + d.getFullYear()+" "+d.getHours()+':'+ + (d.getMinutes()<10?"0":"")+d.getMinutes()+':'+ + (d.getSeconds()<10?"0":"")+d.getSeconds()); + } else { + new_doc.writeln(crlTime[i]); + } + total += parseInt(crlTime[i]); + } else { + new_doc.writeln(' '); + } + new_doc.writeln('</font></td></tr>'); + } + new_doc.writeln('<tr><td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Delta CRL total:</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (deltaTotal < 0) deltaTotal = "incomplete"; + new_doc.writeln(deltaTotal+'</font></td></tr>'); + + new_doc.writeln('<tr><td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('CRL total:</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (crlTotal < 0) crlTotal = "incomplete"; + new_doc.writeln(crlTotal+'</font></td></tr>'); + + new_doc.writeln('<tr><td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + new_doc.writeln('Total:</font>'); + new_doc.writeln('</td>'); + new_doc.writeln('<td align="right" bgcolor="#e5e5e5">'); + new_doc.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (total < 0) total = "incomplete"; + new_doc.writeln(total+'</font></td></tr>'); + + new_doc.writeln('</table>'); + } else { + new_doc.writeln('CRL split times are not available.'); + } + new_doc.writeln('</BODY></HTML>'); + new_doc.close(); +} + +var algorithmName; +var issuingPoint; +var crlNumber; +var deltaNumber; +var crlSize; +var deltaSize; +var crlTesting; +var recentChanges; + +if (result.header.crlIssuingPoints != null && + result.header.crlIssuingPoints.length > 0) { + issuingPoint = result.header.crlIssuingPoints.split('+'); +} else { + issuingPoint = null; +} + +if (result.header.validAlgorithms != null) { + algorithmName = result.header.validAlgorithms.split('+'); +} else { + validAlgorithms = "SHA1withRSA+MD5withRSA+SHA1withDSA+SHA1withEC"; + algorithmName = validAlgorithms.split('+'); +} + +if (result.header.crlNumbers != null && + result.header.crlNumbers.length > 0) { + crlNumber = result.header.crlNumbers.split('+'); +} else { + crlNumber = null; +} + +if (result.header.deltaNumbers != null && + result.header.deltaNumbers.length > 0) { + deltaNumber = result.header.deltaNumbers.split('+'); +} else { + deltaNumber = null; +} + +if (result.header.crlSizes != null && + result.header.crlSizes.length > 0) { + crlSize = result.header.crlSizes.split('+'); +} else { + crlSize = null; +} + +if (result.header.deltaSizes != null && + result.header.deltaSizes.length > 0) { + deltaSize = result.header.deltaSizes.split('+'); +} else { + deltaSize = null; +} + +if (result.header.crlTesting != null && + result.header.crlTesting.length > 0) { + crlTesting = result.header.crlTesting.split('+'); +} else { + crlTesting = null; +} + +if (result.header.recentChanges != null && + result.header.recentChanges.length > 0) { + recentChanges = result.header.recentChanges.split('+'); +} else { + recentChanges = null; +} + +if (result.header.crlSplits != null && + result.header.crlSplits.length > 0) { + crlTimeSplits = result.header.crlSplits.split('+'); +} else { + crlTimeSplits = null; +} + +if (issuingPoint != null && issuingPoint.length > 0) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + + document.writeln('<tr><td align="right" width="30%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Issuing point:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<SELECT NAME="crlIssuingPoint">'); + for (i = 0; i < issuingPoint.length; i++) { + document.write('<OPTION VALUE="' + issuingPoint[i] + '"'); + if (result.header.masterCRLIssuingPoint == issuingPoint[i]) + document.write(' SELECTED'); + document.writeln('>' + issuingPoint[i] + '</OPTION>'); + } + document.writeln('</SELECT></td></tr>'); + + document.writeln('<tr><td align="right" width="30%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Signature algorithm:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<SELECT NAME="signatureAlgorithm">'); + for (i = 0; i < algorithmName.length; i++) { + document.write('<OPTION VALUE="' + algorithmName[i] + '"'); + if (result.header.defaultAlgorithm == algorithmName[i]) + document.write(' SELECTED'); + document.writeln('>' + algorithmName[i] + '</OPTION>'); + } + document.writeln('</SELECT></td></tr>'); + + document.writeln('<tr><td align="right" width="30%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Wait for update:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<input TYPE="CHECKBOX" NAME="waitForUpdate" VALUE="true">'); + document.writeln('</td></tr>'); + + document.writeln('<tr><td align="right" width="30%">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Clear CRL cache:</font></td>'); + document.writeln('<td align="left">'); + document.writeln('<input TYPE="CHECKBOX" NAME="clearCRLCache" VALUE="true">'); + document.writeln('</td></tr>'); + + document.writeln('</table><br> '); + + + if (crlNumber != null && crlNumber.length == issuingPoint.length && + crlSize != null && crlSize.length == issuingPoint.length && + recentChanges != null && recentChanges.length == issuingPoint.length) { + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<tr>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Issuing point</font></td>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('CRL numbers</font></td>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Number of entries</font></td>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('Recent changes</font></td>'); + document.writeln('</tr>'); + for (i = 0; i < issuingPoint.length; i++) { + document.writeln('<tr>'); + document.writeln('<td align="right">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln(issuingPoint[i]+'</font>'); + document.writeln('</td>'); + document.writeln('<td align="right">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (crlTimeSplits != null && + crlTimeSplits.length == issuingPoint.length && + crlTimeSplits[i] != "0,0,0,0,0,0,0,0,0,0") { + if (deltaSize != null && deltaSize.length > i && deltaSize[i] != '-1' && + result.header.isDeltaCRLEnabled != null && result.header.isDeltaCRLEnabled == true && + deltaNumber != null && deltaNumber.length > i) { + document.write('<A HREF="#" onClick="write_new_window(\''+crlTimeSplits[i]+'\');return false">'+crlNumber[i]+', '+deltaNumber[i]+'</A>'); + } else { + document.write('<A HREF="#" onClick="write_new_window(\''+crlTimeSplits[i]+'\');return false">'+crlNumber[i]+'</A>'); + } + } else { + document.write(crlNumber[i]); + if (deltaSize != null && deltaSize.length > i && deltaSize[i] != '-1' && + result.header.isDeltaCRLEnabled != null && result.header.isDeltaCRLEnabled == true && + deltaNumber != null && deltaNumber.length > i) { + document.write(', '+deltaNumber[i]); + } + } + document.writeln('</font></td>'); + document.writeln('<td align="right">'); + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + if (crlSize[i] == '-1') { + document.writeln('unknown'); + } else { + document.write(crlSize[i]); + if (result.header.isDeltaCRLEnabled != null && result.header.isDeltaCRLEnabled == true && + deltaSize != null && deltaSize.length > i && deltaSize[i] != '-1') { + document.write(', '+deltaSize[i]); + } + } + document.writeln('</font></td>'); + document.writeln('<td align="right">'); + if (crlTesting[i] == '1') { + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif" color="gray">'); + } else { + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + } + if (crlNumber[i] == '0' && crlSize[i] == '-1') { + document.writeln('CRL is not built</font>'); + } else { + document.writeln(recentChanges[i]+'</font>'); + } + document.writeln('</td>'); + document.writeln('</tr>'); + } + document.writeln('</table><br>'); + } +} else { + document.writeln('<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('<br> '+ + 'CRL issuing points are not available.'); + document.writeln('</font><br><br> '); +} +//--> +</SCRIPT> + + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> +<SCRIPT type="text/javascript"> +<!-- + if (issuingPoint != null && issuingPoint.length > 0) { + document.writeln('<INPUT TYPE="submit" VALUE="Update" width="72"> '); + } +//--> +</SCRIPT> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#Updating the CRL')"> --> + </td> + </tr> +</table> + +</FORM> +</BODY> + +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/top.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/top.html new file mode 100644 index 000000000..f4033d0f4 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/top.html @@ -0,0 +1,48 @@ +<!-- --- 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> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<body bgcolor="#CCCCCC" link="#FFFFFF" vlink="#FFFFFF" alink="#CCCCFF"> +<table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="#9999CC"> + <tr> + <td> + <table border="0" cellspacing="0" cellpadding="0"> + <tr> + <td> + <table border="0" cellspacing="12" cellpadding="0" width="100%"> + <tr> + <td><font size="-1" face="PrimaSans BT, Verdana, sans-serif" color="white">Red Hat<font color="#999999" size="-2">®</font><b><br> + Certificate System</b></font><font size="+1" face="PrimaSans BT, Verdana, sans-serif" color="white"><b></b></font></td> + <td></td> + <td><font size="+1" face="PrimaSans BT, Verdana, sans-serif" color="white">Certificate Authority Agent Services</font> </td> + </tr> + </table> + </td> + </tr> + </table> + </td> + </tr> +</table> +</body> +</html> + diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/unrevocationResult.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/unrevocationResult.template new file mode 100644 index 000000000..8080ce0d2 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/unrevocationResult.template @@ -0,0 +1,127 @@ +<!-- --- 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> +<HEAD> +<TITLE></TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<CMS_TEMPLATE> +</HEAD> +<BODY bgcolor="white"> +<SCRIPT type="text/javascript"> +//<!-- +function toHex1(number) +{ + var absValue = "", sign = ""; + var digits = "0123456789abcdef"; + if (number < 0) { + sign = "-"; + number = -number; + } + + for(; number >= 16 ; number = Math.floor(number/16)) { + absValue = digits.charAt(number % 16) + absValue; + } + absValue = digits.charAt(number % 16) + absValue; + return sign + '0x' + absValue; +} + +function toHex(number) +{ + return '0x' + number; +} + +if (result.header.unrevoked == 'yes') { + var s = (result.header.serialNumber.indexOf(",") > 0)? "s": ""; + var ve = (result.header.serialNumber.indexOf(",") > 0)? "ve": "s"; + + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate'+s+' Ha'+ve+' Been Released From Hold</font><br><br>'); + + + if (result.header.error == null) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate'+s+' with serial number'+s+' <b>' + + result.header.serialNumber + + '</b> ha'+ve+' been released from hold.'); + document.writeln('</font><br>'); + + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.header.updateCRL && result.header.updateCRL == "yes") { + if (result.header.updateCRLSuccess != null && + result.header.updateCRLSuccess == "yes") { + document.writeln('The Certificate Revocation List has been successfully updated.'); + } + else { + document.writeln('The Certificate Revocation List update Failed'); + if (result.header.updateCRLSuccess != null) + document.writeln(' with error '+ + result.header.updateCRLError); + else + document.writeln('. No further details provided.'); + } + } + else { + document.writeln( + 'The Certificate Revocation List will be updated '+ + 'automatically at the next scheduled update.'); + } + document.writeln('</font><br>'); +/* + if (result.header.dirEnabled != null && result.header.dirEnabled == 'yes') { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + if (result.header.dirUpdated == 'yes') { + document.write('Directory has been successfully updated.'); + } else { + document.write('Directory has not been updated. See log files for more details.'); + } + document.writeln('</font><br>'); + } +*/ + } else { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Certificate'+s+' with serial number'+s+' <b>' + + result.header.serialNumber + + '</b> ha'+ve+' not been released from hold..<br><br>'); + document.writeln('Additional Information:'); + document.writeln('</font>'); + document.writeln('<blockquote>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(result.header.error); + document.writeln('</font>'); + document.writeln('</blockquote>'); + } +} else if (result.header.unrevoked == 'pending') { + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Unrevocation Request Has Been Submitted</font><br><br>'); +} else { + document.write('<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln('Unrevocation Request Cannot Be Completed</font><br><br>'); + if (result.header.error != null) { + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">Addition information:</font>'); + document.writeln('<blockquote>'); + document.writeln('<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif">'); + document.writeln(result.header.error); + document.writeln('</font>'); + document.writeln('</blockquote>'); + } +} +//--> +</SCRIPT> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateCRL.html b/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateCRL.html new file mode 100644 index 000000000..70216a531 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateCRL.html @@ -0,0 +1,78 @@ +<!-- --- 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> +<HEAD> +<TITLE>Update Certificate Revocation List</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + +<SCRIPT type="text/javascript" SRC="/ca/agent/helpfun.js"></SCRIPT> + </HEAD> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Update Certificate Revocation List</font><br> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +In most cases, the certificate revocation list (CRL) is updated automatically. +In a few situations, however, you may want to update the CRL manually. +Use this form to update the CRL manually. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<FORM ACTION="updateCRL" METHOD=POST> + +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Signature algorithm:</font> +<SELECT NAME="signatureAlgorithm"> +SHA1withRSA+MD5withRSA+MD2withRSA +<OPTION VALUE="SHA1withRSA">SHA1withRSA</OPTION> +<OPTION VALUE="MD5withRSA">MD5withRSA</OPTION> +<OPTION VALUE="SHA1withDSA">SHA1withDSA</OPTION> +</SELECT> + +<br> <br> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH="100%"> + <tr> + <td ALIGN=RIGHT BGCOLOR="#E5E5E5"> + <input TYPE="HIDDEN" NAME="crlIssuingPoint" VALUE="MasterCRL"> + <INPUT TYPE="submit" VALUE="Update" width="72"> +<SCRIPT type="text/javascript"> +<!-- + var loc = location.protocol + '//' + location.hostname + ':' + + location.port + '/agent/ca/displayCRL?crlIssuingPoint=MasterCRL'; + document.writeln('<INPUT TYPE=\"button\" VALUE=\"Display\" width=\"72\"'+ + ' onClick=\"location.href=\''+ loc + '\'\"> '); +//--> +</SCRIPT> + <!-- <INPUT TYPE="button" VALUE=Help width="72" + onClick="help('http://www.redhat.com/docs/manuals/cert-system#1008945')"> --> + </td> + </tr> +</table> + +</FORM> +</BODY> + +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateCRL.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateCRL.template new file mode 100644 index 000000000..ebe318599 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateCRL.template @@ -0,0 +1,180 @@ +<!-- --- 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> +<HEAD><TITLE> Update Certificate Revocation List </TITLE> +<CMS_TEMPLATE> +</HEAD> +<BODY bgcolor="white"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Update Certificate Revocation List Result +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> + +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +<SCRIPT LANGUAUGE="JavaScript"> +if (result.header.crlPublished == 'Success') { + document.write('The Certificate Revocation List has been updated and published successfully'); +// if (result.header.time != null) { +// var sec = result.header.time / 1000; +// document.write(' in '+sec+' seconds'); +// } + document.writeln('.'); +} else if (result.header.crlPublished == 'Failure') { + document.writeln('The Certificate Revocation List has been updated successfully.<br>'); + document.writeln('The Certificate Revocation List has not been published successfully.<br>'); + if (result.header.error != null) { + document.writeln('<br> Additional information:<br>'); + document.writeln('<blockquote><b><pre>'+result.header.error+'</pre></b></blockquote>'); + } +} else if (result.header.crlUpdate == 'Success') { + document.writeln('The Certificate Revocation List has been updated successfully.'); + if (result.recordSet.length > 0) {i + var fontStr = '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">'; + document.writeln('<br> <br> <br>The Certificate Revocation List test statistics:<br> <br>'); + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.writeln('<td align="right" bgcolor="#eeeeee"> </td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'CRL Numbers</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'CRL Sizes</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'Total Time</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'Cache</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'CRL</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'Full</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'Delta</font></td>'); + var cols = 0; + if (result.recordSet[0].crlSplits != null && result.recordSet[0].crlSplits.length > 0) { + cols = result.recordSet[0].crlSplits.split(',').length; + } + if (cols > 0) { + document.writeln('<td bgcolor="#eeeeee" colspan="'+cols+'">'+fontStr+' CRL Generation Split Times</font></td>'); + //document.writeln('<td align="right" bgcolor="#eeeeee" colspan="'+cols+'">'+fontStr+'CRL Generation Split Times</font></td>'); + } else { + document.writeln('<td bgcolor="#eeeeee">'+fontStr+' CRL Generation Split Times</font></td>'); + } + var t0 = 0; + var t1 = 0; + var t2 = 0; + var t3 = 0; + var t4 = 0; + var t5 = 0; + for (var i = 0; i < result.recordSet.length; i++) { + var crlTime; + if (result.recordSet[i].crlSplits != null && result.recordSet[i].crlSplits.length > 0) { + crlTime = result.recordSet[i].crlSplits.split(','); + } else { + crlTime = null; + } + var total = 0; + var crlTotal = 0; + var deltaCrlTotal = 0; + var fullCrlTotal = 0; + for (k = 0; crlTime != null && k < crlTime.length; k++) { + if (k > 0 && k < 5) { + deltaCrlTotal += parseInt(crlTime[k]); + } else { + fullCrlTotal += parseInt(crlTime[k]); + } + crlTotal += parseInt(crlTime[k]); + } + t0 = parseInt(result.recordSet[i].cacheUpdate); + total += t0 + crlTotal; + t1 += total; + t2 += t0; + t3 += crlTotal; + t4 += fullCrlTotal; + t5 += deltaCrlTotal; + document.writeln('<tr>'); + document.writeln('<td align="right">'+fontStr+(i+1)+'</font></td>'); + document.writeln('<td align="right">'+fontStr+result.recordSet[i].crlNumbers+'</font></td>'); + document.writeln('<td align="right">'+fontStr+result.recordSet[i].crlSizes+'</font></td>'); + document.writeln('<td align="right">'+fontStr+total+'</font></td>'); + document.writeln('<td align="right">'+fontStr+result.recordSet[i].cacheUpdate+'</font></td>'); + document.writeln('<td align="right">'+fontStr+crlTotal+'</font></td>'); + document.writeln('<td align="right">'+fontStr+fullCrlTotal+'</font></td>'); + document.writeln('<td align="right">'+fontStr+deltaCrlTotal+'</font></td>'); + if (cols > 0) { + for (k = 0; crlTime != null && k < crlTime.length; k++) { + document.writeln('<td align="right">'+fontStr+crlTime[k]+'</font></td>'); + } + } else { + document.writeln('<td>'+fontStr+' '+result.recordSet[i].crlSplits+'</font></td>'); + } + document.writeln('</tr>'); + } + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'Totals</td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+'</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+t1+'</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+t2+'</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+t3+'</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+t4+'</font></td>'); + document.writeln('<td align="right" bgcolor="#eeeeee">'+fontStr+t5+'</font></td>'); + if (cols > 0) { + for (k = 0; crlTime != null && k < crlTime.length; k++) { + document.writeln('<td bgcolor="#eeeeee">'+fontStr+'</font></td>'); + } + } else { + document.writeln('<td bgcolor="#eeeeee">'+fontStr+'</font></td>'); + } + + document.writeln('</table>'); + } +} else if (result.header.crlUpdate == 'Failure') { + document.writeln('The Certificate Revocation List has not been updated successfully.<br>'); + if (result.header.error != null) { + document.writeln('<br> Additional information:<br>'); + document.writeln('<blockquote><b><pre>'+result.header.error+'</pre></b></blockquote>'); + } +} else if (result.header.crlUpdate == 'missingParameters') { + document.writeln('The Certificate Revocation List test cannot be performed because some parameters are defined.'); +} else if (result.header.crlUpdate == 'testingNotEnabled') { + document.writeln('The Certificate Revocation List testing is not enabled.'); +} else if (result.header.crlUpdate == 'testingInProgress') { + document.writeln('The Certificate Revocation List testing is in progress.'); +} else if (result.header.crlUpdate == 'Scheduled') { + document.writeln('The Certificate Revocation List update has been scheduled.<br>'); + document.writeln('Check the CS logs to see results.'); +} else if (result.header.crlUpdate == 'inProgress') { + document.writeln('The Certificate Revocation List update is in progress.<br>'); + document.writeln('Check the CS logs to see results.'); +} else if (result.header.crlUpdate == 'Disabled') { + document.writeln('The Certificate Revocation List updates are disabled.<br>'); +} else if (result.header.crlUpdate == 'notInitialized') { + document.write('CRL Issuing Point'); + if (result.header.crlIssuingPoint != null) { + document.write(' <i>'+result.header.crlIssuingPoint+'</i>'); + } + document.writeln(' has not been initialized.<br>'); + document.writeln('Check the CS logs to see results.'); +} else { + document.write('The Certificate Revocation List has been updated successfully'); +// if (result.header.time != null) { +// var sec = result.header.time / 1000; +// document.write(' in '+sec+' seconds'); +// } + document.writeln('.'); +} +</SCRIPT> +</font> +</BODY> +</HTML> diff --git a/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateDir.template b/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateDir.template new file mode 100644 index 000000000..64954a257 --- /dev/null +++ b/dogtag/ca-ui/shared/webapps/ca/agent/ca/updateDir.template @@ -0,0 +1,99 @@ +<!-- --- 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> +<HEAD><TITLE> Update Directory Server Results </TITLE> +<CMS_TEMPLATE> +</HEAD> +<BODY bgcolor="white"> +<font size="+1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +Update Directory Server Results +</font> +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/ca/agent/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<font size="-1" face="PrimaSans BT, Verdana, Arial, Helvetica, sans-serif"> +<UL> +<SCRIPT LANGUAUGE="JavaScript"> +if (result.header.crlPublished != null) { + if (result.header.crlPublished == 'Success') { + document.write('<LI>The Certificate Revocation List has been published in the directory.\n'); + } else if (result.header.crlPublished == 'Failure') { + document.write('<LI>The Certificate Revocation List could not be published in the directory.\n'); + if (result.header.crlError != null) { + document.write('<br> '+result.header.crlError+'\n'); + } + } +} + +if (result.header.caCertPublished != null) { + if (result.header.caCertPublished == 'Success') { + document.write('<LI>The Certificate Manager certificate has been published in the directory.\n'); + } else if (result.header.caCertPublished == 'Failure') { + document.write('<LI>The Certificate Manager certificate could not be published in the directory.\n'); + if (result.header.caCertError != null) { + document.write('<br> '+result.header.caCertError+'\n'); + } + } +} + +if (result.header.validCertsPublished != null) { + if (result.header.validCertsPublished == 'Success') { + document.write('<LI>'+result.header.validCertsError+'\n'); + } else if (result.header.validCertsPublished == 'No') { + document.write('<LI>All valid certificates have already been published in the directory or there is no valid certificate. Nothing to update at this time.\n'); + } else if (result.header.validCertsPublished == 'Failure') { + document.write('<LI>Error publishing valid certificates in the directory. See log files for more details.\n'); + if (result.header.validCertsError != null) { + document.write('<br> '+result.header.validCertsError+'\n'); + } + } +} + +if (result.header.expiredCertsUnpublished != null) { + if (result.header.expiredCertsUnpublished == 'Success') { + document.write('<LI>'+result.header.expiredCertsError+'\n'); + } else if (result.header.expiredCertsUnpublished == 'No') { + document.write('<LI>All expired certificates have already been unpublished in the directory or there is no expired certificate. Nothing to update at this time.\n'); + } else if (result.header.expiredCertsUnpublished == 'Failure') { + document.write('<LI>Error unpublishing expired certificates in the directory. See log files for more details.\n'); + if (result.header.expiredCertsError != null) { + document.write('<br> '+result.header.expiredCertsError+'\n'); + } + } +} + +if (result.header.revokedCertsUnpublished != null) { + if (result.header.revokedCertsUnpublished == 'Success') { + document.write('<LI>'+result.header.revokedCertsError+'\n'); + } else if (result.header.revokedCertsUnpublished == 'No') { + document.write('<LI>All revoked certificates have already been unpublished in the directory or there is no revoked certificate. Nothing to update at this time.\n'); + } else if (result.header.revokedCertsUnpublished == 'Failure') { + document.write('<LI>Error unpublishing revoked certificates in the directory. See log files for more details.\n'); + if (result.header.revokedCertsError != null) { + document.write('<br> '+result.header.revokedCertsError+'\n'); + } + } +} +</SCRIPT> +</UL> +</font> +</BODY> +</HTML> |