Skip to content

Commit 9565328

Browse files
committed
generate new chain with intermediate
1 parent 1a21c54 commit 9565328

6 files changed

+221
-3
lines changed

internal/testdata/certificates.go

Lines changed: 157 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ package testdata
1616

1717
import _ "embed"
1818

19-
// This file holds test certificates. It contain five issuance chains.
19+
// This file holds test certificates. It contains six issuance chains.
2020
// TODO(phboneff): clean this and make use of a single chain if possible.
2121

2222
// Issuance chain 1
@@ -287,6 +287,160 @@ var PreCertFromPreIntermediate string
287287

288288
// Issuance chain 3
289289
// ================
290+
// The next section holds:
291+
// - an intermediate with signed with the root above.
292+
// - a pre-cert issued by this intermediate
293+
// - a cert issued by this intermediate
294+
//
295+
// IntermediateFromRoot is an intermedidate cert signed by the root above.
296+
//
297+
// Certificate:
298+
//
299+
// Data:
300+
// Version: 3 (0x2)
301+
// Serial Number: 2 (0x2)
302+
// Signature Algorithm: ecdsa-with-SHA384
303+
// Issuer: C=GB, O=TrustFabric Transparency.dev Test Root Test CA, CN=TrustFabric Transparency.dev Test Root Test CA
304+
// Validity
305+
// Not Before: Dec 5 18:05:50 2024 GMT
306+
// Not After : Dec 5 18:05:50 2029 GMT
307+
// Subject: C=GB, O=TrustFabric Transparency.dev Test Intermediate Test CA, CN=TrustFabric Transparency.dev Test Intermediate Test CA
308+
// Subject Public Key Info:
309+
// Public Key Algorithm: id-ecPublicKey
310+
// Public-Key: (384 bit)
311+
// pub:
312+
// 04:c6:3b:93:72:73:76:1b:f6:16:f6:93:2b:22:c0:
313+
// 1d:8e:e3:c9:1a:64:b8:42:58:0e:72:0a:38:49:84:
314+
// d2:d3:e7:23:52:ee:9d:8a:28:65:73:2e:2e:7e:05:
315+
// 1c:d5:4f:5b:42:37:e3:bb:8f:54:3d:68:a9:c3:07:
316+
// 31:aa:4a:cc:8b:93:d6:a4:31:b2:8e:d0:aa:56:3b:
317+
// 49:ed:07:d3:36:ff:17:50:ad:6d:65:d7:5d:76:70:
318+
// d5:08:f2:95:e0:11:0c
319+
// ASN1 OID: secp384r1
320+
// NIST CURVE: P-384
321+
// X509v3 extensions:
322+
// X509v3 Key Usage: critical
323+
// Certificate Sign, CRL Sign
324+
// X509v3 Basic Constraints: critical
325+
// CA:TRUE
326+
// X509v3 Subject Key Identifier:
327+
// A0:D7:2B:CF:08:6F:C0:07:39:9B:C5:A9:87:1D:F7:CC:7D:6B:6F:29
328+
// X509v3 Authority Key Identifier:
329+
// 77:1D:7C:21:61:2D:C2:05:7D:AA:30:1E:6B:7F:8F:9B:DC:61:20:68
330+
// Signature Algorithm: ecdsa-with-SHA384
331+
// Signature Value:
332+
// 30:65:02:30:13:7b:99:45:f5:f5:c2:8b:bf:b4:83:8c:10:27:
333+
// 5e:50:a7:05:c0:61:8a:50:3f:76:2e:ec:88:71:d7:a7:a1:46:
334+
// 56:3b:3a:bc:e7:74:22:94:56:91:95:80:a5:a1:43:08:02:31:
335+
// 00:81:a0:12:84:45:6f:35:b3:3d:9b:98:ca:28:33:d2:b9:bf:
336+
// 8b:82:f7:a9:77:ee:2e:9f:90:0f:36:00:3e:c8:63:4c:1c:6c:
337+
// de:e8:79:1a:32:44:4a:4e:47:6e:af:a3:24
338+
//
339+
//go:embed test_intermediate_ca_cert.pem
340+
var IntermediateFromRoot string
341+
342+
// CertFromIntermediate is a leaf cert signed by the intermediate above.
343+
//
344+
// Certificate:
345+
//
346+
// Data:
347+
// Version: 3 (0x2)
348+
// Serial Number: 100 (0x64)
349+
// Signature Algorithm: ecdsa-with-SHA384
350+
// Issuer: C=GB, O=TrustFabric Transparency.dev Test Intermediate Test CA, CN=TrustFabric Transparency.dev Test Intermediate Test CA
351+
// Validity
352+
// Not Before: Dec 5 18:05:50 2024 GMT
353+
// Not After : Dec 5 18:05:50 2025 GMT
354+
// Subject: C=GB, ST=London, L=London, O=TrustFabric Transparency.dev Test, OU=TrustFabric, CN=test.transparency.dev
355+
// Subject Public Key Info:
356+
// Public Key Algorithm: id-ecPublicKey
357+
// Public-Key: (384 bit)
358+
// pub:
359+
// 04:f4:15:a1:50:6c:d3:96:ad:9c:a0:f6:c0:90:4f:
360+
// 05:13:64:2d:bf:2f:7a:86:4e:c8:25:c3:7d:9e:6f:
361+
// c3:44:b6:29:98:01:f4:d5:06:58:c9:cc:82:21:79:
362+
// 97:88:3f:af:4c:bd:93:92:39:08:18:5f:81:c4:0b:
363+
// a0:ea:83:f8:6d:81:9a:68:20:bf:ad:2c:9b:1f:02:
364+
// 08:cc:c2:16:a3:18:92:62:fa:b5:b0:da:ba:8b:98:
365+
// 89:0a:d1:8c:65:3f:62
366+
// ASN1 OID: secp384r1
367+
// NIST CURVE: P-384
368+
// X509v3 extensions:
369+
// X509v3 Key Usage: critical
370+
// Digital Signature, Key Encipherment
371+
// X509v3 Extended Key Usage:
372+
// TLS Web Server Authentication
373+
// X509v3 Basic Constraints: critical
374+
// CA:FALSE
375+
// X509v3 Authority Key Identifier:
376+
// A0:D7:2B:CF:08:6F:C0:07:39:9B:C5:A9:87:1D:F7:CC:7D:6B:6F:29
377+
// X509v3 Subject Alternative Name:
378+
// DNS:test.transparency.dev
379+
// Signature Algorithm: ecdsa-with-SHA384
380+
// Signature Value:
381+
// 30:66:02:31:00:fd:08:f9:21:b5:a6:e0:32:aa:d0:aa:e2:07:
382+
// 9c:fd:cc:26:b5:9a:bc:27:60:4f:ea:52:76:9f:cd:5c:23:b0:
383+
// fd:9e:5d:e9:73:a4:8a:1a:b5:b7:12:c2:69:e7:f1:bd:eb:02:
384+
// 31:00:af:09:6b:61:78:6c:14:a3:9d:bd:e4:bf:91:43:a2:98:
385+
// a2:50:27:5d:2c:df:12:38:cd:b7:3d:d6:73:69:3a:5d:54:9c:
386+
// 58:63:35:3c:39:78:26:37:08:75:3f:4b:fb:68
387+
//
388+
//go:embed test_leaf_cert_signed_by_intermediate.pem
389+
var CertFromIntermediate string
390+
391+
// PreCertFromIntrmediate is a pre-cert signed by the intermediate above.
392+
//
393+
// Certificate:
394+
//
395+
// Data:
396+
// Version: 3 (0x2)
397+
// Serial Number: 200 (0xc8)
398+
// Signature Algorithm: ecdsa-with-SHA384
399+
// Issuer: C=GB, O=TrustFabric Transparency.dev Test Intermediate Test CA, CN=TrustFabric Transparency.dev Test Intermediate Test CA
400+
// Validity
401+
// Not Before: Dec 5 18:05:50 2024 GMT
402+
// Not After : Dec 5 18:05:50 2025 GMT
403+
// Subject: C=GB, ST=London, L=London, O=TrustFabric Transparency.dev Test, OU=TrustFabric, CN=test.transparency.dev
404+
// Subject Public Key Info:
405+
// Public Key Algorithm: id-ecPublicKey
406+
// Public-Key: (384 bit)
407+
// pub:
408+
// 04:f4:15:a1:50:6c:d3:96:ad:9c:a0:f6:c0:90:4f:
409+
// 05:13:64:2d:bf:2f:7a:86:4e:c8:25:c3:7d:9e:6f:
410+
// c3:44:b6:29:98:01:f4:d5:06:58:c9:cc:82:21:79:
411+
// 97:88:3f:af:4c:bd:93:92:39:08:18:5f:81:c4:0b:
412+
// a0:ea:83:f8:6d:81:9a:68:20:bf:ad:2c:9b:1f:02:
413+
// 08:cc:c2:16:a3:18:92:62:fa:b5:b0:da:ba:8b:98:
414+
// 89:0a:d1:8c:65:3f:62
415+
// ASN1 OID: secp384r1
416+
// NIST CURVE: P-384
417+
// X509v3 extensions:
418+
// X509v3 Key Usage: critical
419+
// Digital Signature, Key Encipherment
420+
// X509v3 Extended Key Usage:
421+
// TLS Web Server Authentication
422+
// X509v3 Basic Constraints: critical
423+
// CA:FALSE
424+
// X509v3 Authority Key Identifier:
425+
// A0:D7:2B:CF:08:6F:C0:07:39:9B:C5:A9:87:1D:F7:CC:7D:6B:6F:29
426+
// X509v3 Subject Alternative Name:
427+
// DNS:test.transparency.dev
428+
// CT Precertificate Poison: critical
429+
// NULL
430+
// Signature Algorithm: ecdsa-with-SHA384
431+
// Signature Value:
432+
// 30:64:02:30:51:d4:2e:f7:e0:50:06:e5:a5:97:1c:d2:f9:4f:
433+
// 6e:c2:3b:e0:db:59:16:db:8d:1b:a8:c4:c6:b8:0a:4f:a3:0d:
434+
// 38:43:72:d7:f8:e6:60:e3:b8:44:f2:1f:37:56:30:cb:02:30:
435+
// 13:62:9c:60:c9:57:d1:b9:e0:43:f7:cf:2c:99:eb:04:84:f7:
436+
// de:af:fd:d6:1a:63:90:14:4c:53:40:dd:28:0b:aa:69:59:87:
437+
// 78:8b:65:9e:00:63:75:7a:4c:a0:9f:ca
438+
//
439+
//go:embed test_leaf_pre_cert_signed_by_intermediate.pem
440+
var PreCertFromIntermediate string
441+
442+
// Issuance chain 4
443+
// ================
290444
// The next section holds a self signed root, an intermediate, and a leaf cert.
291445
//
292446
// FakeCACertPEM is a test CA cert for testing.
@@ -574,7 +728,7 @@ D0XUxs5PIdZZGInfeqymk5feReWHBuPHpPIUObKxmQt+hcw6YsHE+0B84Xtx9BMe
574728
INV6z0j7hKQ6MPpE
575729
-----END CERTIFICATE-----`
576730

577-
// Issuance chain 4
731+
// Issuance chain 5
578732
// ================
579733
// The next section holds a self signed root, intermediate certs
580734
// with various policy constraints, and a leaf cert.
@@ -864,7 +1018,7 @@ Brd3sq2ogxuDOGReOiVR6VcfAFNy2wgRZT30AiEAoU5dtZqLEG4Voyq92YCRlnwa
8641018
T4+R3ESfE/9X8F7OMjQ=
8651019
-----END CERTIFICATE-----`
8661020

