diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-03-24 02:27:47 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-03-26 11:43:54 -0500 |
commit | 621d9e5c413e561293d7484b93882d985b3fe15f (patch) | |
tree | 638f3d75761c121d9a8fb50b52a12a6686c5ac5c /dogtag/kra-ui/shared/webapps/kra/agent/kra | |
parent | 40d3643b8d91886bf210aa27f711731c81a11e49 (diff) | |
download | pki-621d9e5c413e561293d7484b93882d985b3fe15f.tar.gz pki-621d9e5c413e561293d7484b93882d985b3fe15f.tar.xz pki-621d9e5c413e561293d7484b93882d985b3fe15f.zip |
Removed unnecessary pki folder.
Previously the source code was located inside a pki folder.
This folder was created during svn migration and is no longer
needed. This folder has now been removed and the contents have
been moved up one level.
Ticket #131
Diffstat (limited to 'dogtag/kra-ui/shared/webapps/kra/agent/kra')
38 files changed, 4135 insertions, 0 deletions
diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/GrantRecovery.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/GrantRecovery.html new file mode 100644 index 000000000..225bbdb30 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/GrantRecovery.html @@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<HTML> +<HEAD> +<TITLE>Authorize Recovery (for Recovery Agents)</TITLE> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<SCRIPT LANGUAGE="JavaScript" SRC="../helpfun.js"> +</SCRIPT> +</HEAD> + +<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366"> +<font size="+1" face="PrimaSans BT, Verdana, sans-serif">Authorize Recovery (for Recovery Agents)<br></font> +<font size="-1" face="PrimaSans BT, Verdana, sans-serif"> +Use this form to approve a key recovery. +</font> +<table border="0" cellspacing="0" cellpadding="0" background="/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> + +<FORM ACTION="examineRecovery" METHOD=POST> +<INPUT TYPE="HIDDEN" NAME="op" VALUE="examineRecovery"> + +<table border="0" cellspacing="2" cellpadding="2"> + <tr> + <td valign="top" align="right"> + <font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery authorization reference number:<br></font> + </td> + <td><INPUT TYPE="TEXT" NAME="recoveryID" SIZE=10 MAXLENGTH=99"></td> + </tr> +</table> + +<p> +<br> +<TABLE cellpadding="6" cellspacing="0" border="0" width="100%"> + <TR> + <TD align="right" bgcolor="#e5e5e5"> + <INPUT TYPE="submit" VALUE="Examine" width="72"> + <!-- <INPUT TYPE="button" VALUE="Help" width="72" + onClick="help('/manual/agt_gide/kraagt.htm#1022642')"> --> + </TD> + </TR> +</TABLE> +</FORM> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/ListRequests.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/ListRequests.html new file mode 100644 index 000000000..11c1b5ef8 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/ListRequests.html @@ -0,0 +1,96 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<HTML> +<HEAD> +<TITLE>List Key Service Requests</TITLE> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<SCRIPT LANGUAGE="JavaScript" SRC="../funcs.js"></SCRIPT> +<SCRIPT LANGUAGE="JavaScript" SRC="../helpfun.js"></SCRIPT> +<script LANGUAGE="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 key service 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 archival requests</OPTION> + <OPTION VALUE="recovery">Show recovery requests</OPTION> + <OPTION VALUE="netkeyKeygen">Show token key 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="showCompleted">Show completed requests</OPTION> + <OPTION VALUE="showPending">Show pending requests</OPTION> + <OPTION VALUE="showCancelled">Show canceled requests</OPTION> + <OPTION VALUE="showRejected">Show rejected 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 identifier:<br>(optional)</font> + </td> + <td><INPUT TYPE="TEXT" NAME="lastEntryOnPage" 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/8.0/agent/html/DRM_Recovering_Encrypted_Data.html#DRM_Recovering_Encrypted_Data-List_Requests')"> --> + </TD> + </TR> +</TABLE> + +</FORM> +</BODY> + +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/SrchKey.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/SrchKey.html new file mode 100644 index 000000000..685405465 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/SrchKey.html @@ -0,0 +1,323 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.5 [en]C-NSCP (WinNT; I) [Netscape]"> + <title>Search for Keys</title> +</head> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="JavaScript"> +//<!-- +function publicKeyCritInUse() +{ + return document.publicKeyCritForm.inUse.checked; +} +function publicKeyCrit() +{ + if (document.publicKeyCritForm.publicKeyData.value.length == 0) { + alert("No public key specified"); + return null; + } + return "publicKey=x509cert#"+ + escapeValue(document.publicKeyCritForm.publicKeyData.value); +} +function ownerNameCritInUse() +{ + return document.ownerNameCritForm.inUse.checked; +} +function ownerNameCrit() +{ + return "keyOwnerName=" + document.ownerNameCritForm.ownerName.value; +} +function serialNumberRangeCritInUse() +{ + return document.serialNumberRangeCritForm.inUse.checked; +} + +function serialNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + + var canonicalFrom = "", canonicalTo = ""; + + if (document.serialNumberRangeCritForm.serialFrom.value != "") { + if (isHex(document.serialNumberRangeCritForm.serialFrom.value)) { + canonicalFrom = parseInt(stripPrefix(document.serialNumberRangeCritForm.serialFrom.value),16); + } else { + canonicalFrom = document.serialNumberRangeCritForm.serialFrom.value; + } + crit[next++] = "keySerialNumber >= " + canonicalFrom; + } + if (document.serialNumberRangeCritForm.serialTo.value != "") { + if (isHex(document.serialNumberRangeCritForm.serialTo.value)) { + canonicalTo = parseInt(stripPrefix(document.serialNumberRangeCritForm.serialTo.value),16); + } else { + canonicalTo = document.serialNumberRangeCritForm.serialTo.value; + } + crit[next++] = "keySerialNumber <= " +canonicalTo; + } + + 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; + } + } + + if (next == 0) { + return "keySerialNumber=*"; + } else if (next == 1) { + return crit[0]; + } else if (next == 2) { + return "&(" + crit[0] + ")(" + crit[1] + ")"; + } + // return crit.join("&"); +} +function archivedByCritInUse() +{ + return document.archivedByCritForm.inUse.checked; +} + +function archivedByCrit() +{ + if (document.archivedByCritForm.archivedBy.value.length == 0) { + alert("User id in 'issued by' filter is empty"); + return null; + } + return "keyArchivedBy = "+ + document.archivedByCritForm.archivedBy.value; +} + +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + if (serialNumberRangeCritInUse()) { + if ((andFilter[critCount++] = serialNumberRangeCrit()) == null) + return; + } + if (ownerNameCritInUse()) { + if ((andFilter[critCount++] = ownerNameCrit()) == null) + return; + } + if (publicKeyCritInUse()) { + if ((andFilter[critCount++] = publicKeyCrit()) == null) + return; + } + if (archivedByCritInUse()) { + if ((andFilter[critCount++] = archivedByCrit()) == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } else if (critCount == 1) { + form.queryFilter.value = "(" + andFilter[0] + ")"; + } else if (critCount == 2) { + form.queryFilter.value = "(&(" + andFilter[0] + ")(" + + andFilter[1] + "))"; + } else if (critCount == 3) { + form.queryFilter.value = "(&(" + andFilter[0] + ")(" + + andFilter[1] + ")(" + andFilter[2] + "))"; + } else if (critCount == 4) { + form.queryFilter.value = "(&(" + andFilter[0] + ")(" + + andFilter[1] + ")(" + andFilter[2] + ")(" + + andFilter[3] + "))"; + } + + // form.queryFilter.value = andFilter.join("&"); + + form.op.value = "srchKey"; + + keyQuery = "srchKey?op=" + form.op.value + + "&maxResults=" + form.maxResults.value + + "&maxCount=" + form.maxCount.value + + "&queryFilter=" + + produceHTTPEscapedString(form.queryFilter.value); + + // Create two frames + window.location=keyQuery; +} +//--> +</script> +<body bgcolor="#FFFFFF"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif">Search for Keys +</font> +<br><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Use this form +to search for archived keys according to the criteria you specify. +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +Each section lets you specify a key property. Select a property, then +fill in any needed details in that section. +You can combine search criteria to further narrow the search. +<p> +In the list of keys found by the search, you can click a button to display +details about individual keys. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name</font></b> +<form name="ownerNameCritForm"> +<input type="CHECKBOX" name="inUse"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show keys +belonging to a particular owner</font> +<blockquote> +<table> +<tr> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name:</font> +</td> +<td> +<input type="TEXT" name="ownerName" size=36> +</td> +</tr> +</table> +</blockquote> +</form> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Key Identifiers</font></b> +<form name="serialNumberRangeCritForm"> +<input type="CHECKBOX" name="inUse"><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show +keys that fall within a particular range of key identifiers</font> +<blockquote> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Enter +a range of key identifiers in hexadecimal form (starting with 0x, as they appear in key displays) or in decimal form.</font> +<p> +<table> +<tr> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Lowest +key identifier:</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 +key identifier:</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> +</blockquote> +</form> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Certificate</font></b> +<form name="publicKeyCritForm"> +<input type="CHECKBOX" name="inUse"><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show +the key that corresponds to the following certificate</font> +<blockquote> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Copy the certificate, then paste it into this text area.</font> +<p> +<textarea name="publicKeyData" rows=10 cols=64></textarea></form> +</blockquote> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Archiver</font></b> +<form name="archivedByCritForm"> +<input type="CHECKBOX" name="inUse"><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show +keys that have been archived by a particular server</font> +<blockquote> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Enter +the user ID of the Certificate Manager or Registration Manager that submitted the archival request to the Data Recovery Manager.</font> +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +User ID: +</font> +<input TYPE="text" NAME="archivedBy" SIZE=10> +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Note: Archiver information is available only when the Certificate Manager or Registration Manager is remote from the Data Recovery Manager. +</font> +<p> +</blockquote> +</form> + +<br><form name="queryForm" action="srchKey" method=POST> +<input type="HIDDEN" name="op" value=""> +<input type="HIDDEN" name="maxCount" VALUE="5"> +<input type="HIDDEN" name="queryFilter" VALUE=""> +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/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" SIZE=5 MAXLENGTH=10> + </td> + </tr> +</table> +<br> +<TABLE cellpadding="6" cellspacing="0" border="0" width="100%"> +<TR> +<TD align="right" bgcolor="#eeeeee"> +<input type="button" value="Show Key" onClick='doSubmit(queryForm)'> +<!-- <input type="button" value=Help +onClick="help('/manual/agt_gide/kraagt.htm#1019227')"> --> +</TD> +</TR> +</TABLE> +</form> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/SrchRecoverKey.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/SrchRecoverKey.html new file mode 100644 index 000000000..f4de8ca1f --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/SrchRecoverKey.html @@ -0,0 +1,328 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.5 [en]C-NSCP (WinNT; I) [Netscape]"> + <title>Recover Keys (for Administrators)</title> +</head> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="JavaScript"> +//<!-- +function publicKeyCritInUse() +{ + return document.publicKeyCritForm.inUse.checked; +} +function publicKeyCrit() +{ + if (document.publicKeyCritForm.publicKeyData.value.length == 0) { + alert("No public key specified"); + return null; + } + return "publicKey=x509cert#"+ + escapeValue(document.publicKeyCritForm.publicKeyData.value); +} +function ownerNameCritInUse() +{ + return document.ownerNameCritForm.inUse.checked; +} +function ownerNameCrit() +{ + return "keyOwnerName=" + document.ownerNameCritForm.ownerName.value; +} +function serialNumberRangeCritInUse() +{ + return document.serialNumberRangeCritForm.inUse.checked; +} + +function serialNumberRangeCrit() +{ + var crit = new Array; + var next = 0; + + var canonicalFrom = "", canonicalTo = ""; + + if (document.serialNumberRangeCritForm.serialFrom.value != "") { + if (isHex(document.serialNumberRangeCritForm.serialFrom.value)) { + canonicalFrom = parseInt(stripPrefix(document.serialNumberRangeCritForm.serialFrom.value),16); + } else { + canonicalFrom = document.serialNumberRangeCritForm.serialFrom.value; + } + crit[next++] = "keySerialNumber >= " + canonicalFrom; + } + if (document.serialNumberRangeCritForm.serialTo.value != "") { + if (isHex(document.serialNumberRangeCritForm.serialTo.value)) { + canonicalTo = parseInt(stripPrefix(document.serialNumberRangeCritForm.serialTo.value),16); + } else { + canonicalTo = document.serialNumberRangeCritForm.serialTo.value; + } + crit[next++] = "keySerialNumber <= " +canonicalTo; + } + + 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; + } + } + + if (next == 0) { + return "keySerialNumber=*"; + } else if (next == 1) { + return crit[0]; + } else if (next == 2) { + return "&(" + crit[0] + ")(" + crit[1] + ")"; + } + // return crit.join("&"); +} +function archivedByCritInUse() +{ + return document.archivedByCritForm.inUse.checked; +} + +function archivedByCrit() +{ + if (document.archivedByCritForm.archivedBy.value.length == 0) { + alert("User id in 'issued by' filter is empty"); + return null; + } + return "keyArchivedBy = "+ + document.archivedByCritForm.archivedBy.value; +} + +function doSubmit(form) +{ + var andFilter = new Array; + var critCount = 0; + + if (serialNumberRangeCritInUse()) { + if ((andFilter[critCount++] = serialNumberRangeCrit()) == null) + return; + } + if (ownerNameCritInUse()) { + if ((andFilter[critCount++] = ownerNameCrit()) == null) + return; + } + if (publicKeyCritInUse()) { + if ((andFilter[critCount++] = publicKeyCrit()) == null) + return; + form.publicKeyData.value = document.publicKeyCritForm.publicKeyData.value; + } + if (archivedByCritInUse()) { + if ((andFilter[critCount++] = archivedByCrit()) == null) + return; + } + + // At least one section must be selected + if (critCount == 0) { + alert("You must choose at least one section on this form."); + return; + } else if (critCount == 1) { + form.queryFilter.value = "(" + andFilter[0] + ")"; + } else if (critCount == 2) { + form.queryFilter.value = "(&(" + andFilter[0] + ")(" + + andFilter[1] + "))"; + } else if (critCount == 3) { + form.queryFilter.value = "(&(" + andFilter[0] + ")(" + + andFilter[1] + ")(" + andFilter[2] + "))"; + } else if (critCount == 4) { + form.queryFilter.value = "(&(" + andFilter[0] + ")(" + + andFilter[1] + ")(" + andFilter[2] + ")(" + + andFilter[3] + "))"; + } + + // form.queryFilter.value = andFilter.join("&"); + + form.op.value = "srchKeyForRecovery"; + + keyQuery = "srchKeyForRecovery?op=" + form.op.value + + "&maxResults=" + form.maxResults.value + + "&maxCount=" + form.maxCount.value + + "&queryFilter=" + + produceHTTPEscapedString(form.queryFilter.value); + if (form.publicKeyData.value != "") { + keyQuery = keyQuery + "&publicKeyData="+ + produceHTTPEscapedString(form.publicKeyData.value); + } + + // Create two frames + window.location=keyQuery; +} +//--> +</script> +<body bgcolor="#FFFFFF"> +<font size=+1 face="PrimaSans BT, Verdana, sans-serif"> +Recover Keys (for Administrators)</font> +<br><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Use this form +to search for archived keys according to the criteria you specify. +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +Each section +lets you specify a key property. Select a property, then fill in any needed details in that section. You can combine search criteria to further narrow the search. +<p> +In the list of keys found by the search, you can click a button to recover individual keys. +</font> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name</font></b> +<form name="ownerNameCritForm"> +<input type="CHECKBOX" name="inUse"> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show +keys belonging to a particular owner</font> +<blockquote> +<table> +<tr> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name:</font> +</td> +<td> +<input type="TEXT" name="ownerName" size=36> +</td> +</tr> +</table> +</blockquote> +</form> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Key Identifiers</font></b> +<form name="serialNumberRangeCritForm"> +<input type="CHECKBOX" name="inUse"><font face="PrimaSans BT, Verdana, sans-serif"><font size=-1>Show +keys that fall within a particular range of key identifiers</font></font> +<blockquote> +<font face="PrimaSans BT, Verdana, sans-serif"><font size=-1>Enter +a range of key identifiers in hexadecimal form (starting with 0x, as they appear in key displays) or in decimal form.</font></font> +<p> +<table> +<tr> +<td> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Lowest +key identifier:</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 +key identifier:</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> +</blockquote> +</form> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Certificate</font></b> +<form name="publicKeyCritForm"> +<input type="CHECKBOX" name="inUse"><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show +the key that corresponds to the following certificate</font> +<blockquote> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Copy the certificate, then paste it into this text area.</font> +<p> +<textarea name="publicKeyData" rows=10 cols=64></textarea></form> +</blockquote> + +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif" > + <tr> + <td> </td> + </tr> +</table> +<b><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Archiver</font></b> +<form name="archivedByCritForm"> +<input type="CHECKBOX" name="inUse"><font size=-1 face="PrimaSans BT, Verdana, sans-serif">Show +keys that have been archived by</font> a particular server +<blockquote> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Enter the user ID of the Certificate or Registration Manager that submitted the archival request to the Data Recovery Manager. +</font> +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +User ID: +</font> +<input TYPE="text" NAME="archivedBy" SIZE=10> +<p> +<font size=-1 face="PrimaSans BT, Verdana, sans-serif"> +Note: Archiver information is available only when the Certificate Manager or Registration Manager is remote from the Data Recovery Manager. +</font> +<p> +</blockquote> +</form> + +<br><form name="queryForm" action="srchKeyForRecovery" method=POST> +<input type="HIDDEN" name="op" value=""> +<input type="HIDDEN" name="maxCount" VALUE="5"> +<input type="HIDDEN" name="queryFilter" VALUE=""> +<input type="HIDDEN" name="publicKeyData" VALUE=""> +<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/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" SIZE=5 MAXLENGTH=10> + </td> + </tr> +</table> +<br> +<TABLE cellpadding="6" cellspacing="0" border="0" width="100%"> +<TR> +<TD align="right" bgcolor="#eeeeee"> +<input type="button" value="Show Key" onClick='doSubmit(queryForm)'> +<!-- <input type="button" value=Help +onClick="help('/manual/agt_gide/kraagt.htm#1019227')"> --> +</TD> +</TR> +</TABLE> +</form> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/blank.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/blank.html new file mode 100644 index 000000000..d2c04a676 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/blank.html @@ -0,0 +1,10 @@ +<!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/kra-ui/shared/webapps/kra/agent/kra/confirmRecover.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/confirmRecover.html new file mode 100644 index 000000000..94df8b7f7 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/confirmRecover.html @@ -0,0 +1,6 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<HTML> +<TITLE>Recover Key Confirm</TITLE> +<HEAD> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/confirmRecoverBySerial.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/confirmRecoverBySerial.template new file mode 100644 index 000000000..88a8d5c84 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/confirmRecoverBySerial.template @@ -0,0 +1,70 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<HTML> +<CMS_TEMPLATE> +<TITLE>Recovering Key</TITLE> + +<HEAD> +<BODY bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<SCRIPT LANGUAGE="JavaScript"> +function renderCredentialBoxes(m) +{ + var str = ""; + + for(var i = 0; i < m; ++i) { + str = str + "Agent ID#" + i + + ":<INPUT TYPE=text NAME=\"uid" + i + + "\" VALUE=\"\">" + "Password #" + i + + ":<INPUT TYPE=password NAME=\"pwd" + i + + "\" VALUE=\"\" AutoComplete=off >\n"; + } + return str; +} + +function renderRecoverButton(serialNumber, noOfAgents) +{ + return "<FORM METHOD=post "+ + // "onSubmit=\"return recoverKey("+serialNumber+");\" "+ + "ACTION=\""+ "/agent/kra/recoverBySerial" +"\">\n"+ + renderCredentialBoxes(noOfAgents) + + "<INPUT TYPE=hidden NAME=\"op\" VALUE=\"recoverBySerial\">\n"+ + "<INPUT TYPE=hidden NAME=\"serialNumber\" VALUE=\""+ + serialNumber +"\">\n"+ + "<h2><b>PKCS#12 Delivery:</b></h2>"+ + "<p>"+ + "<p><pre>"+ + "PKCS#12 Password:<INPUT TYPE=password NAME=\"p12Password\" VALUE=\"\" AutoComplete=off >\n"+ + "Receipient Email:<INPUT TYPE=text NAME=\"p12Delivery\" VALUE=\"\">\n"+ + "</pre><p>"+ + "<INPUT TYPE=hidden NAME=\"commit\" VALUE=\"yes\">"+ + "<INPUT TYPE=submit VALUE=\"Recover\">"+ + "</FORM>\n"; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write("<h2><b>Warning:</b></h2>"); + document.write("<p><pre>"); + document.write("Microsoft's Internet Explorer does not support " + + "no-cache feature."); + document.write("There is a security risk where Administrator " + + "can use back button to steal the recovery agents' passwords."); + document.write("</pre>"); + document.write("<h2><b>Key Content:</b></h2>"); + document.write("<p><pre>"); + document.write(result.header.publicKey); + document.write("</pre><p>"); + document.write("<h2><b>Recovery Agent Credentials:</b></h2>"); + document.write("<p><pre>"); + document.write(renderRecoverButton(result.header.serialNumber, + result.header.noOfRequiredAgents)); + document.write("</pre><p>"); +} +</SCRIPT> +<p> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerial.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerial.template new file mode 100644 index 000000000..a88599ede --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerial.template @@ -0,0 +1,114 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> +<CMS_TEMPLATE> +<title>Display Key</title> +<head> +</head> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.writeln( + '<font face="PrimaSans BT, Verdana, sans-serif"><font size=+1>'+ + 'Key ' + + '<a href="' + '/kra/agent/kra/displayBySerial' + + '?op=displayBySerial&serialNumber=' + result.header.serialNumber + '"' + + 'onMouseOver=" return helpstatus(\'Click to redisplay this ' + + 'request \')" onMouseOut="return helpstatus(\'\')">' + + renderHexNumber(result.header.serialNumber,8) + + '</a></font></font>'); + document.writeln('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + 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('Key</font></td></tr>'); + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">State:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.state + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Created on:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(result.header.archivedOn) + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Updated on:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(result.header.archivedOn) + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Archiver:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.archivedBy + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Public key:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.publicKey + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Owner name:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.ownerName + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key algorithm:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.keyAlgorithm + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key length:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.keyLength + '</font></td>'); + document.writeln('</tr>'); + + + document.write("</table>"); + document.writeln('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); +} +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerial2.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerial2.template new file mode 100644 index 000000000..332d205c2 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerial2.template @@ -0,0 +1,132 @@ +<!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"> +</head> + +<CMS_TEMPLATE> + + +<SCRIPT LANGUAGE="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 LANGUAGE="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 LANGUAGE="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"> +Certificate fingerprints</font></td></tr></table> + +<pre> +<SCRIPT LANGUAGE="JavaScript"> +document.write(result.header.certFingerprint); +</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----- +<SCRIPT LANGUAUGE="JavaScript"> +document.write(result.header.certChainBase64); +</SCRIPT> +-----END CERTIFICATE----- +</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 LANGUAGE="JavaScript"> +document.write("<center>"); +var loc = '/agent/kra/getBySerial?serialNumber='+ result.header.serialNumber; +if (navigator.appName == "Netscape") { + loc = loc + '&importCert=true'; + if (navMajorVersion() > 3 && typeof(crypto.version) != "undefined") { + loc = loc + '&cmmfResponse=true'; + } +} +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/kra-ui/shared/webapps/kra/agent/kra/displayBySerialForRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerialForRecovery.template new file mode 100644 index 000000000..717d1d7d6 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/displayBySerialForRecovery.template @@ -0,0 +1,232 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> +<CMS_TEMPLATE> +<title>Display Key</title> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"> + +function PKCS12Password() +{ + if (document.forms[0].initAsyncRecovery.checked) { + document.forms[0].p12Password.disabled= true; + document.forms[0].p12PasswordAgain.disabled= true; + document.forms[0].nickname.disabled= true; + } else { + document.forms[0].p12Password.disabled= false; + document.forms[0].p12PasswordAgain.disabled= false; + document.forms[0].nickname.disabled= false; + } +} +</SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +function renderCredentialBoxes(m) +{ + var str = ""; + + for(var i = 0; i < m; ++i) { + str = str + + "<tr>" + + "<td align=right><font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">" + + "Agent ID #" + i + ":" + + "</font></td>" + + "<td align=left><font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">" + + "<input type=text name=\"uid" + i + + "\" value=\"\">" + + "</font></td>" + + "</tr>" + + "<tr>" + + "<td align=right><font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">" + + "Password #" + i + ":" + + "</font></td>" + + "<td align=left><font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">" + + "<input type=password name=\"pwd" + i + + "\" value=\"\" AutoComplete=off >" + + "</font></td>" + + "</tr>"; + } + return str; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.writeln( + '<font face="PrimaSans BT, Verdana, sans-serif"><font size=+1>'+ + 'Key ' + + '<a href="' + '/kra/agent/kra/displayBySerial?' + + 'op=displayBySerial&serialNumber=' + result.header.serialNumber + '"' + + 'onMouseOver=" return helpstatus(\'Click to redisplay this ' + + 'request \')" onMouseOut="return helpstatus(\'\')">' + + renderHexNumber(result.header.serialNumber,8) + + '</a></font></font>'); + + document.writeln('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + + document.write('<form method=post ' + + 'action="' + '/kra/agent/kra/recoverBySerial' + '">\n'); + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + 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('Key</font></td></tr>'); + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">State:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.state + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Created on:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(result.header.archivedOn) + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Updated on:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(result.header.archivedOn) + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Archiver:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.archivedBy + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Public key:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.publicKey + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Owner name:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.ownerName + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key algorithm:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.keyAlgorithm + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key length:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.keyLength + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Async Recovery:</font></td>'); + // initiate an asynchronous recovery or not + document.writeln('<td>'); + document.write('<input type="checkbox" CHECKED onClick="PKCS12Password()" name="initAsyncRecovery" value="ON">'); + document.writeln('</td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">PKCS #12 Password:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=password disabled name="p12Password" value="" AutoComplete=off ></font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">PKCS #12 Password again:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=password disabled name="p12PasswordAgain" value="" AutoComplete=off ></font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Nickname (Optional):</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=text disabled name="nickname" value=""></font></td>'); + document.writeln('</tr>'); + + // certificate + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Certificate:</font></td>'); + if (result.header.publicKeyData != null) { + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><textarea name=cert rows=10 cols=56>' + result.header.publicKeyData + '</textarea></font></td>'); + } else { + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><textarea name=cert rows=10 cols=56></textarea></font></td>'); + } + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.writeln('</tr>'); + + // use distributed-recovery mode or not + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif"></font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.keySplitting == 'true') { + document.write('<input type="checkbox" CHECKED name="localAgents" Value="yes">'); + } else { + document.write('<input type="hidden" name="localAgents" Value="yes">'); + } + document.write('</font></td>'); + document.writeln('</tr>'); + + // recovery ID +/* recoery ID does not apply to async case + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery authorization reference number:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.recoveryID + '</font></td>'); + document.writeln('</tr>'); + document.writeln('<input type=hidden name="op" value="recoverBySerial">'); +*/ + + if (result.header.keySplitting == 'true') { + document.write(renderCredentialBoxes(result.header.noOfRequiredAgents)); + } + + document.writeln('<input type=hidden name="recoveryID" VALUE="' + + result.header.recoveryID + '">\n'); + document.writeln('<input type=hidden name="serialNumber" VALUE="' + + result.header.serialNumber + '">\n'); + document.write('</table>'); + document.writeln('<table cellpadding="6" cellspacing="0" border="0" width="100%">'); + document.writeln('<tr>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<input type=submit value="Recover">'); + // document.writeln("<input type=button value=\"Help\" onClick=\"help('/manual/agt_gide/kraagt.htm#KeyRecoveryForm')\">"); + document.writeln('</td>'); + document.writeln('</tr>'); + document.writeln('</table>'); + document.writeln('</form>'); +} +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/examineRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/examineRecovery.template new file mode 100644 index 000000000..240f7e9e4 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/examineRecovery.template @@ -0,0 +1,109 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<title>Examine Recovery</title> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.writeln( + '<font face="PrimaSans BT, Verdana, sans-serif"><font size=+1>'+ + 'Recovery Operation ' + result.header.recoveryID + + '</font></font>'); + + document.writeln('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<form method=post ' + + 'action="' + '/kra/agent/kra/grantRecovery' + '">\n'); + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + 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('Key</font></td></tr>'); + + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key Identifier:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.serialNumber + '</font></td>'); + document.writeln('</tr>'); + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Owner Name:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.ownerName + '</font></td>'); + document.writeln('</tr>'); + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key Algorithm:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.keyAlgorithm + '</font></td>'); + document.writeln('</tr>'); + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Public Key:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.publicKey + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + if (result.header.keySplitting == 'true') { + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Agent Identifier:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=text name="agentID" value=""></font></td>'); + document.writeln('</tr>'); document.writeln('<tr>'); document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Agent Password:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=password name="agentPWD" value="" AutoComplete=off ></font></td>'); + document.writeln('</tr>'); + document.writeln('<tr>'); + } + document.writeln('</tr>'); + + document.writeln('<input type=hidden name="op" value="grantRecovery">'); + document.writeln('<input type=hidden name="recoveryID" VALUE="' + + result.header.recoveryID + '">\n'); + document.write('</table>'); + + document.writeln('<table cellpadding="6" cellspacing="0" border="0" width="100%">'); + document.writeln('<tr>'); + document.writeln('<td align="right" bgcolor="#e5e5e5">'); + document.writeln('<input type=submit value="Grant">'); + // document.writeln("<input type=button value=\"Help\" onClick=\"help('/manual/agt_gide/kraagt.htm#1022642')\">"); + document.writeln('</td>'); + document.writeln('</tr>'); + document.writeln('</table>'); + document.writeln('</form>'); +} +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishAsyncRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishAsyncRecovery.template new file mode 100644 index 000000000..0d2caf676 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishAsyncRecovery.template @@ -0,0 +1,101 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>Key Recovery Result</title> +</head> +<body bgcolor="white"> +<CMS_TEMPLATE> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="JavaScript"> +//<!-- +function displayApprovalRecord(agentNumber, agentName) +{ + document.writeln("Agent" + agentNumber + " (" + agentName + + ") has approved the request."); +} +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; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Key Recovery Status</font>'); + document.write('<center><hr width="100%"></center>'); + + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery Authorization Reference Number:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.recoveryID + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key Identifier:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(result.header.serialNumber,8) + '</font></td>'); + document.writeln('</tr>'); + document.write('</table>'); + + document.write("<pre>"); + document.write('<font face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('The request has been submitted.'); + document.writeln(result.header.noOfRequiredAgents + + ' recovery agents are required for authorization.' ); + document.writeln('<p>'); + for(var i = 0; i < result.recordSet.length; ++i ) { + displayApprovalRecord(i+1, result.recordSet[i].agentName); + } + if (result.recordSet.length < result.header.noOfRequiredAgents) { + document.writeln('Waiting for the remaining approvals ...'); + } else if (result.header.status != "complete") { + document.writeln('<p>'); + document.writeln('The key is being recovered ...'); + } + document.write('</font>'); + document.write("</pre>"); + + document.write('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.status == "complete") { + document.writeln("<p>"); + document.writeln("The request is completed."); + document.writeln("<p>"); + + document.writeln( + 'If the key is not saved, you will need to go through the ' + + 'recovery process again. ' + + 'Click ' + + '<a href="/kra/agent/kra/getAsyncPk12?reqID=' + + result.header.requestID + '"' + + 'onMouseOver=" return helpstatus(\'Click to get key in PKCS12 ' + + '\')" onMouseOut="return helpstatus(\'\')">' + + "here" + + '</a>' + ' to save the recovered key in PKCS12 format.' +); + } + document.write('</font>'); +} + +//--> +</script> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishRecovery.template new file mode 100644 index 000000000..e73a26237 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishRecovery.template @@ -0,0 +1,101 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>Key Recovery Result</title> +</head> +<body bgcolor="white"> +<CMS_TEMPLATE> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="JavaScript"> +//<!-- +function displayApprovalRecord(agentNumber, agentName) +{ + document.writeln("Agent" + agentNumber + " (" + agentName + + ") has approved the request."); +} +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; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Key Recovery Status</font>'); + document.write('<center><hr width="100%"></center>'); + + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery Authorization Reference Number:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.recoveryID + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key Identifier:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(result.header.serialNumber,8) + '</font></td>'); + document.writeln('</tr>'); + document.write('</table>'); + + document.write("<pre>"); + document.write('<font face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('The request has been submitted.'); + document.writeln(result.header.noOfRequiredAgents + + ' recovery agents are required for authorization.' ); + document.writeln('<p>'); + for(var i = 0; i < result.recordSet.length; ++i ) { + displayApprovalRecord(i+1, result.recordSet[i].agentName); + } + if (result.recordSet.length < result.header.noOfRequiredAgents) { + document.writeln('Waiting for the remaining approvals ...'); + } else if (result.header.status != "complete") { + document.writeln('<p>'); + document.writeln('The key is being recovered ...'); + } + document.write('</font>'); + document.write("</pre>"); + + document.write('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.status == "complete") { + document.writeln("<p>"); + document.writeln("The request is completed."); + document.writeln("<p>"); + + document.writeln( + 'If the key is not saved, you will need to go through the ' + + 'recovery process again. ' + + 'Click ' + + '<a href="/kra/agent/kra/getPk12?recoveryID=' + + result.header.recoveryID + '"' + + 'onMouseOver=" return helpstatus(\'Click to get key in PKCS12 ' + + '\')" onMouseOut="return helpstatus(\'\')">' + + "here" + + '</a>' + ' to save the recovered key in PKCS12 format.' +); + } + document.write('</font>'); +} + +//--> +</script> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameGrant.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameGrant.html new file mode 100644 index 000000000..14b3ced02 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameGrant.html @@ -0,0 +1,18 @@ +<!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="menuGrant.html" NORESIZE scrolling="NO" frameborder="NO" marginwidth="0" marginheight="0" name="left"> + + <frame src="grantRecovery.html" marginwidth="16" marginheight="16" frameborder="NO" NORESIZE name="content"> + +</frameset> +<noframes><body bgcolor="#FFFFFF"> + +</body></noframes> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameRecover.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameRecover.html new file mode 100644 index 000000000..60cd76f41 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameRecover.html @@ -0,0 +1,18 @@ +<!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="menuRecover.html" NORESIZE scrolling="NO" frameborder="NO" marginwidth="0" marginheight="0" name="left"> + + <frame src="srchRecoverKey.html" marginwidth="16" marginheight="16" frameborder="NO" NORESIZE name="content"> + +</frameset> +<noframes><body bgcolor="#FFFFFF"> + +</body></noframes> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameRequest.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameRequest.html new file mode 100644 index 000000000..ae544e34b --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameRequest.html @@ -0,0 +1,18 @@ +<!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="menuRequest.html" NORESIZE scrolling="NO" frameborder="NO" marginwidth="0" marginheight="0" 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/kra-ui/shared/webapps/kra/agent/kra/frameSearch.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameSearch.html new file mode 100644 index 000000000..a48fee2e6 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameSearch.html @@ -0,0 +1,18 @@ +<!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" NORESIZE scrolling="NO" frameborder="NO" marginwidth="0" marginheight="0" name="left"> + + <frame src="srchKey.html" marginwidth="16" marginheight="16" frameborder="NO" NORESIZE name="content"> + +</frameset> +<noframes><body bgcolor="#FFFFFF"> + +</body></noframes> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameStats.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameStats.html new file mode 100644 index 000000000..57a24de47 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/frameStats.html @@ -0,0 +1,18 @@ +<!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" NORESIZE scrolling="NO" frameborder="NO" marginwidth="0" marginheight="0" 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/kra-ui/shared/webapps/kra/agent/kra/getApprovalStatus.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/getApprovalStatus.template new file mode 100644 index 000000000..5a6a1114a --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/getApprovalStatus.template @@ -0,0 +1,102 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<META HTTP-EQUIV="Refresh" CONTENT="5"> +<title>Key Recovery Result</title> +</head> +<body bgcolor="white"> +<CMS_TEMPLATE> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="JavaScript"> +//<!-- +function displayApprovalRecord(agentNumber, agentName) +{ + document.writeln("Agent" + agentNumber + " (" + agentName + + ") has approved the request."); +} +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; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Key Recovery Status</font>'); + document.write('<center><hr width="100%"></center>'); + + + document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery Authorization Reference Number:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.recoveryID + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key Identifier:</font> <font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(result.header.serialNumber,8) + '</font></td>'); + document.writeln('</tr>'); + document.write('</table>'); + + document.write("<pre>"); + document.write('<font face="PrimaSans BT, Verdana, sans-serif">'); + document.writeln('The request has been submitted.'); + document.writeln(result.header.noOfRequiredAgents + + ' recovery agents are required for authorization.' ); + document.writeln('<p>'); + for(var i = 0; i < result.recordSet.length; ++i ) { + displayApprovalRecord(i+1, result.recordSet[i].agentName); + } + if (result.recordSet.length < result.header.noOfRequiredAgents) { + document.writeln('Waiting for the remaining approvals ...'); + } else if (result.header.status != "complete") { + document.writeln('<p>'); + document.writeln('The key is being recovered ...'); + } + document.write('</font>'); + document.write("</pre>"); + + document.write('<font size="-1" face="PrimaSans BT, Verdana, sans-serif">'); + if (result.header.status == "complete") { + document.writeln("<p>"); + document.writeln("The request is completed."); + document.writeln("<p>"); + + document.writeln( + 'If the key is not saved, you will need to go through the ' + + 'recovery process again. ' + + 'Click ' + + '<a href="/kra/agent/kra/getPk12?recoveryID=' + + result.header.recoveryID + '"' + + 'onMouseOver=" return helpstatus(\'Click to get key in PKCS12 ' + + '\')" onMouseOut="return helpstatus(\'\')">' + + "here" + + '</a>' + ' to save the recovered key in PKCS12 format.' +); + } + document.write('</font>'); +} + +//--> +</script> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/getStats.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/getStats.template new file mode 100644 index 000000000..cfd2f3193 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/getStats.template @@ -0,0 +1,124 @@ +<!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 LANGUAGE="JavaScript"></SCRIPT> +<SCRIPT LANGUAGE="JavaScript" SRC="../helpfun.js"></SCRIPT> +<SCRIPT LANGUAGE="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"> +Statistics +</font><br> +<table border="0" cellspacing="0" cellpadding="0" background="/graphics/hr.gif" width="100%"> + <tr> + <td> </td> + </tr> +</table> +<br> + +<SCRIPT LANGUAGE="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/kra-ui/shared/webapps/kra/agent/kra/grantAsyncRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantAsyncRecovery.template new file mode 100644 index 000000000..c76e61ac4 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantAsyncRecovery.template @@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<head><title>Key Recovery Grant Result</title></head> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Key Recovery Result</font>'); + document.write('<center><hr width="100%"></center>'); + document.write("<p>"); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Asynchronous Key recovery request' + +'<a href="/kra/agent/kra/processReq?op=processReq&seqNum=' + + result.header.requestID+'"> ' + result.header.requestID + '</a>' + + ' has been granted by ' + result.header.agentID); + document.write('</font>'); +} + +//--> +</script> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantRecovery.template new file mode 100644 index 000000000..906da8338 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantRecovery.template @@ -0,0 +1,44 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<head><title>Key Recovery Result</title></head> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Key Recovery Result</font>'); + document.write('<center><hr width="100%"></center>'); + document.write("<p>"); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Recovery of key with key identifier ' + + toHex(result.header.serialNumber) + + ' has been granted by ' + result.header.agentID); + document.write('</font>'); +} + +//--> +</script> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/index.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/index.html new file mode 100644 index 000000000..3ca0f8959 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/index.html @@ -0,0 +1,18 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>DRM Agent</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<link rel="shortcut icon" href="/kra/agent/graphics/favicon.ico" /> +</head> + +<frameset rows="105,1*" frameborder="NO" border="0"> + <frame src="/kra/agent/header?selected=kra" name="top" NORESIZE scrolling="NO" frameborder="NO" marginwidth="0" marginheight="0"> + + <frame src="frameRequest.html" scrolling="NO" name="middle" NORESIZE frameborder="NO" marginwidth="0" marginheight="0"> +</frameset> +<noframes><body bgcolor="#FFFFFF"> + +</body></noframes> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuCheck.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuCheck.html new file mode 100644 index 000000000..0787f104c --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuCheck.html @@ -0,0 +1,33 @@ +<!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="frameRequest.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="frameSearch.html" target="middle"><b>Search for Keys</b></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRecover.html" target="middle"><b>Recover Keys</b></font></td> + </tr> + <tr> + </tr> + <tr> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameGrant.html" target="middle"><b>Authorize Recovery</b></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuGrant.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuGrant.html new file mode 100644 index 000000000..594dfaf06 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuGrant.html @@ -0,0 +1,33 @@ +<!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="frameRequest.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="frameSearch.html" target="middle"><b>Search for Keys</b></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRecover.html" target="middle"><b>Recover Keys</b></font></td> + </tr> + <tr> + </tr> + <tr> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameGrant.html" target="middle"><b><font color=black>Authorize Recovery</font></b></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuRecover.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuRecover.html new file mode 100644 index 000000000..1439917d4 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuRecover.html @@ -0,0 +1,33 @@ +<!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="frameRequest.html" target="middle"><b>List Requests</b></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 Keys</b></a></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRecover.html" target="middle"><b><font color=black>Recover Keys</font></b></a></font></td> + </tr> + <tr> + </tr> + <tr> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameGrant.html" target="middle"><b>Authorize Recovery</b></a></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuRequest.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuRequest.html new file mode 100644 index 000000000..69a5300a6 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuRequest.html @@ -0,0 +1,33 @@ +<!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="frameRequest.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="frameSearch.html" target="middle"><b>Search for Keys</b></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRecover.html" target="middle"><b>Recover Keys</b></font></td> + </tr> + <tr> + </tr> + <tr> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameGrant.html" target="middle"><b>Authorize Recovery</b></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuSearch.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuSearch.html new file mode 100644 index 000000000..e3f23d53f --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuSearch.html @@ -0,0 +1,33 @@ +<!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="frameRequest.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="frameSearch.html" target="middle"><b><font color=black>Search for Keys</font></b></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRecover.html" target="middle"><b>Recover Keys</b></font></td> + </tr> + <tr> + </tr> + <tr> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameGrant.html" target="middle"><b>Authorize Recovery</b></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuStats.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuStats.html new file mode 100644 index 000000000..2d132b185 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/menuStats.html @@ -0,0 +1,37 @@ +<!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="frameRequest.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="frameSearch.html" target="middle"><b>Search for Keys</b></font></td> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameRecover.html" target="middle"><b>Recover Keys</b></font></td> + </tr> + <tr> + </tr> + <tr> + </tr> + <tr> + <td bgcolor="#999999"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameGrant.html" target="middle"><b>Authorize Recovery</b></font></td> + </tr> + <tr> + <td bgcolor="white"><font size="-1" face="PrimaSans BT, Verdana, sans-serif"> + <a href="frameStats.html" target="middle"><b><font color="black">Statistics</font></b></font></td> + </tr> + </table> +</body> +</html> + diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/monitor.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/monitor.template new file mode 100644 index 000000000..27fa7f84a --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/monitor.template @@ -0,0 +1,184 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<HTML> +<HEAD><TITLE>Monitor</TITLE> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +</HEAD> +<CMS_TEMPLATE> +<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="/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/kra-ui/shared/webapps/kra/agent/kra/processReq.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/processReq.template new file mode 100644 index 000000000..a5292102d --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/processReq.template @@ -0,0 +1,281 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +</head> +<CMS_TEMPLATE> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<SCRIPT LANGUAGE="JavaScript" SRC="../helpfun.js"></SCRIPT> +<SCRIPT LANGUAGE="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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +function passwdValidate() +{ + + if (document.forms[0].p12Password.value != document.forms[0].p12PasswordAgain.value) { + alert("Passwords do not match"); + return false; + } + return true; +} + +// +// This form is a template that gets a preamble defining the contents +// of the request form as a JavaScript object called 'result.header'. +// whose properties are filled in by the server. +// +document.writeln('<body vlink="0000ff" alink="ff0000" link="0000ff" bgcolor="white">'); +document.writeln( + '<font face="PrimaSans BT, Verdana, sans-serif"><font size=+1>'+ + 'Request ' + + '<a href="/kra/agent/kra/processReq?op=processReq&seqNum=' + + result.header.seqNum + '"' + + 'onMouseOver=" return helpstatus(\'Click to redisplay this ' + + 'request \')" onMouseOut="return helpstatus(\'\')">' + + result.header.seqNum + + '</a></font></font>'); +document.writeln('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD></TD></TR></TABLE>'); + + +document.writeln('<form action="/kra/agent/kra/getAsyncPk12" method=post onSubmit="return passwdValidate()">'); +document.writeln('<table border="0" cellspacing="2" cellpadding="2" width="100%">'); +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>'); +document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Status:</font></td>'); +document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.status + '</font></td>'); +document.writeln('</tr>'); + +// Note these values are filtered for safety by the server. +if (result.header.requestorName != null || + result.header.requestorEmail != null || + result.header.requestorPhone != null) { + document.writeln('<p><b> Requestor\'s Contact Information:</b><br>'); + document.writeln('<blockquote>'); + if (result.header.requestorName != null) { + document.writeln('<b> Name: </b>', + result.header.requestorName, + '<br>'); + } + if (result.header.requestorEmail != null) { + document.writeln('<b> E-mail: </b>', + result.header.requestorEmail, + '<br>'); + } + if (result.header.requestorPhone != null) { + document.writeln('<b> Phone: </b>', + result.header.requestorPhone, + '<br>'); + } + document.writeln('</blockquote>'); +} + +// request type +document.writeln('<tr>'); +document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Type:</font></td>'); +document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.requestType + '</font></td>'); +document.writeln('</tr>'); + +// createdOn +document.writeln('<tr>'); +document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Created on:</font></td>'); +document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(result.header.createdOn) + '</font></td>'); +document.writeln('</tr>'); + +// updateBy +document.writeln('<tr>'); +document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Updated by:</font></td>'); +document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.updatedBy + '</font></td>'); +document.writeln('</tr>'); + +// updatedOn +document.writeln('<tr>'); +document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Updated on:</font></td>'); +document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(result.header.updatedOn) + '</font></td>'); +document.writeln('</tr>'); + +document.writeln('<INPUT TYPE="HIDDEN" NAME="seqNum" VALUE="' + + result.header.seqNum + '">'); + +if (result.header.requestorName != null) { + document.writeln('<INPUT TYPE="HIDDEN" NAME="requestorName" VALUE="' + + result.header.requestorName + '">'); +} +if (result.header.requestorEmail != null) { + document.writeln('<INPUT TYPE="HIDDEN" NAME="requestorEmail" VALUE="' + + result.header.requestorEmail + '">'); +} +if (result.header.requestorPhone != null) { + document.writeln('<INPUT TYPE="HIDDEN" NAME="requestorPhone" VALUE="' + + result.header.requestorPhone + '">'); +} + + +// Note: requestorComments are safely filtered by server +if (result.header.requestorComments != null) { + document.writeln('<b> Comments Made When The Request Was Filed:</b><br>'); + document.writeln('<blockquote>', result.header.requestorComments, + '</blockquote>'); + document.writeln('<b> Additional Comments:</b><br>'); + document.writeln('<blockquote>'); + document.writeln('<INPUT TYPE="TEXT" NAME="moreComments" SIZE=72 VALUE="">'); + document.writeln('</blockquote>'); +} + +if (result.header.requestType == "enrollment") { + 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('Archival Information</font></td></tr>'); + + // Archival-specific UI + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Public key:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.publicKey + '</font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Owner name:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.ownerName + '</font></td>'); + document.writeln('</tr>'); + + // key serial number + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key identifier:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.serialNumber + '</font></td>'); + document.writeln('</tr>'); + +} else if (result.header.requestType == "recovery") { + 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('Recovery Information</font></td></tr>'); + + // Recovery-specific UI + // key serial number + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Key identifier:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + result.header.serialNumber + '</font></td>'); + document.writeln('</tr>'); + + // Recovery agents who have approved the recovery request + var initAgent=""; + var approveAgents=""; + if (result.header.approvingAgents.indexOf(",")== -1) { + initAgent = result.header.approvingAgents; + } else { + initAgent = result.header.approvingAgents.substring(0, + result.header.approvingAgents.indexOf(",")); + approveAgents = result.header.approvingAgents.substring( + result.header.approvingAgents.indexOf(",")+1); + } + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery Initiating Agent:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + initAgent+ '</font></td>'); + document.writeln('</tr>'); + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Recovery Approving Agents:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + approveAgents + + '</font></td>'); + document.writeln('</tr>'); +} + + +if (result.header.status != "complete") { + 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('Action</font></td></tr>'); + if (result.header.requestType == "recovery") { + if (result.header.status == "pending") { +document.writeln('<tr>'); +document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">Asynchronous Key Recovery:</font></td>'); + document.writeln('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="/kra/agent/kra/grantAsyncRecovery?op=grantRecovery&reqID=' + + result.header.seqNum + '">' + ' Grant</a></font></td>'); +document.writeln('</tr>'); + + } else if (result.header.status == "approved") { + var initAgent = result.header.approvingAgents.substring(0, + result.header.approvingAgents.indexOf(",")); + + // get PKCS#12 password + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">PKCS #12 Password:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=password name="p12Password" value="" AutoComplete=off ></font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.write('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">PKCS #12 Password again:</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=password name="p12PasswordAgain" value="" AutoComplete=off ></font></td>'); + document.writeln('</tr>'); + + document.writeln('<tr>'); + document.writeln('<input type=hidden name="op" VALUE="getAsyncPk12">'); + document.writeln('<input type=hidden name="reqID" VALUE="' + + result.header.seqNum + '">\n'); + document.writeln('<td align=right><font size="-1" face="PrimaSans BT, Verdana, sans-serif">(only allowed for initiating agent,' + initAgent+')</font></td>'); + document.writeln('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><input type=submit value="Retrieve PKCS#12"></font></td>'); + document.writeln('</tr>'); + } + } else { + if (result.header.assignedTo != null) { + document.write('<b> Assigned To: </b>',result.header.assignedTo); + } else { + document.write('<b> Unassigned </b>'); + } + if (result.header.assignedTo == null) { + document.write('<a href="/kra/agent/kra/processReq?op=processReq&doAssign=yes&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="/' + + '/kra/agent/kra/processReq?op=processReq&doAssign=yes&overrideAssignment=yes&seqNum=' + result.header.seqNum + '">', + ' Re-assign To Me', '</a>'); + } + } +} + +document.writeln('</table>'); +document.writeln('</form>'); +document.writeln('</body>'); + +//--> +</SCRIPT> + +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryKey.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryKey.template new file mode 100644 index 000000000..0bea5f140 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryKey.template @@ -0,0 +1,208 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> + +<title>Key Query Result</title> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 recoverKey(serialNumber) +{ + return confirm("WARNING!! You are about to do an irreversible operation.\nDo you really want to recover key # "+ + 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 + return "OID."+oid; +} + +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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +function renderDetailsButton(serialNumber) +{ + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/displayBySerial' +'">\n'+ + '<input type=hidden name="op" value="displayBySerial">\n'+ + '<input type=hidden name="serialNumber" value="'+ + serialNumber + + '">\n'+ + '<input type=submit value="Details"></form>\n'; +} + +function renderRecoverButton(serialNumber) +{ + return '<form method=post ' + + 'ACTION="'+ + '/kra/agent/kra/confirmRecoverSerial' + '">\n'+ + '<input type=hidden name="op" value="confirmRecoverBySerial">\n'+ + '<input type=hidden name="serialNumber" VALUE="' + + serialNumber + + '">\n' + + '<input type=hidden name="commit" value="yes">' + + '<input type=hidden name="updateCRL" value="yes">' + + '<input type=submit value="Recover">' + + '</form>\n'; +} + +function displayKeyRecord(rec) +{ + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Key identifier</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Filed</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Updated</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Archiver</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + // document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="' + '/kra/agent/kra/displayBySerial?' + 'op=displayBySerial&serialNumber=' + rec.serialNumber + '">' + renderHexNumber(rec.serialNumber,8) + '</a></font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(rec.serialNumber,8) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.state + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.archivedBy + '</font></td>'); + document.write('</tr>'); + + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td>'); + document.write('</td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Algorithm</font></td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + document.write('<td>'); + document.write(renderDetailsButton(rec.serialNumber)); + document.write('</td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimasSans BT, Verdana, sans-serif">' + + renderOidName(rec.keyAlgorithm) + (rec.keyLength != null ? + " with "+ rec.keyLength + "-bit key" : "")+ '</font></td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + + rec.ownerName + '</font></td>'); + document.write('</tr>'); +} + +function renderHidden(name,value) +{ + return '<INPUT TYPE="hidden" NAME="' + name + '" VALUE="">\n'; +} + +function doNext(form) +{ + form.action = '/kra/agent/kra/'+result.header.op; + form.op.value = result.header.op; + form.queryFilter.value = result.header.queryFilter; + form.querySentinel.value = result.header.querySentinel; + form.totalRecordCount.value = result.header.totalRecordCount; + form.submit(); +} + +function displayNextForm() +{ + document.write( + '<div align=center> \n'+ + '<form name ="nextForm" method=POST ' + + 'onSubmit="doNext(nextForm);" '+ + 'action="">\n'+ + renderHidden("op")+ + renderHidden("queryFilter")+ + renderHidden("querySentinel")+ + renderHidden("totalRecordCount")); + document.write( + '<input type=submit value=" Next "> '+ + '<input type=text size=2 maxlength=99 name=maxCount value="'+ + result.fixed.maxCount+ + '"><font size="1" face="PrimasSans BT, Verdana, sans-serif"> record(s)</font>\n'+ + '</FORM></DIV>\n'); +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else if (result.header.totalRecordCount == 0) { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<div align=left><b><font face="PrimaSans BT, Verdana, sans-serif" size="+1">No Matching Key Found</font></b></div>\n'); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>'); + document.write('Authority: ' + +(result.header.archiverName != null ? result.header.archiverName : "UNKNOWN")); + document.write('</font><br>\n'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Total Number of Records Found : ' + + result.header.totalRecordCount); + document.write('</font>\n'); + document.write('<p>'); + + document.write('<table cellpadding=6 cellspacing=4 border=0 width=100%>'); + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayKeyRecord(result.recordSet[i]); + } + document.write('</table>'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + + if (result.header.querySentinel != null) { + displayNextForm(); + } +} + +//--> +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryKeyForRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryKeyForRecovery.template new file mode 100644 index 000000000..09e873377 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryKeyForRecovery.template @@ -0,0 +1,220 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> +<title>Key Query Result</title> +<body bgcolor="white"> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 recoverKey(serialNumber) +{ + return confirm("WARNING!! You are about to do an irreversible operation.\nDo you really want to recover key # "+ + 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 + return "OID."+oid; +} + +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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +function renderDetailsButton(serialNumber,publicKeyData) +{ + if (publicKeyData != null) { + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/displayBySerialForRecovery' +'">\n'+ + '<input type=hidden name="op" value="displayBySerialForRecovery">\n'+ + '<input type=hidden name="serialNumber" value="'+ + serialNumber + + '">\n'+ + '<input type=hidden name="publicKeyData" value="'+ + publicKeyData + + '">\n'+ + '<input type=submit value="Recover"></form>\n'; + } else { + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/displayBySerialForRecovery' +'">\n'+ + '<input type=hidden name="op" value="displayBySerialForRecovery">\n'+ + '<input type=hidden name="serialNumber" value="'+ + serialNumber + + '">\n'+ + '<input type=submit value="Recover"></form>\n'; + } +} + +function renderRecoverButton(serialNumber) +{ + return '<form method=post ' + + 'ACTION="'+ + '/kra/agent/kra/confirmRecoverBySerialForRecovery' + '">\n'+ + '<input type=hidden name="op" value="confirmRecoverBySerialForRecovery">\n'+ + '<input type=hidden name="serialNumber" VALUE="' + + serialNumber + + '">\n' + + '<input type=hidden name="commit" value="yes">' + + '<input type=hidden name="updateCRL" value="yes">' + + '<input type=submit value="Recover">' + + '</form>\n'; +} + +function displayKeyRecord(rec) +{ + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Key identifier<font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Filed</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Updated</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Archiver</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + // document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="' + '/kra/agent/kra/displayBySerialForRecovery?' + 'op=displayBySerialForRecovery&serialNumber=' + rec.serialNumber + '">' + renderHexNumber(rec.serialNumber,8) + '</a></font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(rec.serialNumber,8) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.state + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.archivedBy + '</font></td>'); + document.write('</tr>'); + + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td>'); + document.write('</td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Algorithm</font></td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + document.write('<td>'); + document.write(renderDetailsButton(rec.serialNumber,result.header.publicKeyData)); + document.write('</td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimasSans BT, Verdana, sans-serif">' + + renderOidName(rec.keyAlgorithm) + (rec.keyLength != null ? + " with "+ rec.keyLength + "-bit key" : "")+ '</font></td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + + rec.ownerName + '</font></td>'); + document.write('</tr>'); +} + +function renderHidden(name,value) +{ + return '<INPUT TYPE="hidden" NAME="' + name + '" VALUE="">\n'; +} + +function doNext(form) +{ + form.action = '/kra/agent/kra/'+result.header.op; + form.op.value = result.header.op; + form.queryFilter.value = result.header.queryFilter; + form.querySentinel.value = result.header.querySentinel; + form.totalRecordCount.value = result.header.totalRecordCount; + form.submit(); +} + +function displayNextForm() +{ + document.write( + '<div align=center> \n'+ + '<form name ="nextForm" method=POST ' + + 'onSubmit="doNext(nextForm);" '+ + 'action="">\n'+ + renderHidden("op")+ + renderHidden("queryFilter")+ + renderHidden("querySentinel")+ + renderHidden("totalRecordCount")); + document.write( + '<input type=submit value=" Next "> '+ + '<input type=text size=2 maxlength=99 name=maxCount value="'+ + result.fixed.maxCount+ + '"><font size="1" face="PrimasSans BT, Verdana, sans-serif"> record(s)</font>\n'+ + '</FORM></DIV>\n'); +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else if (result.header.totalRecordCount == 0) { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<div align=left><b><font face="PrimaSans BT, Verdana, sans-serif" size="+1">No Matching Key Found</font></b></div>\n'); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>'); + document.write('Authority: ' + +(result.header.archiverName != null ? result.header.archiverName : "UNKNOWN")); + document.write('</font><br>\n'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Total Number of Records Found : ' + + result.header.totalRecordCount); + document.write('</font>\n'); + document.write('<p>'); + + document.write('<table cellpadding=6 cellspacing=4 border=0 width=100%>'); + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayKeyRecord(result.recordSet[i]); + } + document.write('</table>'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + + if (result.header.querySentinel != null) { + displayNextForm(); + } +} + +//--> +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryReq.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryReq.template new file mode 100644 index 000000000..47db884fa --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/queryReq.template @@ -0,0 +1,385 @@ +<!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; +} + +.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 LANGUAGE="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 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 renderDetailsButton(serialNumber) +{ + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/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 = 180; + e.style.left = x+30; // 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 +document.body.scrollTop; + + // 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 + + // request number + document.write("<tr><td align=right>"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">"+ + "<a index='"+i+"' href='/kra/agent/kra/processReq?seqNum=" + req.seqNum + + "' onmouseover='mouseover(this,event);' "+ + "onmouseout='mouseout(this);'>"+ + 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"+ + "<font size=-1 face=\"PrimaSans BT, Verdana, sans-serif\">\n"+ + addSpaces(req.subject) + "</font></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"+ + "Key Owner</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(seqNum) +{ +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><td/></tr> +</table> +</div> + +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/recoverBySerial.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/recoverBySerial.template new file mode 100644 index 000000000..a1209f32b --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/recoverBySerial.template @@ -0,0 +1,76 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>Key Recovery Result</title> +</head> +<body bgcolor="white"> + +<CMS_TEMPLATE> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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; +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Key Recovery Status</font>'); + document.write('<center><hr width="100%"></center>'); + document.write("<p>"); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Recovery request for Key with key identifier ' + + toHex(result.header.serialNumber) + + ' has been submitted.\n' + + 'Waiting for recovery agents\' approval...'); + + if (result.header.recoveryID == null) { + document.writeln('<p>'); + document.writeln(result.header.noOfRequiredAgents + + ' recovery agents are required for authorization.' ); + document.writeln('<p>'); + + document.writeln('This is an asynchronous key recovery request. You might want to notify authorized key recovery agents to grant this request by going to request' + + '<a href="/kra/agent/kra/processReq?op=processReq&seqNum=' + + result.header.requestID+'"> ' + result.header.requestID +'</a>.') + document.write('</font>'); + }else { + document.write('</font>'); + window.location = result.fixed.scheme + "://" + result.fixed.host + + ":" + result.fixed.port + "/kra/agent/kra/getApprovalStatus?recoveryID=" + + result.header.recoveryID; + + if (result.header.status == "complete") { + document.writeln( + '<font face="PrimaSans BT, Verdana, sans-serif"><font size=+1>'+ + 'Click ' + + '<a href="/kra/agent/kra/getPk12?recoveryID=' + + result.header.recoveryID + '"' + + 'onMouseOver=" return helpstatus(\'Click to get key in PKCS12 ' + + '\')" onMouseOut="return helpstatus(\'\')">' + + "here" + + '</a>' + ' to get the recovered key in PKCS12 format.</font></font>'); + } + } + +} + +//--> +</script> +</BODY> +</HTML> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/srchKey.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/srchKey.template new file mode 100644 index 000000000..a06999996 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/srchKey.template @@ -0,0 +1,213 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> + +<title>Key Query Result</title> +<body bgcolor="white"> + +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 recoverKey(serialNumber) +{ + return confirm("WARNING!! You are about to do an irreversible operation.\nDo you really want to recover key # "+ + 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 + return "OID."+oid; +} + +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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +function renderDetailsButton(serialNumber) +{ + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/displayBySerial' +'">\n'+ + '<input type=hidden name="op" value="displayBySerial">\n'+ + '<input type=hidden name="serialNumber" value="'+ + serialNumber + + '">\n'+ + '<input type=submit value="Details"></form>\n'; +} + +function renderRecoverButton(serialNumber) +{ + return '<form method=post ' + + 'ACTION="'+ + '/kra/agent/kra/confirmRecoverSerial' + '">\n'+ + '<input type=hidden name="op" value="confirmRecoverBySerial">\n'+ + '<input type=hidden name="serialNumber" VALUE="' + + serialNumber + + '">\n' + + '<input type=hidden name="commit" value="yes">' + + '<input type=hidden name="updateCRL" value="yes">' + + '<input type=submit value="Recover">' + + '</form>\n'; +} + +function displayKeyRecord(rec) +{ + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Key identifier</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Filed</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Updated</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Archiver</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + // document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="' + '/kra/agent/kra/displayBySerial?' + 'op=displayBySerial&serialNumber=' + rec.serialNumber + '">' + renderHexNumber(rec.serialNumber,8) + '</a></font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(rec.serialNumber,8) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.state + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.archivedBy + '</font></td>'); + document.write('</tr>'); + + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td>'); + document.write('</td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Algorithm</font></td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + document.write('<td>'); + document.write(renderDetailsButton(rec.serialNumber)); + document.write('</td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimasSans BT, Verdana, sans-serif">' + + renderOidName(rec.keyAlgorithm) + (rec.keyLength != null ? + " with "+ rec.keyLength + "-bit key" : "")+ '</font></td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + + rec.ownerName + '</font></td>'); + document.write('</tr>'); +} + +function renderHidden(name,value) +{ + return '<INPUT TYPE="hidden" NAME="' + name + '" VALUE="">\n'; +} + +function doNext(form) +{ + form.action = '/kra/agent/kra/'+result.header.op; + form.op.value = result.header.op; + form.queryFilter.value = result.header.queryFilter; + form.querySentinel.value = result.header.querySentinel; + form.totalRecordCount.value = result.header.totalRecordCount; + form.submit(); +} + +function displayNextForm() +{ + document.write( + '<div align=center> \n'+ + '<form name ="nextForm" method=POST ' + + 'onSubmit="doNext(nextForm);" '+ + 'action="">\n'+ + renderHidden("op")+ + renderHidden("queryFilter")+ + renderHidden("querySentinel")+ + renderHidden("totalRecordCount")); + document.write( + '<input type=submit value=" Next "> '+ + '<input type=text size=2 maxlength=99 name=maxCount value="'+ + result.fixed.maxCount+ + '"><font size="1" face="PrimasSans BT, Verdana, sans-serif"> record(s)</font>\n'+ + '</FORM></DIV>\n'); +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else if (result.header.totalRecordCount == 0) { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<div align=left><b><font face="PrimaSans BT, Verdana, sans-serif" size="+1">No Matching Key Found</font></b></div>\n'); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>'); + document.write('Authority: ' + +(result.header.archiverName != null ? result.header.archiverName : "UNKNOWN")); + document.write('</font><br>\n'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Total Number of Records Found : ' + + result.header.totalRecordCount); + document.write('</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" + ); + } + document.write('<p>'); + + document.write('<table cellpadding=6 cellspacing=4 border=0 width=100%>'); + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayKeyRecord(result.recordSet[i]); + } + document.write('</table>'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + +} + +//--> +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/srchKeyForRecovery.template b/dogtag/kra-ui/shared/webapps/kra/agent/kra/srchKeyForRecovery.template new file mode 100644 index 000000000..4c5387c32 --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/srchKeyForRecovery.template @@ -0,0 +1,227 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<CMS_TEMPLATE> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +</head> + +<title>Key Query Result</title> +<body bgcolor="white"> +<SCRIPT LANGUAGE="JavaScript"></SCRIPT> +<script language="JavaScript" src="../funcs.js"></script> +<script language="JavaScript" src="../helpfun.js"></script> +<script language="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 recoverKey(serialNumber) +{ + return confirm("WARNING!! You are about to do an irreversible operation.\nDo you really want to recover key # "+ + 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 + return "OID."+oid; +} + +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 today = new Date(); + var dateTmp = new Date(); + dateTmp.setTime(secs * 1000); + var dateStr = dateTmp.toLocaleString(); + return dateStr; +} + +function renderDetailsButton(serialNumber,publicKeyData) +{ + if (publicKeyData != null) { + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/displayBySerialForRecovery' +'">\n'+ + '<input type=hidden name="op" value="displayBySerialForRecovery">\n'+ + '<input type=hidden name="serialNumber" value="'+ + serialNumber + + '">\n'+ + '<input type=hidden name="publicKeyData" value="'+ + publicKeyData + + '">\n'+ + '<input type=submit value="Recover"></form>\n'; + } else { + return '<form method=post '+ + 'action="'+ + '/kra/agent/kra/displayBySerialForRecovery' +'">\n'+ + '<input type=hidden name="op" value="displayBySerialForRecovery">\n'+ + '<input type=hidden name="serialNumber" value="'+ + serialNumber + + '">\n'+ + '<input type=submit value="Recover"></form>\n'; + } +} + +function renderRecoverButton(serialNumber) +{ + return '<form method=post ' + + 'ACTION="'+ + '/kra/agent/kra/confirmRecoverBySerialForRecovery' + '">\n'+ + '<input type=hidden name="op" value="confirmRecoverBySerialForRecovery">\n'+ + '<input type=hidden name="serialNumber" VALUE="' + + serialNumber + + '">\n' + + '<input type=hidden name="commit" value="yes">' + + '<input type=hidden name="updateCRL" value="yes">' + + '<input type=submit value="Recover">' + + '</form>\n'; +} + +function displayKeyRecord(rec) +{ + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Key identifier<font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">State</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Filed</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Updated</font></td>'); + document.write('<td align=left>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Archiver</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + // document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="' + '/kra/agent/kra/displayBySerialForRecovery?' + 'op=displayBySerialForRecovery&serialNumber=' + rec.serialNumber + '">' + renderHexNumber(rec.serialNumber,8) + '</a></font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderHexNumber(rec.serialNumber,8) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.state + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + renderDateFromSecs(rec.archivedOn) + '</font></td>'); + document.write('<td align=left><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + rec.archivedBy + '</font></td>'); + document.write('</tr>'); + + document.write('<tr bgcolor=#e5e5e5>'); + document.write('<td>'); + document.write('</td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Algorithm</font></td>'); + document.write('<td align=left colspan=2>' + + '<font size=-1 face="PrimaSans BT, Verdana, sans-serif">Owner Name</font></td>'); + document.write('</tr>'); + + document.write('<tr>'); + document.write('<td>'); + document.write(renderDetailsButton(rec.serialNumber,result.header.publicKeyData)); + document.write('</td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimasSans BT, Verdana, sans-serif">' + + renderOidName(rec.keyAlgorithm) + (rec.keyLength != null ? + " with "+ rec.keyLength + "-bit key" : "")+ '</font></td>'); + document.write('<td align=left colspan=2><font size="-1" face="PrimaSans BT, Verdana, sans-serif">' + + rec.ownerName + '</font></td>'); + document.write('</tr>'); +} + +function renderHidden(name,value) +{ + return '<INPUT TYPE="hidden" NAME="' + name + '" VALUE="">\n'; +} + +function doNext(form) +{ + form.action = '/kra/agent/kra/'+result.header.op; + form.op.value = result.header.op; + form.queryFilter.value = result.header.queryFilter; + form.querySentinel.value = result.header.querySentinel; + form.totalRecordCount.value = result.header.totalRecordCount; + form.submit(); +} + +function displayNextForm() +{ + document.write( + '<div align=center> \n'+ + '<form name ="nextForm" method=POST ' + + 'onSubmit="doNext(nextForm);" '+ + 'action="">\n'+ + renderHidden("op")+ + renderHidden("queryFilter")+ + renderHidden("querySentinel")+ + renderHidden("totalRecordCount")); + document.write( + '<input type=submit value=" Next "> '+ + '<input type=text size=2 maxlength=99 name=maxCount value="'+ + result.fixed.maxCount+ + '"><font size="1" face="PrimasSans BT, Verdana, sans-serif"> record(s)</font>\n'+ + '</FORM></DIV>\n'); +} + +if (result.header.errorDetails != null) { + writeError(result.header.errorDetails); +} else if (result.header.totalRecordCount == 0) { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<div align=left><b><font face="PrimaSans BT, Verdana, sans-serif" size="+1">No Matching Key Found</font></b></div>\n'); +} else { + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>Search Results</font>\n'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=+1>'); + document.write('Authority: ' + +(result.header.archiverName != null ? result.header.archiverName : "UNKNOWN")); + document.write('</font><br>\n'); + document.write('<font face="PrimaSans BT, Verdana, sans-serif" size=-1>'); + document.write('Total Number of Records Found : ' + + result.header.totalRecordCount); + document.write('</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" + ); + } + + document.write('<p>'); + + document.write('<table cellpadding=6 cellspacing=4 border=0 width=100%>'); + + for(var i = 0; i < result.recordSet.length; ++i ) { + displayKeyRecord(result.recordSet[i]); + } + document.write('</table>'); + document.write('<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BACKGROUND="/graphics/hr.gif"><TR><TD> </TD></TR></TABLE>'); + +} + +//--> +</script> +</body> +</html> diff --git a/dogtag/kra-ui/shared/webapps/kra/agent/kra/top.html b/dogtag/kra-ui/shared/webapps/kra/agent/kra/top.html new file mode 100644 index 000000000..5e7a2a40e --- /dev/null +++ b/dogtag/kra-ui/shared/webapps/kra/agent/kra/top.html @@ -0,0 +1,48 @@ +<!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="#666699"> + <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">Dogtag<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">Privileged User Services</font> </td> + </tr> + </table> + </td> + </tr> + </table> + <table border="0" cellspacing="0" cellpadding="0"> + <tr> + <td><img src="/graphics/spacer.gif" width="12" height="21"></td> + <td><img src="/graphics/dgLeftTab.gif" width="13" height="21"></td> + <td bgcolor="#999999" nowrap><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="../kra/index.html" target="_top">Certificate + Service</a><b></b></font></td> + <td><img src="/graphics/dgRightTab.gif" width="16" height="21"></td> + <td><img src="/graphics/dgLeftTab.gif" width="13" height="21"></td> + <td bgcolor="#999999" nowrap><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><a href="../kra/index.html" target="_top">Registration + Service </a></font></td> + <td><img src="/graphics/dgRightTab.gif" width="16" height="21"></td> + <td><img src="/graphics/lgLeftTab.gif" width="13" height="21"></td> + <td bgcolor="#cccccc" nowrap><font size="-1" face="PrimaSans BT, Verdana, sans-serif"><b>Key + Service </b></font></td> + <td><img src="/graphics/lgRightTab.gif" width="16" height="21"></td> + </tr> + </table> + </td> + </tr> +</table> +</body> +</html> + |