diff options
author | Kenny Root <kroot@google.com> | 2014-01-31 10:56:34 -0800 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2014-01-31 11:16:19 -0800 |
commit | 305e50e47f6d3b7bc944e8718f92fc9a1e76f0c1 (patch) | |
tree | 7603af8cf25fe533c8e7e61fb770221abbeeec61 /luni/src | |
parent | a4dc1a17120058d1604cf9c4fc4586cd044105ee (diff) | |
download | libcore-305e50e47f6d3b7bc944e8718f92fc9a1e76f0c1.zip libcore-305e50e47f6d3b7bc944e8718f92fc9a1e76f0c1.tar.gz libcore-305e50e47f6d3b7bc944e8718f92fc9a1e76f0c1.tar.bz2 |
X509CRLImpl: fix getRevokedCertificate by serial
The getRevokedCertificate(BigInteger) was scanning nonIndirectEntries,
but it didn't check "isIndirectCRL" first.
Change-Id: Ib1ca31d563c6bd9c62901a9eae9bea1bd92a1d9b
Diffstat (limited to 'luni/src')
-rw-r--r-- | luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java index 68ec38a..de5bbfa 100644 --- a/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java +++ b/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java @@ -297,10 +297,20 @@ public class X509CRLImpl extends X509CRL { if (entries == null) { return null; } - for (int i=0; i<nonIndirectEntriesSize; i++) { - X509CRLEntry entry = (X509CRLEntry) entries.get(i); - if (serialNumber.equals(entry.getSerialNumber())) { - return entry; + if (isIndirectCRL) { + for (int i = 0; i < nonIndirectEntriesSize; i++) { + X509CRLEntry entry = (X509CRLEntry) entries.get(i); + if (serialNumber.equals(entry.getSerialNumber()) + && entry.getCertificateIssuer() == null) { + return entry; + } + } + } else { + for (int i = 0; i < entriesSize; i++) { + X509CRLEntry entry = (X509CRLEntry) entries.get(i); + if (serialNumber.equals(entry.getSerialNumber())) { + return entry; + } } } return null; |