summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/servlet/key
diff options
context:
space:
mode:
authorJack Magne <jmagne@redhat.com>2012-01-13 16:57:06 -0800
committerJack Magne <jmagne@redhat.com>2012-01-13 16:57:06 -0800
commit0491736b2570447391835bc2e5282d809f0de4f1 (patch)
tree63bba7b989327317831c452c495b5b8e667c2e20 /pki/base/common/src/com/netscape/cms/servlet/key
parente7ffc2b51be1e0826f93889896e3601b5f1d3f57 (diff)
downloadpki-0491736b2570447391835bc2e5282d809f0de4f1.tar.gz
pki-0491736b2570447391835bc2e5282d809f0de4f1.tar.xz
pki-0491736b2570447391835bc2e5282d809f0de4f1.zip
Big numbers fix for CA and DRM.
This patch resolves multiple issues related to use of big numbers on CA and DRM It also provides a fix for incomplete recovery requests causing null pointer exception. Bugs: 756133, 758505. Complete formatting changes for QueryRec.java.
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/servlet/key')
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/key/ConfirmRecoverBySerial.java12
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerial.java10
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerialForRecovery.java10
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/key/KeyRecordParser.java5
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java8
5 files changed, 20 insertions, 25 deletions
diff --git a/pki/base/common/src/com/netscape/cms/servlet/key/ConfirmRecoverBySerial.java b/pki/base/common/src/com/netscape/cms/servlet/key/ConfirmRecoverBySerial.java
index d7c3ffaef..15e73179e 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/key/ConfirmRecoverBySerial.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/key/ConfirmRecoverBySerial.java
@@ -130,12 +130,11 @@ public class ConfirmRecoverBySerial extends CMSServlet {
IArgBlock fixed = CMS.createArgBlock();
CMSTemplateParams argSet = new CMSTemplateParams(header, fixed);
- int seqNum = -1;
+ BigInteger seqNum = BigInteger.ZERO;
try {
if (req.getParameter(IN_SERIALNO) != null) {
- seqNum = Integer.parseInt(
- req.getParameter(IN_SERIALNO));
+ seqNum = new BigInteger(req.getParameter(IN_SERIALNO));
}
// make sure this page, which contains password
@@ -167,11 +166,11 @@ public class ConfirmRecoverBySerial extends CMSServlet {
* Requests for a list of agent passwords.
*/
private void process(CMSTemplateParams argSet,
- IArgBlock header, int seq,
+ IArgBlock header, BigInteger seq,
HttpServletRequest req, HttpServletResponse resp,
Locale locale) {
try {
- header.addIntegerValue(OUT_SERIALNO, seq);
+ header.addBigIntegerValue(OUT_SERIALNO, seq, 10);
header.addIntegerValue(OUT_M,
mRecoveryService.getNoOfRequiredAgents());
header.addStringValue(OUT_OP,
@@ -179,8 +178,7 @@ public class ConfirmRecoverBySerial extends CMSServlet {
header.addStringValue(OUT_SERVICE_URL,
req.getRequestURI());
- IKeyRecord rec = (IKeyRecord) mKeyDB.readKeyRecord(new BigInteger(
- Integer.toString(seq)));
+ IKeyRecord rec = (IKeyRecord) mKeyDB.readKeyRecord(seq);
KeyRecordParser.fillRecordIntoArg(rec, header);
} catch (EBaseException e) {
diff --git a/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerial.java b/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerial.java
index a3490d893..8876d9350 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerial.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerial.java
@@ -147,12 +147,11 @@ public class DisplayBySerial extends CMSServlet {
IArgBlock header = CMS.createArgBlock();
IArgBlock fixed = CMS.createArgBlock();
CMSTemplateParams argSet = new CMSTemplateParams(header, fixed);
- int seqNum = -1;
+ BigInteger seqNum = BigInteger.ZERO;
try {
if (req.getParameter(IN_SERIALNO) != null) {
- seqNum = Integer.parseInt(
- req.getParameter(IN_SERIALNO));
+ seqNum = new BigInteger(req.getParameter(IN_SERIALNO));
}
process(argSet, header, seqNum, req, resp, locale[0]);
} catch (NumberFormatException e) {
@@ -177,7 +176,7 @@ public class DisplayBySerial extends CMSServlet {
* Display information about a particular key.
*/
private void process(CMSTemplateParams argSet,
- IArgBlock header, int seq,
+ IArgBlock header, BigInteger seq,
HttpServletRequest req, HttpServletResponse resp,
Locale locale) {
try {
@@ -185,8 +184,7 @@ public class DisplayBySerial extends CMSServlet {
req.getParameter(OUT_OP));
header.addStringValue(OUT_SERVICE_URL,
req.getRequestURI());
- IKeyRecord rec = (IKeyRecord) mKeyDB.readKeyRecord(new
- BigInteger(Integer.toString(seq)));
+ IKeyRecord rec = (IKeyRecord) mKeyDB.readKeyRecord(seq);
KeyRecordParser.fillRecordIntoArg(rec, header);
} catch (EBaseException e) {
diff --git a/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerialForRecovery.java b/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerialForRecovery.java
index 1ef0ba40b..29cc2b3b3 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerialForRecovery.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/key/DisplayBySerialForRecovery.java
@@ -150,12 +150,11 @@ public class DisplayBySerialForRecovery extends CMSServlet {
IArgBlock fixed = CMS.createArgBlock();
CMSTemplateParams argSet = new CMSTemplateParams(header, fixed);
- int seqNum = -1;
+ BigInteger seqNum = BigInteger.ZERO;
try {
if (req.getParameter(IN_SERIALNO) != null) {
- seqNum = Integer.parseInt(
- req.getParameter(IN_SERIALNO));
+ seqNum = new BigInteger(req.getParameter(IN_SERIALNO));
}
process(argSet, header,
req.getParameter("publicKeyData"),
@@ -185,7 +184,7 @@ public class DisplayBySerialForRecovery extends CMSServlet {
* Display information about a particular key.
*/
private synchronized void process(CMSTemplateParams argSet,
- IArgBlock header, String publicKeyData, int seq,
+ IArgBlock header, String publicKeyData, BigInteger seq,
HttpServletRequest req, HttpServletResponse resp,
Locale locale) {
try {
@@ -201,8 +200,7 @@ public class DisplayBySerialForRecovery extends CMSServlet {
header.addStringValue("publicKeyData",
publicKeyData);
}
- IKeyRecord rec = (IKeyRecord) mKeyDB.readKeyRecord(new
- BigInteger(Integer.toString(seq)));
+ IKeyRecord rec = (IKeyRecord) mKeyDB.readKeyRecord(seq);
KeyRecordParser.fillRecordIntoArg(rec, header);
diff --git a/pki/base/common/src/com/netscape/cms/servlet/key/KeyRecordParser.java b/pki/base/common/src/com/netscape/cms/servlet/key/KeyRecordParser.java
index 1171236b8..d6bc57fcf 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/key/KeyRecordParser.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/key/KeyRecordParser.java
@@ -17,6 +17,7 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.servlet.key;
+import java.math.BigInteger;
import java.util.Date;
import com.netscape.certsrv.apps.CMS;
@@ -54,8 +55,8 @@ public class KeyRecordParser {
rec.getState().toString());
rarg.addStringValue(OUT_OWNER_NAME,
rec.getOwnerName());
- rarg.addIntegerValue(OUT_SERIALNO,
- rec.getSerialNumber().intValue());
+ rarg.addBigIntegerValue(OUT_SERIALNO,
+ rec.getSerialNumber(), 10);
rarg.addStringValue(OUT_KEY_ALGORITHM,
rec.getAlgorithm());
// Possible Enhancement: sun's BASE64Encode is not
diff --git a/pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java b/pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java
index 8abafa155..6bb013b1c 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/key/RecoverBySerial.java
@@ -271,7 +271,7 @@ public class RecoverBySerial extends CMSServlet {
}
X509CertImpl x509cert = null;
- if (cert == null) {
+ if (cert == null || cert.trim().length() == 0) {
header.addStringValue(OUT_ERROR, "certificate not found");
return;
} else {
@@ -335,7 +335,7 @@ public class RecoverBySerial extends CMSServlet {
}
X509CertImpl x509cert = null;
- if (cert == null) {
+ if (cert == null || cert.trim().length() == 0) {
// perform recovery
header.addStringValue(OUT_ERROR, "certificate not found");
return null;
@@ -407,8 +407,8 @@ public class RecoverBySerial extends CMSServlet {
header.addStringValue(OUT_OP,
req.getParameter(OUT_OP));
- header.addIntegerValue(OUT_SERIALNO,
- Integer.parseInt(seq));
+ header.addBigIntegerValue(OUT_SERIALNO,
+ new BigInteger(seq), 10);
header.addStringValue(OUT_SERVICE_URL,
req.getRequestURI());
byte pkcs12[] = mService.doKeyRecovery(