| 1 | /** |
| 2 | * Deterministic test certificates for MtlsCertificate tests. |
| 3 | * |
| 4 | * Generated once with openssl (RSA-2048, 10-year validity) and checked in so |
| 5 | * that every test run uploads identical content: |
| 6 | * |
| 7 | * ```sh |
| 8 | * openssl req -x509 -newkey rsa:2048 -nodes -keyout ca1.key -out ca1.pem \ |
| 9 | * -days 3650 -subj "/CN=Alchemy Test CA 1/O=Alchemy/C=US" \ |
| 10 | * -addext "basicConstraints=critical,CA:TRUE" \ |
| 11 | * -addext "keyUsage=critical,keyCertSign,cRLSign" |
| 12 | * # ca2 likewise with CN=Alchemy Test CA 2 |
| 13 | * openssl req -newkey rsa:2048 -nodes -keyout leaf.key -out leaf.csr \ |
| 14 | * -subj "/CN=client.alchemy-test-2.us/O=Alchemy/C=US" |
| 15 | * openssl x509 -req -in leaf.csr -CA ca1.pem -CAkey ca1.key \ |
| 16 | * -CAcreateserial -out leaf.pem -days 3650 |
| 17 | * ``` |
| 18 | */ |
| 19 | |
| 20 | /** Self-signed root CA "Alchemy Test CA 1" (expires 2036). */ |
| 21 | export const CA_CERT_1 = `-----BEGIN CERTIFICATE----- |
| 22 | MIIDHDCCAgSgAwIBAgIJANeudKe3Q8UOMA0GCSqGSIb3DQEBCwUAMDsxGjAYBgNV |
| 23 | BAMMEUFsY2hlbXkgVGVzdCBDQSAxMRAwDgYDVQQKDAdBbGNoZW15MQswCQYDVQQG |
| 24 | EwJVUzAeFw0yNjA2MTExODMwMDJaFw0zNjA2MDgxODMwMDJaMDsxGjAYBgNVBAMM |
| 25 | EUFsY2hlbXkgVGVzdCBDQSAxMRAwDgYDVQQKDAdBbGNoZW15MQswCQYDVQQGEwJV |
| 26 | UzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyEcDZrVJWjpw0GO5OC |
| 27 | i4xEDY8TZObn4TUbbZh+lPXhFsXnjnMltIXOpG4OSIPaytqhh6XqafN5ydDe5/e5 |
| 28 | fJnh6gmc8NMk/g59F1+7/96ZGzZ+4RdpovLSj8Rv2VDeWT4tkusW0GfnPKypnQv6 |
| 29 | fDoqQdlmjjkBC42xeLtaS4tbCIaAomv12Y4kzLnzAMF8n4iHD23CMWWtzIoNlU9P |
| 30 | sirj9bUSy1sXz2q+qrL1rraov6A7SUYoSQiS2Lb+3fptoAwp0GHjImJKAH6PYiZI |
| 31 | 7EQolACIKii928Uretbr7h4sCx9QgQSBVm42BWAxMHZ1/S/TATFlvJ/GSEWuJpCl |
| 32 | T1sCAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ |
| 33 | KoZIhvcNAQELBQADggEBALvz/GtT+xBSfpiW3BL51XrV8vfkO8RRMauuH68vwioS |
| 34 | rOINhCJJGGYlHejN4EbuldZ+DmFFDSo151ZdEzHFCToqBOoNcUqebqJCSDAIaNo/ |
| 35 | uLewuqKV5JRHW64Qt+WxKGvXSG83iinlV43/D+eOPyOYjB5lQ7VV7X/0rZNrOoWt |
| 36 | 1edeQ3ghSfYo3FCsxCWdzeUPizkL2f3pjimHwIjy3UsSen05rmVYKnDO7Q9+B+XG |
| 37 | il4SD5HQqOF/NK8HDjZgylhjkbmzl/lPcckB3fqkpHUrpeRPWdl6w1zG10XGSWnE |
| 38 | gZWqjuGhEUR3fp2nwvsLj9WG3YMbOCa+CICiKqP7Mw4= |
| 39 | -----END CERTIFICATE----- |
| 40 | `; |
| 41 | |
| 42 | /** Self-signed root CA "Alchemy Test CA 2" (expires 2036). */ |
| 43 | export const CA_CERT_2 = `-----BEGIN CERTIFICATE----- |
| 44 | MIIDHDCCAgSgAwIBAgIJAOlLPRPuBJHDMA0GCSqGSIb3DQEBCwUAMDsxGjAYBgNV |
| 45 | BAMMEUFsY2hlbXkgVGVzdCBDQSAyMRAwDgYDVQQKDAdBbGNoZW15MQswCQYDVQQG |
| 46 | EwJVUzAeFw0yNjA2MTExODMwMDJaFw0zNjA2MDgxODMwMDJaMDsxGjAYBgNVBAMM |
| 47 | EUFsY2hlbXkgVGVzdCBDQSAyMRAwDgYDVQQKDAdBbGNoZW15MQswCQYDVQQGEwJV |
| 48 | UzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeirgFhF7dcHlVRKksu |
| 49 | 4VspnwA0hPKuKI4l3H1tR27bXy7mQd9cIpABMJRt5dzvCQxlcZeOV6NFj2udHkP7 |
| 50 | +Zx3KL1PaSWYpLcYGz8PGAxU1/8iSZ7n+zOmLfyAcrDMhFCgijVYuPA/jGcK3o6I |
| 51 | D4vKMmsup7f0myKgmbYMXfJVrAHJYqTWRacbQB2I2SelHrUeo0uwAJqK2nrcyHvL |
| 52 | Q1Q6M+M8nwlTZt6bSEwz2ctwzNZNhYzKQ7lADkSQFZNmzmLQmaQNQ58jKkqLr/A5 |
| 53 | 6MRpVTY1nzbSwkC5vATDe8SbW98MgQvRvuChoEAZdWAh28ut3kfQCOuUD/tPcKLS |
| 54 | PnECAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ |
| 55 | KoZIhvcNAQELBQADggEBACIwVqzEQRn5lh5LLKRAzJ35LEsOi9e0dU6R/qlKBlfe |
| 56 | H+l5ij+4u5qUJxRPkarm3d6weukLujuGEN4OT+/8TaXlIZ3fO1+FDIAnTqqTUI9f |
| 57 | OSeNi0K5kjmuk2x/380chkPUIrVBf1P+6fgh9yOY0Fj3fFJ0P3NTKE3ECWoGX1IC |
| 58 | CwfW7sEXVQ7XaBO+vhcahkJBYs5v0CoawP699ApyW4TV2R5UKQBDuwLjKgOGgueL |
| 59 | CFXMoad/gJyA2Sr/WHFHfpbGrwpPS1DocgPCbpg5AQtMQzRBMselk50ISDgPC9tp |
| 60 | /KktdHwtaJHFOC9lMsuAnArY1W4P3SuAUYJ+/c2veWs= |
| 61 | -----END CERTIFICATE----- |
| 62 | `; |
| 63 | |
| 64 | /** Leaf certificate "client.alchemy-test-2.us" signed by Alchemy Test CA 1. */ |
| 65 | export const LEAF_CERT = `-----BEGIN CERTIFICATE----- |
| 66 | MIIC+TCCAeECCQDF2miXO+qWHTANBgkqhkiG9w0BAQsFADA7MRowGAYDVQQDDBFB |
| 67 | bGNoZW15IFRlc3QgQ0EgMTEQMA4GA1UECgwHQWxjaGVteTELMAkGA1UEBhMCVVMw |
| 68 | HhcNMjYwNjExMTgzMDAyWhcNMzYwNjA4MTgzMDAyWjBCMSEwHwYDVQQDDBhjbGll |
| 69 | bnQuYWxjaGVteS10ZXN0LTIudXMxEDAOBgNVBAoMB0FsY2hlbXkxCzAJBgNVBAYT |
| 70 | AlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7XC2//Dpxow1LpyG |
| 71 | Wfcp6JYh88v8PxRxkuc+UaKgTaW1wxbkHEYQds1ffg5Sv8qAGQjwCLmbcNk5q7RL |
| 72 | YIh8ODOgoEJQRmwgF/Hpv/4KKXq/4Et2WS4Fn2k6I5BRFngRiB9EjCdoJjtUeFwk |
| 73 | Hz1zgRZEvAqR+mnMI3d5o0S8VCr6VDxHSywwgssnd9GcGBrkK137AfBUX89dKIKb |
| 74 | zKnkWaoHKIbn6q8QYY4+Hp7HkjsDPeizWXnDA1/Q9QvhoZwfqdibAuyk8Flt7a58 |
| 75 | 7pS5rH5WBb0FQiGG6rk7Jmp2tRUMV3DnG63oKRnDy0rYS3F81ai8xXJ819LFzBXA |
| 76 | xxQtRQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAwT17DPSPe9jROHyX2OvUcta23 |
| 77 | E6BUqdFbyx80tEc8mzreYRRPMImheRj8DEnQR78oLph/uzbj3CdL77VgOkGDnAbQ |
| 78 | Y0Pvu0z7L5W0U3MQ++qu2Jm1wY0AhH3Xw8YlTwcqtBq6xRbkcN/HAhNa19qcOj6R |
| 79 | u/sNqC2zNeAuOllsXNMoYkZNb0EuH9qLiPlgXBE5GC0YEFyvy/dXOBZAUbfIwOxz |
| 80 | DFI9MtMTIbnpodwycT5PkcxiAJ/BPl2JZhvuQbhJ6C6LYs5oj0Zg6up+CSDfghot |
| 81 | xIuSRw8NgbAdELEoLbLBjMLGYAnHFeHnLrheG77SFnAJlARDBl4Ipv/f4U4M |
| 82 | -----END CERTIFICATE----- |
| 83 | `; |
| 84 | |
| 85 | /** Private key for LEAF_CERT. Test-only material — never used anywhere real. */ |
| 86 | export const LEAF_KEY = `-----BEGIN PRIVATE KEY----- |
| 87 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDtcLb/8OnGjDUu |
| 88 | nIZZ9ynoliHzy/w/FHGS5z5RoqBNpbXDFuQcRhB2zV9+DlK/yoAZCPAIuZtw2Tmr |
| 89 | tEtgiHw4M6CgQlBGbCAX8em//goper/gS3ZZLgWfaTojkFEWeBGIH0SMJ2gmO1R4 |
| 90 | XCQfPXOBFkS8CpH6acwjd3mjRLxUKvpUPEdLLDCCyyd30ZwYGuQrXfsB8FRfz10o |
| 91 | gpvMqeRZqgcohufqrxBhjj4enseSOwM96LNZecMDX9D1C+GhnB+p2JsC7KTwWW3t |
| 92 | rnzulLmsflYFvQVCIYbquTsmana1FQxXcOcbregpGcPLSthLcXzVqLzFcnzX0sXM |
| 93 | FcDHFC1FAgMBAAECggEBALevlyLxMSlUll/030sCFv3EB4gfqojyO9q14lQtR25K |
| 94 | YA8IynfFDD+cKd/PHN0av3aen3Ngg4wNwLvAwv9vFwozhnP0WT3hsAJWN8s7sIje |
| 95 | WUoflvLu05K7SSryHokPYiC4b8MtSTkqdPKX9anlVFHs9Ee0tbHP3wkhCIzyQ++n |
| 96 | wmcyKmO/QsL7JB8PIXCD1i5ME/mUp6Dwecqwpa/4d5iECe3aKpRNdkD3nytKuGMd |
| 97 | p56sd/Y0zMS2+0MzLCzG4CsAKBXIbH6oKpFEYpM6JukuIOSp4RUBSvBppc4EqVCq |
| 98 | pT66g4XDnd4emQjUxE0iIa+IAM9uqTilZiDfAH0n1QECgYEA/GL+oP6qbdGIMo7K |
| 99 | lkLgZcOqHPC5+CZOARDVX3QUPtJp+Cgu5mtuVfTh/0S8GT+0LJDEAJMg20CCK1f9 |
| 100 | ES131gsp+53Bt8f7jubstd+hLMzrHELVkQnboAYnay56k4mTpKfgKtkDXVu9wTl1 |
| 101 | JDQG+DtjRX6sY3x3BEu83EwFStUCgYEA8Nbw7rdsN7QzY57TmRzsGDyXHYTB7/Bu |
| 102 | YXgbMAXJAqcfkbApBl9SIBXLh8TFEstbQmL1XOcfoZFxxgoM0WIMwMYqhGG2HUB/ |
| 103 | wYf78khOz5FoEuhv0SH7x0FfeDu/NySy//Ii/g/GAyYVYnLnWaN96c12e58o3Dkr |
| 104 | 5QRPbu6VsLECgYEA+AruxxkiNGXeXhnZ3o2BbmI7WM/5ZXl35jI+Ed7KWud+wCX1 |
| 105 | 2f0xZgcS6UcLOiFSmQ35o7r1aqXeiGykSXKPOOyl6SUlEtLXV516fFB5XcdTNeY1 |
| 106 | cKLol0AVE5CNZVyrnwJiHJpFZUZZmoI2r0r2opXzPYR+NhRIAA/TYArSlLUCgYBA |
| 107 | N+AIlyoo9EjboGclpZuins1glpyr4P1dygvd0z0VEwEM9N8LjvE0EvuxWRt/dnAA |
| 108 | FKj+O7aoe0LOHrHqRu3FnVGK+Q75X9BxB1R79yHkoQ4SNJ5UMm6TY/AT/EJxbry4 |
| 109 | GJWSDxyqjEYZeTANK9YQOLQGJJtdlXUJ3QtdNgr+EQKBgEsrWfJNi6+Xqacgfslf |
| 110 | 4UHYBv4S4bXXD4M46i8PWCs4M7q+jGFofWAW/sCnF78FRUBVty7dGVsKU+uivsFS |
| 111 | MqjdbG9sf3vTHR1p0tErqxkutgZ4AlEdT+MF9iffoQZE9UG5DMfER93JxmlTsGhP |
| 112 | Vp+E1nq4nZbma1nYpVPdEflA |
| 113 | -----END PRIVATE KEY----- |
| 114 | `; |