|
22 | 22 | import dev.sigstore.testkit.annotations.DisabledIfSkipStaging; |
23 | 23 | import dev.sigstore.testkit.annotations.EnabledIfOidcExists; |
24 | 24 | import dev.sigstore.testkit.annotations.OidcProviderType; |
| 25 | +import dev.sigstore.trustroot.ImmutableSigstoreSigningConfig; |
| 26 | +import dev.sigstore.trustroot.Service; |
| 27 | +import dev.sigstore.tuf.SigstoreTufClient; |
25 | 28 | import java.io.IOException; |
26 | 29 | import java.io.StringReader; |
| 30 | +import java.net.URI; |
27 | 31 | import java.nio.charset.StandardCharsets; |
28 | 32 | import java.nio.file.Files; |
29 | 33 | import java.nio.file.Path; |
@@ -84,6 +88,38 @@ public void sign_production() throws Exception { |
84 | 88 | } |
85 | 89 | } |
86 | 90 |
|
| 91 | + /** |
| 92 | + * This test injects rekor v2 into the signing config since it's not quite pushed out to prod yet. |
| 93 | + * Should be merged into "sign_production" above when ready. |
| 94 | + */ |
| 95 | + @Test |
| 96 | + @EnabledIfOidcExists(provider = OidcProviderType.ANY) |
| 97 | + public void sign_production_rekorV2() throws Exception { |
| 98 | + var prodTufClient = SigstoreTufClient.builder().usePublicGoodInstance().build(); |
| 99 | + prodTufClient.update(); |
| 100 | + var prodSigningConfig = prodTufClient.getSigstoreSigningConfig(); |
| 101 | + var signingConfig = |
| 102 | + ImmutableSigstoreSigningConfig.builder() |
| 103 | + .from(prodSigningConfig) |
| 104 | + .addTLogs(Service.of(URI.create("https://log2025-1.rekor.sigstore.dev"), 2)) |
| 105 | + .build(); |
| 106 | + var signer = |
| 107 | + KeylessSigner.builder() |
| 108 | + .sigstorePublicDefaults() |
| 109 | + .signingConfigProvider(() -> signingConfig) |
| 110 | + .enableRekorV2(true) |
| 111 | + .build(); |
| 112 | + var results = signer.sign(artifactDigests); |
| 113 | + |
| 114 | + verifySigningResult(results, true); |
| 115 | + |
| 116 | + var verifier = KeylessVerifier.builder().sigstorePublicDefaults().build(); |
| 117 | + for (int i = 0; i < results.size(); i++) { |
| 118 | + verifier.verify(artifactDigests.get(i), results.get(i), VerificationOptions.empty()); |
| 119 | + checkBundleSerialization(results.get(i)); |
| 120 | + } |
| 121 | + } |
| 122 | + |
87 | 123 | @ParameterizedTest |
88 | 124 | @ValueSource(booleans = {true, false}) |
89 | 125 | @EnabledIfOidcExists(provider = OidcProviderType.ANY) |
|
0 commit comments