[Pki-devel] correcting JavaScript inability to handle big numbers
Andrew Wnuk
awnuk at redhat.com
Wed Apr 24 01:27:43 UTC 2013
This patch corrects JavaScript inability to handle big numbers in key
key recovery process.
Bug: 955784.
-------------- next part --------------
Index: pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java
===================================================================
--- pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java (revision 2533)
+++ pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java (working copy)
@@ -68,6 +68,7 @@
private final static String OUT_OP = "op";
private final static String OUT_SERIALNO = IN_SERIALNO;
+ private final static String OUT_SERIALNO_IN_HEX = "serialNumberInHex";
private final static String OUT_RECOVERY_SUCCESS = "recoverySuccess";
private final static String OUT_SERVICE_URL = "serviceURL";
private final static String OUT_ERROR = "errorDetails";
@@ -288,6 +289,8 @@
new BigInteger(seq), x509cert,
(String) sContext.get(SessionContext.USER_ID));
header.addStringValue(OUT_SERIALNO, req.getParameter(IN_SERIALNO));
+ header.addStringValue(OUT_SERIALNO_IN_HEX,
+ new BigInteger(req.getParameter(IN_SERIALNO)).toString(16));
header.addStringValue("requestID", reqID);
} catch (EBaseException e) {
String error =
@@ -404,6 +407,8 @@
req.getParameter(OUT_OP));
header.addBigIntegerValue(OUT_SERIALNO,
new BigInteger(seq), 10);
+ header.addBigIntegerValue(OUT_SERIALNO_IN_HEX,
+ new BigInteger(seq), 16);
header.addStringValue(OUT_SERVICE_URL,
req.getRequestURI());
byte pkcs12[] = mService.doKeyRecovery(
Index: pki/base/common/src/com/netscape/cms/servlet/key/GetApprovalStatus.java
===================================================================
--- pki/base/common/src/com/netscape/cms/servlet/key/GetApprovalStatus.java (revision 2533)
+++ pki/base/common/src/com/netscape/cms/servlet/key/GetApprovalStatus.java (working copy)
@@ -154,6 +154,8 @@
}
header.addStringValue("serialNumber",
(String) params.get("keyID"));
+ header.addStringValue("serialNumberInHex",
+ new BigInteger((String) params.get("keyID")).toString(16));
int requiredNumber = mService.getNoOfRequiredAgents();
Index: pki/base/common/src/com/netscape/cms/servlet/key/GrantRecovery.java
===================================================================
--- pki/base/common/src/com/netscape/cms/servlet/key/GrantRecovery.java (revision 2533)
+++ pki/base/common/src/com/netscape/cms/servlet/key/GrantRecovery.java (working copy)
@@ -268,6 +268,8 @@
}
header.addStringValue("serialNumber",
(String) h.get("keyID"));
+ header.addStringValue("serialNumberInHex",
+ new BigInteger((String) h.get("keyID")).toString(16));
mService.addDistributedCredential(recoveryID, agentID, agentPWD);
header.addStringValue("agentID",
Index: pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantRecovery.template
===================================================================
--- pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantRecovery.template (revision 2533)
+++ pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/grantRecovery.template (working copy)
@@ -33,7 +33,8 @@
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) +
+ ((typeof(result.header.serialNumberInHex) != "undefined")?
+ result.header.serialNumberInHex: toHex(result.header.serialNumber)) +
' has been granted by ' + result.header.agentID);
document.write('</font>');
}
Index: pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/getApprovalStatus.template
===================================================================
--- pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/getApprovalStatus.template (revision 2533)
+++ pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/getApprovalStatus.template (working copy)
@@ -35,7 +35,8 @@
function renderHexNumber(number,width)
{
- var num = toHex(number);
+ //var num = toHex(number);
+ var num = number;
while (num.length < width)
num = "0"+num;
return "0x"+num;
@@ -53,7 +54,7 @@
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.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.serialNumberInHex,8) + '</font></td>');
document.writeln('</tr>');
document.write('</table>');
Index: pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishAsyncRecovery.template
===================================================================
--- pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishAsyncRecovery.template (revision 2533)
+++ pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishAsyncRecovery.template (working copy)
@@ -34,7 +34,8 @@
function renderHexNumber(number,width)
{
- var num = toHex(number);
+ //var num = toHex(number);
+ var num = number;
while (num.length < width)
num = "0"+num;
return "0x"+num;
@@ -52,7 +53,7 @@
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.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.serialNumberInHex,8) + '</font></td>');
document.writeln('</tr>');
document.write('</table>');
Index: pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishRecovery.template
===================================================================
--- pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishRecovery.template (revision 2533)
+++ pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/finishRecovery.template (working copy)
@@ -34,7 +34,8 @@
function renderHexNumber(number,width)
{
- var num = toHex(number);
+ //var num = toHex(number);
+ var num = number;
while (num.length < width)
num = "0"+num;
return "0x"+num;
@@ -52,7 +53,7 @@
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.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.serialNumberInHex,8) + '</font></td>');
document.writeln('</tr>');
document.write('</table>');
Index: pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/recoverBySerial.template
===================================================================
--- pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/recoverBySerial.template (revision 2533)
+++ pki/dogtag/kra-ui/shared/webapps/kra/agent/kra/recoverBySerial.template (working copy)
@@ -35,7 +35,8 @@
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) +
+ ((typeof(result.header.serialNumberInHex) != "undefined")?
+ result.header.serialNumberInHex: toHex(result.header.serialNumber)) +
' has been submitted.\n' +
'Waiting for recovery agents\' approval...');
More information about the Pki-devel
mailing list