|
9 | 9 | import static com.google.u2f.TestUtils.computeSha256; |
10 | 10 | import static com.google.u2f.TestUtils.parseCertificate; |
11 | 11 | import static com.google.u2f.TestUtils.parseCertificateBase64; |
| 12 | +import static com.google.u2f.TestUtils.parseCertificateChainBase64; |
12 | 13 | import static com.google.u2f.TestUtils.parseHex; |
13 | 14 | import static com.google.u2f.TestUtils.parsePrivateKey; |
14 | 15 | import static com.google.u2f.TestUtils.parsePublicKey; |
@@ -315,17 +316,36 @@ public class TestVectors { |
315 | 316 | protected static final X509Certificate ANDROID_KEYSTORE_ATTESTATION_CERT_NO_VERSION = |
316 | 317 | parseCertificateBase64(ANDROID_KEYSTORE_ATTESTATION_CERT_NO_VERSION_BASE64); |
317 | 318 |
|
318 | | - private static final String ANDROID_KEYSTORE_ATTESTATION_CERT_BASE64 = |
| 319 | + /** |
| 320 | + * Contains a chain where: |
| 321 | + * cert[0] = attestation certificate describing some new key |
| 322 | + * cert[1] = batch certificate |
| 323 | + * |
| 324 | + * Note that cert[1] is signed by another cert that should be known to RPs. |
| 325 | + */ |
| 326 | + private static final String ANDROID_KEYSTORE_ATTESTATION_CERT_CHAIN_BASE64 = |
319 | 327 | "MIIBjTCCATKgAwIBAgICJxAwCgYIKoZIzj0EAwIwHDEaMBgGA1UEAwwRQW5kcm9pZCBLZXltYXN0" |
320 | 328 | + "ZXIwIBcNNzAwMTAxMDAwMDAwWhgPMjEwNjAyMDcwNjI4MTVaMBoxGDAWBgNVBAMMD0EgS2V5bWFz" |
321 | 329 | + "dGVyIEtleTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJiTI/rSw9N1NYV3FGxgeJSj1NWyyb61" |
322 | 330 | + "/gbdEefKuM3dYOeUZhciSigDY/u9Y3gBKm0wmXsd7DxXibDk/VvGIVWjZDBiMGAGCisGAQQB1nkC" |
323 | 331 | + "AREEUjBQAgECBAljaGFsbGVuZ2UwPqEIMQYCAQICAQOiAwIBA6MEAgIBAKUFMQMCAQS/g3gDAgEB" |
324 | 332 | + "v4N5BAICASy/hT0IAgYBUqi8MmC/hT4DAgEAMAAwCgYIKoZIzj0EAwIDSQAwRgIhANnmsSeWsnVH" |
325 | 333 | + "aF5zII50tkiA7fRhIMNeZZBcPvSV2BN5AiEAwUZm63OxMZEHTIFL50ASKVN/sCLs8+gMY6uEVZRy" |
326 | | - + "61Q="; |
327 | | - protected static final X509Certificate ANDROID_KEYSTORE_ATTESTATION_CERT = |
328 | | - parseCertificateBase64(ANDROID_KEYSTORE_ATTESTATION_CERT_BASE64); |
| 334 | + + "61QwggK2MIICH6ADAgECAgIQADANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzETMBEGA1UE" |
| 335 | + + "CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEVMBMGA1UECgwMR29vZ2xlLCBJ" |
| 336 | + + "bmMuMRAwDgYDVQQLDAdBbmRyb2lkMB4XDTE2MDEwNDEyNDA1M1oXDTM1MTIzMDEyNDA1M1owdjEL" |
| 337 | + + "MAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoMDEdvb2dsZSwgSW5jLjEQ" |
| 338 | + + "MA4GA1UECwwHQW5kcm9pZDEpMCcGA1UEAwwgQW5kcm9pZCBTb2Z0d2FyZSBBdHRlc3RhdGlvbiBL" |
| 339 | + + "ZXkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMCDI9xWiBu4MCBp9bCFYcbuvn8F4vWoQgSK" |
| 340 | + + "votHvnb+rvJc8psq+jIAFBYBQpmJoV/PxoFes2NYPC/S8gvkmDKD3YFLFtfhhUF65Uq8KWo6bbXA" |
| 341 | + + "BAg7aMVWwfAjOZFkGYZNULdNQK7KSEx3NWyJWgwnWr+sSZ1dfSNi8pxeAuhxAgMBAAGjZjBkMB0G" |
| 342 | + + "A1UdDgQWBBTUDBAb+M1jufc5UrUOE1ym15mThjAfBgNVHSMEGDAWgBQp+vGszE3STJZAJ3W2sOky" |
| 343 | + + "5Qf+LjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIChDANBgkqhkiG9w0BAQsFAAOB" |
| 344 | + + "gQCeLUhfjGcz3BqFrZnXUCPqFOxDsOGd6sIjRh5ytRncYCLkpWgxbAtVxOacoi2fOk+TazGLFngW" |
| 345 | + + "DYjL2YvMgJ2E8MIn42s48f3R5xdyMVk1fZbzxX+rnY+WYSZPsr6Buw1JBCKKzp/39UIuJUT6IQcS" |
| 346 | + + "WoO1Va0YgvhAFJucIGMEfw=="; |
| 347 | + protected static final X509Certificate[] ANDROID_KEYSTORE_ATTESTATION_CERT_CHAIN = |
| 348 | + parseCertificateChainBase64(ANDROID_KEYSTORE_ATTESTATION_CERT_CHAIN_BASE64); |
329 | 349 |
|
330 | 350 | protected static final byte[] REGISTRATION_DATA_2 = |
331 | 351 | parseHex("0504478E16BBDBBB741A660A000314A8B6BD63095196ED704C52EEBC0FA02A61" |
|
0 commit comments