Skip to content

Commit c985058

Browse files
author
royb
committed
fixed kyber aes
1 parent b85eff9 commit c985058

File tree

3 files changed

+15
-27
lines changed

3 files changed

+15
-27
lines changed

core/src/main/java/org/bouncycastle/pqc/crypto/crystals/kyber/KyberIndCpa.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ public byte[][] generateKeyPair()
5555

5656
byte[] d = new byte[32];
5757

58-
SHA3Digest sha3Digest512 = new SHA3Digest(512);
59-
6058
// (p, sigma) <- G(d)
6159

6260
engine.getRandomBytes(d);

core/src/main/java/org/bouncycastle/pqc/crypto/crystals/kyber/Symmetric.java

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,17 @@ static class ShakeSymmetric
3838
extends Symmetric
3939
{
4040
private final SHAKEDigest xof;
41-
private final SHAKEDigest prf;
4241
private final SHA3Digest sha3Digest512;
4342
private final SHA3Digest sha3Digest256;
4443
private final SHAKEDigest shakeDigest;
4544

46-
4745
ShakeSymmetric()
4846
{
4947
super(168);
5048
this.xof = new SHAKEDigest(128);
51-
this.prf = new SHAKEDigest(256);
49+
this.shakeDigest = new SHAKEDigest(256);
5250
this.sha3Digest256 = new SHA3Digest(256);
5351
this.sha3Digest512 = new SHA3Digest(512);
54-
this.shakeDigest = new SHAKEDigest(256);
5552
}
5653

5754
@Override
@@ -91,8 +88,8 @@ void prf(byte[] out, byte[] seed, byte nonce)
9188
byte[] extSeed = new byte[seed.length + 1];
9289
System.arraycopy(seed, 0, extSeed, 0, seed.length);
9390
extSeed[seed.length] = nonce;
94-
prf.update(extSeed, 0, extSeed.length);
95-
prf.doFinal(out, 0, out.length);
91+
shakeDigest.update(extSeed, 0, extSeed.length);
92+
shakeDigest.doFinal(out, 0, out.length);
9693
}
9794

9895
@Override
@@ -133,17 +130,13 @@ private void aes128(byte[] out, int offset, int size)
133130
@Override
134131
void hash_h(byte[] out, byte[] in, int outOffset)
135132
{
136-
sha256Digest.update(in, 0, in.length);
137-
sha256Digest.doFinal(out, outOffset);
138-
// doDigest(sha256Digest, out, in, outOffset);
133+
doDigest(sha256Digest, out, in, outOffset);
139134
}
140135

141136
@Override
142137
void hash_g(byte[] out, byte[] in)
143138
{
144-
sha512Digest.update(in, 0, in.length);
145-
sha512Digest.doFinal(out, 0);
146-
// doDigest(sha512Digest, out, in, 0);
139+
doDigest(sha512Digest, out, in, 0);
147140
}
148141

149142
@Override
@@ -166,23 +159,20 @@ void xofSqueezeBlocks(byte[] out, int outOffset, int outLen)
166159
@Override
167160
void prf(byte[] out, byte[] key, byte nonce)
168161
{
169-
SICBlockCipher prf = new SICBlockCipher(new AESEngine());
170162
byte[] expnonce = new byte[12];
171163
expnonce[0] = nonce;
172164

173165
ParametersWithIV kp = new ParametersWithIV(new KeyParameter(Arrays.copyOfRange(key, 0, 32)), expnonce);
174-
prf.init(true, kp);
166+
cipher.init(true, kp);
175167
aes128(out, 0, out.length);
176-
byte[] buf = new byte[out.length]; // TODO: there might be a more efficient way of doing this...
177-
prf.processBytes(buf, 0, out.length, out, 0);
178168
}
179169

180170
@Override
181171
void kdf(byte[] out, byte[] in)
182172
{
183-
sha256Digest.update(in, 0, in.length);
184-
sha256Digest.doFinal(out, 0);
185-
// doDigest(sha256Digest, out, in, 0);
173+
byte[] buf = new byte[32];
174+
doDigest(sha256Digest, buf, in, 0);
175+
System.arraycopy(buf, 0, out, 0, out.length);
186176
}
187177
}
188178
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,18 @@ public void testVectors()
103103
KyberParameters.kyber512,
104104
KyberParameters.kyber768,
105105
KyberParameters.kyber1024,
106-
// KyberParameters.kyber512,
107-
// KyberParameters.kyber768,
108-
// KyberParameters.kyber1024,
106+
KyberParameters.kyber512_aes,
107+
KyberParameters.kyber768_aes,
108+
KyberParameters.kyber1024_aes,
109109
};
110110

111111
String[] files = new String[]{
112112
"kyber512.rsp",
113113
"kyber768.rsp",
114114
"kyber1024.rsp",
115-
// "kyber512aes.rsp",
116-
// "kyber768aes.rsp",
117-
// "kyber1024aes.rsp",
115+
"kyber512aes.rsp",
116+
"kyber768aes.rsp",
117+
"kyber1024aes.rsp",
118118
};
119119

120120
TestSampler sampler = new TestSampler();

0 commit comments

Comments
 (0)