Skip to content

Commit a1ed964

Browse files
committed
Merge branch 'main' of gitlab.cryptoworkshop.com:root/bc-java
2 parents 921dce5 + 6114940 commit a1ed964

File tree

8 files changed

+694
-61
lines changed

8 files changed

+694
-61
lines changed

core/src/main/java/org/bouncycastle/pqc/crypto/crystals/dilithium/Packing.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ static PolyVecK unpackPublicKey(PolyVecK t1, byte[] publicKey, DilithiumEngine e
2222

2323
for (i = 0; i < engine.getDilithiumK(); ++i)
2424
{
25-
t1.getVectorIndex(i).polyt1Unpack(Arrays.copyOfRange(publicKey, i * DilithiumEngine.DilithiumPolyT1PackedBytes, DilithiumEngine.SeedBytes + (i + 1) * DilithiumEngine.DilithiumPolyT1PackedBytes));
25+
t1.getVectorIndex(i).polyt1Unpack(Arrays.copyOfRange(publicKey, i * DilithiumEngine.DilithiumPolyT1PackedBytes, (i + 1) * DilithiumEngine.DilithiumPolyT1PackedBytes));
2626
}
2727
return t1;
2828
}

core/src/main/java/org/bouncycastle/pqc/crypto/mldsa/MLDSAEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ else if (this.DilithiumGamma1 == (1 << 19))
237237
}
238238

239239
//Internal functions are deterministic. No randomness is sampled inside them
240-
public byte[][] generateKeyPairInternal(byte[] seed)
240+
private byte[][] generateKeyPairInternal(byte[] seed)
241241
{
242242
byte[] buf = new byte[2 * SeedBytes + CrhBytes];
243243
byte[] tr = new byte[TrBytes];

core/src/main/java/org/bouncycastle/pqc/crypto/mldsa/MLDSAKeyPairGenerator.java

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,47 +10,19 @@ public class MLDSAKeyPairGenerator
1010
implements AsymmetricCipherKeyPairGenerator
1111
{
1212
private MLDSAParameters dilithiumParams;
13-
1413
private SecureRandom random;
1514

16-
private void initialize(
17-
KeyGenerationParameters param)
15+
public void init(KeyGenerationParameters param)
1816
{
1917
this.dilithiumParams = ((MLDSAKeyGenerationParameters)param).getParameters();
2018
this.random = param.getRandom();
2119
}
2220

23-
private AsymmetricCipherKeyPair genKeyPair()
24-
{
25-
MLDSAEngine engine = dilithiumParams.getEngine(random);
26-
27-
byte[][] keyPair = engine.generateKeyPair();
28-
// System.out.println("pk gen = ");
29-
// Helper.printByteArray(keyPair[0]);
30-
31-
MLDSAPublicKeyParameters pubKey = new MLDSAPublicKeyParameters(dilithiumParams, keyPair[0], keyPair[6]);
32-
MLDSAPrivateKeyParameters privKey = new MLDSAPrivateKeyParameters(dilithiumParams, keyPair[0], keyPair[1], keyPair[2], keyPair[3], keyPair[4], keyPair[5], keyPair[6]);
33-
34-
return new AsymmetricCipherKeyPair(pubKey, privKey);
35-
}
36-
37-
public void init(KeyGenerationParameters param)
38-
{
39-
this.initialize(param);
40-
}
41-
4221
public AsymmetricCipherKeyPair generateKeyPair()
43-
{
44-
return genKeyPair();
45-
}
46-
public AsymmetricCipherKeyPair internalGenerateKeyPair(byte[] seed)
4722
{
4823
MLDSAEngine engine = dilithiumParams.getEngine(random);
4924

50-
byte[][] keyPair = engine.generateKeyPairInternal(seed);
51-
// System.out.println("pk gen = ");
52-
// Helper.printByteArray(keyPair[0]);
53-
25+
byte[][] keyPair = engine.generateKeyPair();
5426
MLDSAPublicKeyParameters pubKey = new MLDSAPublicKeyParameters(dilithiumParams, keyPair[0], keyPair[6]);
5527
MLDSAPrivateKeyParameters privKey = new MLDSAPrivateKeyParameters(dilithiumParams, keyPair[0], keyPair[1], keyPair[2], keyPair[3], keyPair[4], keyPair[5], keyPair[6]);
5628

core/src/main/java/org/bouncycastle/pqc/crypto/mldsa/Packing.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ static PolyVecK unpackPublicKey(PolyVecK t1, byte[] publicKey, MLDSAEngine engin
2222

2323
for (i = 0; i < engine.getDilithiumK(); ++i)
2424
{
25-
t1.getVectorIndex(i).polyt1Unpack(Arrays.copyOfRange(publicKey, i * MLDSAEngine.DilithiumPolyT1PackedBytes, MLDSAEngine.SeedBytes + (i + 1) * MLDSAEngine.DilithiumPolyT1PackedBytes));
25+
t1.getVectorIndex(i).polyt1Unpack(Arrays.copyOfRange(publicKey, i * MLDSAEngine.DilithiumPolyT1PackedBytes, (i + 1) * MLDSAEngine.DilithiumPolyT1PackedBytes));
2626
}
2727
return t1;
2828
}

core/src/test/java/org/bouncycastle/pqc/crypto/test/AllTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public static Test suite()
3939
suite.addTestSuite(FalconTest.class);
4040
suite.addTestSuite(MLKEMTest.class);
4141
suite.addTestSuite(CrystalsDilithiumTest.class);
42+
suite.addTestSuite(MLDSATest.class);
4243
suite.addTestSuite(NTRULPRimeTest.class);
4344
suite.addTestSuite(SNTRUPrimeTest.class);
4445
suite.addTestSuite(BIKETest.class);
@@ -47,6 +48,7 @@ public static Test suite()
4748
suite.addTestSuite(GeMSSTest.class);
4849
suite.addTestSuite(XWingTest.class);
4950
suite.addTestSuite(AllTests.SimpleTestTest.class);
51+
suite.addTestSuite(SLHDSATest.class);
5052

5153
return new BCTestSetup(suite);
5254
}

0 commit comments

Comments
 (0)