Skip to content

Commit bbe71c1

Browse files
committed
wip
1 parent 190db1c commit bbe71c1

2 files changed

Lines changed: 16 additions & 23 deletions

File tree

signing/src/main/java/playground/stianst/github/io/SignatureAlgorithms.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,17 @@ public enum SignatureAlgorithms {
2828
private final String algorithm;
2929
private final String keyPairAlgorithm;
3030
private final AlgorithmParameterSpec spec;
31-
private final String provider;
3231

3332
SignatureAlgorithms(String algorithm, AlgorithmParameterSpec spec) {
3433
this.algorithm = algorithm;
3534
this.keyPairAlgorithm = algorithm;
3635
this.spec = spec;
37-
this.provider = null;
3836
}
3937

4038
SignatureAlgorithms(String algorithm, String keyPairAlgorithm, AlgorithmParameterSpec spec) {
4139
this.algorithm = algorithm;
4240
this.keyPairAlgorithm = keyPairAlgorithm;
4341
this.spec = spec;
44-
this.provider = null;
45-
}
46-
47-
SignatureAlgorithms(String algorithm, String keyPairAlgorithm, AlgorithmParameterSpec spec, String provider) {
48-
this.algorithm = algorithm;
49-
this.keyPairAlgorithm = keyPairAlgorithm;
50-
this.spec = spec;
51-
this.provider = provider;
5242
}
5343

5444
public String getName() {
@@ -66,8 +56,4 @@ public String getKeyPairAlgorithm() {
6656
public AlgorithmParameterSpec getSpec() {
6757
return spec;
6858
}
69-
70-
public String getProvider() {
71-
return provider;
72-
}
7359
}

signing/src/main/java/playground/stianst/github/io/SignatureTest.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,43 @@
1111

1212
public class SignatureTest {
1313

14-
public static final String OUTPUT = "%-15s %-12s %-12s %-12s %-12s%n";
14+
public static final int COUNT = 10;
15+
public static final boolean SKIP_SLH_DSA = true;
16+
17+
public static final String OUTPUT = "%-15s %-12s %-12s %-12s %-12s %-12s%n";
1518

1619
public static void main(String[] args) throws Exception {
1720
Security.addProvider(new BouncyCastleProvider());
1821

1922
String payload = new String(SignatureTest.class.getClassLoader().getResourceAsStream("payload").readAllBytes(), StandardCharsets.UTF_8);
20-
int countFast = 100;
21-
int countSlow = 1;
2223

23-
System.out.printf(OUTPUT, "Algorithm", "Size", "Size (url)", "Key Size", "Time (ms)");
24+
System.out.printf(OUTPUT, "Algorithm", "Size", "Size (url)", "Key Size", "Time (ms)", "Provider");
2425
for (SignatureAlgorithms a : SignatureAlgorithms.values()) {
25-
KeyPairGenerator keyPairGenerator = a.getProvider() != null ? KeyPairGenerator.getInstance(a.getKeyPairAlgorithm(), a.getProvider()) : KeyPairGenerator.getInstance(a.getKeyPairAlgorithm());
26+
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(a.getKeyPairAlgorithm());
2627
keyPairGenerator.initialize(a.getSpec());
2728
KeyPair keyPair = keyPairGenerator.generateKeyPair();
2829

2930
byte[] signedBytes = new byte[0];
3031
long start = System.currentTimeMillis();
3132

32-
int count = a.getName().startsWith("SLH_DSA") ? countSlow : countFast;
33-
for (int i = 0; i <= count; i++) {
34-
Signature signature = a.getProvider() != null ? Signature.getInstance(a.getAlgorithm(), a.getProvider()) : Signature.getInstance(a.getAlgorithm());
33+
String provider = null;
34+
35+
if (SKIP_SLH_DSA && a.getAlgorithm().equals("SLHDSA")) {
36+
continue;
37+
}
38+
39+
for (int i = 0; i <= COUNT; i++) {
40+
Signature signature = Signature.getInstance(a.getAlgorithm());
3541
signature.initSign(keyPair.getPrivate());
3642
signature.update(payload.getBytes());
3743
signedBytes = signature.sign();
44+
provider = signature.getProvider().getName();
3845
}
3946

4047
long time = System.currentTimeMillis() - start;
4148
String signatureEncoded = Base64.getUrlEncoder().encodeToString(signedBytes);
4249

43-
System.out.printf(OUTPUT, a.getName(), signedBytes.length, signatureEncoded.length(), keyPair.getPublic().getEncoded().length, (double) time / count);
50+
System.out.printf(OUTPUT, a.getName(), signedBytes.length, signatureEncoded.length(), keyPair.getPublic().getEncoded().length, (double) time / COUNT, provider);
4451
}
4552

4653
}

0 commit comments

Comments
 (0)