...

Package testdata

import "github.com/google/certificate-transparency-go/testdata"
Overview
Index

Overview ▾

Package testdata holds data and utility functions needed for various Go tests.

Constants

const (
    // CACertPEM is a CA cert:
    // Certificate:
    //     Data:
    //         Version: 3 (0x2)
    //         Serial Number: 0 (0x0)
    //     Signature Algorithm: sha1WithRSAEncryption
    //         Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen
    //         Validity
    //             Not Before: Jun  1 00:00:00 2012 GMT
    //             Not After : Jun  1 00:00:00 2022 GMT
    //         Subject: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen
    //         Subject Public Key Info:
    //             Public Key Algorithm: rsaEncryption
    //                 Public-Key: (1024 bit)
    //                 Modulus:
    //                     00:d5:8a:68:53:62:10:a2:71:19:93:6e:77:83:21:
    //                     18:1c:2a:40:13:c6:d0:7b:8c:76:eb:91:57:d3:d0:
    //                     fb:4b:3b:51:6e:ce:cb:d1:c9:8d:91:c5:2f:74:3f:
    //                     ab:63:5d:55:09:9c:d1:3a:ba:f3:1a:e5:41:44:24:
    //                     51:a7:4c:78:16:f2:24:3c:f8:48:cf:28:31:cc:e6:
    //                     7b:a0:4a:5a:23:81:9f:3c:ba:37:e6:24:d9:c3:bd:
    //                     b2:99:b8:39:dd:fe:26:31:d2:cb:3a:84:fc:7b:b2:
    //                     b5:c5:2f:cf:c1:4f:ff:40:6f:5c:d4:46:69:cb:b2:
    //                     f7:cf:df:86:fb:6a:b9:d1:b1
    //                 Exponent: 65537 (0x10001)
    //         X509v3 extensions:
    //             X509v3 Subject Key Identifier:
    //                 5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55
    //             X509v3 Authority Key Identifier:
    //                 keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55
    //                 DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen
    //                 serial:00
    //
    //             X509v3 Basic Constraints:
    //                 CA:TRUE
    //     Signature Algorithm: sha1WithRSAEncryption
    //          06:08:cc:4a:6d:64:f2:20:5e:14:6c:04:b2:76:f9:2b:0e:fa:
    //          94:a5:da:f2:3a:fc:38:06:60:6d:39:90:d0:a1:ea:23:3d:40:
    //          29:57:69:46:3b:04:66:61:e7:fa:1d:17:99:15:20:9a:ea:2e:
    //          0a:77:51:76:41:12:27:d7:c0:03:07:c7:47:0e:61:58:4f:d7:
    //          33:42:24:72:7f:51:d6:90:bc:47:a9:df:35:4d:b0:f6:eb:25:
    //          95:5d:e1:89:3c:4d:d5:20:2b:24:a2:f3:e4:40:d2:74:b5:4e:
    //          1b:d3:76:26:9c:a9:62:89:b7:6e:ca:a4:10:90:e1:4f:3b:0a:
    //          94:2e
    CACertPEM = "-----BEGIN CERTIFICATE-----\n" +
        "MIIC0DCCAjmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk\n" +
        "MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX\n" +
        "YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw\n" +
        "MDAwMDBaMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu\n" +
        "c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGf\n" +
        "MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVimhTYhCicRmTbneDIRgcKkATxtB7\n" +
        "jHbrkVfT0PtLO1FuzsvRyY2RxS90P6tjXVUJnNE6uvMa5UFEJFGnTHgW8iQ8+EjP\n" +
        "KDHM5nugSlojgZ88ujfmJNnDvbKZuDnd/iYx0ss6hPx7srXFL8/BT/9Ab1zURmnL\n" +
        "svfP34b7arnRsQIDAQABo4GvMIGsMB0GA1UdDgQWBBRfnYgNyHPmVNT4DdjmsMEk\n" +
        "tEfDVTB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkG\n" +
        "A1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEO\n" +
        "MAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwDAYDVR0TBAUwAwEB\n" +
        "/zANBgkqhkiG9w0BAQUFAAOBgQAGCMxKbWTyIF4UbASydvkrDvqUpdryOvw4BmBt\n" +
        "OZDQoeojPUApV2lGOwRmYef6HReZFSCa6i4Kd1F2QRIn18ADB8dHDmFYT9czQiRy\n" +
        "f1HWkLxHqd81TbD26yWVXeGJPE3VICskovPkQNJ0tU4b03YmnKliibduyqQQkOFP\n" +
        "OwqULg==\n" +
        "-----END CERTIFICATE-----"

    // TestCertPEM is a leaf certificate signed by CACertPEM.
    // Certificate:
    //     Data:
    //         Version: 3 (0x2)
    //         Serial Number: 6 (0x6)
    //     Signature Algorithm: sha1WithRSAEncryption
    //         Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen
    //         Validity
    //             Not Before: Jun  1 00:00:00 2012 GMT
    //             Not After : Jun  1 00:00:00 2022 GMT
    //         Subject: C=GB, O=Certificate Transparency, ST=Wales, L=Erw Wen
    //         Subject Public Key Info:
    //             Public Key Algorithm: rsaEncryption
    //                 Public-Key: (1024 bit)
    //                 Modulus:
    //                     00:b1:fa:37:93:61:11:f8:79:2d:a2:08:1c:3f:e4:
    //                     19:25:00:85:31:dc:7f:2c:65:7b:d9:e1:de:47:04:
    //                     16:0b:4c:9f:19:d5:4a:da:44:70:40:4c:1c:51:34:
    //                     1b:8f:1f:75:38:dd:dd:28:d9:ac:a4:83:69:fc:56:
    //                     46:dd:cc:76:17:f8:16:8a:ae:5b:41:d4:33:31:fc:
    //                     a2:da:df:c8:04:d5:72:08:94:90:61:f9:ee:f9:02:
    //                     ca:47:ce:88:c6:44:e0:00:f0:6e:ee:cc:ab:dc:9d:
    //                     d2:f6:8a:22:cc:b0:9d:c7:6e:0d:bc:73:52:77:65:
    //                     b1:a3:7a:8c:67:62:53:dc:c1
    //                 Exponent: 65537 (0x10001)
    //         X509v3 extensions:
    //             X509v3 Subject Key Identifier:
    //                 6A:0D:98:2A:3B:62:C4:4B:6D:2E:F4:E9:BB:7A:01:AA:9C:B7:98:E2
    //             X509v3 Authority Key Identifier:
    //                 keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55
    //                 DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen
    //                 serial:00
    //
    //             X509v3 Basic Constraints:
    //                 CA:FALSE
    //     Signature Algorithm: sha1WithRSAEncryption
    //          17:1c:d8:4a:ac:41:4a:9a:03:0f:22:aa:c8:f6:88:b0:81:b2:
    //          70:9b:84:8b:4e:55:11:40:6c:d7:07:fe:d0:28:59:7a:9f:ae:
    //          fc:2e:ee:29:78:d6:33:aa:ac:14:ed:32:35:19:7d:a8:7e:0f:
    //          71:b8:87:5f:1a:c9:e7:8b:28:17:49:dd:ed:d0:07:e3:ec:f5:
    //          06:45:f8:cb:f6:67:25:6c:d6:a1:64:7b:5e:13:20:3b:b8:58:
    //          2d:e7:d6:69:6f:65:6d:1c:60:b9:5f:45:6b:7f:cf:33:85:71:
    //          90:8f:1c:69:72:7d:24:c4:fc:cd:24:92:95:79:58:14:d1:da:
    //          c0:e6
    TestCertPEM = "-----BEGIN CERTIFICATE-----\n" +
        "MIICyjCCAjOgAwIBAgIBBjANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk\n" +
        "MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX\n" +
        "YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw\n" +
        "MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu\n" +
        "c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G\n" +
        "CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx+jeTYRH4eS2iCBw/5BklAIUx3H8sZXvZ\n" +
        "4d5HBBYLTJ8Z1UraRHBATBxRNBuPH3U43d0o2aykg2n8VkbdzHYX+BaKrltB1DMx\n" +
        "/KLa38gE1XIIlJBh+e75AspHzojGROAA8G7uzKvcndL2iiLMsJ3Hbg28c1J3ZbGj\n" +
        "eoxnYlPcwQIDAQABo4GsMIGpMB0GA1UdDgQWBBRqDZgqO2LES20u9Om7egGqnLeY\n" +
        "4jB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkGA1UE\n" +
        "BhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEOMAwG\n" +
        "A1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwCQYDVR0TBAIwADANBgkq\n" +
        "hkiG9w0BAQUFAAOBgQAXHNhKrEFKmgMPIqrI9oiwgbJwm4SLTlURQGzXB/7QKFl6\n" +
        "n678Lu4peNYzqqwU7TI1GX2ofg9xuIdfGsnniygXSd3t0Afj7PUGRfjL9mclbNah\n" +
        "ZHteEyA7uFgt59Zpb2VtHGC5X0Vrf88zhXGQjxxpcn0kxPzNJJKVeVgU0drA5g==\n" +
        "-----END CERTIFICATE-----\n"

    // TestPreCertPEM is a pre-certificate signed by CACertPEM.
    // Certificate:
    //     Data:
    //         Version: 3 (0x2)
    //         Serial Number: 7 (0x7)
    //     Signature Algorithm: sha1WithRSAEncryption
    //         Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen
    //         Validity
    //             Not Before: Jun  1 00:00:00 2012 GMT
    //             Not After : Jun  1 00:00:00 2022 GMT
    //         Subject: C=GB, O=Certificate Transparency, ST=Wales, L=Erw Wen
    //         Subject Public Key Info:
    //             Public Key Algorithm: rsaEncryption
    //                 Public-Key: (1024 bit)
    //                 Modulus:
    //                     00:be:ef:98:e7:c2:68:77:ae:38:5f:75:32:5a:0c:
    //                     1d:32:9b:ed:f1:8f:aa:f4:d7:96:bf:04:7e:b7:e1:
    //                     ce:15:c9:5b:a2:f8:0e:e4:58:bd:7d:b8:6f:8a:4b:
    //                     25:21:91:a7:9b:d7:00:c3:8e:9c:03:89:b4:5c:d4:
    //                     dc:9a:12:0a:b2:1e:0c:b4:1c:d0:e7:28:05:a4:10:
    //                     cd:9c:5b:db:5d:49:27:72:6d:af:17:10:f6:01:87:
    //                     37:7e:a2:5b:1a:1e:39:ee:d0:b8:81:19:dc:15:4d:
    //                     c6:8f:7d:a8:e3:0c:af:15:8a:33:e6:c9:50:9f:4a:
    //                     05:b0:14:09:ff:5d:d8:7e:b5
    //                 Exponent: 65537 (0x10001)
    //         X509v3 extensions:
    //             X509v3 Subject Key Identifier:
    //                 20:31:54:1A:F2:5C:05:FF:D8:65:8B:68:43:79:4F:5E:90:36:F7:B4
    //             X509v3 Authority Key Identifier:
    //                 keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55
    //                 DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen
    //                 serial:00
    //
    //             X509v3 Basic Constraints:
    //                 CA:FALSE
    //             1.3.6.1.4.1.11129.2.4.3: critical
    //                 ..
    //     Signature Algorithm: sha1WithRSAEncryption
    //          02:a1:c3:9e:01:5a:f5:4d:ff:02:3c:33:60:87:5f:ff:34:37:
    //          55:2f:1f:09:01:bd:c2:54:31:5f:33:72:b7:23:fb:15:fb:ce:
    //          cc:4d:f4:71:a0:ce:4d:8c:54:65:5d:84:87:97:fb:28:1e:3d:
    //          fa:bb:46:2d:2c:68:4b:05:6f:ea:7b:63:b4:70:ff:16:6e:32:
    //          d4:46:06:35:b3:d2:bc:6d:a8:24:9b:26:30:e7:1f:c3:4f:08:
    //          f2:3d:d4:ee:22:8f:8f:74:f6:3d:78:63:11:dd:0a:58:11:40:
    //          5f:90:6c:ca:2c:2d:3e:eb:fc:81:99:64:eb:d8:cf:7c:08:86:
    //          3f:be
    TestPreCertPEM = "-----BEGIN CERTIFICATE-----\n" +
        "MIIC3zCCAkigAwIBAgIBBzANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk\n" +
        "MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX\n" +
        "YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw\n" +
        "MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu\n" +
        "c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G\n" +
        "CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/\n" +
        "BH634c4VyVui+A7kWL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWk\n" +
        "EM2cW9tdSSdyba8XEPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWw\n" +
        "FAn/Xdh+tQIDAQABo4HBMIG+MB0GA1UdDgQWBBQgMVQa8lwF/9hli2hDeU9ekDb3\n" +
        "tDB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkGA1UE\n" +
        "BhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEOMAwG\n" +
        "A1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwCQYDVR0TBAIwADATBgor\n" +
        "BgEEAdZ5AgQDAQH/BAIFADANBgkqhkiG9w0BAQUFAAOBgQACocOeAVr1Tf8CPDNg\n" +
        "h1//NDdVLx8JAb3CVDFfM3K3I/sV+87MTfRxoM5NjFRlXYSHl/soHj36u0YtLGhL\n" +
        "BW/qe2O0cP8WbjLURgY1s9K8bagkmyYw5x/DTwjyPdTuIo+PdPY9eGMR3QpYEUBf\n" +
        "kGzKLC0+6/yBmWTr2M98CIY/vg==\n" +
        "-----END CERTIFICATE-----\n"

    // TestEmbeddedCertPEM is a certificate containing an embedded SCT that
    // corresponds to TestPreCertProof.
    //	Certificate:
    //		Data:
    //			Version: 3 (0x2)
    //			Serial Number: 7 (0x7)
    //		Signature Algorithm: sha1WithRSAEncryption
    //			Issuer: C = GB, O = Certificate Transparency CA, ST = Wales, L = Erw Wen
    //			Validity
    //				Not Before: Jun  1 00:00:00 2012 GMT
    //				Not After : Jun  1 00:00:00 2022 GMT
    //			Subject: C = GB, O = Certificate Transparency, ST = Wales, L = Erw Wen
    //			Subject Public Key Info:
    //				Public Key Algorithm: rsaEncryption
    //					Public-Key: (1024 bit)
    //					Modulus:
    //						00:be:ef:98:e7:c2:68:77:ae:38:5f:75:32:5a:0c:
    //						1d:32:9b:ed:f1:8f:aa:f4:d7:96:bf:04:7e:b7:e1:
    //						ce:15:c9:5b:a2:f8:0e:e4:58:bd:7d:b8:6f:8a:4b:
    //						25:21:91:a7:9b:d7:00:c3:8e:9c:03:89:b4:5c:d4:
    //						dc:9a:12:0a:b2:1e:0c:b4:1c:d0:e7:28:05:a4:10:
    //						cd:9c:5b:db:5d:49:27:72:6d:af:17:10:f6:01:87:
    //						37:7e:a2:5b:1a:1e:39:ee:d0:b8:81:19:dc:15:4d:
    //						c6:8f:7d:a8:e3:0c:af:15:8a:33:e6:c9:50:9f:4a:
    //						05:b0:14:09:ff:5d:d8:7e:b5
    //					Exponent: 65537 (0x10001)
    //			X509v3 extensions:
    //				X509v3 Subject Key Identifier:
    //					20:31:54:1A:F2:5C:05:FF:D8:65:8B:68:43:79:4F:5E:90:36:F7:B4
    //				X509v3 Authority Key Identifier:
    //					keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55
    //					DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen
    //					serial:00
    //
    //				X509v3 Basic Constraints:
    //					CA:FALSE
    //				CT Precertificate SCTs:
    //					Signed Certificate Timestamp:
    //						Version   : v1 (0x0)
    //						Log ID    : DF:1C:2E:C1:15:00:94:52:47:A9:61:68:32:5D:DC:5C:
    //									79:59:E8:F7:C6:D3:88:FC:00:2E:0B:BD:3F:74:D7:64
    //						Timestamp : Apr  5 17:04:16.275 2013 GMT
    //						Extensions: none
    //						Signature : ecdsa-with-SHA256
    //									30:45:02:20:48:2F:67:51:AF:35:DB:A6:54:36:BE:1F:
    //									D6:64:0F:3D:BF:9A:41:42:94:95:92:45:30:28:8F:A3:
    //									E5:E2:3E:06:02:21:00:E4:ED:C0:DB:3A:C5:72:B1:E2:
    //									F5:E8:AB:6A:68:06:53:98:7D:CF:41:02:7D:FE:FF:A1:
    //									05:51:9D:89:ED:BF:08
    //		Signature Algorithm: sha1WithRSAEncryption
    //			 8a:0c:4b:ef:09:9d:47:92:79:af:a0:a2:8e:68:9f:91:e1:c4:
    //			 42:1b:e2:d2:69:a2:ea:6c:a4:e8:21:5d:de:dd:ca:15:04:a1:
    //			 1e:7c:87:c4:b7:7e:80:f0:e9:79:03:52:68:f2:7c:a2:0e:16:
    //			 68:04:ae:55:6f:31:69:81:f9:6a:39:4a:b7:ab:fd:3e:25:5a:
    //			 c0:04:45:13:fe:76:57:0c:67:95:ab:e4:70:31:33:d3:03:f8:
    //			 9f:3a:fa:6b:bc:fc:51:73:19:df:d9:5b:93:42:41:21:1f:63:
    //			 40:35:c3:d0:78:30:7a:68:c6:07:5a:2e:20:c8:9f:36:b8:91:
    //			 0c:a0
    TestEmbeddedCertPEM = "-----BEGIN CERTIFICATE-----\n" +
        "MIIDWTCCAsKgAwIBAgIBBzANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk\n" +
        "MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX\n" +
        "YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw\n" +
        "MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu\n" +
        "c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G\n" +
        "CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/\n" +
        "BH634c4VyVui+A7kWL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWk\n" +
        "EM2cW9tdSSdyba8XEPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWw\n" +
        "FAn/Xdh+tQIDAQABo4IBOjCCATYwHQYDVR0OBBYEFCAxVBryXAX/2GWLaEN5T16Q\n" +
        "Nve0MH0GA1UdIwR2MHSAFF+diA3Ic+ZU1PgN2OawwSS0R8NVoVmkVzBVMQswCQYD\n" +
        "VQQGEwJHQjEkMCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4w\n" +
        "DAYDVQQIEwVXYWxlczEQMA4GA1UEBxMHRXJ3IFdlboIBADAJBgNVHRMEAjAAMIGK\n" +
        "BgorBgEEAdZ5AgQCBHwEegB4AHYA3xwuwRUAlFJHqWFoMl3cXHlZ6PfG04j8AC4L\n" +
        "vT9012QAAAE92yffkwAABAMARzBFAiBIL2dRrzXbplQ2vh/WZA89v5pBQpSVkkUw\n" +
        "KI+j5eI+BgIhAOTtwNs6xXKx4vXoq2poBlOYfc9BAn3+/6EFUZ2J7b8IMA0GCSqG\n" +
        "SIb3DQEBBQUAA4GBAIoMS+8JnUeSea+goo5on5HhxEIb4tJpoupspOghXd7dyhUE\n" +
        "oR58h8S3foDw6XkDUmjyfKIOFmgErlVvMWmB+Wo5Srer/T4lWsAERRP+dlcMZ5Wr\n" +
        "5HAxM9MD+J86+mu8/FFzGd/ZW5NCQSEfY0A1w9B4MHpoxgdaLiDInza4kQyg\n" +
        "-----END CERTIFICATE-----\n"

    // TestInvalidEmbeddedCertPEM is a certificate that contains an SCT that is
    // not for the corresponding pre-certificate.  The SCT embedded corresponds
    // to TestInvalidProof.
    //	Certificate:
    //    Data:
    //        Version: 3 (0x2)
    //        Serial Number: 7 (0x7)
    //    Signature Algorithm: sha1WithRSAEncryption
    //        Issuer: C = GB, O = Certificate Transparency CA, ST = Wales, L = Erw Wen
    //        Validity
    //            Not Before: Jun  1 00:00:00 2012 GMT
    //            Not After : Jun  1 00:00:00 2022 GMT
    //        Subject: C = GB, O = Certificate Transparency, ST = Wales, L = Erw Wen
    //        Subject Public Key Info:
    //            Public Key Algorithm: rsaEncryption
    //                Public-Key: (1024 bit)
    //                Modulus:
    //                    00:be:ef:98:e7:c2:68:77:ae:38:5f:75:32:5a:0c:
    //                    1d:32:9b:ed:f1:8f:aa:f4:d7:96:bf:04:7e:b7:e1:
    //                    ce:15:c9:5b:a2:f8:0e:e4:58:bd:7d:b8:6f:8a:4b:
    //                    25:21:91:a7:9b:d7:00:c3:8e:9c:03:89:b4:5c:d4:
    //                    dc:9a:12:0a:b2:1e:0c:b4:1c:d0:e7:28:05:a4:10:
    //                    cd:9c:5b:db:5d:49:27:72:6d:af:17:10:f6:01:87:
    //                    37:7e:a2:5b:1a:1e:39:ee:d0:b8:81:19:dc:15:4d:
    //                    c6:8f:7d:a8:e3:0c:af:15:8a:33:e6:c9:50:9f:4a:
    //                    05:b0:14:09:ff:5d:d8:7e:b5
    //                Exponent: 65537 (0x10001)
    //        X509v3 extensions:
    //            X509v3 Subject Key Identifier:
    //                20:31:54:1A:F2:5C:05:FF:D8:65:8B:68:43:79:4F:5E:90:36:F7:B4
    //            X509v3 Authority Key Identifier:
    //                keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55
    //                DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen
    //                serial:00
    //
    //            X509v3 Basic Constraints:
    //                CA:FALSE
    //            CT Precertificate SCTs:
    //                Signed Certificate Timestamp:
    //                    Version   : v1 (0x0)
    //                    Log ID    : DF:1C:2E:C1:15:00:94:52:47:A9:61:68:32:5D:DC:5C:
    //                                79:59:E8:F7:C6:D3:88:FC:00:2E:0B:BD:3F:74:D7:64
    //                    Timestamp : Apr  5 17:04:17.060 2013 GMT
    //                    Extensions: none
    //                    Signature : ecdsa-with-SHA256
    //                                30:45:02:21:00:A6:D3:45:17:F3:39:2D:9E:C5:D2:57:
    //                                AD:F1:C5:97:DC:45:BD:4C:D3:B7:38:56:C6:16:A9:FB:
    //                                99:E5:AE:75:A8:02:20:5E:26:C8:D1:C7:E2:22:FE:8C:
    //                                DA:29:BA:EB:04:A8:34:EE:97:D3:4F:D8:17:18:F1:AA:
    //                                E0:CD:66:F4:B8:A9:3F
    //    Signature Algorithm: sha1WithRSAEncryption
    //         af:28:89:06:38:b0:12:6f:dd:64:5d:d0:62:80:f8:10:6c:ec:
    //         49:4c:f8:22:86:0a:29:d4:f1:7e:6a:a5:7c:5a:58:b2:96:cc:
    //         90:c6:db:f1:22:10:4b:7f:4a:76:d6:fd:df:f2:1a:41:3a:9e:
    //         e7:88:7e:32:a3:c7:a2:07:3c:e6:af:ae:01:b4:1a:a2:3d:ce:
    //         98:f3:ab:5e:c7:5c:e7:59:fa:7c:cc:ab:4f:fa:7a:a7:3e:7d:
    //         98:38:77:c6:d0:f1:de:cd:dd:37:49:00:59:b7:91:90:b2:7f:
    //         85:94:2b:7c:c8:b2:3c:bf:90:30:68:5d:21:43:c4:95:a5:39:
    //         6d:9f
    TestInvalidEmbeddedCertPEM = "-----BEGIN CERTIFICATE-----\n" +
        "MIIDWTCCAsKgAwIBAgIBBzANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk\n" +
        "MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX\n" +
        "YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw\n" +
        "MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu\n" +
        "c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G\n" +
        "CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/\n" +
        "BH634c4VyVui+A7kWL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWk\n" +
        "EM2cW9tdSSdyba8XEPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWw\n" +
        "FAn/Xdh+tQIDAQABo4IBOjCCATYwHQYDVR0OBBYEFCAxVBryXAX/2GWLaEN5T16Q\n" +
        "Nve0MH0GA1UdIwR2MHSAFF+diA3Ic+ZU1PgN2OawwSS0R8NVoVmkVzBVMQswCQYD\n" +
        "VQQGEwJHQjEkMCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4w\n" +
        "DAYDVQQIEwVXYWxlczEQMA4GA1UEBxMHRXJ3IFdlboIBADAJBgNVHRMEAjAAMIGK\n" +
        "BgorBgEEAdZ5AgQCBHwEegB4AHYA3xwuwRUAlFJHqWFoMl3cXHlZ6PfG04j8AC4L\n" +
        "vT9012QAAAE92yfipAAABAMARzBFAiEAptNFF/M5LZ7F0let8cWX3EW9TNO3OFbG\n" +
        "Fqn7meWudagCIF4myNHH4iL+jNopuusEqDTul9NP2BcY8argzWb0uKk/MA0GCSqG\n" +
        "SIb3DQEBBQUAA4GBAK8oiQY4sBJv3WRd0GKA+BBs7ElM+CKGCinU8X5qpXxaWLKW\n" +
        "zJDG2/EiEEt/SnbW/d/yGkE6nueIfjKjx6IHPOavrgG0GqI9zpjzq17HXOdZ+nzM\n" +
        "q0/6eqc+fZg4d8bQ8d7N3TdJAFm3kZCyf4WUK3zIsjy/kDBoXSFDxJWlOW2f\n" +
        "-----END CERTIFICATE-----\n"
)

