diff --git a/src/test/kotlin/VerifierTest.kt b/src/test/kotlin/VerifierTest.kt index 2caccb7..e84546d 100644 --- a/src/test/kotlin/VerifierTest.kt +++ b/src/test/kotlin/VerifierTest.kt @@ -97,6 +97,10 @@ class VerifierTest { "caiman/sdk36/TEE_EC_RKP", LocalDate.of(2025, 9, 30).atStartOfDay(ZoneOffset.UTC).toInstant(), ), + PIXEL_9A_SDK36( + "tegu/sdk36/TEE_EC_2026_ROOT", + LocalDate.of(2026, 2, 23).atStartOfDay(ZoneOffset.UTC).toInstant(), + ), } @Test diff --git a/testdata/tegu/sdk36/TEE_EC_2026_ROOT.json b/testdata/tegu/sdk36/TEE_EC_2026_ROOT.json new file mode 100644 index 0000000..9c36b87 --- /dev/null +++ b/testdata/tegu/sdk36/TEE_EC_2026_ROOT.json @@ -0,0 +1,42 @@ +{ + "attestationVersion": "400", + "attestationSecurityLevel": "TRUSTED_ENVIRONMENT", + "keyMintVersion": "400", + "keyMintSecurityLevel": "TRUSTED_ENVIRONMENT", + "attestationChallenge": "NjQxN2Y5MmMtZGFlZi00Y2MxLTg4MjgtNWJiMzkzMzhmZmQ1", + "uniqueId": "", + "softwareEnforced": { + "creationDateTime": "1758900680964", + "attestationApplicationId": { + "packages": [ + { "name": "com.google.android.attestation", "version": "0" } + ], + "signatures": ["EDk47kU35Z6O55L2VFBPuDRvxrNG0LvEQV/DOfz8jsE="] + }, + "moduleHash": "9LgYqeXS71yyjWDapgmLq8vfI/9ugHeO+C1+Qe9Ill4=" + }, + "hardwareEnforced": { + "purposes": ["2", "3"], + "algorithms": "3", + "keySize": "256", + "digests": ["4"], + "ecCurve": "1", + "noAuthRequired": true, + "origin": "GENERATED", + "rootOfTrust": { + "verifiedBootKey": "MyevYthKuJevJSOhbctYAeYMXVuX9ByhvQmcR4T3t0M=", + "deviceLocked": true, + "verifiedBootState": "VERIFIED", + "verifiedBootHash": "7Owyr9T0ZfyInz7SDm95qsof0as6351/GX7KuwyaOFY=" + }, + "osVersion": "160000", + "osPatchLevel": "202602", + "attestationIdBrand": "google", + "attestationIdDevice": "tegu", + "attestationIdProduct": "tegu", + "attestationIdManufacturer": "Google", + "attestationIdModel": "Pixel 9a", + "vendorPatchLevel": "20260205", + "bootPatchLevel": "20260205" + } +} diff --git a/testdata/tegu/sdk36/TEE_EC_2026_ROOT.pem b/testdata/tegu/sdk36/TEE_EC_2026_ROOT.pem new file mode 100644 index 0000000..d878036 --- /dev/null +++ b/testdata/tegu/sdk36/TEE_EC_2026_ROOT.pem @@ -0,0 +1,78 @@ +-----BEGIN CERTIFICATE----- +MIIC2TCCAoCgAwIBAgIBATAKBggqhkjOPQQDAjA5MQwwCgYDVQQKEwNURUUxKTAn +BgNVBAMTIDJjODVjZGMxNWMzMDQyZjI1Njk4OTA2NjY5YzM1MTM3MB4XDTcwMDEw +MTAwMDAwMFoXDTQ4MDEwMTAwMDAwMFowHzEdMBsGA1UEAxMUQW5kcm9pZCBLZXlz +dG9yZSBLZXkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASshApA2E1ozxkxv466 +u8ybvXUcdY/vaCO38AUkb886fWtiAkZ861CnJQih5mUtxHNngBA6M5fcopH9RNc1 +sPkEo4IBkTCCAY0wDgYDVR0PAQH/BAQDAgeAMIIBeQYKKwYBBAHWeQIBEQSCAWkw +ggFlAgIBkAoBAQICAZAKAQEEJDY0MTdmOTJjLWRhZWYtNGNjMS04ODI4LTViYjM5 +MzM4ZmZkNQQAMIGFv4U9CAIGAZyNJWD0v4VFTwRNMEsxJTAjBB5jb20uZ29vZ2xl +LmFuZHJvaWQuYXR0ZXN0YXRpb24CAQAxIgQgEDk47kU35Z6O55L2VFBPuDRvxrNG +0LvEQV/DOfz8jsG/hVQiBCD0uBip5dLvXLKNYNqmCYury98j/26Ad474LX5B70iW +XjCBpKEIMQYCAQICAQOiAwIBA6MEAgIBAKUFMQMCAQSqAwIBAb+DdwIFAL+FPgMC +AQC/hUBMMEoEIDMnr2LYSriXryUjoW3LWAHmDF1bl/Qcob0JnEeE97dDAQH/CgEA +BCDs7DKv1PRl/IifPtIOb3mqyh/RqzrfnX8Zfsq7DJo4Vr+FQQUCAwJxAL+FQgUC +AwMXar+FTgYCBAE1JW2/hU8GAgQBNSVtMAoGCCqGSM49BAMCA0cAMEQCIA2mR2ND +Xb23JfBLa/QqjIJII6sPsVI7TdqjaQV18LRrAiAzNIj3ket55nDHcEUaK6dR6AEs +5OmOB2n4kG0Y19oeiA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB3zCCAYWgAwIBAgIQLIXNwVwwQvJWmJBmacNRNzAKBggqhkjOPQQDAjApMRMw +EQYDVQQKEwpHb29nbGUgTExDMRIwEAYDVQQDEwlEcm9pZCBDQTMwHhcNMjYwMjIy +MDAwNjE3WhcNMjYwMzA4MDAyNjAwWjA5MQwwCgYDVQQKEwNURUUxKTAnBgNVBAMT +IDJjODVjZGMxNWMzMDQyZjI1Njk4OTA2NjY5YzM1MTM3MFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAEAuCHEYPBvWZVCWnBRRzhoI0Ik+zR6tVn14JcjW6Rw2ihBQ8r +iAtvgKlVxaztaDiw6RDMCdDoVt9/+eCFaPOCH6N/MH0wHQYDVR0OBBYEFA09xEb+ +nbmm1722AheMhDpixCjkMB8GA1UdIwQYMBaAFId1Sm9DwT4jI/YzViYjQBlj2NTG +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMBoGCisGAQQB1nkCAR4E +DKIBGEADZkdvb2dsZTAKBggqhkjOPQQDAgNIADBFAiEA6w349R77QMSAvRhKaBlK +0yB8UPpvHEkyre0uophoygMCIDKYo8klOpPU7LQPuGc1WaZJOvEH8x6pMB+rs1M6 +5tHY +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIC7zCCAnWgAwIBAgITMDqNZ8RaDdp7Da+8CS9agkoC7DAKBggqhkjOPQQDAzAp +MRMwEQYDVQQKEwpHb29nbGUgTExDMRIwEAYDVQQDEwlEcm9pZCBDQTIwHhcNMjYw +MjE5MjMzODI3WhcNMjYwNDMwMjMzODI2WjApMRMwEQYDVQQKEwpHb29nbGUgTExD +MRIwEAYDVQQDEwlEcm9pZCBDQTMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR0 +mLbPl8AKkaG97eE8yKN9bkO3whZwBnSmgQwY7hndpWKobx8YwGY9r8dOZ9v3xELC +epDPBwMHjJL0zOTA7CdRo4IBejCCAXYwDgYDVR0PAQH/BAQDAgIEMA8GA1UdEwEB +/wQFMAMBAf8wHQYDVR0OBBYEFId1Sm9DwT4jI/YzViYjQBlj2NTGMB8GA1UdIwQY +MBaAFEUgMj4fpvmPHNXDRy7UelD+O6jgMIGNBggrBgEFBQcBAQSBgDB+MHwGCCsG +AQUFBzAChnBodHRwOi8vcHJpdmF0ZWNhLWNvbnRlbnQtNjlhNDczNWItMDAwMC0y +NWEyLWE3MWMtM2MyODZkMzhlYjlhLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vN2My +Y2U5ZTVlMGI4OTgxYTc2MWIvY2EuY3J0MIGCBgNVHR8EezB5MHegdaBzhnFodHRw +Oi8vcHJpdmF0ZWNhLWNvbnRlbnQtNjlhNDczNWItMDAwMC0yNWEyLWE3MWMtM2My +ODZkMzhlYjlhLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vN2MyY2U5ZTVlMGI4OTgx +YTc2MWIvY3JsLmNybDAKBggqhkjOPQQDAwNoADBlAjB1PdABk1m57OVPr3NwdddY +Vq0xAaK/t93net8TYQyRAQNmOqJ9nTZcuffefw1Y6j0CMQDMZXUJA7/LYK0FGkez +H9BDC8itvrLdHnT2o/3N5LwXIbUUpa+LODkWnaYIAk4IQWA= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIRALGEywXsUP3JhfDsUyl8+CMwCgYIKoZIzj0EAwMwUjEc +MBoGA1UEAwwTS2V5IEF0dGVzdGF0aW9uIENBMTEQMA4GA1UECwwHQW5kcm9pZDET +MBEGA1UECgwKR29vZ2xlIExMQzELMAkGA1UEBhMCVVMwHhcNMjYwMjA5MTk1NzEw +WhcNMjkwMjA4MTk1NzEwWjApMRMwEQYDVQQKEwpHb29nbGUgTExDMRIwEAYDVQQD +EwlEcm9pZCBDQTIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAT19+tRAlmwuauVyRrg +HqykkymaEkOS1IYSoXAQyBRvUNEnY5FGqmi44dOWcqMxu0uIbB3in5TD3GsR1NBm +i3f//mI0aiARbBtdP3YaIff8yy076NY9dPMnBiCMIwjRR2Cjga0wgaowRwYDVR0f +BEAwPjA8oDqgOIY2aHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVz +dGF0aW9uL2tleV9jYTEuY3JsMB0GA1UdDgQWBBRFIDI+H6b5jxzVw0cu1HpQ/juo +4DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRS +Mrss+0ZDm9zWgakOZWbgNEHqQDAKBggqhkjOPQQDAwNoADBlAjBfOXmY1+SCcT/o +WL17AuVS7uoxMXssLksjChHT+VhTMpWu9J42x3G20hHVGTj+3ZICMQDBYZjd7+vf +uyLVCZkTX7wlvjcRJjvrEWyxvkZE5vlq8c3lwH9JyNBP3OeTd3o8IJs= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICIjCCAaigAwIBAgIRAISp0Cl7DrWK5/8OgN52BgUwCgYIKoZIzj0EAwMwUjEc +MBoGA1UEAwwTS2V5IEF0dGVzdGF0aW9uIENBMTEQMA4GA1UECwwHQW5kcm9pZDET +MBEGA1UECgwKR29vZ2xlIExMQzELMAkGA1UEBhMCVVMwHhcNMjUwNzE3MjIzMjE4 +WhcNMzUwNzE1MjIzMjE4WjBSMRwwGgYDVQQDDBNLZXkgQXR0ZXN0YXRpb24gQ0Ex +MRAwDgYDVQQLDAdBbmRyb2lkMRMwEQYDVQQKDApHb29nbGUgTExDMQswCQYDVQQG +EwJVUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABCPaI3FO3z5bBQo8cuiEas4HjqCt +G/mLFfRT0MsIssPBEEU5Cfbt6sH5yOAxqEi5QagpU1yX4HwnGb7OtBYpDTB57uH5 +Eczm34A5FNijV3s0/f0UPl7zbJcTx6xwqMIRq6NCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFFIyuyz7RkOb3NaBqQ5lZuA0QepA +MAoGCCqGSM49BAMDA2gAMGUCMETfjPO/HwqReR2CS7p0ZWoD/LHs6hDi422opifH +EUaYLxwGlT9SLdjkVpz0UUOR5wIxAIoGyxGKRHVTpqpGRFiJtQEOOTp/+s1GcxeY +uR2zh/80lQyu9vAFCj6E4AXc+osmRg== +-----END CERTIFICATE----- \ No newline at end of file