diff options
author | Jack Magne <jmagne@redhat.com> | 2012-01-13 16:57:06 -0800 |
---|---|---|
committer | Jack Magne <jmagne@redhat.com> | 2012-01-13 16:57:06 -0800 |
commit | 0491736b2570447391835bc2e5282d809f0de4f1 (patch) | |
tree | 63bba7b989327317831c452c495b5b8e667c2e20 /pki/base/common/src/com/netscape/cms/servlet/key | |
parent | e7ffc2b51be1e0826f93889896e3601b5f1d3f57 (diff) | |
download | pki-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')
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( |