diff --git a/.gitignore b/.gitignore
index 13bb561270..72ab296f63 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@
bin/
build/
*/build/
+libs/*.jar
out/
*/out/
.settings/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 030dcba4ec..4f7b3f73fd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,30 +1,113 @@
stages:
- check
+ - build
- test
check-code:
stage: check
script:
- - "apply_overlay bc-java ./"
- - ". cienv.sh; \ gradle check -x test;"
-
+ - "ecr_login"
+ - "ecr_pull vm_base_intel latest"
+ - "ci_docker_run \"vm_base_intel:latest\" \"bc-java\" \"/workspace/bc-java/ci/check_java.sh\""
+ artifacts:
+ when: always
+ paths:
+ - "core/build/reports"
+ - "prov/build/reports"
+ - "pg/build/reports"
+ - "pkix/build/reports"
+ - "mail/build/reports"
+ - "util/build/reports"
+ - "tls/build/reports"
+ - "mls/build/reports"
+
+ant-build:
+ stage: build
+ needs: [ "check-code" ]
+ script:
+ - "ecr_login"
+ - "ecr_pull vm_base_intel latest"
+ - "ci_docker_run \"vm_base_intel:latest\" \"bc-java\" \"/workspace/bc-java/ci/build_1_8.sh\""
+
+
test-code-8:
stage: test
+ needs: [ "check-code" ]
script:
- - "apply_overlay bc-java ./"
- - "sh gettestdata.sh"
- - ". cienv-8.sh; \ gradle -stacktrace clean build;"
-
+ - "ecr_login"
+ - "ecr_pull vm_base_intel latest"
+ - "ci_docker_run \"vm_base_intel:latest\" \"bc-java\" \"/workspace/bc-java/ci/test_8.sh\""
+ artifacts:
+ when: always
+ reports:
+ junit:
+ - "core/build/test-results/**/*.xml"
+ - "prov/build/test-results/**/*.xml"
+ - "pg/build/test-results/**/*.xml"
+ - "pkix/build/test-results/**/*.xml"
+ - "mail/build/test-results/**/*.xml"
+ - "util/build/test-results/**/*.xml"
+ - "tls/build/test-results/**/*.xml"
+ - "mls/build/test-results/**/*.xml"
+
test-code-11:
stage: test
+ needs: [ "check-code" ]
script:
- - "apply_overlay bc-java ./"
- - "sh gettestdata.sh"
- - ". cienv-11.sh; \ gradle -stacktrace clean build;"
-
+ - "ecr_login"
+ - "ecr_pull vm_base_intel latest"
+ - "ci_docker_run \"vm_base_intel:latest\" \"bc-java\" \"/workspace/bc-java/ci/test_11.sh\""
+ artifacts:
+ when: always
+ reports:
+ junit:
+ - "core/build/test-results/**/*.xml"
+ - "prov/build/test-results/**/*.xml"
+ - "pg/build/test-results/**/*.xml"
+ - "pkix/build/test-results/**/*.xml"
+ - "mail/build/test-results/**/*.xml"
+ - "util/build/test-results/**/*.xml"
+ - "tls/build/test-results/**/*.xml"
+ - "mls/build/test-results/**/*.xml"
+
+
test-code-17:
stage: test
+ needs: [ "check-code" ]
+ script:
+ - "ecr_login"
+ - "ecr_pull vm_base_intel latest"
+ - "ci_docker_run \"vm_base_intel:latest\" \"bc-java\" \"/workspace/bc-java/ci/test_17.sh\""
+ artifacts:
+ when: always
+ reports:
+ junit:
+ - "core/build/test-results/**/*.xml"
+ - "prov/build/test-results/**/*.xml"
+ - "pg/build/test-results/**/*.xml"
+ - "pkix/build/test-results/**/*.xml"
+ - "mail/build/test-results/**/*.xml"
+ - "util/build/test-results/**/*.xml"
+ - "tls/build/test-results/**/*.xml"
+ - "mls/build/test-results/**/*.xml"
+
+
+test-code-21:
+ stage: test
+ needs: [ "check-code" ]
script:
- - "apply_overlay bc-java ./"
- - "sh gettestdata.sh"
- - ". cienv-17.sh; \ gradle -stacktrace clean build;"
\ No newline at end of file
+ - "ecr_login"
+ - "ecr_pull vm_base_intel latest"
+ - "ci_docker_run \"vm_base_intel:latest\" \"bc-java\" \"/workspace/bc-java/ci/test_21.sh\""
+ artifacts:
+ when: always
+ reports:
+ junit:
+ - "core/build/test-results/**/*.xml"
+ - "prov/build/test-results/**/*.xml"
+ - "pg/build/test-results/**/*.xml"
+ - "pkix/build/test-results/**/*.xml"
+ - "mail/build/test-results/**/*.xml"
+ - "util/build/test-results/**/*.xml"
+ - "tls/build/test-results/**/*.xml"
+ - "mls/build/test-results/**/*.xml"
diff --git a/CONTRIBUTORS.html b/CONTRIBUTORS.html
index 5c3c90f232..12e559629f 100644
--- a/CONTRIBUTORS.html
+++ b/CONTRIBUTORS.html
@@ -10,7 +10,7 @@
The following people and organisations donated financially to help with the release of Bouncy Castle:
-EduFer (1.72). Miguel, Rodolfo Hansen, and iterate GmbH (1.69). Encryptomatic.com (1.67). Denis Beurive, Ravi_02, and Manuel Corona (1.66). Christian Kahlo, Alexi Livshitz, and Denis Beurive (1.65). Joshua Hight (1.63). Bihari Babu (1.61). Jens Neuhalfen and perillamint (1.60). Brian Reid (1.59). Joop Kaashoek and Pexus LLC (1.57). DidiSoft, Cotiviti, Atanas Krachev, Encryptomatic LLC, LogicalAnswersIncSupporter (1.56). Digistamp, RAM NAG (1.55). Lobster GmbH (1.54). Sheba, Ishmal Bartley, and Li-Chang Johnny Lo (1.53). lecker@buetterchen.de, Charles Proxy, Gunny Mills, Morgan Le Douget, Ben Whitaker, and Emilio Navarrete Lineros (1.52). Gup & Boz @ Alki Seattle, Bytemine Gmbh, Ted Pennings, Atanas Krachev, PrimeKey Solutions AB, Martin Paljak, CorseraFri19980116, CPU Terminator, Lindsay Bradford, kares, Philius, and Aaron Anderson (1.51).
+AXL Software, Larry West (California), A-Sher (1.77). EduFer (1.72). Miguel, Rodolfo Hansen, and iterate GmbH (1.69). Encryptomatic.com (1.67). Denis Beurive, Ravi_02, and Manuel Corona (1.66). Christian Kahlo, Alexi Livshitz, and Denis Beurive (1.65). Joshua Hight (1.63). Bihari Babu (1.61). Jens Neuhalfen and perillamint (1.60). Brian Reid (1.59). Joop Kaashoek and Pexus LLC (1.57). DidiSoft, Cotiviti, Atanas Krachev, Encryptomatic LLC, LogicalAnswersIncSupporter (1.56). Digistamp, RAM NAG (1.55). Lobster GmbH (1.54). Sheba, Ishmal Bartley, and Li-Chang Johnny Lo (1.53). lecker@buetterchen.de, Charles Proxy, Gunny Mills, Morgan Le Douget, Ben Whitaker, and Emilio Navarrete Lineros (1.52). Gup & Boz @ Alki Seattle, Bytemine Gmbh, Ted Pennings, Atanas Krachev, PrimeKey Solutions AB, Martin Paljak, CorseraFri19980116, CPU Terminator, Lindsay Bradford, kares, Philius, and Aaron Anderson (1.51).
We also wish to acknowledge financial and collaborative support from CISCO and additional financial support from PrimeKey towards developing the EST API for RFC 7030 support.
@@ -384,7 +384,7 @@
Tobias Wich<tobias.wich@ecsec.de> Provided patch for TLS to work around servers sending Supported Elliptic Curves extension unexpectedly.
Hauke Mehrtens<hauke@hauke-m.de> TLS patch to add ECDHE_ECDSA CCM ciphersuites from RFC 7251.
Daniel Zimmerman<dmz@galois.com> Further key quality improvements to RSAKeyPairGenerator.
-Jens Kapitza<j.kapitza@schwarze-allianz.de> Iterable support in OpenPGP API, code cleanup in OpenPGP API.
+Jens Kapitza<j.kapitza@schwarze-allianz.de> Iterable support in OpenPGP API, code cleanup in OpenPGP API.
Johan Eklund<johan@primekey.se> update to RFC 6960 for OCSPObjectIdentifiers.
nikosn<https://github.com/nikosn> Fix to encoding of EC private keys to ensure encoding matches order length.
Axel von dem Bruch <axel-vdb@riseup.net> Contributions to BCrypt/OpenBSDBCrypt, original version of Blake2bDigest.
@@ -441,18 +441,18 @@
David Strawn <https://github.com/isomarcte> fix for off by one error in SCRYPT bounds checking.
chris mccown <0xchrismccown@gmail.com> identification of serialisation issue with XMSS/XMSSMT private keys (see also CVE-2018-1000613).
ZZMarquis <https://github.com/ZZMarquis> offset patches for SM2 encryption and decryption, improvement to Array constant time comparison.
-Andreas Kretschmer <https://github.com/Akretsch> NPE fix for CertTemplate.getVersion()
+Andreas Kretschmer, Siemens AG <https://github.com/Akretsch> NPE fix for CertTemplate.getVersion(), ASN.1 KEM Support classes for CMP.
Armin Lunkeit, Michael Tautenhahn <> identification of M-R test issue on higher certainty values in RSA key pair generation.
Vincent Breitmoser <https://github.com/Valodim> fix to ignore unnecessary checksum calculator on PGP secret key encryption.
Adam Vartanian <https://github.com/flooey> use of ShortBuffer exception and buffer size pre-check in Cipher.doFinal().
Bernd <https://github.com/ecki> Fix to make PGPUtil.pipeFileContents use buffer and not leak file handle.
Shartung <https://github.com/shartung> Additional EC Key Agreement algorithms in support of German BSI TR-03111.
-Paul Schaub <https://github.com/vanitasvitae> bringing PGPSecretKey.getUserIds() into line with PGPPublicKey.getUserIds(). Exception message fix in BcPublicKeyDataDecryptorFactory. Additional tests on PGP key ring generation. Improved functionality of PGPSignatureSubpacketGenerator, PGPPublicKeyRing. Tweaks to PGPDataEncryptorBuilder interface, fix for JcaPGP/BcPGP Ed25519 private key conversion. Added configurable CRC detection to ArmoredInputStream, additional control character skipping in ArmoredInputStream. Rewind code for PGPPBEEncryptedData, addition of PGPSignature.getDigestPrefix(). Wrong list traversal fix in PGPSecretKeyRing. Further improvement to use of generics in PGP API. General interop improvements. PGP Public / Secure keyring ignore marker packets when reading. Initial work on PGP session key handling, filtering literal data for canoncialization. Addition of direct key identified key-ring construction. PGPSecretKeyRing.insertOrReplacePublicKey addition. Addition of utility methods for joining/merging signatures and public keys. Addition of PGP regexp packet, PolicyURI packet handling, UTF8 comment testing. Efficiency improvements to TruncatedStream. Initial Argon2 support for OpenPGP. General cleanups. Fast CRC24 implementation, SHA3 addtions to BcImplProvider, improvements to One Pass Signature support, read() consistency in BCPGInputStream. Contributions to AEAD support in PGP API.
+Paul Schaub <https://github.com/vanitasvitae> bringing PGPSecretKey.getUserIds() into line with PGPPublicKey.getUserIds(). Exception message fix in BcPublicKeyDataDecryptorFactory. Additional tests on PGP key ring generation. Improved functionality of PGPSignatureSubpacketGenerator, PGPPublicKeyRing. Tweaks to PGPDataEncryptorBuilder interface, fix for JcaPGP/BcPGP Ed25519 private key conversion. Added configurable CRC detection to ArmoredInputStream, additional control character skipping in ArmoredInputStream. Rewind code for PGPPBEEncryptedData, addition of PGPSignature.getDigestPrefix(). Wrong list traversal fix in PGPSecretKeyRing. Further improvement to use of generics in PGP API. General interop improvements. PGP Public / Secure keyring ignore marker packets when reading. Initial work on PGP session key handling, filtering literal data for canoncialization. Addition of direct key identified key-ring construction. PGPSecretKeyRing.insertOrReplacePublicKey addition. Addition of utility methods for joining/merging signatures and public keys. Addition of PGP regexp packet, PolicyURI packet handling, UTF8 comment testing. Efficiency improvements to TruncatedStream. Initial Argon2 support for OpenPGP. General cleanups. Fast CRC24 implementation, SHA3 addtions to BcImplProvider, improvements to One Pass Signature support, signatue validation, read() consistency in BCPGInputStream. Contributions to AEAD support (v6 & v5) in PGP API. Addition of PGP WildCard ID, moving the PGP example code into the 21st century. Security patches for encrypted data generation, initial thread safe certification verification. Support for V6 EC keys, PGP packet criticality, and Preferred AEAD CipherSuites sigsubpacket support.
Nick of Nexxar <https://github.com/nros> update to OpenPGP package to handle a broader range of EC curves.
catbref <https://github.com/catbref> sample implementation of RFC 7748/Ed25519 (incorporated work from github users Valodim and str4d as well).
gerlion <https://github.com/gerlion> detection of concurrency issue with pre-1.60 EC math library.
fgrieu <fgrieu@gmail.com> identification and suggested fixes for possible timing vulnerability in OAEPEncoding and RSACoreEngine.
-MTG <https://github.com/mtgag> patch for decoding issues in PKIPublicationInfo and CertifiedKeyPair.
+MTG <https://github.com/mtgag> patch for decoding issues in PKIPublicationInfo and CertifiedKeyPair, patch for adding jurisdiction{C,ST,L} to X500 name style.
Andreas Gadermaier <up.gadermaier@gmail.com> initial version of Argon2 PBKDF algorithm.
Tony Washer <tony.washer@yahoo.co.uk> review of qTesla, Java 1.9 module code, additional test code and debugging for GOST, DSTU, and ECNR algorithms. Initial lightweight implementation of the ZUC ciphers and macs. Additions to LMS/HSS API implementations, fix for truncation issue with big HSS keys, contributions to optimization of LMS/HSS. Patch for XDH/EdDSA key handling and mcEliece decryption using kobaraImai. Initial GCM-SIV, Blake3, and Kangaroo implementation.
Vincent Bouckaert <https://github.com/veebee> initial version of RFC 4998 ASN.1 classes. Debugging and testing of high level RFC 4998 implementation.
@@ -488,7 +488,7 @@
vvvlado <https://github.com/vvvlado> Fix to support repeated headers in PGP armored data.
a--v--k <https://github.com/a--v--k> Clean up for some invalid mappings in the Java provider.
lipnitsk <https://github.com/lipnitsk> Fix for non-CRT RSA Private serialisation.
-Niccolò Fontana <https://github.com/NicFontana> Initial fix for high-latency DTLS HelloVerifyRequest handshakes.
+Niccolò Fontana <https://github.com/NicFontana> Initial fix for high-latency DTLS HelloVerifyRequest handshakes.
sudheernv <https://github.com/sudheernv> Patch for KMAC rightEncode() encoding.
Mathias Neuhaus <https://github.com/mneuhaus-cv> Patch for cSHAKE extra padding on block aligned N and S bug.
Yuri Schimke <https://github.com/yschimke> Patch for nested exception handling in BcKeyStoreSpi.
@@ -529,7 +529,24 @@
Amazon AWS Security Team - isolation and identification of performance bottlenecks in the BC PEM parsing support.
Phillip Schichtel <https://github.com/pschichtel> - initial code for specifying wrapping algorithm with PGP PBE encryption method, forcing of session key usage.
Alexander Dippel <https://github.com/adippel> - corrections to prevent NPEs on chunked encoding of EST responses.
-Johann N. Löfflmann <https://github.com/jonelo> - fix to "too small" buffer issue in Blake2sp.
+Johann N. Löfflmann <https://github.com/jonelo> - fix to "too small" buffer issue in Blake2sp.
+ Scott Xu <https://github.com/scott-xu> - message fix in OpenSSHPublicKeyUtil
+Scott Arciszewski <https://github/scottarc> - correction to ant scripts to ensure UTF8 support.
+GitHub Security team - identification of the X509LDAPCertStoreSpi wildcard bug (see CVE-2023-33201).
+James Howe <https://github.com/OrangeDog> - improvement to cross-provider compatibility in JcaPKCS10CertificationRequest.
+Steffen Heil <https://github.com/steffen-heil> - correction to error handling in Arrays.getLength().
+Thomas D. <https://github.com/thomdev> - expansion of HPKE APIs, addition of user controlled ephemeral key to HPKE API.
+Franz Fangmeyer <https://github.com/ff-wl> - exception handling for improper use of '=' in an X.500 RDN.
+Jonathan Lennox <https://github.com/JonathanLennox> - fix DTLS retransmission bug with aggregated ChangeCipherSpec.
+Thomas Devanneaux <tdevanneaux@apple.com> - extensions to the HPKE API to support encryption/decryption from byte ranges, allow sender selected ephemeral key.
+Norman Maurer <norman_maurer@apple.com> - extensions to the HPKE API to support encryption/decryption from byte ranges, allow sender selected ephemeral key.
+Bing Shi <roadicing@gmail.com> - addition of F2m bounds checking for imported EC F2m curves.
+Phil Brown <https://github.com/brownp2k> - additional ant targets for building util and pkix.
+Tamas Cservenak <https://github.com/cstamas> - initial patch for supporting Ed25519 keys in GnuPG S-expressions.
+chchen-scholar <https://github.com/chchen-scholar> - encoding fix for EccP256CurvePoint.
+Seung Yeon <https://github.com/seungyeonpark> - addition of Memoable method implementations to CertPathValidationContext and CertificatePoliciesValidation.
+yuhh0328 <https://github.com/yuhh0328> - initial patch for adding ML-KEM support to TLS.
+Jan Oupický <https://github.com/Honzaik> - update to draft 13 of composite PQC signatures.