Skip to content

Commit 5fd5d86

Browse files
suzannajiwanicopybara-github
authored andcommitted
Add reason to VerificationResult.PathValidationFailure
PiperOrigin-RevId: 800162358
1 parent fde58ea commit 5fd5d86

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/main/kotlin/Verifier.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ sealed interface VerificationResult {
4545

4646
data object ChallengeMismatch : VerificationResult
4747

48-
data object PathValidationFailure : VerificationResult
48+
data class PathValidationFailure(val cause: CertPathValidatorException) : VerificationResult
4949

5050
data object ChainParsingFailure : VerificationResult
5151

@@ -118,7 +118,7 @@ open class Verifier(
118118
try {
119119
certPathValidator.validate(certPath, certPathParameters) as PKIXCertPathValidatorResult
120120
} catch (e: CertPathValidatorException) {
121-
return VerificationResult.PathValidationFailure
121+
return VerificationResult.PathValidationFailure(e)
122122
}
123123

124124
val keyDescription =

src/test/kotlin/VerifierTest.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import com.android.keyattestation.verifier.testing.TestUtils.prodAnchors
2222
import com.android.keyattestation.verifier.testing.TestUtils.readCertPath
2323
import com.google.common.truth.Truth.assertThat
2424
import com.google.protobuf.ByteString
25+
import java.security.cert.PKIXReason
2526
import java.time.Instant
2627
import kotlin.test.assertIs
2728
import org.junit.Test
@@ -93,11 +94,13 @@ class VerifierTest {
9394

9495
@Test
9596
fun verify_unexpectedRootKey_returnsPathValidationFailure() {
96-
assertIs<VerificationResult.PathValidationFailure>(
97-
verifier.verify(
98-
CertLists.wrongTrustAnchor,
99-
ChallengeMatcher(ByteString.copyFromUtf8("challenge")),
97+
val result =
98+
assertIs<VerificationResult.PathValidationFailure>(
99+
verifier.verify(
100+
CertLists.wrongTrustAnchor,
101+
ChallengeMatcher(ByteString.copyFromUtf8("challenge")),
102+
)
100103
)
101-
)
104+
assertThat(result.cause.reason).isEqualTo(PKIXReason.NO_TRUST_ANCHOR)
102105
}
103106
}

0 commit comments

Comments
 (0)