1616
1717package com.android.keyattestation.verifier
1818
19+ import com.android.keyattestation.verifier.challengecheckers.ChallengeMatcher
1920import com.android.keyattestation.verifier.testing.CertLists
2021import com.android.keyattestation.verifier.testing.TestUtils.prodAnchors
2122import com.android.keyattestation.verifier.testing.TestUtils.readCertPath
@@ -35,8 +36,7 @@ class VerifierTest {
3536 @Test
3637 fun verify_validChain_returnsSuccess () {
3738 val chain = readCertPath(" blueline/sdk28/TEE_EC_NONE.pem" )
38- val result =
39- assertIs<VerificationResult .Success >(verifier.verify(chain, " challenge" .toByteArray()))
39+ val result = assertIs<VerificationResult .Success >(verifier.verify(chain))
4040 assertThat(result.publicKey).isEqualTo(chain.leafCert().publicKey)
4141 assertThat(result.challenge).isEqualTo(ByteString .copyFromUtf8(" challenge" ))
4242 assertThat(result.securityLevel).isEqualTo(SecurityLevel .TRUSTED_ENVIRONMENT )
@@ -46,8 +46,7 @@ class VerifierTest {
4646 @Test
4747 fun verify_validChain_returnsDeviceIdentity () {
4848 val chain = readCertPath(" blueline/sdk28/TEE_RSA_BASE+IMEI.pem" )
49- val result =
50- assertIs<VerificationResult .Success >(verifier.verify(chain, " challenge" .toByteArray()))
49+ val result = assertIs<VerificationResult .Success >(verifier.verify(chain))
5150 assertThat(result.attestedDeviceIds)
5251 .isEqualTo(
5352 DeviceIdentity (
@@ -64,15 +63,34 @@ class VerifierTest {
6463 }
6564
6665 @Test
67- fun verify_unexpectedChallenge_returnsChallengeMismatch () {
66+ fun verify_challengeCheckerReturnsTrue_returnsSuccess () {
67+ val challengeChecker: ChallengeChecker =
68+ object : ChallengeChecker {
69+ override fun checkChallenge (challenge : ByteString ) = true
70+ }
71+
6872 val chain = readCertPath(" blueline/sdk28/TEE_EC_NONE.pem" )
69- assertIs<VerificationResult .ChallengeMismatch >(verifier.verify(chain, " foo" .toByteArray()))
73+ assertIs<VerificationResult .Success >(verifier.verify(chain, challengeChecker))
74+ }
75+
76+ @Test
77+ fun verify_challengeCheckerReturnsFalse_returnsChallengeMismatch () {
78+ val challengeChecker: ChallengeChecker =
79+ object : ChallengeChecker {
80+ override fun checkChallenge (challenge : ByteString ) = false
81+ }
82+
83+ val chain = readCertPath(" blueline/sdk28/TEE_EC_NONE.pem" )
84+ assertIs<VerificationResult .ChallengeMismatch >(verifier.verify(chain, challengeChecker))
7085 }
7186
7287 @Test
7388 fun verify_unexpectedRootKey_returnsPathValidationFailure () {
7489 assertIs<VerificationResult .PathValidationFailure >(
75- verifier.verify(CertLists .wrongTrustAnchor, " challenge" .toByteArray())
90+ verifier.verify(
91+ CertLists .wrongTrustAnchor,
92+ ChallengeMatcher (ByteString .copyFromUtf8(" challenge" )),
93+ )
7694 )
7795 }
7896}
0 commit comments