Honesty: drop the uncited 'audited' adjective from Bouncy Castle references; state the citable facts instead (not FIPS-validated, no published third-party audit known)

This commit is contained in:
Aere Network 2026-08-28 00:28:29 +03:00
parent 184ec23cd4
commit a134a899ac
3 changed files with 3 additions and 3 deletions

View File

@ -39,7 +39,7 @@ import org.bouncycastle.crypto.digests.SHAKEDigest;
* <p>Algorithm (matches the reference {@code hash_to_point_vartime} exactly): absorb * <p>Algorithm (matches the reference {@code hash_to_point_vartime} exactly): absorb
* {@code nonce || message} into a SHAKE256 sponge, then repeatedly squeeze two bytes, interpret * {@code nonce || message} into a SHAKE256 sponge, then repeatedly squeeze two bytes, interpret
* them as a big-endian 16-bit value {@code w}, and keep {@code w mod q} whenever {@code w < 5q = * them as a big-endian 16-bit value {@code w}, and keep {@code w mod q} whenever {@code w < 5q =
* 61445}, until n coefficients are collected. Uses the audited Bouncy Castle SHAKE256 XOF. * 61445}, until n coefficients are collected. Uses the Bouncy Castle SHAKE256 XOF (bcprov-jdk18on; not FIPS-validated, no published third-party audit known).
*/ */
public class HashToPointPrecompiledContract extends AbstractPrecompiledContract { public class HashToPointPrecompiledContract extends AbstractPrecompiledContract {

View File

@ -44,7 +44,7 @@ import org.bouncycastle.pqc.crypto.mlkem.MLKEMPublicKeyParameters;
* <p>Determinism: FIPS-203 Encaps normally draws {@code m} from a CSPRNG, which cannot run inside a * <p>Determinism: FIPS-203 Encaps normally draws {@code m} from a CSPRNG, which cannot run inside a
* consensus-critical precompile. We take {@code m} from calldata and drive Bouncy Castle's * consensus-critical precompile. We take {@code m} from calldata and drive Bouncy Castle's
* ML-KEM.Encaps_internal (K-PKE.Encrypt with explicit coins), so every node computes the identical * ML-KEM.Encaps_internal (K-PKE.Encrypt with explicit coins), so every node computes the identical
* {@code (c, K)}. No cryptography is reimplemented here; the audited Bouncy Castle BCPQC ML-KEM * {@code (c, K)}. No cryptography is reimplemented here; the Bouncy Castle BCPQC ML-KEM (not FIPS-validated, no published third-party audit known)
* implementation on the classpath does the work. * implementation on the classpath does the work.
*/ */
public class MLKEM768PrecompiledContract extends AbstractPrecompiledContract { public class MLKEM768PrecompiledContract extends AbstractPrecompiledContract {

View File

@ -28,7 +28,7 @@ import org.bouncycastle.crypto.digests.SHAKEDigest;
* Output: exactly {@code outLen} bytes of SHAKE256(data). * Output: exactly {@code outLen} bytes of SHAKE256(data).
* *
* <p>SHAKE256 is the hashing bottleneck inside Falcon, ML-DSA and SLH-DSA; exposing it natively lets * <p>SHAKE256 is the hashing bottleneck inside Falcon, ML-DSA and SLH-DSA; exposing it natively lets
* on-chain PQC flows offload the hot path to audited Bouncy Castle rather than hand-rolled Solidity. * on-chain PQC flows offload the hot path to Bouncy Castle (well-exercised, but not FIPS-validated and with no published third-party audit known) rather than hand-rolled Solidity.
*/ */
public class SHAKE256PrecompiledContract extends AbstractPrecompiledContract { public class SHAKE256PrecompiledContract extends AbstractPrecompiledContract {