Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 266c96f

Browse files
committedMar 25, 2024··
Add test for fetching trusted_root.json from TUF repo
Signed-off-by: Cody Soyland <codysoyland@github.com>
1 parent b318e88 commit 266c96f

15 files changed

+269
-135
lines changed
 

‎hack/gentestdata/gentestdata.go

+31-15
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,23 @@ func main() {
7777
log.Fatal(err)
7878
}
7979

80-
marshalledEntryFromMirrorFS, tufRepo, rootJSON, err := genTUFRepo(sigstoreKeysMap)
80+
tufRepo, rootJSON, err := genTUFRepo(map[string][]byte{
81+
"rekor.pem": []byte(sigstoreKeysMap["rekor"]),
82+
"ctfe.pem": []byte(sigstoreKeysMap["ctfe"]),
83+
"fulcio.pem": []byte(sigstoreKeysMap["fulcio"]),
84+
})
85+
if err != nil {
86+
log.Fatal(err)
87+
}
88+
89+
tufRepoWithTrustedRootJSON, rootJSONWithTrustedRootJSON, err := genTUFRepo(map[string][]byte{
90+
"trusted_root.json": marshalledEntry,
91+
})
92+
if err != nil {
93+
log.Fatal(err)
94+
}
95+
96+
marshalledEntryFromMirrorFS, err := genTrustedRoot(sigstoreKeysMap)
8197
if err != nil {
8298
log.Fatal(err)
8399
}
@@ -92,6 +108,8 @@ func main() {
92108
mustWriteFile("marshalledEntryFromMirrorFS.json", marshalledEntryFromMirrorFS)
93109
mustWriteFile("tufRepo.tar", tufRepo)
94110
mustWriteFile("root.json", rootJSON)
111+
mustWriteFile("tufRepoWithTrustedRootJSON.tar", tufRepoWithTrustedRootJSON)
112+
mustWriteFile("rootWithTrustedRootJSON.json", rootJSONWithTrustedRootJSON)
95113
}
96114