Hashes of text string 'abcd' with various algorithms; check with either "<alg>sum input" or "openssl dgst -<alg> input"

const (
    // AbcdMD5 is 'abcd' hashed with MD5
    AbcdMD5 = "e2fc714c4727ee9395f324cd2e7f331f"
    // AbcdSHA1 is 'abcd' hashed with SHA1
    AbcdSHA1 = "81fe8bfe87576c3ecb22426f8e57847382917acf"
    // AbcdSHA224 is 'abcd' hashed with SHA224
    AbcdSHA224 = "a76654d8e3550e9a2d67a0eeb6c67b220e5885eddd3fde135806e601"
    // AbcdSHA256 is 'abcd' hashed with SHA256
    AbcdSHA256 = "88d4266fd4e6338d13b845fcf289579d209c897823b9217da3e161936f031589"
    // AbcdSHA384 is 'abcd' hashed with SHA384
    AbcdSHA384 = "1165b3406ff0b52a3d24721f785462ca2276c9f454a116c2b2ba20171a7905ea5a026682eb659c4d5f115c363aa3c79b"
    // AbcdSHA512 is 'abcd' hashed with SHA512
    AbcdSHA512 = "d8022f2060ad6efd297ab73dcc5355c9b214054b0d1776a136a669d26a7d3b14f73aa0d0ebff19ee333368f0164b6419a96da49e3e481753e7e96b716bdccb6f"
)
const (
    // LogPublicKeyB64 is an ECDSA key copied from test/testdata/ct-server-key-public.pem
    LogPublicKeyB64 = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmXg8sUUzwBYaWrRb+V0IopzQ6o3UyEJ04r5ZrRXGdpYM8K+hB0pXrGRLI0eeWz+3skXrS0IO83AhA3GpRL6s6w=="

    // LogPublicKeyPEM is an ECDSA key copied from test/testdata/ct-server-key-public.pem
    LogPublicKeyPEM = "-----BEGIN PUBLIC KEY-----\n" +
        "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmXg8sUUzwBYaWrRb+V0IopzQ6o3U\n" +
        "yEJ04r5ZrRXGdpYM8K+hB0pXrGRLI0eeWz+3skXrS0IO83AhA3GpRL6s6w==\n" +
        "-----END PUBLIC KEY-----\n"

    // RsaPrivateKeyPEM was generated with:
    //    openssl genpkey -algorithm RSA -out rsa.privkey.pem -pkeyopt rsa_keygen_bits:2048
    RsaPrivateKeyPEM = "-----BEGIN PRIVATE KEY-----\n" +
        "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDP8SJM5SBIbFpF\n" +
        "dRAUEERo35E4iFXfT5SVAzBIqATkCpf3LfdFZgssPeliBdTtgdvT/CWC2m6aVXYZ\n" +
        "eScAJOauTpGDyJ7OXj7Yhx1q6u28NuQleU3UQK5QYb7VOjeIse7oTh+THf5IK5T5\n" +
        "esyh+ioybEYBXXMQetHc4YbXAq06crNT2BP+AxQ4z27xu4X5CKLwwVMa2xwMCFDC\n" +
        "Y7mxQzEhFv8+HbOtM0IQMSSyh6+o0w4Yzt6i/TUOytZb1D7WHOEMpVTd1CMbXjN0\n" +
        "tFZvoO0V+n0OV3oT1E5AvwujVguUJblQiapbL890/nZbBtP3xMoFLLhc7sX7N2vR\n" +
        "1wLWsjOVAgMBAAECggEBAL+frUZDV86l20JqsFhs7T3f2MnKCahyg7AWciZif69O\n" +
        "e+BTQa14bg9lNm8YhLIim1vs3vyJIqei3eR3mxMs7k/vI3XYKVBv1WZgjSF8QXzS\n" +
        "8Mf/01MoD/sPOHby4T5dCpaVd89xMmV7lBubqHwUN1KkKJcVcPXc2Qy94C6/zrcu\n" +
        "Vb7Q91ugTvvhyalWEN02M3tzHEn4cXrnMLWPmTgxb7YtTMRIbJFx2um7/W9G5D+1\n" +
        "ZtKMjwt+P/yXynx3Sa555MjjJ1/LUyMSbQZoLE0SGOigz1VQnP8nFlpvXUHzktiA\n" +
        "IBPBBQSsEoS8H3z6WThwY72O795/i2l5mf7EUUAa2/kCgYEA+W7tJPg69KWHKn6E\n" +
        "gGZKIDTxvp3vRxjLedp7D7cu6bVPCBVIHrPQdmp/mneY6x7Air0a9gCVbh32iCrm\n" +
        "UrSBCio4i6jtqtna2T1Gc0z63K3UrVQPR0Z6Swq1XDOI6/I23ibxPr12/XXWWYlA\n" +
        "wkPwvewJVrjtMoP1dkAKVbyzImcCgYEA1WqS0xg7BL4iNGFPrrSme2blZOgga83x\n" +
        "CtY9dnWAs0IvdxsuItCDaFVJm3oU18ohirEMzqZvbRlwMlUawpd75hCNWyVF4cRo\n" +
        "+l1RvzOlC/7QXX/E+Kv7sTEUYH7hJyS46QhOtC1/ndAyObk9c2VNJmERfMwIHNm9\n" +
        "BfSN8yrq1KMCgYEA94fCZPbGIvSFj4EgYv+fvhhscvrucsLDYniTuUPTlXAtLttX\n" +
        "x8gwLuN/ID5hjarl7oi90bVAlZe8iOLx0M96YykFFmuc9/jcOsuZN2EEbq0/KocJ\n" +
        "5nSldgT5d7dYwLWNB6bjr5x8Egm3nwEbN+4OYZt0pRA9q+zSUfg5iV4K8y8CgYA7\n" +
        "S9YposTbJ3zXcuYx022iQc+gvsIrUdgUO7xuCm3M4KnRfRLPh4HLXk8KTNw3rKiv\n" +
        "IUw+qo2xEW1T/sNlp7M8FANCfNOyy+CjF4ScDFxiPdVk9RgkQ5y1+b4ApaAnQRPD\n" +
        "Y5SCiVW44lziHu7M/it2a2fxdbsXUQQtAGrkUltW4wKBgAPZyEGi4V2wryOswmkC\n" +
        "I29TbC6ChnUOvqJfSfz536eIi41D1Ua2Y/VlAK1ud7K8ilr/M4VoRjHqbPivR1Uk\n" +
        "RU7nO3cWRBuDBjgZWeAq5WFIMPbm9gRlaTECI6EFtAOI1GcHOsOBecd3PBiQNXvj\n" +
        "YyGD1wSrHQwDcnxtP1rqEQDV\n" +
        "-----END PRIVATE KEY-----\n"

    // RsaPublicKeyPEM was generated from above with:
    //    openssl rsa -pubout -in rsa.privkey.pem -out rsa.pubkey.pem
    RsaPublicKeyPEM = "-----BEGIN PUBLIC KEY-----\n" +
        "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz/EiTOUgSGxaRXUQFBBE\n" +
        "aN+ROIhV30+UlQMwSKgE5AqX9y33RWYLLD3pYgXU7YHb0/wlgtpumlV2GXknACTm\n" +
        "rk6Rg8iezl4+2IcdaurtvDbkJXlN1ECuUGG+1To3iLHu6E4fkx3+SCuU+XrMofoq\n" +
        "MmxGAV1zEHrR3OGG1wKtOnKzU9gT/gMUOM9u8buF+Qii8MFTGtscDAhQwmO5sUMx\n" +
        "IRb/Ph2zrTNCEDEksoevqNMOGM7eov01DsrWW9Q+1hzhDKVU3dQjG14zdLRWb6Dt\n" +
        "Ffp9Dld6E9ROQL8Lo1YLlCW5UImqWy/PdP52WwbT98TKBSy4XO7F+zdr0dcC1rIz\n" +
        "lQIDAQAB\n" +
        "-----END PUBLIC KEY-----\n"

    // RsaSignedAbcdHex was generated with:
    //    echo -n "abcd" > sign.input
    //    openssl sha256 -sign rsa.privkey.pem -out sign.rsa sign.input
    // Verify with:
    //    openssl sha256 -verify rsa.pubkey.pem -signature sign.rsa sign.input
    RsaSignedAbcdHex = "4692f17adad62324a38a786d9b05eb7facf95c277729bc23e8d4f4fe25c0ac0e" +
        "9115f14ffd4dc6c00e6b2717677e96ed4da9e2226745db5c2d14ec8b4f96959e" +
        "a43ca73e3ab801d4e76b0c0599c741b9701dd0c22b20cc7a294fccce97d2eda2" +
        "72448830a19b0b1075f962d3bcf65922f81f4747dde1a2883ffce12941927af6" +
        "25549ea7b4f745a95f5558822af434cc7471ea5a21cce656a7667d29bff3e6f2" +
        "fb3d48bbee1a60116f0dd429d5691b008482e9ec42538bcf2692e1a685e836c8" +
        "49316fb3c49b58bd5a0c33f0256b09d59af08a018fe64cd31051cb9e9a1d3fde" +
        "e186bd80bfe304abbbec2ac18d3bee09465cb69f2638728aba4b9886a252768a"

    // DsaPrivateKeyPEM was generated with:
    //    openssl dsaparam -out dsa.param.pem 2048; openssl gendsa dsa.param.pem -out dsa.privkey.pem
    DsaPrivateKeyPEM = "-----BEGIN DSA PRIVATE KEY-----\n" +
        "MIIDVwIBAAKCAQEA3Q72qQc0ZM2eUjvZ/XOROQTbhmjzuZdzY7kd+82n54NPeqVz\n" +
        "+FWmk26INd7pUNbn/TjniN5+pC2pK+p9alFLE19bOvsY4x7Ugwrpd9sQIea3W4Q7\n" +
        "H9PaEW+BooFzT/feC9TmnU0ynwoNhZB33Cr3k3PFt/69lmyrkd91wTpXrstrQurU\n" +
        "h4baL5l6t2/JT3TxpKx6xe19hWqqFsBLu/j+kE2o2Aw1TVLHg4/74TJLfqAkWnCI\n" +
        "u9QL0uGQnW80kRfJnT+tUJXrXMpg1HxK7CsDEW5xsAWF370Is0UPaP7jRru6FiSN\n" +
        "ObcVhSqCIs+QJIWie9cRtwniwhoi4z6AfGeEYQIhAOkSzAsWja1fwB486/LCW+zv\n" +
        "DJKiCGLTalimfawzHQHFAoIBAQDJvCujEZ/WeQFLlP/0zS+2DjqdaxnKj1xuXfoL\n" +
        "LOocvMw06dnrQNmDu/nBQiYSfzf7zjwpnx+AVjBQssK0jXs0l7gw52FyCIztDejT\n" +
        "/ybMVudwKUGudxAEjOclOSQ7XVpPd4p3UMy+E6pkJ8VRiuNFDibYTD+O3XhFTj2l\n" +
        "6LqV/KcB2fWV1fUqfxax2vpcwe4clTJbJXUgJC3mYmUXv1U6z0hliDz2WMhbOyea\n" +
        "1fs31zYvIMyk2wJFJl7+EbXb8BgYcQt1FE4c14fuFnincAW0So+xBZ5DtiTja4lm\n" +
        "DE0OAI2hhLslSQ7rGwWt2zIKSFLtsWf78CP1wigJvWcUVhazAoIBAFAhxgtOaV8G\n" +
        "FJxs6A3TtXEmmrq3i5/w3/8l7skWamcHvcwrvw37g5KQY+N+85JZszHPjmUzEq/o\n" +
        "NOLjF6zq7+oRtWbOR3Mvc2hHsHg86tE/HAkBIu2G73c9UuskzGSMec4F6TyWKHvC\n" +
        "26F2cvu9aA42v/8q1d/QQs3+LrtARGhyFCqnBVNSZmZj5ngR0kLGUfs/LQklpGFe\n" +
        "VciXK57RxHSPo15lnKiHW9kCte7tGEg9Eber8paMz67dQDuj1yRkS5H7JXqRZjIP\n" +
        "UrICWGGk1vluQsuoyI/Nu8/tL7Im24xZH6XHBm4F+aijl9XlAJiKXfkCLIaxYSdc\n" +
        "4PXquTwtRLICIQCijrpD+UhidGFLPZCCLzBC239PrP7PabSVurWXHh5iYw==\n" +
        "-----END DSA PRIVATE KEY-----\n"

    // DsaPrivateKeyPKCS8PEM is a copy of the private key above, encoded in PKCS#8 format.
    // Generated from above with:
    //    openssl pkcs8 -topk8 -nocrypt -in dsa.privkey.pem -out dsa.privkey.pkcs8.pem
    DsaPrivateKeyPKCS8PEM = "-----BEGIN PRIVATE KEY-----\n" +
        "MIICZgIBADCCAjoGByqGSM44BAEwggItAoIBAQDdDvapBzRkzZ5SO9n9c5E5BNuG\n" +
        "aPO5l3NjuR37zafng096pXP4VaaTbog13ulQ1uf9OOeI3n6kLakr6n1qUUsTX1s6\n" +
        "+xjjHtSDCul32xAh5rdbhDsf09oRb4GigXNP994L1OadTTKfCg2FkHfcKveTc8W3\n" +
        "/r2WbKuR33XBOleuy2tC6tSHhtovmXq3b8lPdPGkrHrF7X2FaqoWwEu7+P6QTajY\n" +
        "DDVNUseDj/vhMkt+oCRacIi71AvS4ZCdbzSRF8mdP61QletcymDUfErsKwMRbnGw\n" +
        "BYXfvQizRQ9o/uNGu7oWJI05txWFKoIiz5AkhaJ71xG3CeLCGiLjPoB8Z4RhAiEA\n" +
        "6RLMCxaNrV/AHjzr8sJb7O8MkqIIYtNqWKZ9rDMdAcUCggEBAMm8K6MRn9Z5AUuU\n" +
        "//TNL7YOOp1rGcqPXG5d+gss6hy8zDTp2etA2YO7+cFCJhJ/N/vOPCmfH4BWMFCy\n" +
        "wrSNezSXuDDnYXIIjO0N6NP/JsxW53ApQa53EASM5yU5JDtdWk93indQzL4TqmQn\n" +
        "xVGK40UOJthMP47deEVOPaXoupX8pwHZ9ZXV9Sp/FrHa+lzB7hyVMlsldSAkLeZi\n" +
        "ZRe/VTrPSGWIPPZYyFs7J5rV+zfXNi8gzKTbAkUmXv4RtdvwGBhxC3UUThzXh+4W\n" +
        "eKdwBbRKj7EFnkO2JONriWYMTQ4AjaGEuyVJDusbBa3bMgpIUu2xZ/vwI/XCKAm9\n" +
        "ZxRWFrMEIwIhAKKOukP5SGJ0YUs9kIIvMELbf0+s/s9ptJW6tZceHmJj\n" +
        "-----END PRIVATE KEY-----\n"

    // DsaPublicKeyPEM was generated from above with:
    //    openssl dsa -in dsa.privkey.pem -pubout -out dsa.pubkey.pem
    DsaPublicKeyPEM = "-----BEGIN PUBLIC KEY-----\n" +
        "MIIDRzCCAjoGByqGSM44BAEwggItAoIBAQDdDvapBzRkzZ5SO9n9c5E5BNuGaPO5\n" +
        "l3NjuR37zafng096pXP4VaaTbog13ulQ1uf9OOeI3n6kLakr6n1qUUsTX1s6+xjj\n" +
        "HtSDCul32xAh5rdbhDsf09oRb4GigXNP994L1OadTTKfCg2FkHfcKveTc8W3/r2W\n" +
        "bKuR33XBOleuy2tC6tSHhtovmXq3b8lPdPGkrHrF7X2FaqoWwEu7+P6QTajYDDVN\n" +
        "UseDj/vhMkt+oCRacIi71AvS4ZCdbzSRF8mdP61QletcymDUfErsKwMRbnGwBYXf\n" +
        "vQizRQ9o/uNGu7oWJI05txWFKoIiz5AkhaJ71xG3CeLCGiLjPoB8Z4RhAiEA6RLM\n" +
        "CxaNrV/AHjzr8sJb7O8MkqIIYtNqWKZ9rDMdAcUCggEBAMm8K6MRn9Z5AUuU//TN\n" +
        "L7YOOp1rGcqPXG5d+gss6hy8zDTp2etA2YO7+cFCJhJ/N/vOPCmfH4BWMFCywrSN\n" +
        "ezSXuDDnYXIIjO0N6NP/JsxW53ApQa53EASM5yU5JDtdWk93indQzL4TqmQnxVGK\n" +
        "40UOJthMP47deEVOPaXoupX8pwHZ9ZXV9Sp/FrHa+lzB7hyVMlsldSAkLeZiZRe/\n" +
        "VTrPSGWIPPZYyFs7J5rV+zfXNi8gzKTbAkUmXv4RtdvwGBhxC3UUThzXh+4WeKdw\n" +
        "BbRKj7EFnkO2JONriWYMTQ4AjaGEuyVJDusbBa3bMgpIUu2xZ/vwI/XCKAm9ZxRW\n" +
        "FrMDggEFAAKCAQBQIcYLTmlfBhScbOgN07VxJpq6t4uf8N//Je7JFmpnB73MK78N\n" +
        "+4OSkGPjfvOSWbMxz45lMxKv6DTi4xes6u/qEbVmzkdzL3NoR7B4POrRPxwJASLt\n" +
        "hu93PVLrJMxkjHnOBek8lih7wtuhdnL7vWgONr//KtXf0ELN/i67QERochQqpwVT\n" +
        "UmZmY+Z4EdJCxlH7Py0JJaRhXlXIlyue0cR0j6NeZZyoh1vZArXu7RhIPRG3q/KW\n" +
        "jM+u3UA7o9ckZEuR+yV6kWYyD1KyAlhhpNb5bkLLqMiPzbvP7S+yJtuMWR+lxwZu\n" +
        "Bfmoo5fV5QCYil35AiyGsWEnXOD16rk8LUSy\n" +
        "-----END PUBLIC KEY-----\n"

    // DsaSignedAbcdHex was generated with:
    //    echo -n "abcd" > sign.input
    //    openssl dgst -dss1 -sign dsa.privkey.pem -out sign.dsa sign.input
    // Note that this includes randomization so will give different results each time.
    // Verify with:
    //    openssl dgst -dss1 -verify dsa.pubkey.pem -signature sign.dsa sign.input
    DsaSignedAbcdHex = "3045022100c287211dec54eab597ed5264f6fdf57faf651909914c533d42f0e3" +
        "2809e9141402205f34cc4b8ca12ebdf025bf36bbe1ff7d807d4cfe951ac1329a" +
        "35a39f5e971f10"

    // EcdsaPrivateKeyPEM was generated with:
    //    openssl ecparam -genkey -name prime256v1 -noout -out ecdsa.privkey.pem
    EcdsaPrivateKeyPEM = "-----BEGIN EC PRIVATE KEY-----\n" +
        "MHcCAQEEIHg0hg3vLqLVI7wv2y0cCk+kmwuwoKsMZqzqbjqP1AtjoAoGCCqGSM49\n" +
        "AwEHoUQDQgAEjHs6Rw7KFt8Wd2ZcioZi7eZY5nodUXMnCWUhZzsGVsPaexqUyPSr\n" +
        "9cQgrCe7MPRLJ524AO6rREqfs7FKt85++A==\n" +
        "-----END EC PRIVATE KEY-----\n"

    // EcdsaPrivateKeyPKCS8PEM is a copy of the private key above, encoded in PKCS#8 format.
    // Generated from above with:
    //    openssl pkcs8 -topk8 -nocrypt -in ecdsa.privkey.pem -out ecdsa.privkey.pkcs8.pem
    EcdsaPrivateKeyPKCS8PEM = "-----BEGIN PRIVATE KEY-----\n" +
        "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeDSGDe8uotUjvC/b\n" +
        "LRwKT6SbC7CgqwxmrOpuOo/UC2OhRANCAASMezpHDsoW3xZ3ZlyKhmLt5ljmeh1R\n" +
        "cycJZSFnOwZWw9p7GpTI9Kv1xCCsJ7sw9EsnnbgA7qtESp+zsUq3zn74\n" +
        "-----END PRIVATE KEY-----\n"

    // EcdsaPublicKeyPEM was generated from above with:
    //    openssl ec -in ecdsa.privkey.pem -pubout -out ecdsa.pubkey.pem
    EcdsaPublicKeyPEM = "-----BEGIN PUBLIC KEY-----\n" +
        "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjHs6Rw7KFt8Wd2ZcioZi7eZY5nod\n" +
        "UXMnCWUhZzsGVsPaexqUyPSr9cQgrCe7MPRLJ524AO6rREqfs7FKt85++A==\n" +
        "-----END PUBLIC KEY-----\n"

    // EcdsaSignedAbcdHex was generated with:
    //    echo -n "abcd" > sign.input
    //    openssl dgst -sha256 -sign ecdsa.privkey.pem -out sign.ecdsa sign.input
    // Note that this includes randomization so will give different results each time.
    // Verify with:
    //    openssl dgst -sha256 -verify ecdsa.pubkey.pem -signature sign.ecdsa sign.input
    EcdsaSignedAbcdHex = "304502202e0204dadf2baa35e426b66ab8cd32a9ba33421187645a9110512e3e" +
        "d1b8007b022100ae83f5f993ab3af6f46bb09b4f15d07cc582b03e1353879ada" +
        "ce68796fe537e5"
)

