Skip to content

Commit 6217e50

Browse files
committed
WIP
1 parent aec70a5 commit 6217e50

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

signing/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,18 @@
2020
<version>1.82</version>
2121
</dependency>
2222
</dependencies>
23+
<build>
24+
<plugins>
25+
<plugin>
26+
<groupId>org.apache.maven.plugins</groupId>
27+
<artifactId>maven-compiler-plugin</artifactId>
28+
<configuration>
29+
<source>25</source>
30+
<target>25</target>
31+
<compilerArgs>--enable-preview</compilerArgs>
32+
</configuration>
33+
</plugin>
34+
</plugins>
35+
</build>
2336

2437
</project>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public enum SignatureAlgorithms {
1515
ES384("SHA384withECDSA", "EC", new ECGenParameterSpec("secp384r1")),
1616
ES512("SHA512withECDSA", "EC", new ECGenParameterSpec("secp521r1")),
1717
FALCON_512("Falcon", "Falcon", FalconParameterSpec.falcon_512),
18+
FALCON_1024("Falcon", "Falcon", FalconParameterSpec.falcon_1024),
1819
ML_DSA_44("ML-DSA-44", NamedParameterSpec.ML_DSA_44),
1920
ML_DSA_65("ML-DSA-65", NamedParameterSpec.ML_DSA_65),
2021
ML_DSA_87("ML-DSA-87", NamedParameterSpec.ML_DSA_87),

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,32 @@
55
import java.nio.charset.StandardCharsets;
66
import java.security.KeyPair;
77
import java.security.KeyPairGenerator;
8+
import java.security.PEMEncoder;
89
import java.security.Security;
910
import java.security.Signature;
1011
import java.util.Base64;
1112

1213
public class SignatureTest {
1314

14-
public static final String OUTPUT = "%-15s %-12s %-12s %-10s%n";
15+
public static final String OUTPUT = "%-15s %-12s %-12s %-12s %-12s%n";
1516

1617
static void main(String[] args) throws Exception {
1718
Security.addProvider(new BouncyCastleProvider());
1819

1920
String payload = new String(SignatureTest.class.getClassLoader().getResourceAsStream("payload").readAllBytes(), StandardCharsets.UTF_8);
20-
int count = 10;
21+
int countFast = 100;
22+
int countSlow = 10;
2123

22-
System.out.printf(OUTPUT, "Algorithm", "Size", "Size (url)", "Time (ms)");
24+
System.out.printf(OUTPUT, "Algorithm", "Size", "Size (url)", "Key Size", "Time (ms)");
2325
for (SignatureAlgorithms a : SignatureAlgorithms.values()) {
2426
KeyPairGenerator keyPairGenerator = a.getProvider() != null ? KeyPairGenerator.getInstance(a.getKeyPairAlgorithm(), a.getProvider()) : KeyPairGenerator.getInstance(a.getKeyPairAlgorithm());
2527
keyPairGenerator.initialize(a.getSpec());
2628
KeyPair keyPair = keyPairGenerator.generateKeyPair();
2729

2830
byte[] signedBytes = new byte[0];
2931
long start = System.currentTimeMillis();
32+
33+
int count = a.getName().startsWith("SLH_DSA") ? countSlow : countFast;
3034
for (int i = 0; i <= count; i++) {
3135
Signature signature = a.getProvider() != null ? Signature.getInstance(a.getAlgorithm(), a.getProvider()) : Signature.getInstance(a.getAlgorithm());
3236
signature.initSign(keyPair.getPrivate());
@@ -37,8 +41,11 @@ static void main(String[] args) throws Exception {
3741
long time = System.currentTimeMillis() - start;
3842
String signatureEncoded = Base64.getUrlEncoder().encodeToString(signedBytes);
3943

40-
System.out.printf(OUTPUT, a.getName(), signedBytes.length, signatureEncoded.length(), (double) time / count);
44+
byte[] publicKeyEncoded = PEMEncoder.of().encode(keyPair.getPublic());
45+
46+
System.out.printf(OUTPUT, a.getName(), signedBytes.length, signatureEncoded.length(), publicKeyEncoded.length, (double) time / count);
4147
}
48+
4249
}
4350

4451

0 commit comments

Comments
 (0)