Skip to content

Commit aa6df2d

Browse files
author
gefeili
committed
Merge branch 'main' into rfc-6508-sakke
2 parents 6655590 + a3bde4e commit aa6df2d

File tree

22 files changed

+525
-508
lines changed

22 files changed

+525
-508
lines changed

ant/jdk14.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@
214214
</copy>
215215
<copy todir="${src.dir}" overwrite="true">
216216
<fileset dir="pg/src/main/jdk1.5" includes="**/*.java"/>
217+
<fileset dir="prov/src/test/jdk1.5" includes="**/*.java"/>
217218
</copy>
218219
<copy todir="${src.dir}" overwrite="true">
219220
<fileset dir="core/src/main/jdk1.4" includes="**/*.java"/>

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,10 @@ subprojects {
253253
}
254254

255255
nohttp {
256+
source.exclude '**/*.asc'
257+
source.exclude '**/*.pem'
256258
source.exclude '**/*.rsp'
259+
source.exclude '**/*.jar'
257260
}
258261

259262
jacocoTestReport {

core/src/main/java/org/bouncycastle/asn1/bc/BCObjectIdentifiers.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,4 +429,18 @@ public interface BCObjectIdentifiers
429429
ASN1ObjectIdentifier hqc128 = pqc_kem_hqc.branch("1");
430430
ASN1ObjectIdentifier hqc192 = pqc_kem_hqc.branch("2");
431431
ASN1ObjectIdentifier hqc256 = pqc_kem_hqc.branch("3");
432+
433+
/**
434+
* ML-KEM/ML-DSA seed parameters algorithms - temporary
435+
*
436+
*/
437+
//TODO: delete before release
438+
ASN1ObjectIdentifier id_id_alg_seed = bc.branch("10");
439+
440+
ASN1ObjectIdentifier id_id_alg_ml_dsa_44_seed = id_id_alg_seed.branch("1");
441+
ASN1ObjectIdentifier id_id_alg_ml_dsa_65_seed = id_id_alg_seed.branch("2");
442+
ASN1ObjectIdentifier id_id_alg_ml_dsa_87_seed = id_id_alg_seed.branch("3");
443+
ASN1ObjectIdentifier id_id_alg_ml_kem_512_seed = id_id_alg_seed.branch("4");
444+
ASN1ObjectIdentifier id_id_alg_ml_kem_768_seed = id_id_alg_seed.branch("5");
445+
ASN1ObjectIdentifier id_id_alg_ml_kem_1024_seed = id_id_alg_seed.branch("6");
432446
}

core/src/main/java/org/bouncycastle/pqc/crypto/util/Utils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,9 @@ class Utils
279279
mldsaParams.put(NISTObjectIdentifiers.id_ml_dsa_44, MLDSAParameters.ml_dsa_44);
280280
mldsaParams.put(NISTObjectIdentifiers.id_ml_dsa_65, MLDSAParameters.ml_dsa_65);
281281
mldsaParams.put(NISTObjectIdentifiers.id_ml_dsa_87, MLDSAParameters.ml_dsa_87);
282+
mldsaParams.put(BCObjectIdentifiers.id_id_alg_ml_dsa_44_seed, MLDSAParameters.ml_dsa_44);
283+
mldsaParams.put(BCObjectIdentifiers.id_id_alg_ml_dsa_65_seed, MLDSAParameters.ml_dsa_65);
284+
mldsaParams.put(BCObjectIdentifiers.id_id_alg_ml_dsa_87_seed, MLDSAParameters.ml_dsa_87);
282285
mldsaParams.put(NISTObjectIdentifiers.id_hash_ml_dsa_44_with_sha512, MLDSAParameters.ml_dsa_44_with_sha512);
283286
mldsaParams.put(NISTObjectIdentifiers.id_hash_ml_dsa_65_with_sha512, MLDSAParameters.ml_dsa_65_with_sha512);
284287
mldsaParams.put(NISTObjectIdentifiers.id_hash_ml_dsa_87_with_sha512, MLDSAParameters.ml_dsa_87_with_sha512);

