1
I Use This!
Very High Activity

Commits : Listings

Analyzed about 11 hours ago. based on code collected 1 day ago.
Nov 07, 2025 — Nov 07, 2026
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
Restore the jdk15to18 Ant test build under genuine javac 1.5: add the @Override/@FunctionalInterface source strip that jdk15+.xml lacked (ant/jdk14.xml preprocesses it away), exclude the tests using JDK 7/8-only APIs (PKIXRevocationChecker, Cipher.updateAAD, java.nio.file.Files, JSSE SNI/ExtendedSSLSession, PipedInputStream(,int), cert.plants generics) with matching jdk1.5 tsp AllTests / jce RegressionTest overlays, and route three guarded Java 8 test calls (CertTest verify(pub,Provider), operator GCMParameterSpec, BouncyCastleProviderTest String.join) through 1.5-safe code More... 4 months ago
Fix build1-5to1-8 so the META-INF/services/java.security.Provider post-build step reaches debug jars: the fixed 'bcprov-jdk15to18*.jar' / 'bcprov-ext-jdk15to18*.jar' globs did not match a release.debug build's 'bcprov-debug-jdk15to18-*.jar' names, so debug provider jars shipped without the JCA auto-registration file. Replaced the tar/mv/rm dance with a loop over 'bcprov*jdk15to18*.jar' (matches prov and ext, debug and non-debug) using jar uf -C prov/src/main/resources META-INF. More... 4 months ago
Fix build1-5to1-8 so the META-INF/services/java.security.Provider post-build step reaches debug jars: the fixed 'bcprov-jdk15to18*.jar' / 'bcprov-ext-jdk15to18*.jar' globs did not match a release.debug build's 'bcprov-debug-jdk15to18-*.jar' names, so debug provider jars shipped without the JCA auto-registration file. Replaced the tar/mv/rm dance with a loop over 'bcprov*jdk15to18*.jar' (matches prov and ext, debug and non-debug) using jar uf -C prov/src/main/resources META-INF. More... 4 months ago
Ignore repository-root *.jar files (/*.jar) so stray build-artifact jars left at the top level (e.g. bctest-*.jar) cannot be accidentally staged and committed. More... 4 months ago
Ignore repository-root *.jar files (/*.jar) so stray build-artifact jars left at the top level (e.g. bctest-*.jar) cannot be accidentally staged and committed. More... 4 months ago
Name the jdk15to18 Ant-build jars <module>-debug-jdk15to18-<version> when release.debug is true, mirroring the jdk14.xml change: jdk15+.xml now loads bc-build[.user].properties so it can see release.debug and sets target.prefix to debug-jdk15to18 (else jdk15to18) via a condition; default (release.debug=false) output is unchanged. More... 4 months ago
Name the jdk15to18 Ant-build jars <module>-debug-jdk15to18-<version> when release.debug is true, mirroring the jdk14.xml change: jdk15+.xml now loads bc-build[.user].properties so it can see release.debug and sets target.prefix to debug-jdk15to18 (else jdk15to18) via a condition; default (release.debug=false) output is unchanged. More... 4 months ago
Name the jdk1.4 Ant-build jars <module>-debug-jdk14-<version> when release.debug is true: jdk14.xml now loads bc-build[.user].properties so it can see release.debug and sets target.prefix to debug-jdk14 (else jdk14) via a condition, so target.name and every <module>-${target.name} artifact picks up the debug label; default (release.debug=false) output is unchanged. More... 4 months ago
Name the jdk1.4 Ant-build jars <module>-debug-jdk14-<version> when release.debug is true: jdk14.xml now loads bc-build[.user].properties so it can see release.debug and sets target.prefix to debug-jdk14 (else jdk14) via a condition, so target.name and every <module>-${target.name} artifact picks up the debug label; default (release.debug=false) output is unchanged. More... 4 months ago
Added a legacy-source-javadoc-jars skill documenting how to build Maven-style -sources.jar/-javadoc.jar files for the jdk1.4 and jdk15to18 Ant distributions from the src.zip and javadoc artifacts the Ant build leaves behind (bcprov-ext reuses bcprov, bctest is sources-only), with a JDKDIR-parameterised script. More... 4 months ago
Added a legacy-source-javadoc-jars skill documenting how to build Maven-style -sources.jar/-javadoc.jar files for the jdk1.4 and jdk15to18 Ant distributions from the src.zip and javadoc artifacts the Ant build leaves behind (bcprov-ext reuses bcprov, bctest is sources-only), with a JDKDIR-parameterised script. More... 4 months ago
Enforce the RFC 9629 kekLength INTEGER (1..65535) lower bound and the version=0 rule in the CMS KEMRecipientInfo / CMSORIforKEMOtherInfo ASN.1 types, which previously only checked the 65535 upper bound and accepted a non-zero KEMRecipientInfo version on parse; adds KEMRecipientInfoTest cases for a zero kekLength (constructor and parse paths) and a non-zero version. More... 4 months ago
Enforce the RFC 9629 kekLength INTEGER (1..65535) lower bound and the version=0 rule in the CMS KEMRecipientInfo / CMSORIforKEMOtherInfo ASN.1 types, which previously only checked the 65535 upper bound and accepted a non-zero KEMRecipientInfo version on parse; adds KEMRecipientInfoTest cases for a zero kekLength (constructor and parse paths) and a non-zero version. More... 4 months ago
Removed the dead randomizer plumbing from the composite ML-DSA SignatureSpi: engineSign generated a 32-byte r that was never used (processPreHashedMessage was always called with null, matching draft-ietf-lamps-pq-composite-sigs sec. 2.2 which has no randomizer in M' = Prefix || Label || len(ctx) || ctx || PH(M)); dropped the unused r parameter, the SecureRandom field and its now-unused imports, and stale commented-out r-handling. Behaviour is unchanged - the message representative was already built without r. More... 4 months ago
Removed the dead randomizer plumbing from the composite ML-DSA SignatureSpi: engineSign generated a 32-byte r that was never used (processPreHashedMessage was always called with null, matching draft-ietf-lamps-pq-composite-sigs sec. 2.2 which has no randomizer in M' = Prefix || Label || len(ctx) || ctx || PH(M)); dropped the unused r parameter, the SecureRandom field and its now-unused imports, and stale commented-out r-handling. Behaviour is unchanged - the message representative was already built without r. More... 4 months ago
Enforce the draft-ietf-tls-trust-anchor-ids sec. 3 / 4.1 opaque TrustAnchorID<1..2^8-1> length bound in TrustAnchorIDs: logId/landmarkId/landmarkGroupId now validate the caId input and reject a built ID outside 1..255 bytes, and fromDottedDecimal rejects an over-255-byte result, rather than relying on the downstream MTCSignature / MTCCosignedMessage opaque<1..255> checks to catch an out-of-range trust anchor ID only at serialization time. More... 4 months ago
Enforce the draft-ietf-tls-trust-anchor-ids sec. 3 / 4.1 opaque TrustAnchorID<1..2^8-1> length bound in TrustAnchorIDs: logId/landmarkId/landmarkGroupId now validate the caId input and reject a built ID outside 1..255 bytes, and fromDottedDecimal rejects an over-255-byte result, rather than relying on the downstream MTCSignature / MTCCosignedMessage opaque<1..255> checks to catch an out-of-range trust anchor ID only at serialization time. More... 4 months ago
Bump the Merkle Tree Certificates release note to track draft-ietf-plants-merkle-tree-certs-05 (the revision that added maxSerial to the id-pe-mtcCertificationAuthority extension). More... 4 months ago
Bump the Merkle Tree Certificates release note to track draft-ietf-plants-merkle-tree-certs-05 (the revision that added maxSerial to the id-pe-mtcCertificationAuthority extension). More... 4 months ago
Added the maxSerial field to the MTCCertificationAuthority (id-pe-mtcCertificationAuthority) extension so it matches the current draft-ietf-plants-merkle-tree-certs sec. 5.5 SEQUENCE { logHash, sigAlg, minSerial, maxSerial }: the struct was a field short (min only), so it could neither parse a conformant 4-element CA extension (parser rejected non-3-element) nor emit one, and the validator could only enforce the lower serial bound; MerkleTreeCertificateValidator now rejects a serial above maxSerial as well, with a round-trip and an over-max rejection test. More... 4 months ago
Added the maxSerial field to the MTCCertificationAuthority (id-pe-mtcCertificationAuthority) extension so it matches the current draft-ietf-plants-merkle-tree-certs sec. 5.5 SEQUENCE { logHash, sigAlg, minSerial, maxSerial }: the struct was a field short (min only), so it could neither parse a conformant 4-element CA extension (parser rejected non-3-element) nor emit one, and the validator could only enforce the lower serial bound; MerkleTreeCertificateValidator now rejects a serial above maxSerial as well, with a round-trip and an over-max rejection test. More... 4 months ago
Give pkix its own public org.bouncycastle.operator.OidCatalogue and demote the core org.bouncycastle.crypto.util copy to package-private, trimmed to the isCCM/isGCM/isCBC128 membership tests CipherFactory and AlgorithmIdentifierFactory actually use (dropping the now-unused isCBC64/isChaCha20Poly1305/isAEAD/isAuthEnveloped and cbc64Algs); pkix's cms and operator.jcajce callers plus the jdk1.4 overlay now import the operator copy. More... 4 months ago
Give pkix its own public org.bouncycastle.operator.OidCatalogue and demote the core org.bouncycastle.crypto.util copy to package-private, trimmed to the isCCM/isGCM/isCBC128 membership tests CipherFactory and AlgorithmIdentifierFactory actually use (dropping the now-unused isCBC64/isChaCha20Poly1305/isAEAD/isAuthEnveloped and cbc64Algs); pkix's cms and operator.jcajce callers plus the jdk1.4 overlay now import the operator copy. More... 4 months ago
Reject CR/LF in the S/MIME streaming writer header names and values: SMIMEEnvelopedWriter.Builder/SMIMESignedWriter.Builder.withHeader emitted a caller-supplied name and value verbatim terminated by CRLF, so an embedded CRLF (e.g. a Subject populated from user input) injected extra header lines and a forged body - a MIME header injection (CWE-93); withHeader now rejects a name or value containing CR or LF via SMimeUtils.checkHeader, while internally generated (folded) headers are set directly and unaffected, relates to github #2348. More... 4 months ago
Reject CR/LF in the S/MIME streaming writer header names and values: SMIMEEnvelopedWriter.Builder/SMIMESignedWriter.Builder.withHeader emitted a caller-supplied name and value verbatim terminated by CRLF, so an embedded CRLF (e.g. a Subject populated from user input) injected extra header lines and a forged body - a MIME header injection (CWE-93); withHeader now rejects a name or value containing CR or LF via SMimeUtils.checkHeader, while internally generated (folded) headers are set directly and unaffected, relates to github #2348. More... 4 months ago
Documented the OSGi Export-Package brace-list in build.gradle as a second place to wire a new package alongside module-info, the OpenPGP new-vs-legacy packet-format mechanism (per-packet flag, BCPGOutputStream PacketFormat, v6/v3 default split), and the per-module src/test/resources classpath trap for direct test runs, in the docs/claude guidance. More... 4 months ago
Documented the OSGi Export-Package brace-list in build.gradle as a second place to wire a new package alongside module-info, the OpenPGP new-vs-legacy packet-format mechanism (per-packet flag, BCPGOutputStream PacketFormat, v6/v3 default split), and the per-module src/test/resources classpath trap for direct test runs, in the docs/claude guidance. More... 4 months ago
Fixed an off-by-one in the keybox EMPTY_BLOB skip guard: a well-formed blob occupies at least its 6-octet header (u32 length + u8 type + u8 version) so next=base+len lands at or after the post-header position, but the guard rejected next<=position and so treated a header-only empty blob (length exactly 6) as end-of-file, dropping the key blobs after it - the same truncation #2343 fixed, for the minimum-length case its 32-octet padded test never exercised; the guard now rejects only next<position (length below the header) or a next beyond the buffer, and KeyBoxTest exercises the 6-octet boundary alongside the padded case, relates to github #2343. More... 4 months ago
Fixed an off-by-one in the keybox EMPTY_BLOB skip guard: a well-formed blob occupies at least its 6-octet header (u32 length + u8 type + u8 version) so next=base+len lands at or after the post-header position, but the guard rejected next<=position and so treated a header-only empty blob (length exactly 6) as end-of-file, dropping the key blobs after it - the same truncation #2343 fixed, for the minimum-length case its 32-octet padded test never exercised; the guard now rejects only next<position (length below the header) or a next beyond the buffer, and KeyBoxTest exercises the 6-octet boundary alongside the padded case, relates to github #2343. More... 4 months ago
Default version 6 OnePassSignaturePacket to the new OpenPGP packet format on generation (mirroring the v6 SignaturePacket constructor) so a v6 OPS packet emitted via PGPSignatureGenerator under the default ROUNDTRIP encoding no longer gets a Legacy header, per RFC 9580 sec. 4.2; v3 OPS keeps the Legacy default, relates to github #2347. More... 4 months ago