Variables

var (
    // TestCertProof is a TLS-encoded ct.SignedCertificateTimestamp corresponding
    // to TestCertPEM.
    TestCertProof = dh("00df1c2ec11500945247a96168325ddc5c7959e8f7c6d388fc002e0bbd3f74d7" +
        "640000013ddb27ded900000403004730450220606e10ae5c2d5a1b0aed49dc49" +
        "37f48de71a4e9784e9c208dfbfe9ef536cf7f2022100beb29c72d7d06d61d06b" +
        "db38a069469aa86fe12e18bb7cc45689a2c0187ef5a5")

    // TestPreCertProof is a TLS-encoded ct.SignedCertificateTimestamp
    // corresponding to TestPreCertPEM
    TestPreCertProof = dh("00df1c2ec11500945247a96168325ddc5c7959e8f7c6d388fc002e0bbd3f74d7" +
        "640000013ddb27df9300000403004730450220482f6751af35dba65436be1fd6" +
        "640f3dbf9a41429495924530288fa3e5e23e06022100e4edc0db3ac572b1e2f5" +
        "e8ab6a680653987dcf41027dfeffa105519d89edbf08")

    // TestInvalidProof is a TLS-encoded ct.SignedCertificateTimestamp
    // corresponding to the invalid SCT embedded in TestInvalidEmbeddedCertPEM.
    TestInvalidProof = dh("00df1c2ec11500945247a96168325ddc5c7959e8f7c6d388fc002e0bbd3f74d7" +
        "640000013ddb27e2a40000040300473045022100a6d34517f3392d9ec5d257ad" +
        "f1c597dc45bd4cd3b73856c616a9fb99e5ae75a802205e26c8d1c7e222fe8cda" +
        "29baeb04a834ee97d34fd81718f1aae0cd66f4b8a93f")

    // TestCertB64LeafHash is the base64-encoded leaf hash of TestCertPEM with
    // TestCertProof as the corresponding SCT.
    TestCertB64LeafHash = "BKZLZGMbAnDW0gQWjNJNCyS2IgweWn76YW3tFlu3AuY="

    // TestPreCertB64LeafHash is the base64-encoded leaf hash of TestPreCertPEM
    // with TestPreCertProof as the corresponding SCT.
    TestPreCertB64LeafHash = "mbk+d5FDW3oNZJCbOi828rqC3hf+qhigTWVGcXEZq1U="
)
var SampleLogList3 string

func FromHex

func FromHex(hexdata string) []byte

FromHex decodes a hex string to a byte array, and panics on error; only suitable for use in test code.