aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/security/cert/X509CRLSelector.java56
1 files changed, 21 insertions, 35 deletions
diff --git a/libjava/java/security/cert/X509CRLSelector.java b/libjava/java/security/cert/X509CRLSelector.java
index 3264e46..a59791e 100644
--- a/libjava/java/security/cert/X509CRLSelector.java
+++ b/libjava/java/security/cert/X509CRLSelector.java
@@ -378,8 +378,27 @@ public class X509CRLSelector implements CRLSelector, Cloneable
BigInteger crlNumber = null;
if (maxCrlNumber != null)
{
+ byte[] b = crl.getExtensionValue(CRL_NUMBER_ID);
+ if (b == null)
+ return false;
try
{
+ DERValue val = DERReader.read(b);
+ if (!(val.getValue() instanceof BigInteger))
+ return false;
+ crlNumber = (BigInteger) val.getValue();
+ }
+ catch (IOException ioe)
+ {
+ return false;
+ }
+ if (maxCrlNumber.compareTo(crlNumber) < 0)
+ return false;
+ }
+ if (minCrlNumber != null)
+ {
+ if (crlNumber == null)
+ {
byte[] b = crl.getExtensionValue(CRL_NUMBER_ID);
if (b == null)
return false;
@@ -394,42 +413,9 @@ public class X509CRLSelector implements CRLSelector, Cloneable
{
return false;
}
- if (maxCrlNumber.compareTo(crlNumber) < 0)
- return false;
- }
- catch (CertificateParsingException cpe)
- {
- return false;
- }
- }
- if (minCrlNumber != null)
- {
- try
- {
- if (crlNumber == null)
- {
- byte[] b = crl.getExtensionValue(CRL_NUMBER_ID);
- if (b == null)
- return false;
- try
- {
- DERValue val = DERReader.read(b);
- if (!(val.getValue() instanceof BigInteger))
- return false;
- crlNumber = (BigInteger) val.getValue();
- }
- catch (IOException ioe)
- {
- return false;
- }
- }
- if (minCrlNumber.compareTo(crlNumber) > 0)
- return false;
- }
- catch (CertificateParsingException cpe)
- {
- return false;
}
+ if (minCrlNumber.compareTo(crlNumber) > 0)
+ return false;
}
if (date != null)
{