Skip to content

Commit f9cca8d

Browse files
Merge pull request #204 from alexanderjordanbaker/RetryableVerificationFailure
Adding RETRYABLE_VERIFICATION_FAILURE for OCSP network failures
2 parents 06338fa + 602326c commit f9cca8d

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/main/java/com/apple/itunes/storekit/verification/ChainVerifier.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.security.PublicKey;
88
import java.security.cert.CertPath;
99
import java.security.cert.CertPathValidator;
10+
import java.security.cert.CertPathValidatorException;
1011
import java.security.cert.Certificate;
1112
import java.security.cert.CertificateFactory;
1213
import java.security.cert.PKIXCertPathValidatorResult;
@@ -113,6 +114,10 @@ PublicKey verifyChainWithoutCaching(String[] certificates, boolean performRevoca
113114
PKIXCertPathValidatorResult certPathValidatorResult = (PKIXCertPathValidatorResult) certPathValidator.validate(certPath, parameters);
114115
return certPathValidatorResult.getPublicKey();
115116
} catch (Exception e) {
117+
// This indicates an OCSP network failure
118+
if (e instanceof CertPathValidatorException && ((CertPathValidatorException) e).getReason() == CertPathValidatorException.BasicReason.UNDETERMINED_REVOCATION_STATUS) {
119+
throw new VerificationException(VerificationStatus.RETRYABLE_VERIFICATION_FAILURE);
120+
}
116121
throw new VerificationException(VerificationStatus.INVALID_CHAIN, e);
117122
}
118123
}

src/main/java/com/apple/itunes/storekit/verification/VerificationStatus.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
public enum VerificationStatus {
66
OK,
77
VERIFICATION_FAILURE,
8+
RETRYABLE_VERIFICATION_FAILURE,
89
INVALID_APP_IDENTIFIER,
910
INVALID_ENVIRONMENT,
1011
INVALID_CERTIFICATE,

0 commit comments

Comments
 (0)