pg/src/main/java/org/bouncycastle/bcpg/ArmoredInputStream.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,8 @@ private boolean parseHeaders()
276276
}
277277
catch (Exception e)
278278
{
279-
throw new ArmoredInputException(e.getMessage());
279+
throw new ArmoredInputException(e.getMessage());
280280
}
281-
282281
if (line.trim().length() == 0)
283282
{
284283
break;

pg/src/main/java/org/bouncycastle/openpgp/operator/jcajce/JcePBEKeyEncryptionMethodGenerator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,6 @@ protected byte[] getEskAndTag(int kekAlgorithm, int aeadAlgorithm, byte[] sessio
185185
{
186186
throw new PGPException("cannot encrypt session info", e);
187187
}
188-
189188
}
190189

191190
private static String getBaseAEADAlgorithm(int encAlgorithm)

pkix/src/test/java/org/bouncycastle/cms/test/GOSTR3410_2012_256CmsSignVerifyDetached.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.security.cert.X509Certificate;
1010
import java.util.ArrayList;
1111
import java.util.Collection;
12+
import java.util.Date;
1213
import java.util.HashSet;
1314
import java.util.List;
1415

@@ -121,9 +122,13 @@ private static boolean verifyDetached(byte[] data, byte[] detachedCms,
121122

122123
// Validate signer's certificate chain
123124
X509CertSelector constraints = new X509CertSelector();
124-
constraints.setCertificate(getX509Certificate(signerCert));
125+
X509Certificate x509Certificate = getX509Certificate(signerCert);
126+
constraints.setCertificate(x509Certificate);
127+
125128
PKIXBuilderParameters params = new PKIXBuilderParameters(trustAnchors, constraints);
126129

130+
params.setDate(new Date(x509Certificate.getNotAfter().getTime() - 5000L));
131+
127132
JcaCertStoreBuilder certStoreBuilder = new JcaCertStoreBuilder();
128133
certStoreBuilder.addCertificate(signerCert);
129134

pkix/src/test/java/org/bouncycastle/cms/test/PQCSignedDataTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ public void testLmsEncapsulated()
337337
Iterator certIt = certCollection.iterator();
338338
X509CertificateHolder cert = (X509CertificateHolder)certIt.next();
339339

340-
assertEquals(true, signer.verify(new JcaSimpleSignerInfoVerifierBuilder().build(cert)));
340+
assertEquals(true, signer.verify(new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(cert)));
341341

342342
//
343343
// check content digest

prov/src/main/java/org/bouncycastle/jcajce/PKIXCRLStoreSelector.java

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -185,45 +185,44 @@ public boolean match(CRL obj)
185185
}
186186

187187
X509CRL crl = (X509CRL)obj;
188-
ASN1Integer dci = null;
189-
try
188+
189+
// TODO[pkix] Do we always need to parse the Delta CRL Indicator extension?
190190
{
191-
byte[] bytes = crl
192-
.getExtensionValue(Extension.deltaCRLIndicator.getId());
193-
if (bytes != null)
191+
ASN1Integer baseCRLNumber = null;
192+
try
194193
{
195-
dci = ASN1Integer.getInstance(ASN1OctetString.getInstance(bytes).getOctets());
194+
byte[] dci = crl.getExtensionValue(Extension.deltaCRLIndicator.getId());
195+
if (dci != null)
196+
{
197+
baseCRLNumber = ASN1Integer.getInstance(ASN1OctetString.getInstance(dci).getOctets());
198+
}
196199
}
197-
}
198-
catch (Exception e)
199-
{
200-
return false;
201-
}
202-
if (isDeltaCRLIndicatorEnabled())
203-
{
204-
if (dci == null)
200+
catch (Exception e)
205201
{
206202
return false;
207203
}
208-
}
209-
if (isCompleteCRLEnabled())
210-
{
211-
if (dci != null)
204+
205+
if (baseCRLNumber == null)
212206
{
213-
return false;
207+
if (isDeltaCRLIndicatorEnabled())
208+
{
209+
return false;
210+
}
214211
}
215-
}
216-
if (dci != null)
217-
{
218-
219-
if (maxBaseCRLNumber != null)
212+
else
220213
{
221-
if (dci.getPositiveValue().compareTo(maxBaseCRLNumber) == 1)
214+
if (isCompleteCRLEnabled())
215+
{
216+
return false;
217+
}
218+
219+
if (maxBaseCRLNumber != null && baseCRLNumber.getPositiveValue().compareTo(maxBaseCRLNumber) == 1)
222220
{
223221
return false;
224222
}
225223
}
226224
}
225+
227226
if (issuingDistributionPointEnabled)
228227
{
229228
byte[] idp = crl

prov/src/main/java/org/bouncycastle/jcajce/interfaces/MLDSAPrivateKey.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,12 @@ public interface MLDSAPrivateKey
2525
* @return the seed for the private key, null if not available.
2626
*/
2727
byte[] getSeed();
28+
29+
/**
30+
* Return the encoding of the key or an encoding of its key generation parameters (the seed).
31+
*
32+
* @param asKeyGenParams return a key gen parameters structure.
33+
* @return a PKCS#8 of the private key encoding, or a PKCS#8 of the seed.
34+
*/
35+
byte[] getEncoded(boolean asKeyGenParams);
2836
}

0 commit comments

Comments
 (0)