97115
func mustWriteFile(path string, data []byte) {
@@ -204,39 +222,37 @@ func genLogID(pkBytes []byte) (string, error) {
204222
return cosign.GetTransparencyLogID(pk)
205223
}
206224

207-
func genTUFRepo(sigstoreKeysMap map[string]string) ([]byte, []byte, []byte, error) {
208-
files := map[string][]byte{}
209-
files["rekor.pem"] = []byte(sigstoreKeysMap["rekor"])
210-
files["ctfe.pem"] = []byte(sigstoreKeysMap["ctfe"])
211-
files["fulcio.pem"] = []byte(sigstoreKeysMap["fulcio"])
212-
225+
func genTUFRepo(files map[string][]byte) ([]byte, []byte, error) {
213226
defer os.RemoveAll(path.Join(os.TempDir(), "tuf")) // TODO: Update scaffolding to use os.MkdirTemp and remove this
214227
ctx := context.Background()
215228
local, dir, err := repo.CreateRepo(ctx, files)
216229
if err != nil {
217-
return nil, nil, nil, err
230+
return nil, nil, err
218231
}
219232
meta, err := local.GetMeta()
220233
if err != nil {
221-
return nil, nil, nil, err
234+
return nil, nil, err
222235
}
223236
rootJSON, ok := meta["root.json"]
224237
if !ok {
225-
return nil, nil, nil, err
238+
return nil, nil, err
226239
}
227240

228241
var compressed bytes.Buffer
229242
if err := repo.CompressFS(os.DirFS(dir), &compressed, map[string]bool{"keys": true, "staged": true}); err != nil {
230-
return nil, nil, nil, err
243+
return nil, nil, err
231244
}
245+
return compressed.Bytes(), rootJSON, nil
246+
}
232247

248+
func genTrustedRoot(sigstoreKeysMap map[string]string) ([]byte, error) {
233249
tlogKey, _, err := config.DeserializePublicKey([]byte(sigstoreKeysMap["rekor"]))
234250
if err != nil {
235-
return nil, nil, nil, err
251+
return nil, err
236252
}
237253
ctlogKey, _, err := config.DeserializePublicKey([]byte(sigstoreKeysMap["ctfe"]))
238254
if err != nil {
239-
return nil, nil, nil, err
255+
return nil, err
240256
}
241257

242258
trustRoot := &config.SigstoreKeys{
@@ -257,8 +273,8 @@ func genTUFRepo(sigstoreKeysMap map[string]string) ([]byte, []byte, []byte, erro
257273
}
258274
err = populateLogIDs(trustRoot)
259275
if err != nil {
260-
return nil, nil, nil, err
276+
return nil, err
261277
}
262278
trustRootBytes := []byte(protojson.Format(trustRoot))
263-
return trustRootBytes, compressed.Bytes(), rootJSON, nil
279+
return trustRootBytes, nil
264280
}
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f233e0255ba7b06f768210de40a72dad6456c364f864fef10654e9d1f3576cdf
1+
1710e23da0651aaa8194bc9652cd00a97c1fda9c76fce12f14eb635e42036954
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
-----BEGIN PUBLIC KEY-----
2-
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/0axOYDFW1GxfRBsuCZEXDbNkMfz
3-
RJqocd5QqkycTqqK47i7ip75BeyvmQcqYE6KRMnHQds1tlzkAxZ3RlPnFA==
2+
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBQY7A479x/VleGrvxp1gQAykOZMj
3+
ld4J6VWVLnN0WLiqOesr9QkSBVnBkYKw0pr6Bgr8Qjg6NA3x470DLPxrDQ==
44
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIBPjCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
3-
MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDzENMAsGA1UEAxMEbGVhZjBZMBMG
4-
ByqGSM49AgEGCCqGSM49AwEHA0IABH52pFOcobYjT5V85OtmQU+nxhhGNUayYt7f
5-
LtsY8qDtQOCFW7P8Ya1B14IowM7fFbI0c5jeEczhTLqnGU4yrBqjMzAxMA4GA1Ud
6-
DwEB/wQEAwIGwDAfBgNVHSMEGDAWgBQsTJia5d928QAnmtfYJffrTRnsFzAKBggq
7-
hkjOPQQDAgNJADBGAiEAoIIysKwCCicQsX3URWsPS9N6aGIfhfdS22qZpvkbg88C
8-
IQDezHPTP8Vp8fKnHoRplC6++c1N8yds5GlK9QNDSoTwug==
2+
MIIBPTCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
3+
MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDzENMAsGA1UEAxMEbGVhZjBZMBMG
4+
ByqGSM49AgEGCCqGSM49AwEHA0IABNr99Dzn4PLhw3a9dP8YLwZaPnm3hpF3vt/5
5+
5rMc7N194IPRB+qCDQIKIsyFMQ937IA+ylxdYvwYPB30kw/nie+jMzAxMA4GA1Ud
6+
DwEB/wQEAwIGwDAfBgNVHSMEGDAWgBSgpcC8Rht4JttKz/d6pqb87A+f+zAKBggq
7+
hkjOPQQDAgNIADBFAiEAtuSOJ8LaCp6OrUIo8eKz7iYFEeOMI5d3aBEUSUp8y64C
8+
IHnTyu87fhXigrwrrhx0mEluHBfqeBpJilenwWjcUzYT
99
-----END CERTIFICATE-----
1010
-----BEGIN CERTIFICATE-----
11-
MIIBSzCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
12-
MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDTELMAkGA1UEAxMCY2EwWTATBgcq
13-
hkjOPQIBBggqhkjOPQMBBwNCAARtAqUJCj/Wb+rFJJn76UdcAcUA5H1w3PjIZRR8
14-
LBkBAkP/AmDDs0uKxl32jGaOISUtCVQUhnEx2XofoRdI1yQqo0IwQDAOBgNVHQ8B
15-
Af8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULEyYmuXfdvEAJ5rX
16-
2CX3600Z7BcwCgYIKoZIzj0EAwIDSQAwRgIhAMCf8nrN60qqT6MEL4nhu2OepICr
17-
DiCugo150fQQKNRaAiEAldwHCU3UF8f7b+mtUyoJQ1K5nksElcvODJRutb/GvCk=
11+
MIIBSTCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
12+
MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDTELMAkGA1UEAxMCY2EwWTATBgcq
13+
hkjOPQIBBggqhkjOPQMBBwNCAATpp0ZNVPLAIzjTPkYzluuwuJxo4kmCLQRmznmz
14+
9GE89huCeLhyLbgj6xLgLrlZPwEnlGRKdiba+pLxUzKVKTPAo0IwQDAOBgNVHQ8B
15+
Af8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoKXAvEYbeCbbSs/3
16+
eqam/OwPn/swCgYIKoZIzj0EAwIDRwAwRAIgPpFwR+kjxrG75XPEQCiKPwF1Zg55
17+
FZVT7PlNJKyIPYACIFMMqZ4//ncJoBxMtvTsr3++2d91SPpyis2cLiDcr3kW
1818
-----END CERTIFICATE-----

‎pkg/reconciler/trustroot/testdata/marshalledEntry.json

+43-43
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,78 @@
11
{
2-
"mediaType": "application/vnd.dev.sigstore.trustedroot+json;version=0.1",
3-
"tlogs": [
2+
"mediaType": "application/vnd.dev.sigstore.trustedroot+json;version=0.1",
3+
"tlogs": [
44
{
5-
"baseUrl": "https://rekor.example.com",
6-
"hashAlgorithm": "SHA2_256",
7-
"publicKey": {
8-
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI4VIUxpIQaYEpS5Vlp7PHTB7ho3oWabbChqboVxueHh+wqimmPJXuXLe+Zu32VH+fN5WFn4AGajIGje1GBXtOw==",
9-
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
10-
"validFor": {
11-
"start": "1970-01-01T00:00:00Z"
5+
"baseUrl": "https://rekor.example.com",
6+
"hashAlgorithm": "SHA2_256",
7+
"publicKey": {
8+
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1Vobk4rjNzYrf/uqDwEd/HDfCro89r63DaHCTRYQJaf/JHdJj/nxBl1e3ZCo0B7kB/uU+e7d56A9gPdelFc51g==",
9+
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
10+
"validFor": {
11+
"start": "1970-01-01T00:00:00Z"
1212
}
1313
},
14-
"logId": {
15-
"keyId": "ODYzMWJhMjQwZTYxN2M1ZWY2NWU2Y2QxZjcwYjhhOTU1NTQ5ZmNhYjk5NmYyZGI2MGE1ZThjYWE5OWJlMWNmMg=="
14+
"logId": {
15+
"keyId": "YWRjNTE1MWY5OTExZWUxZjAwMWVkYzc0Y2Q3MWNkNThmOGExMWE0ODRhOGM5NzA5NDkwYjRkOTY2NDcxZjQxMQ=="
1616
}
1717
}
1818
],
19-
"certificateAuthorities": [
19+
"certificateAuthorities": [
2020
{
21-
"subject": {
22-
"organization": "fulcio-organization",
23-
"commonName": "fulcio-common-name"
21+
"subject": {
22+
"organization": "fulcio-organization",
23+
"commonName": "fulcio-common-name"
2424
},
25-
"uri": "https://fulcio.example.com",
26-
"certChain": {
27-
"certificates": [
25+
"uri": "https://fulcio.example.com",
26+
"certChain": {
27+
"certificates": [
2828
{
29-
"rawBytes": "MIIBPjCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDzENMAsGA1UEAxMEbGVhZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH52pFOcobYjT5V85OtmQU+nxhhGNUayYt7fLtsY8qDtQOCFW7P8Ya1B14IowM7fFbI0c5jeEczhTLqnGU4yrBqjMzAxMA4GA1UdDwEB/wQEAwIGwDAfBgNVHSMEGDAWgBQsTJia5d928QAnmtfYJffrTRnsFzAKBggqhkjOPQQDAgNJADBGAiEAoIIysKwCCicQsX3URWsPS9N6aGIfhfdS22qZpvkbg88CIQDezHPTP8Vp8fKnHoRplC6++c1N8yds5GlK9QNDSoTwug=="
29+
"rawBytes": "MIIBPTCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDzENMAsGA1UEAxMEbGVhZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNr99Dzn4PLhw3a9dP8YLwZaPnm3hpF3vt/55rMc7N194IPRB+qCDQIKIsyFMQ937IA+ylxdYvwYPB30kw/nie+jMzAxMA4GA1UdDwEB/wQEAwIGwDAfBgNVHSMEGDAWgBSgpcC8Rht4JttKz/d6pqb87A+f+zAKBggqhkjOPQQDAgNIADBFAiEAtuSOJ8LaCp6OrUIo8eKz7iYFEeOMI5d3aBEUSUp8y64CIHnTyu87fhXigrwrrhx0mEluHBfqeBpJilenwWjcUzYT"
3030
},
3131
{
32-
"rawBytes": "MIIBSzCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDTELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARtAqUJCj/Wb+rFJJn76UdcAcUA5H1w3PjIZRR8LBkBAkP/AmDDs0uKxl32jGaOISUtCVQUhnEx2XofoRdI1yQqo0IwQDAOBgNVHQ8BAf8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULEyYmuXfdvEAJ5rX2CX3600Z7BcwCgYIKoZIzj0EAwIDSQAwRgIhAMCf8nrN60qqT6MEL4nhu2OepICrDiCugo150fQQKNRaAiEAldwHCU3UF8f7b+mtUyoJQ1K5nksElcvODJRutb/GvCk="
32+
"rawBytes": "MIIBSTCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDTELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATpp0ZNVPLAIzjTPkYzluuwuJxo4kmCLQRmznmz9GE89huCeLhyLbgj6xLgLrlZPwEnlGRKdiba+pLxUzKVKTPAo0IwQDAOBgNVHQ8BAf8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoKXAvEYbeCbbSs/3eqam/OwPn/swCgYIKoZIzj0EAwIDRwAwRAIgPpFwR+kjxrG75XPEQCiKPwF1Zg55FZVT7PlNJKyIPYACIFMMqZ4//ncJoBxMtvTsr3++2d91SPpyis2cLiDcr3kW"
3333
}
3434
]
3535
},
36-
"validFor": {
37-
"start": "1970-01-01T00:00:00Z"
36+
"validFor": {
37+
"start": "1970-01-01T00:00:00Z"
3838
}
3939
}
4040
],
41-
"ctlogs": [
41+
"ctlogs": [
4242
{
43-
"baseUrl": "https://ctfe.example.com",
44-
"hashAlgorithm": "SHA2_256",
45-
"publicKey": {
46-
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/0axOYDFW1GxfRBsuCZEXDbNkMfzRJqocd5QqkycTqqK47i7ip75BeyvmQcqYE6KRMnHQds1tlzkAxZ3RlPnFA==",
47-
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
48-
"validFor": {
49-
"start": "1970-01-01T00:00:00Z"
43+
"baseUrl": "https://ctfe.example.com",
44+
"hashAlgorithm": "SHA2_256",
45+
"publicKey": {
46+
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBQY7A479x/VleGrvxp1gQAykOZMjld4J6VWVLnN0WLiqOesr9QkSBVnBkYKw0pr6Bgr8Qjg6NA3x470DLPxrDQ==",
47+
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
48+
"validFor": {
49+
"start": "1970-01-01T00:00:00Z"
5050
}
5151
},
52-
"logId": {
53-
"keyId": "ZjIzM2UwMjU1YmE3YjA2Zjc2ODIxMGRlNDBhNzJkYWQ2NDU2YzM2NGY4NjRmZWYxMDY1NGU5ZDFmMzU3NmNkZg=="
52+
"logId": {
53+
"keyId": "MTcxMGUyM2RhMDY1MWFhYTgxOTRiYzk2NTJjZDAwYTk3YzFmZGE5Yzc2ZmNlMTJmMTRlYjYzNWU0MjAzNjk1NA=="
5454
}
5555
}
5656
],
57-
"timestampAuthorities": [
57+
"timestampAuthorities": [
5858
{
59-
"subject": {
60-
"organization": "tsa-organization",
61-
"commonName": "tsa-common-name"
59+
"subject": {
60+
"organization": "tsa-organization",
61+
"commonName": "tsa-common-name"
6262
},
63-
"uri": "https://tsa.example.com",
64-
"certChain": {
65-
"certificates": [
63+
"uri": "https://tsa.example.com",
64+
"certChain": {
65+
"certificates": [
6666
{
67-
"rawBytes": "MIIBPjCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDzENMAsGA1UEAxMEbGVhZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCOUCx97+DsDdyvKgf/FhyiMIzd40bAquTXCeZlDeKsHUhsLHrLCa8fOV8njfl8dE2ABX/lwPA+czYfDW1myooGjMzAxMA4GA1UdDwEB/wQEAwIEEDAfBgNVHSMEGDAWgBRNdydaOxYhTIQG3d3Zp22F1Rj+XDAKBggqhkjOPQQDAgNJADBGAiEA7BJb9k0usb77EKqvbCfOF1fGeBFiU3i32+4HnUXC9GcCIQCZ+/gZ+G47t2OlCVNnE+9YasE9100MR/Sm9SBCzn6UTQ=="
67+
"rawBytes": "MIIBPTCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDzENMAsGA1UEAxMEbGVhZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDgjsTzgbEsFFuBFCp1LIRv4SwYLCLL1fxtq95tbtGj/wHQUmrKLxMLMxaxIzdJs54lIDP+LoKeK25+HBPftwtCjMzAxMA4GA1UdDwEB/wQEAwIEEDAfBgNVHSMEGDAWgBRRiPL3dEhG22Qh+0GTFJ/G1SW1yDAKBggqhkjOPQQDAgNIADBFAiABNvVUla7gqF/135UkA55FQ57M6r84IArwk43Zy2aPPgIhAO8/F8k9VB5+I1FSiQL1qsM8yO6SUpVF9E+hNJ9n/6zU"
6868
},
6969
{
70-
"rawBytes": "MIIBSzCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDTELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQjjBapPc46v5hDtKeyNshq4Xdb+t+WX6R4Jgrwpy31o+0exhZhzlMYl1aelkZi/7u9fnNsuUVfgRjSZIC1aF+7o0IwQDAOBgNVHQ8BAf8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUTXcnWjsWIUyEBt3d2adthdUY/lwwCgYIKoZIzj0EAwIDSQAwRgIhAOYOmibcfPIN/8DYOdEsd6JVa1RJn7dwJJueg4rNwpBzAiEAiFSpjPSVbNRUJDUOYJGPpkmj+TLh5GCoz2Bw2/oed44="
70+
"rawBytes": "MIIBSzCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDTELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARjUhxtm6QXaB2bkGKHenCToVRPhVf0PTkuS7/hTGjHhELoMrD8r3nbqyceFEl4FUTzEMDfrj/YhefX7ZbeesSho0IwQDAOBgNVHQ8BAf8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUUYjy93RIRttkIftBkxSfxtUltcgwCgYIKoZIzj0EAwIDSQAwRgIhAJgRO/ig4ZBrlYjuNYpC/kqUIVsfSKLpS9c4/lkcTGBPAiEAq+euZ8zkevab16uWx7ZaEcElKYY3xzhTr5yQYeJPOcQ="
7171
}
7272
]
7373
},
74-
"validFor": {
75-
"start": "1970-01-01T00:00:00Z"
74+
"validFor": {
75+
"start": "1970-01-01T00:00:00Z"
7676
}
7777
}
7878
]

‎pkg/reconciler/trustroot/testdata/marshalledEntryFromMirrorFS.json

+25-25
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,48 @@
11
{
2-
"tlogs": [
2+
"tlogs": [
33
{
4-
"hashAlgorithm": "SHA2_256",
5-
"publicKey": {
6-
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI4VIUxpIQaYEpS5Vlp7PHTB7ho3oWabbChqboVxueHh+wqimmPJXuXLe+Zu32VH+fN5WFn4AGajIGje1GBXtOw==",
7-
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
8-
"validFor": {
9-
"start": "1970-01-01T00:00:00Z"
4+
"hashAlgorithm": "SHA2_256",
5+
"publicKey": {
6+
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1Vobk4rjNzYrf/uqDwEd/HDfCro89r63DaHCTRYQJaf/JHdJj/nxBl1e3ZCo0B7kB/uU+e7d56A9gPdelFc51g==",
7+
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
8+
"validFor": {
9+
"start": "1970-01-01T00:00:00Z"
1010
}
1111
},
12-
"logId": {
13-
"keyId": "ODYzMWJhMjQwZTYxN2M1ZWY2NWU2Y2QxZjcwYjhhOTU1NTQ5ZmNhYjk5NmYyZGI2MGE1ZThjYWE5OWJlMWNmMg=="
12+
"logId": {
13+
"keyId": "YWRjNTE1MWY5OTExZWUxZjAwMWVkYzc0Y2Q3MWNkNThmOGExMWE0ODRhOGM5NzA5NDkwYjRkOTY2NDcxZjQxMQ=="
1414
}
1515
}
1616
],
17-
"certificateAuthorities": [
17+
"certificateAuthorities": [
1818
{
19-
"certChain": {
20-
"certificates": [
19+
"certChain": {
20+
"certificates": [
2121
{
22-
"rawBytes": "MIIBPjCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDzENMAsGA1UEAxMEbGVhZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH52pFOcobYjT5V85OtmQU+nxhhGNUayYt7fLtsY8qDtQOCFW7P8Ya1B14IowM7fFbI0c5jeEczhTLqnGU4yrBqjMzAxMA4GA1UdDwEB/wQEAwIGwDAfBgNVHSMEGDAWgBQsTJia5d928QAnmtfYJffrTRnsFzAKBggqhkjOPQQDAgNJADBGAiEAoIIysKwCCicQsX3URWsPS9N6aGIfhfdS22qZpvkbg88CIQDezHPTP8Vp8fKnHoRplC6++c1N8yds5GlK9QNDSoTwug=="
22+
"rawBytes": "MIIBPTCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDzENMAsGA1UEAxMEbGVhZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNr99Dzn4PLhw3a9dP8YLwZaPnm3hpF3vt/55rMc7N194IPRB+qCDQIKIsyFMQ937IA+ylxdYvwYPB30kw/nie+jMzAxMA4GA1UdDwEB/wQEAwIGwDAfBgNVHSMEGDAWgBSgpcC8Rht4JttKz/d6pqb87A+f+zAKBggqhkjOPQQDAgNIADBFAiEAtuSOJ8LaCp6OrUIo8eKz7iYFEeOMI5d3aBEUSUp8y64CIHnTyu87fhXigrwrrhx0mEluHBfqeBpJilenwWjcUzYT"
2323
},
2424
{
25-
"rawBytes": "MIIBSzCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDTELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARtAqUJCj/Wb+rFJJn76UdcAcUA5H1w3PjIZRR8LBkBAkP/AmDDs0uKxl32jGaOISUtCVQUhnEx2XofoRdI1yQqo0IwQDAOBgNVHQ8BAf8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULEyYmuXfdvEAJ5rX2CX3600Z7BcwCgYIKoZIzj0EAwIDSQAwRgIhAMCf8nrN60qqT6MEL4nhu2OepICrDiCugo150fQQKNRaAiEAldwHCU3UF8f7b+mtUyoJQ1K5nksElcvODJRutb/GvCk="
25+
"rawBytes": "MIIBSTCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDTELMAkGA1UEAxMCY2EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATpp0ZNVPLAIzjTPkYzluuwuJxo4kmCLQRmznmz9GE89huCeLhyLbgj6xLgLrlZPwEnlGRKdiba+pLxUzKVKTPAo0IwQDAOBgNVHQ8BAf8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoKXAvEYbeCbbSs/3eqam/OwPn/swCgYIKoZIzj0EAwIDRwAwRAIgPpFwR+kjxrG75XPEQCiKPwF1Zg55FZVT7PlNJKyIPYACIFMMqZ4//ncJoBxMtvTsr3++2d91SPpyis2cLiDcr3kW"
2626
}
2727
]
2828
},
29-
"validFor": {
30-
"start": "1970-01-01T00:00:00Z"
29+
"validFor": {
30+
"start": "1970-01-01T00:00:00Z"
3131
}
3232
}
3333
],
34-
"ctlogs": [
34+
"ctlogs": [
3535
{
36-
"hashAlgorithm": "SHA2_256",
37-
"publicKey": {
38-
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/0axOYDFW1GxfRBsuCZEXDbNkMfzRJqocd5QqkycTqqK47i7ip75BeyvmQcqYE6KRMnHQds1tlzkAxZ3RlPnFA==",
39-
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
40-
"validFor": {
41-
"start": "1970-01-01T00:00:00Z"
36+
"hashAlgorithm": "SHA2_256",
37+
"publicKey": {
38+
"rawBytes": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBQY7A479x/VleGrvxp1gQAykOZMjld4J6VWVLnN0WLiqOesr9QkSBVnBkYKw0pr6Bgr8Qjg6NA3x470DLPxrDQ==",
39+
"keyDetails": "PKIX_ECDSA_P256_SHA_256",
40+
"validFor": {
41+
"start": "1970-01-01T00:00:00Z"
4242
}
4343
},
44-
"logId": {
45-
"keyId": "ZjIzM2UwMjU1YmE3YjA2Zjc2ODIxMGRlNDBhNzJkYWQ2NDU2YzM2NGY4NjRmZWYxMDY1NGU5ZDFmMzU3NmNkZg=="
44+
"logId": {
45+
"keyId": "MTcxMGUyM2RhMDY1MWFhYTgxOTRiYzk2NTJjZDAwYTk3YzFmZGE5Yzc2ZmNlMTJmMTRlYjYzNWU0MjAzNjk1NA=="
4646
}
4747
}
4848
]
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8631ba240e617c5ef65e6cd1f70b8a955549fcab996f2db60a5e8caa99be1cf2
1+
adc5151f9911ee1f001edc74cd71cd58f8a11a484a8c9709490b4d966471f411
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
-----BEGIN PUBLIC KEY-----
2-
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI4VIUxpIQaYEpS5Vlp7PHTB7ho3o
3-
WabbChqboVxueHh+wqimmPJXuXLe+Zu32VH+fN5WFn4AGajIGje1GBXtOw==
2+
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1Vobk4rjNzYrf/uqDwEd/HDfCro8
3+
9r63DaHCTRYQJaf/JHdJj/nxBl1e3ZCo0B7kB/uU+e7d56A9gPdelFc51g==
44
-----END PUBLIC KEY-----

‎pkg/reconciler/trustroot/testdata/root.json

+15-15
Original file line numberDiff line numberDiff line change
@@ -3,75 +3,75 @@
33
"_type": "root",
44
"spec_version": "1.0",
55
"version": 1,
6-
"expires": "2024-09-22T15:32:01-04:00",
6+
"expires": "2024-09-22T16:47:39-04:00",
77
"keys": {
8-
"4b22a801cd5addfbcf9646b3a2dd299d076be90a506d7173742df76a916b511f": {
8+
"0c5ee15a0b35012b32989697c15e22f199d8534863a80197bea385adb908d0c9": {
99
"keytype": "ed25519",
1010
"scheme": "ed25519",
1111
"keyid_hash_algorithms": [
1212
"sha256",
1313
"sha512"
1414
],
1515
"keyval": {
16-
"public": "a4d3caa7307b07ae60f8827d6a63a421caa9436818911ec4a5fec159c2e0a6ea"
16+
"public": "06ba72d6fe28cc6d1d85ca8f933f7e855875af2cabb97dd075074f5d1c188249"
1717
}
1818
},
19-
"8296a838fbbcb44d3badbe77c37cd1d78a44518c8574f1e98c5991db886fae59": {
19+
"b2cf295def74b86b6a50211bfcf3ab3839a2bdbed936d95cfacce1f4c31deedd": {
2020
"keytype": "ed25519",
2121
"scheme": "ed25519",
2222
"keyid_hash_algorithms": [
2323
"sha256",
2424
"sha512"
2525
],
2626
"keyval": {
27-
"public": "2e9da73f5b4a9abbcaf343214f54f897cd2d66b02199ed039fe1d4d3bd002b8b"
27+
"public": "97c5f9488951eb67f16ea9328c9537c2ade4485a0b924ec0486a236f50e80f96"
2828
}
2929
},
30-
"93a9525c20dcad686288e943a3a1c5c26b185d838fa25d7ca07c6bd6a80a9093": {
30+
"d4177b1e89bf7eb02c44285e9f7907eb089ff7951199179d6fd68280dbb4d69d": {
3131
"keytype": "ed25519",
3232
"scheme": "ed25519",
3333
"keyid_hash_algorithms": [
3434
"sha256",
3535
"sha512"
3636
],
3737
"keyval": {
38-
"public": "4c20f29a8b91b19ed8c2446354067fc52d234412ffc9432785f966a0cde6af93"
38+
"public": "4b92888524b5cd2de6cad461f83fb86b3f5590792c037b416132811ba71e1e8b"
3939
}
4040
},
41-
"a182898f8f07aa5a376da7aeaf62dbe13a23f21dc8088e28936b67a08bbefb87": {
41+
"fcf4d6c6bfa6fccb41df570cc60e6ef63cfe45baed10c0ead716de97f4a25264": {
4242
"keytype": "ed25519",
4343
"scheme": "ed25519",
4444
"keyid_hash_algorithms": [
4545
"sha256",
4646
"sha512"
4747
],
4848
"keyval": {
49-
"public": "d5a909f2ecbbe521323e5c84970b2937955e098605d43e6aa9fe14d682eef3b3"
49+
"public": "6f98dc24fc1df15ed2888658f711dbe59433aa7b0a62334080100fa52a483716"
5050
}
5151
}
5252
},
5353
"roles": {
5454
"root": {
5555
"keyids": [
56-
"8296a838fbbcb44d3badbe77c37cd1d78a44518c8574f1e98c5991db886fae59"
56+
"d4177b1e89bf7eb02c44285e9f7907eb089ff7951199179d6fd68280dbb4d69d"
5757
],
5858
"threshold": 1
5959
},
6060
"snapshot": {
6161
"keyids": [
62-
"a182898f8f07aa5a376da7aeaf62dbe13a23f21dc8088e28936b67a08bbefb87"
62+
"b2cf295def74b86b6a50211bfcf3ab3839a2bdbed936d95cfacce1f4c31deedd"
6363
],
6464
"threshold": 1
6565
},
6666
"targets": {
6767
"keyids": [
68-
"4b22a801cd5addfbcf9646b3a2dd299d076be90a506d7173742df76a916b511f"
68+
"fcf4d6c6bfa6fccb41df570cc60e6ef63cfe45baed10c0ead716de97f4a25264"
6969
],
7070
"threshold": 1
7171
},
7272
"timestamp": {
7373
"keyids": [
74-
"93a9525c20dcad686288e943a3a1c5c26b185d838fa25d7ca07c6bd6a80a9093"
74+
"0c5ee15a0b35012b32989697c15e22f199d8534863a80197bea385adb908d0c9"
7575
],
7676
"threshold": 1
7777
}
@@ -80,8 +80,8 @@
8080
},
8181
"signatures": [
8282
{
83-
"keyid": "8296a838fbbcb44d3badbe77c37cd1d78a44518c8574f1e98c5991db886fae59",
84-
"sig": "053c49473376571093b419ce3f4a6fcf350d6b7bead1234fe5eae685ee3914b5c28b9cc1ccfdfa84a276374a54eefe06c0545c1ada32dd42194e5fa86f69510a"
83+
"keyid": "d4177b1e89bf7eb02c44285e9f7907eb089ff7951199179d6fd68280dbb4d69d",
84+
"sig": "0eca8e52cd9d8e18dc02593925bde4c44f2eac3e173199ff30a8a875391636f419914563fafe171d5b4b22917b8a6604ad77af5ea9f88166b3f8ca6c15332201"
8585
}
8686
]
8787
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"signed": {
3+
"_type": "root",
4+
"spec_version": "1.0",
5+
"version": 1,
6+
"expires": "2024-09-22T16:47:40-04:00",
7+
"keys": {
8+
"1742f6a1f846f4042382403b907864f125c2fca7bd70d6c157a40ac8e6f7d505": {
9+
"keytype": "ed25519",
10+
"scheme": "ed25519",
11+
"keyid_hash_algorithms": [
12+
"sha256",
13+
"sha512"
14+
],
15+
"keyval": {
16+
"public": "3bfd19c0931a80cd3279322fc22b04b90831b1804f5dbc72c31676ca2ac82f97"
17+
}
18+
},
19+
"5dd6940e523073d10a6252f38a4dc2ebf33e23641c103682e43cb351a5672f43": {
20+
"keytype": "ed25519",
21+
"scheme": "ed25519",
22+
"keyid_hash_algorithms": [
23+
"sha256",
24+
"sha512"
25+
],
26+
"keyval": {
27+
"public": "d64a13987f3b0ccfcbfab8c5631acff1b69dda70e40c1aae0cb1f0f9575716cb"
28+
}
29+
},
30+
"8b635809713e0b6ae3370afeb6fa83d7aae2039b355e56d1211049246c3d1a4d": {
31+
"keytype": "ed25519",
32+
"scheme": "ed25519",
33+
"keyid_hash_algorithms": [
34+
"sha256",
35+
"sha512"
36+
],
37+
"keyval": {
38+
"public": "ecf8b527a4a4ce34718286dc9a67a5969060053bf1750e2dc74e065c9ab30ec1"
39+
}
40+
},
41+
"d263be84f7043dd0b4636fb797cfd1c9b455b9168f282cad8f48ff0ca47465fc": {
42+
"keytype": "ed25519",
43+
"scheme": "ed25519",
44+
"keyid_hash_algorithms": [
45+
"sha256",
46+
"sha512"
47+
],
48+
"keyval": {
49+
"public": "e7f35e9f47b6e2f38e62b184d9f9a54f085843c57bb102cab0fe684dabe1e0bd"
50+
}
51+
}
52+
},
53+
"roles": {
54+
"root": {
55+
"keyids": [
56+
"1742f6a1f846f4042382403b907864f125c2fca7bd70d6c157a40ac8e6f7d505"
57+
],
58+
"threshold": 1
59+
},
60+
"snapshot": {
61+
"keyids": [
62+
"8b635809713e0b6ae3370afeb6fa83d7aae2039b355e56d1211049246c3d1a4d"
63+
],
64+
"threshold": 1
65+
},
66+
"targets": {
67+
"keyids": [
68+
"5dd6940e523073d10a6252f38a4dc2ebf33e23641c103682e43cb351a5672f43"
69+
],
70+
"threshold": 1
71+
},
72+
"timestamp": {
73+
"keyids": [
74+
"d263be84f7043dd0b4636fb797cfd1c9b455b9168f282cad8f48ff0ca47465fc"
75+
],
76+
"threshold": 1
77+
}
78+
},
79+
"consistent_snapshot": false
80+
},
81+
"signatures": [
82+
{
83+
"keyid": "1742f6a1f846f4042382403b907864f125c2fca7bd70d6c157a40ac8e6f7d505",
84+
"sig": "1050176114e44eec30b0661a9016b0a1ce607b4168d8e84ab1d4c15d73c3bdb051f0c0b21b67f03c77d4a98ea7dabc5fd1404bbef2eaac605ddfa2a6145d0709"
85+
}
86+
]
87+
}
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIBPjCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
3-
MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDzENMAsGA1UEAxMEbGVhZjBZMBMG
4-
ByqGSM49AgEGCCqGSM49AwEHA0IABCOUCx97+DsDdyvKgf/FhyiMIzd40bAquTXC
5-
eZlDeKsHUhsLHrLCa8fOV8njfl8dE2ABX/lwPA+czYfDW1myooGjMzAxMA4GA1Ud
6-
DwEB/wQEAwIEEDAfBgNVHSMEGDAWgBRNdydaOxYhTIQG3d3Zp22F1Rj+XDAKBggq
7-
hkjOPQQDAgNJADBGAiEA7BJb9k0usb77EKqvbCfOF1fGeBFiU3i32+4HnUXC9GcC
8-
IQCZ+/gZ+G47t2OlCVNnE+9YasE9100MR/Sm9SBCzn6UTQ==
2+
MIIBPTCB5KADAgECAgECMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
3+
MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDzENMAsGA1UEAxMEbGVhZjBZMBMG
4+
ByqGSM49AgEGCCqGSM49AwEHA0IABDgjsTzgbEsFFuBFCp1LIRv4SwYLCLL1fxtq
5+
95tbtGj/wHQUmrKLxMLMxaxIzdJs54lIDP+LoKeK25+HBPftwtCjMzAxMA4GA1Ud
6+
DwEB/wQEAwIEEDAfBgNVHSMEGDAWgBRRiPL3dEhG22Qh+0GTFJ/G1SW1yDAKBggq
7+
hkjOPQQDAgNIADBFAiABNvVUla7gqF/135UkA55FQ57M6r84IArwk43Zy2aPPgIh
8+
AO8/F8k9VB5+I1FSiQL1qsM8yO6SUpVF9E+hNJ9n/6zU
99
-----END CERTIFICATE-----
1010
-----BEGIN CERTIFICATE-----
1111
MIIBSzCB8aADAgECAgEBMAoGCCqGSM49BAMCMA0xCzAJBgNVBAMTAmNhMB4XDTI0
12-
MDMyMjE5MzIwMVoXDTM0MDMyMjE5MzIwMVowDTELMAkGA1UEAxMCY2EwWTATBgcq
13-
hkjOPQIBBggqhkjOPQMBBwNCAAQjjBapPc46v5hDtKeyNshq4Xdb+t+WX6R4Jgrw
14-
py31o+0exhZhzlMYl1aelkZi/7u9fnNsuUVfgRjSZIC1aF+7o0IwQDAOBgNVHQ8B
15-
Af8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUTXcnWjsWIUyEBt3d
16-
2adthdUY/lwwCgYIKoZIzj0EAwIDSQAwRgIhAOYOmibcfPIN/8DYOdEsd6JVa1RJ
17-
n7dwJJueg4rNwpBzAiEAiFSpjPSVbNRUJDUOYJGPpkmj+TLh5GCoz2Bw2/oed44=
12+
MDMyMjIwNDczOVoXDTM0MDMyMjIwNDczOVowDTELMAkGA1UEAxMCY2EwWTATBgcq
13+
hkjOPQIBBggqhkjOPQMBBwNCAARjUhxtm6QXaB2bkGKHenCToVRPhVf0PTkuS7/h
14+
TGjHhELoMrD8r3nbqyceFEl4FUTzEMDfrj/YhefX7ZbeesSho0IwQDAOBgNVHQ8B
15+
Af8EBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUUYjy93RIRttkIftB
16+
kxSfxtUltcgwCgYIKoZIzj0EAwIDSQAwRgIhAJgRO/ig4ZBrlYjuNYpC/kqUIVsf
17+
SKLpS9c4/lkcTGBPAiEAq+euZ8zkevab16uWx7ZaEcElKYY3xzhTr5yQYeJPOcQ=
1818
-----END CERTIFICATE-----
-2 Bytes
Binary file not shown.
Binary file not shown.

‎pkg/reconciler/trustroot/trustroot.go

-1
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,6 @@ func getSigstoreKeysFromTuf(ctx context.Context, tufClient *client.Client) (*con
240240
ret := &config.SigstoreKeys{}
241241

242242
// if there is a "trusted_root.json" target, we can use that instead of the custom metadata
243-
// TODO: Write tests for this
244243
if _, ok := targets["trusted_root.json"]; ok {
245244
dl := newDownloader()
246245
if err = tufClient.Download("trusted_root.json", &dl); err != nil {

‎pkg/reconciler/trustroot/trustroot_test.go

+35-3
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,14 @@ var validRepository = testdata.Get("tufRepo.tar")
168168
// rootJSON is a valid root.json for above TUF repository.
169169
var rootJSON = testdata.Get("root.json")
170170

171+
// validRepositoryWithTrustedRootJSON is a valid tarred repository representing
172+
// an air-gap TUF repository containing trusted_root.json.
173+
var validRepositoryWithTrustedRootJSON = testdata.Get("tufRepoWithTrustedRootJSON.tar")
174+
175+
// IMPORTANT: The next expiration is on 2024-09-21
176+
// rootJSON is a valid root.json for above TUF repository.
177+
var rootWithTrustedRootJSON = testdata.Get("rootWithTrustedRootJSON.json")
178+
171179
func TestReconcile(t *testing.T) {
172180
table := TableTest{{
173181
Name: "bad workqueue key",
@@ -342,7 +350,7 @@ func TestReconcile(t *testing.T) {
342350
),
343351
},
344352
WantCreates: []runtime.Object{
345-
makeConfigMapWithMirrorFS(),
353+
makeConfigMapWithMirrorFS(marshalledEntryFromMirrorFS),
346354
},
347355
WantStatusUpdates: []clientgotesting.UpdateActionImpl{{
348356
Object: NewTrustRoot(trName,
@@ -352,6 +360,30 @@ func TestReconcile(t *testing.T) {
352360
WithTrustRootFinalizer,
353361
MarkReadyTrustRoot,
354362
)}},
363+
}, {
364+
Name: "With repository containing trusted_root.json",
365+
Key: testKey,
366+
367+
SkipNamespaceValidation: true, // Cluster scoped
368+
Objects: []runtime.Object{
369+
NewTrustRoot(trName,
370+
WithTrustRootUID(uid),
371+
WithTrustRootResourceVersion(resourceVersion),
372+
WithRepository("targets", rootWithTrustedRootJSON, validRepositoryWithTrustedRootJSON),
373+
WithTrustRootFinalizer,
374+
),
375+
},
376+
WantCreates: []runtime.Object{
377+
makeConfigMapWithMirrorFS(marshalledEntry),
378+
},
379+
WantStatusUpdates: []clientgotesting.UpdateActionImpl{{
380+
Object: NewTrustRoot(trName,
381+
WithTrustRootUID(uid),
382+
WithTrustRootResourceVersion(resourceVersion),
383+
WithRepository("targets", rootWithTrustedRootJSON, validRepositoryWithTrustedRootJSON),
384+
WithTrustRootFinalizer,
385+
MarkReadyTrustRoot,
386+
)}},
355387
}}
356388

357389
logger := logtesting.TestLogger(t)
@@ -395,13 +427,13 @@ func makeConfigMapWithSigstoreKeys() *corev1.ConfigMap {
395427
return ret
396428
}
397429

398-
func makeConfigMapWithMirrorFS() *corev1.ConfigMap {
430+
func makeConfigMapWithMirrorFS(entry string) *corev1.ConfigMap {
399431
return &corev1.ConfigMap{
400432
ObjectMeta: metav1.ObjectMeta{
401433
Namespace: system.Namespace(),
402434
Name: config.SigstoreKeysConfigName,
403435
},
404-
Data: map[string]string{"test-trustroot": marshalledEntryFromMirrorFS},
436+
Data: map[string]string{"test-trustroot": entry},
405437
}
406438
}
407439

0 commit comments

Comments
 (0)
Please sign in to comment.