Skip to content

Commit 32c8729

Browse files
committed
Avoid redundant engine creation
1 parent c26de05 commit 32c8729

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

core/src/main/java/org/bouncycastle/pqc/crypto/slhdsa/SLHDSAKeyPairGenerator.java

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,32 @@ public void init(KeyGenerationParameters param)
2020

2121
public AsymmetricCipherKeyPair internalGenerateKeyPair(byte[] skSeed, byte[] skPrf, byte[] pkSeed)
2222
{
23-
SLHDSAEngine engine = parameters.getEngine();
24-
SK sk = new SK(skSeed, skPrf);
23+
return implGenerateKeyPair(parameters.getEngine(), skSeed, skPrf, pkSeed);
24+
}
2525

26-
engine.init(pkSeed);
26+
public AsymmetricCipherKeyPair generateKeyPair()
27+
{
28+
SLHDSAEngine engine = parameters.getEngine();
2729

28-
// TODO
29-
PK pk = new PK(pkSeed, new HT(engine, sk.seed, pkSeed).htPubKey);
30+
byte[] skSeed = sec_rand(engine.N);
31+
byte[] skPrf = sec_rand(engine.N);
32+
byte[] pkSeed = sec_rand(engine.N);
3033

31-
return new AsymmetricCipherKeyPair(new SLHDSAPublicKeyParameters(parameters, pk),
32-
new SLHDSAPrivateKeyParameters(parameters, sk, pk));
34+
return implGenerateKeyPair(engine, skSeed, skPrf, pkSeed);
3335
}
3436

35-
public AsymmetricCipherKeyPair generateKeyPair()
37+
private AsymmetricCipherKeyPair implGenerateKeyPair(SLHDSAEngine engine, byte[] skSeed, byte[] skPrf, byte[] pkSeed)
3638
{
37-
SLHDSAEngine engine = parameters.getEngine();
38-
byte[] pkSeed;
39-
byte[] skSeed;
40-
byte[] skPrf;
39+
SK sk = new SK(skSeed, skPrf);
4140

41+
engine.init(pkSeed);
42+
43+
// TODO
44+
PK pk = new PK(pkSeed, new HT(engine, sk.seed, pkSeed).htPubKey);
4245

43-
skSeed = sec_rand(engine.N);
44-
skPrf = sec_rand(engine.N);
45-
pkSeed = sec_rand(engine.N);
46-
return internalGenerateKeyPair(skSeed, skPrf, pkSeed);
46+
return new AsymmetricCipherKeyPair(
47+
new SLHDSAPublicKeyParameters(parameters, pk),
48+
new SLHDSAPrivateKeyParameters(parameters, sk, pk));
4749
}
4850

4951
private byte[] sec_rand(int n)

0 commit comments

Comments
 (0)