867-
// Issuance chain 5
1021+
// Issuance chain 6
8681022
// ================
8691023
// The next section holds a real world intermediate and leaf cert.
8701024

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICnjCCAiSgAwIBAgIBAjAKBggqhkjOPQQDAzB/MQswCQYDVQQGEwJHQjE3MDUG
3+
A1UEChMuVHJ1c3RGYWJyaWMgVHJhbnNwYXJlbmN5LmRldiBUZXN0IFJvb3QgVGVz
4+
dCBDQTE3MDUGA1UEAxMuVHJ1c3RGYWJyaWMgVHJhbnNwYXJlbmN5LmRldiBUZXN0
5+
IFJvb3QgVGVzdCBDQTAeFw0yNDEyMDUxODA1NTBaFw0yOTEyMDUxODA1NTBaMIGP
6+
MQswCQYDVQQGEwJHQjE/MD0GA1UEChM2VHJ1c3RGYWJyaWMgVHJhbnNwYXJlbmN5
7+
LmRldiBUZXN0IEludGVybWVkaWF0ZSBUZXN0IENBMT8wPQYDVQQDEzZUcnVzdEZh
8+
YnJpYyBUcmFuc3BhcmVuY3kuZGV2IFRlc3QgSW50ZXJtZWRpYXRlIFRlc3QgQ0Ew
9+
djAQBgcqhkjOPQIBBgUrgQQAIgNiAATGO5Nyc3Yb9hb2kysiwB2O48kaZLhCWA5y
10+
CjhJhNLT5yNS7p2KKGVzLi5+BRzVT1tCN+O7j1Q9aKnDBzGqSsyLk9akMbKO0KpW
11+
O0ntB9M2/xdQrW1l1112cNUI8pXgEQyjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNV
12+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBSg1yvPCG/ABzmbxamHHffMfWtvKTAfBgNV
13+
HSMEGDAWgBR3HXwhYS3CBX2qMB5rf4+b3GEgaDAKBggqhkjOPQQDAwNoADBlAjAT
14+
e5lF9fXCi7+0g4wQJ15QpwXAYYpQP3Yu7Ihx16ehRlY7OrzndCKUVpGVgKWhQwgC
15+
MQCBoBKERW81sz2bmMooM9K5v4uC96l37i6fkA82AD7IY0wcbN7oeRoyREpOR26v
16+
oyQ=
17+
-----END CERTIFICATE-----
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-----BEGIN EC TESTING KEY-----
2+
MIGkAgEBBDAt9q5L9HVyGisV6UZOu6KzbDGlrFBXrjgSq2GLvBurZcFMFNmvfYRG
3+
sSGFjqutR06gBwYFK4EEACKhZANiAATGO5Nyc3Yb9hb2kysiwB2O48kaZLhCWA5y
4+
CjhJhNLT5yNS7p2KKGVzLi5+BRzVT1tCN+O7j1Q9aKnDBzGqSsyLk9akMbKO0KpW
5+
O0ntB9M2/xdQrW1l1112cNUI8pXgEQw=
6+
-----END EC TESTING KEY-----
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICxzCCAkygAwIBAgIBZDAKBggqhkjOPQQDAzCBjzELMAkGA1UEBhMCR0IxPzA9
3+
BgNVBAoTNlRydXN0RmFicmljIFRyYW5zcGFyZW5jeS5kZXYgVGVzdCBJbnRlcm1l
4+
ZGlhdGUgVGVzdCBDQTE/MD0GA1UEAxM2VHJ1c3RGYWJyaWMgVHJhbnNwYXJlbmN5
5+
LmRldiBUZXN0IEludGVybWVkaWF0ZSBUZXN0IENBMB4XDTI0MTIwNTE4MDU1MFoX
6+
DTI1MTIwNTE4MDU1MFowgZExCzAJBgNVBAYTAkdCMQ8wDQYDVQQIEwZMb25kb24x
7+
DzANBgNVBAcTBkxvbmRvbjEqMCgGA1UEChMhVHJ1c3RGYWJyaWMgVHJhbnNwYXJl
8+
bmN5LmRldiBUZXN0MRQwEgYDVQQLEwtUcnVzdEZhYnJpYzEeMBwGA1UEAxMVdGVz
9+
dC50cmFuc3BhcmVuY3kuZGV2MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE9BWhUGzT
10+
lq2coPbAkE8FE2Qtvy96hk7IJcN9nm/DRLYpmAH01QZYycyCIXmXiD+vTL2TkjkI
11+
GF+BxAug6oP4bYGaaCC/rSybHwIIzMIWoxiSYvq1sNq6i5iJCtGMZT9io3gwdjAO
12+
BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIw
13+
ADAfBgNVHSMEGDAWgBSg1yvPCG/ABzmbxamHHffMfWtvKTAgBgNVHREEGTAXghV0
14+
ZXN0LnRyYW5zcGFyZW5jeS5kZXYwCgYIKoZIzj0EAwMDaQAwZgIxAP0I+SG1puAy
15+
qtCq4gec/cwmtZq8J2BP6lJ2n81cI7D9nl3pc6SKGrW3EsJp5/G96wIxAK8Ja2F4
16+
bBSjnb3kv5FDopiiUCddLN8SOM23PdZzaTpdVJxYYzU8OXgmNwh1P0v7aA==
17+
-----END CERTIFICATE-----
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIC3TCCAmSgAwIBAgICAMgwCgYIKoZIzj0EAwMwgY8xCzAJBgNVBAYTAkdCMT8w
3+
PQYDVQQKEzZUcnVzdEZhYnJpYyBUcmFuc3BhcmVuY3kuZGV2IFRlc3QgSW50ZXJt
4+
ZWRpYXRlIFRlc3QgQ0ExPzA9BgNVBAMTNlRydXN0RmFicmljIFRyYW5zcGFyZW5j
5+
eS5kZXYgVGVzdCBJbnRlcm1lZGlhdGUgVGVzdCBDQTAeFw0yNDEyMDUxODA1NTBa
6+
Fw0yNTEyMDUxODA1NTBaMIGRMQswCQYDVQQGEwJHQjEPMA0GA1UECBMGTG9uZG9u
7+
MQ8wDQYDVQQHEwZMb25kb24xKjAoBgNVBAoTIVRydXN0RmFicmljIFRyYW5zcGFy
8+
ZW5jeS5kZXYgVGVzdDEUMBIGA1UECxMLVHJ1c3RGYWJyaWMxHjAcBgNVBAMTFXRl
9+
c3QudHJhbnNwYXJlbmN5LmRldjB2MBAGByqGSM49AgEGBSuBBAAiA2IABPQVoVBs
10+
05atnKD2wJBPBRNkLb8veoZOyCXDfZ5vw0S2KZgB9NUGWMnMgiF5l4g/r0y9k5I5
11+
CBhfgcQLoOqD+G2Bmmggv60smx8CCMzCFqMYkmL6tbDauouYiQrRjGU/YqOBjjCB
12+
izAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/
13+
BAIwADAfBgNVHSMEGDAWgBSg1yvPCG/ABzmbxamHHffMfWtvKTAgBgNVHREEGTAX
14+
ghV0ZXN0LnRyYW5zcGFyZW5jeS5kZXYwEwYKKwYBBAHWeQIEAwEB/wQCBQAwCgYI
15+
KoZIzj0EAwMDZwAwZAIwUdQu9+BQBuWllxzS+U9uwjvg21kW240bqMTGuApPow04
16+
Q3LX+OZg47hE8h83VjDLAjATYpxgyVfRueBD988smesEhPfer/3WGmOQFExTQN0o
17+
C6ppWYd4i2WeAGN1ekygn8o=
18+
-----END CERTIFICATE-----
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-----BEGIN EC TESTING KEY-----
2+
MIGkAgEBBDAVV14LqKsgHdWQGpvQZph4WLOwxX3li3gNuSSFD38q6TRwTM3HBKD/
3+
qUgB+unWb32gBwYFK4EEACKhZANiAAT0FaFQbNOWrZyg9sCQTwUTZC2/L3qGTsgl
4+
w32eb8NEtimYAfTVBljJzIIheZeIP69MvZOSOQgYX4HEC6Dqg/htgZpoIL+tLJsf
5+
AgjMwhajGJJi+rWw2rqLmIkK0YxlP2I=
6+
-----END EC TESTING KEY-----

0 commit comments

Comments
 (0)