Skip to content

Commit acd8f6d

Browse files
author
royb
committed
made changes to flattenKeys()
1 parent 46a3388 commit acd8f6d

File tree

2 files changed

+16
-7
lines changed
  • prov/src
    • main/jdk25/org/bouncycastle/jcajce/provider/kdf/hkdf
    • test/jdk25/org/bouncycastle/jcajce/provider/kdf/test

2 files changed

+16
-7
lines changed

prov/src/main/jdk25/org/bouncycastle/jcajce/provider/kdf/hkdf/HKDFSpi.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.security.InvalidAlgorithmParameterException;
1616
import java.security.NoSuchAlgorithmException;
1717
import java.security.spec.AlgorithmParameterSpec;
18+
import java.util.ArrayList;
1819
import java.util.List;
1920
import org.bouncycastle.util.Arrays;
2021

@@ -134,19 +135,28 @@ private static KDFParameters requireNull(KDFParameters kdfParameters,
134135

135136
private byte[] flattenSecretKeys(List<SecretKey> keys)
136137
{
138+
if (keys.size() == 1)
139+
{
140+
return keys.get(0).getEncoded();
141+
}
137142
int len = 0;
138143
int off = 0;
139-
for (SecretKey key: keys)
144+
145+
List<byte[]> encoding = new ArrayList<byte[]>();
146+
for (int i = 0; i < keys.size(); i++)
140147
{
141-
len += key.getEncoded().length;
148+
encoding.add(keys.get(i).getEncoded());
149+
len += encoding.get(i).length;
142150
}
143151
byte[] res = new byte[len];
144-
for (SecretKey key: keys)
152+
for (int i = 0; i < encoding.size(); i++)
145153
{
146-
byte[] encoded = key.getEncoded();
147-
System.arraycopy(encoded, 0, res, off, encoded.length);
148-
off += encoded.length;
154+
System.arraycopy(encoding.get(i), 0, res, off, encoding.get(i).length);
155+
off += encoding.get(i).length;
149156
}
157+
158+
encoding.clear();
159+
150160
return res;
151161
}
152162

prov/src/test/jdk25/org/bouncycastle/jcajce/provider/kdf/test/HKDFTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.security.NoSuchProviderException;
1919
import java.security.SecureRandom;
2020
import java.security.Security;
21-
import java.security.spec.KeySpec;
2221

2322
import static org.bouncycastle.util.Arrays.areEqual;
2423

0 commit comments

Comments
 (0)