@@ -42,28 +42,44 @@ import kotlinx.coroutines.guava.future
4242import kotlinx.coroutines.runBlocking
4343
4444/* * The result of verifying an Android Key Attestation certificate chain. */
45+ @ThreadSafe
4546sealed interface VerificationResult {
47+ @ThreadSafe
4648 data class Success (
47- val publicKey : PublicKey ,
49+ @field:ThreadSafe. Suppress (reason = " PublicKey is immutable") val publicKey : PublicKey ,
4850 val challenge : ByteString ,
4951 val securityLevel : SecurityLevel ,
5052 val verifiedBootState : VerifiedBootState ,
5153 val deviceInformation : ProvisioningInfoMap ? ,
54+ @field:ThreadSafe.Suppress (reason = "DeviceIdentity is deeply immutable")
5255 val attestedDeviceIds : DeviceIdentity ,
5356 ) : VerificationResult
5457
55- data object ChallengeMismatch : VerificationResult
58+ @ThreadSafe data object ChallengeMismatch : VerificationResult
5659
57- data class PathValidationFailure (val cause : CertPathValidatorException ) : VerificationResult
60+ @ThreadSafe
61+ data class PathValidationFailure (
62+ @field:ThreadSafe.Suppress (reason = "Exceptions are generally immutable after creation")
63+ val cause : CertPathValidatorException
64+ ) : VerificationResult
5865
59- data class ChainParsingFailure (val cause : Exception ) : VerificationResult
66+ @ThreadSafe
67+ data class ChainParsingFailure (
68+ @field:ThreadSafe.Suppress (reason = "Exceptions are generally immutable after creation")
69+ val cause : Exception
70+ ) : VerificationResult
6071
61- data class ExtensionParsingFailure (val cause : ExtensionParsingException ) : VerificationResult
72+ @ThreadSafe
73+ data class ExtensionParsingFailure (
74+ @field:ThreadSafe.Suppress (reason = "Exceptions are generally immutable after creation")
75+ val cause : ExtensionParsingException
76+ ) : VerificationResult
6277
78+ @ThreadSafe
6379 data class ExtensionConstraintViolation (val cause : String , val reason : KeyAttestationReason ) :
6480 VerificationResult
6581
66- data object SoftwareAttestationUnsupported : VerificationResult
82+ @ThreadSafe data object SoftwareAttestationUnsupported : VerificationResult
6783}
6884
6985/* *
0 commit comments