8004846: Time-specific certpath validation applies to all certs involved
authorvinnie
Thu Dec 20 18:22:30 2012 +0000 (4 months ago)
changeset 56140dfac9343651
parent 56138cca787a38e8
child 56152d482e463c7e
8004846: Time-specific certpath validation applies to all certs involved
Reviewed-by: mullan, valeriep
src/share/classes/sun/security/provider/certpath/OCSPResponse.java
--- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Thu Dec 20 12:47:39 2012 +0000
+++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Thu Dec 20 18:22:30 2012 +0000
@@ -294,7 +294,7 @@ public final class OCSPResponse {
}
for (int i = 0; i < singleResponseDer.length; i++) {
SingleResponse singleResponse
- = new SingleResponse(singleResponseDer[i]);
+ = new SingleResponse(singleResponseDer[i], dateCheckedAgainst);
singleResponseMap.put(singleResponse.getCertId(), singleResponse);
}
@@ -576,6 +576,11 @@ public final class OCSPResponse {
private final Map<String, java.security.cert.Extension> singleExtensions;
private SingleResponse(DerValue der) throws IOException {
+ this(der, null);
+ }
+
+ private SingleResponse(DerValue der, Date dateCheckedAgainst)
+ throws IOException {
if (der.tag != DerValue.tag_Sequence) {
throw new IOException("Bad ASN.1 encoding in SingleResponse");
}
@@ -673,7 +678,8 @@ public final class OCSPResponse {
singleExtensions = Collections.emptyMap();
}
- long now = System.currentTimeMillis();
+ long now = (dateCheckedAgainst == null) ?
+ System.currentTimeMillis() : dateCheckedAgainst.getTime();
Date nowPlusSkew = new Date(now + MAX_CLOCK_SKEW);
Date nowMinusSkew = new Date(now - MAX_CLOCK_SKEW);
if (DEBUG != null) {