Skip to content

Commit 0a69171

Browse files
committed
Build updates to conformance module
- pin tags on actions - remove guava dep - add build-logic.java (with error prone and spotless) Signed-off-by: Appu Goundan <[email protected]>
1 parent 51f8ed4 commit 0a69171

File tree

3 files changed

+28
-30
lines changed

3 files changed

+28
-30
lines changed

.github/workflows/conformance.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020
id-token: write
2121
runs-on: ubuntu-latest
2222
steps:
23-
- uses: actions/checkout@d171c3b028d844f2bf14e9fdec0c58114451e4bf
23+
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # tag=v3.2.0
2424

2525
- name: Set up JDK ${{ matrix.java-version }}
26-
uses: actions/setup-java@v3
26+
uses: actions/setup-java@1df8dbefe2a8cbc99770194893dd902763bee34b # tag=v3.9.0
2727
with:
2828
java-version: ${{ matrix.java-version }}
2929
distribution: 'temurin'
@@ -36,6 +36,6 @@ jobs:
3636
- name: Unpack sigstore-java distribution
3737
run: tar -xvf ${{ github.workspace }}/sigstore-conformance/build/distributions/sigstore-conformance-*.tar --strip-components 1
3838

39-
- uses: trailofbits/sigstore-conformance@0748d63c53810e36cc3f4bbe4114301080f0d844
39+
- uses: trailofbits/sigstore-conformance@0748d63c53810e36cc3f4bbe4114301080f0d844 # tag=v0.0.3
4040
with:
4141
entrypoint: ${{ github.workspace }}/bin/sigstore-conformance

sigstore-conformance/build.gradle.kts

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
2-
id("java")
2+
id("build-logic.java")
33
id("application")
4-
id("com.diffplug.spotless") version "6.11.0"
54
}
65

76
repositories {
@@ -10,25 +9,6 @@ repositories {
109

1110
dependencies {
1211
implementation(project(":sigstore-java"))
13-
implementation("com.google.guava:guava:31.1-jre")
14-
}
15-
16-
spotless {
17-
kotlinGradle {
18-
target("*.gradle.kts") // default target for kotlinGradle
19-
ktlint()
20-
}
21-
format("misc") {
22-
target("*.md", ".gitignore", "**/*.yaml")
23-
24-
trimTrailingWhitespace()
25-
indentWithSpaces()
26-
endWithNewline()
27-
}
28-
java {
29-
googleJavaFormat("1.6")
30-
licenseHeaderFile("$rootDir/config/licenseHeader")
31-
}
3212
}
3313

3414
application {

sigstore-conformance/src/main/java/dev/sigstore/conformance/Main.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,19 @@
1515
*/
1616
package dev.sigstore.conformance;
1717

18-
import static com.google.common.io.Files.asByteSource;
1918
import static dev.sigstore.encryption.certificates.Certificates.toPemString;
2019

21-
import com.google.common.hash.Hashing;
2220
import dev.sigstore.KeylessSigner;
2321
import dev.sigstore.KeylessVerifier;
2422
import dev.sigstore.oidc.client.GithubActionsOidcClient;
23+
import java.io.IOException;
24+
import java.io.InputStream;
25+
import java.nio.charset.StandardCharsets;
2526
import java.nio.file.Files;
2627
import java.nio.file.Path;
2728
import java.nio.file.Paths;
29+
import java.security.MessageDigest;
30+
import java.security.NoSuchAlgorithmException;
2831

2932
public class Main {
3033
private static final String SIGN_COMMAND = "sign";
@@ -101,16 +104,20 @@ private static void executeSign(SignArguments args) throws Exception {
101104
.build();
102105
final var result = signer.signFile(args.artifact);
103106
Files.write(args.signature, result.getSignature());
104-
final var pemBytes = toPemString(result.getCertPath()).getBytes();
107+
final var pemBytes = toPemString(result.getCertPath()).getBytes(StandardCharsets.UTF_8);
105108
Files.write(args.certificate, pemBytes);
106109
}
107110

108111
private static class VerifyArguments {
109112
public Path signature;
110113
public Path certificate;
114+
public Path artifact;
115+
116+
@SuppressWarnings("unused") // remove when verifier actually verifies these
111117
public String certificateIdentity;
118+
119+
@SuppressWarnings("unused") // remove when verifier actually verifies these
112120
public String certificateOidcIssuer;
113-
public Path artifact;
114121
}
115122

116123
private static VerifyArguments parseVerifyArguments(Arguments args) {
@@ -129,9 +136,20 @@ private static VerifyArguments parseVerifyArguments(Arguments args) {
129136

130137
private static void executeVerify(VerifyArguments args) throws Exception {
131138
final var verifier = KeylessVerifier.builder().sigstorePublicDefaults().build();
132-
final var artifactByteSource = asByteSource(args.artifact.toFile());
133-
final byte[] artifactDigest = artifactByteSource.hash(Hashing.sha256()).asBytes();
139+
final byte[] artifactDigest = sha256(args.artifact);
134140
verifier.verifyOnline(
135141
artifactDigest, Files.readAllBytes(args.certificate), Files.readAllBytes(args.signature));
136142
}
143+
144+
private static byte[] sha256(Path path) throws IOException, NoSuchAlgorithmException {
145+
MessageDigest digest = MessageDigest.getInstance("SHA-256");
146+
try (InputStream in = Files.newInputStream(path)) {
147+
byte[] buffer = new byte[1024];
148+
int count;
149+
while ((count = in.read(buffer)) > 0) {
150+
digest.update(buffer, 0, count);
151+
}
152+
}
153+
return digest.digest();
154+
}
137155
}

0 commit comments

Comments
 (0)