openhub.net
Black Duck Software, Inc.
Open Hub
Follow @
OH
Sign In
Join Now
Projects
People
Organizations
Tools
Blog
BDSA
Projects
People
Projects
Organizations
B
bouncy Castle Java
Settings
1
I Use This!
×
Login Required
Log in to Open Hub
Remember Me
Very High Activity
Commits
: Listings
Analyzed
about 24 hours
ago. based on code collected
2 days
ago.
Nov 06, 2025 — Nov 06, 2026
Showing page 24 of 806
Search / Filter on:
Commit Message
Contributor
Files Modified
Lines Added
Lines Removed
Code Location
Date
Take the BDS state codec's maximum tree height from XMSSParameters.MAX_HEIGHT rather than restating it: the codec allocates against its own copy of the same 30, so the two can drift and the bound a stored state is read back under stop matching the bound the key that owns it was built under.
gefeili
More...
2 months ago
Decode the whole of an XMSS or XMSS^MT key info inside the try that reports a bad one, keep the cause, and settle the spelling: only the last stage - building the parameter set - was covered, so an algorithm identifier carrying the wrong parameters or none at all was read ahead of it and came back out as IllegalArgumentException or NullPointerException through a method whose signature says a key that will not decode is an IOException. The eight catch sites folded the cause into their own text and dropped it, and four of them called the algorithm XMSSMT where the other four called it XMSS^MT.
gefeili
More...
2 months ago
Make XMSSEngine.rollState check the traversal state it is given is on the index it is told to advance off, and have the XMSS^MT signer refuse a key whose index and state disagree: rollState is a bare forwarder to the state map's package-private mutator and has to be public - the key parameters class is in another package - so demoting that mutator only moved the door, it did not close it, and every argument is reachable from a live key's getters. The signer is the backstop, since a state moved out from under its key signs again under a one-time key already spent whatever moved it.
gefeili
More...
2 months ago
Have the XMSS^MT private key builder copy the traversal state it is handed rather than adopt it: a state map is mutable and the key advances it in place, so two keys built from one - which is what getBDSState() feeding withBDSState() gives you, and there is no other way to copy a key through the public API - drove one state while each kept its own index, and signing with either left the other signing again under a one-time key already spent, against RFC 8391 sec. 1.1.
gefeili
More...
2 months ago
Merge branch 'main' of gitlab.cryptoworkshop.com:root/bc-java
David Hook
More...
2 months ago
A version 6 OpenPGP certificate is now used only when its primary key carries a valid Direct Key signature, as RFC 9580 sec. 5.2.3.10 requires, rather than falling back to the primary user ID binding the way a version 4 certificate legitimately does, since it is the Direct Key signature that carries a version 6 key's expiration and preferences.
David Hook
More...
2 months ago
Keep the cause when the XMSS and XMSS^MT key factories refuse a key spec they cannot decode, as the LMS one beside them does: they folded it into their own message text and dropped it, leaving a caller walking getCause() with nothing. Through SecurityExceptions, since the two-argument InvalidKeySpecException constructor is Java 5.
gefeili
More...
2 months ago
Take the XMSS provider's own tree-digest tables off it: the name to OID one was a second copy of the lightweight implementation's, which is the thing that produces those names, and the OID to digest one beside it was a third copy with no caller at all.
gefeili
More...
2 months ago
Bring the two XMSS signature classes onto the same field size check as the key parameter classes, and settle the wording: there were six copies of it in two packages saying two different things about the same mistake, so the one implementation now sits behind XMSSEngine where both packages can reach it and XmssFieldUtil goes.
gefeili
More...
2 months ago
Give the WOTS+ secret key, public key and signature one check for the len-by-n array shape all three are, on the parameters object that defines it: they had a copy each of the same four checks and had drifted, the secret key calling a wrong element count a format problem where the other two called it a size one.
gefeili
More...
2 months ago
Bring the two XMSS public key parameter classes onto the shared field size check the private ones already use: they kept their own copy of it and had drifted to a different wording, so the same library said two different things about the same mistake.
gefeili
More...
2 months ago
Read the maximum index off the traversal state the key is holding when exporting it, rather than serializing that state, parsing it back and reading it from there: for XMSS^MT the parse being dropped is of every layer's state, and the value the ASN.1 records no longer depends on the codec having preserved it.
gefeili
More...
2 months ago
Record on the XMSS^MT traversal state that its layer zero one-time key has signed, as the XMSS path already did: only layer zero, whose leaf signs the message digest and so must never sign twice - the leaves above it sign an unchanging subtree root and are not spent by a signature.
gefeili
More...
2 months ago
Take the XMSS^MT state advance off BDSStateMap and put it behind XMSSEngine, where the rest of what the key parameters classes reach across the package boundary for already sits: splitting the package had widened updateState() to public, which put a mutator on a handle a caller obtains from a live key and so a way to run the traversal state past the index the key still reports. Lock the surface of both state handles.
gefeili
More...
2 months ago
Check the XMSS^MT layer count and total height before dividing by one and shifting by the other: zero layers divided into the total height as an ArithmeticException, a negative count was reported as a bad height, and a total height past 62 left every index reading as invalid or wrapped the maximum index to zero, so a key claiming 2^64 one time keys in fact carried one.
gefeili
More...
2 months ago
Bound the XMSS tree height at the 30 BDS.validate() already refuses a state outside: taller than that (1 << height) - 1 wraps, giving an EmptyStackException out of key generation for a height 31 above a multiple of 32 and, worse, a silently shorter tree than the one asked for otherwise. Report an out of range height from an encoded key the way the rest of a malformed one already is.
gefeili
More...
2 months ago
Refuse a null key in the keep map where the BDS state enters, as the retain map beside it already is: the rebuild the import path runs walks both before anything validates them, so a crafted one is a NullPointerException out of validate() rather than the IOException a caller of PrivateKeyFactory.createKey is handling.
gefeili
More...
2 months ago
An HSS private key now claims its top-level index and its bottom component key's one-time index under the one monitor rather than two, the LMS tree cache is accepted only at the node counts its consistency check actually covers, a single-level HSS wrap keeps the key it was given instead of regenerating the whole Merkle tree, the LMS and HSS signers and the BcHssLmsContentSignerBuilder accept a key wrapped in ParametersWithRandom, LMS verification applies the typecode and leaf-number checks of RFC 8554 sec. 5.4.2 steps 2g and 2i, the key parameter constructors and decoders apply the checks the encoding requires, and the LMS JCE layer gains the twelve missing LM-OTS parameter-set names.
David Hook
More...
2 months ago
Add note about de facto ordering of parameters wrapper types
Peter Dettman
More...
2 months ago
Point the XMSS private key format document at the promoted classes: the pqc.crypto.xmss copies it named are deprecated by this branch, and a reader following them lands in the wrong tree.
gefeili
More...
2 months ago
Copy the BDS stack, tree hash instances and keep map on the way out as the getters beside them already do, and copy the WOTS+ seeds in on the way in rather than holding the caller's arrays - both hand out or hold live one-time key state that nothing would catch a caller changing.
gefeili
More...
2 months ago
Drop the two loop conditions the keep-height simplification left behind: the retain height and the state map layer are each already refused by the sentinel they are compared against, which starts one below the lowest value the loop accepts and only grows.
gefeili
More...
2 months ago
Clone the retain map through cloneRetain in the codec-facing BDS constructor as the other four constructors already do, rather than repeating the loop it holds.
gefeili
More...
2 months ago
Compare the BDS state checksum with Arrays.areEqual rather than a hand-written loop over the two ranges, the index arithmetic being the part that is easy to get wrong on a later edit.
gefeili
More...
2 months ago
Hold the n-byte key field check the XMSS and XMSS^MT key parameters share in one package-private place instead of a protected copy on each - the two said the same thing and had to keep saying it, since the message is asserted on verbatim.
gefeili
More...
2 months ago
Mask through Bytes.xor in the WOTS+ chain and in randomizeHash rather than writing the same byte-wise loop out a third time - the RFC 8391 bitmask step is worth having in one tested place, and the two-block case is where an offset is easy to get wrong.
gefeili
More...
2 months ago
Keep the PrivateKeyInfo and SubjectPublicKeyInfo the LMS and XMSS helpers return rather than asking each helper once to decide whether it handles the key and again for the answer, which encoded the whole BDS traversal state twice for every XMSS key exported.
gefeili
More...
2 months ago
Take the tree digest for a key encoding from the signer package's own table through XMSSEngine rather than keeping a second copy of it in XmssKeyUtil, so the digests a key can be written and read under cannot drift from the ones it can be generated and signed with.
gefeili
More...
2 months ago
Drop the second exhausted key check in generateMTSignature: only pure getters run between it and the first one, so nothing can have changed the usages remaining, and its message named a condition the first check had already refused.
gefeili
More...
2 months ago
Throw the XMSS and XMSS^MT SPI signature exceptions through SecurityExceptions.signatureException as the LMS SPI beside them does, and give the XMSS^MT signing fallback back the cause its one-argument constructor was discarding.
gefeili
More...
2 months ago
←
1
2
…
20
21
22
23
24
25
26
27
28
…
805
806
→
This site uses cookies to give you the best possible experience. By using the site, you consent to our use of cookies. For more information, please see our
Privacy Policy
Agree