Skip to content

Releases: loadingalias/rscrypto

rscrypto v0.7.8

Choose a tag to compare

@github-actions github-actions released this 16 Jul 01:08
v0.7.8
b77604e

See CHANGELOG.md for changes.

Crate artifact: rscrypto-0.7.8.crate
SHA-256: 2eba0b84d85a51db0666e498fdd03a2a67d18e6cec10f9ccd7b31135a3893fae

Constant-time evidence bundle: rscrypto-0.7.8-ct-evidence.tar.gz
SHA-256: 347a9b9676d4bc6c727b34569a16a76d46fde1511009b249c8af4d14d228fecf
Evidence commit: 889afd032bb37ef1b76e101b2f98e67efcd3fca1 (release_only_delta)
Evidence run: https://github.com/loadingalias/rscrypto/actions/runs/29441063361

Verify provenance:

gh attestation verify "rscrypto-0.7.8.crate" --repo loadingalias/rscrypto
gh attestation verify "rscrypto-0.7.8-ct-evidence.tar.gz" --repo loadingalias/rscrypto

rscrypto v0.6.4

Choose a tag to compare

@github-actions github-actions released this 07 Jul 10:13
v0.6.4
ba0b998

See CHANGELOG.md for changes.

Crate artifact: rscrypto-0.6.4.crate
SHA-256: 68ec5958da76161d8082350a1448a1b23bbbcba0588aa623bb2e0d150b24bb46

Verify provenance:

gh attestation verify rscrypto-0.6.4.crate --repo loadingalias/rscrypto

rscrypto v0.6.2

Choose a tag to compare

@loadingalias loadingalias released this 04 Jul 18:15
v0.6.2
01978b5

0.6.2 - 2026-07-04

🏗️ Build

  • route CT tooling through a Python compatibility shim ci: refresh runs-on action pin workspace: refresh fast hash and AWS-LC dependency locks benchmarks: refresh performance overview artifacts crypto: fix ChaCha20-Poly1305 lint and aarch64 ML-KEM asm tests (6f9dae8)
  • decouple asm ownership check from task notes (c31d405)
  • scope dev-machine recipes and ignore task notebooks (7236a1f)

👷 CI

  • pin Wasmtime install for no_std wasm suite auth: restore aarch64 ML-KEM basemul asm test helper (86fac6f)

📦 Other Changes

  • benchmarks: refresh July 4 performance overview and chart (878999c)
  • auth: harden RSA private CRT arithmetic aead: gate forced ChaCha20 kernels on runtime caps (596498f)
  • auth: fix aarch64 ML-KEM bounded SampleNTT stores (73eb536)
  • crypto: revert aarch64 ML-KEM matrix XOF split route (6e0a871)
  • crypto: route aarch64 ML-KEM matrix XOF around x3 hybrid (7cefb0d)
  • Revert "crypto: feed aarch64 ML-KEM sampler from triple SHAKE state" (bc21ad6)
  • auth: batch aarch64 ML-KEM fused chunk accumulation (81f2184)
  • hashes: revert regressing aarch64 Keccak x3 assembly (342356e)
  • hashes: add owned aarch64 Keccak x3 assembly (481105a)
  • hashes: restore aarch64 Keccak hybrid batch dispatch (4887c16)
  • hashes: route aarch64 Keccak batches through paired SHA3 lanes (bad0bc6)
  • auth: batch aarch64 ML-KEM triple rejection parsing (dae2b42)
  • auth: keep AArch64 ML-KEM SampleNTT asm on Linux (883f255)
  • auth: add bounded AArch64 ML-KEM SampleNTT tail parser bench: expose ML-KEM three-block sampler diagnostics (a74f9cb)
  • aead: restore x86 and POWER ChaCha20-Poly1305 open fast paths bench: expose x86 ChaCha20-Poly1305 open diagnostic row (e05a270)
  • aead: add measured Linux ChaCha20-Poly1305 fast paths (f26ef5d)
  • aead: gate x86 ChaCha20-Poly1305 asm by measured thresholds (57fe253)
  • auth: route x86 P-384 signing through complete comb (1bcc2d1)
  • aead: batch owned AArch64 ChaCha20-Poly1305 par4 bulk (b09e389)
  • aead: add owned AArch64 ChaCha20-Poly1305 par4 diagnostics bench: compare owned AArch64 ChaCha20-Poly1305 par4 rows (1ffcf00)
  • auth: expose Ed25519 verify phase diagnostics bench: add Ed25519 verify phase rows (dbeff3d)
  • auth: split ML-KEM-1024 row sampling by aarch64 platform bench: expose ML-KEM-1024 quad row sampler comparator (a6315a2)
  • auth: batch ML-KEM-1024 materialized row sampling through quad XOF bench: compare ML-KEM-1024 row sampler schedules (77e0543)
  • auth: expose ML-KEM sampler phase diagnostics bench: add ML-KEM sampler phase rows (1b3ec7c)
  • auth: expose ML-KEM-1024 materialized keygen split diagnostics bench: add ML-KEM-1024 materialized matrix split rows (2f103b9)
  • auth: expose forced ML-KEM keygen matrix diagnostics bench: add ML-KEM keygen matrix split rows (9843d86)
  • auth: batch aarch64 ML-KEM matrix sampling through triple XOF hashes: add Linux aarch64 Keccak x3 permutation support bench: expose ML-KEM triple matrix sampling rows (22a3fda)
  • auth: expose ML-KEM keygen phase diagnostics and gate K2 aarch64 accumulation bench: add ML-KEM keygen phase rows ci: add ML-KEM keygen phase selector (1379d30)
  • auth: tune aarch64 ML-KEM keygen finalization (7775a8d)
  • auth: route aarch64 ML-KEM NTT through owned NEON (816e919)
  • auth: shortcut P-384 signing r path and delete dead x86 asm (2a54d93)
  • hashes: clear x86 Blake3 and introspection clippy lints (ae22843)
  • aead: tune owned AArch64 ChaCha20-Poly1305 path hashes: clear BLAKE3 diag clippy lints docs: record assembly replacement tuning decisions (c8f6bfb)
  • hashes: delete Darwin SHA-2 assembly for owned aarch64 kernels aead: expose owned ChaCha20-Poly1305 diagnostic path auth: widen public RSA CIOS threshold and add portable diagnostics bench: split AEAD and RSA assembly replacement benchmarks benchmarks: refresh BLAKE3 overview and README perf chart docs: track assembly ownership notebook decisions (76f4fa3)
  • hashes: retarget BLAKE3 x86 compression and expose diag kernels aead: mark AES-GCM assembly as rscrypto-owned auth: mark RSA assembly as rscrypto-owned bench: add BLAKE3 diagnostic benches and gap report build: gate assembly provenance with ledger check (e643fe5)

rscrypto v0.6.1

Choose a tag to compare

@loadingalias loadingalias released this 24 Jun 04:23
v0.6.1
03a7401

0.6.1 - 2026-06-24

📦 Other Changes

  • crypto: validate platform overrides and gate s390x AEGIS (83bcde8)

rscrypto v0.6.0

Choose a tag to compare

@loadingalias loadingalias released this 24 Jun 01:48
v0.6.0
71cfe36

0.6.0 - 2026-06-23

👷 CI

  • bump checkout and tool action pins workspace: refresh getrandom lockfiles benchmarks: refresh Linux benchmark scorecard (5e34396)

📦 Other Changes

  • auth: add Darwin aarch64 ML-KEM assembly paths (7832c94)
  • Revert "auth: add aarch64 ML-KEM quad rejection parser" (133627a)
  • auth: port aarch64 ML-KEM k3 basemul schedule (2d65c61)
  • auth: port aarch64 ML-KEM k4 basemul schedule (abcf8d8)
  • Revert "auth: reschedule aarch64 ML-KEM basemul accumulation" (5bd2052)
  • auth: tighten aarch64 ML-KEM inverse final scale (551f1b6)
  • auth: unroll aarch64 ML-KEM inverse NTT asm (2d725d0)
  • auth: precompute aarch64 ML-KEM inverse reducers (7271015)
  • auth: include inverse add asm in aarch64 gate filter (766132e)
  • auth: add Linux aarch64 ML-KEM inverse NTT asm diagnostics (133b8b6)
  • Revert "auth: fuse aarch64 ML-KEM inverse NTT final scale" (5c79304)
  • auth: dispatch fused ML-KEM1024 PKE matrix path (369e422)
  • auth: compact ML-KEM fused rejection into NEON chunks (9708c1d)
  • auth: add aarch64 K2 ML-KEM row-dot path (e28eaee)
  • hashes: use paired SHA3 fallback for aarch64 quad Keccak (d712967)
  • crypto: add aarch64 triple SHAKE path for ML-KEM sampling (2f00fa7)
  • auth: feed fused ML-KEM products from compact aarch64 rejection (a05a23b)
  • auth: compact aarch64 ML-KEM rejection lanes (13a50c8)
  • auth: add aarch64 ML-KEM rejection parser (951be2c)
  • Revert "hashes: route aarch64 Keccak x4 through SHA3 pairs" (7e81d7f)
  • auth: keep aarch64 ML-KEM sample candidates in registers (5a94fbe)
  • auth: parse aarch64 ML-KEM sample tails from XOF state (75b1551)
  • hashes: schedule Linux aarch64 ML-KEM batching (9c6ecb9)
  • hashes: add Linux aarch64 SVE2-SHA3 Keccak x4 (315cc93)
  • auth: parse aarch64 ML-KEM quad samples from XOF state (56e234a)
  • auth: add aarch64 ML-KEM SampleNTT NEON extractor (c7c2d89)
  • auth: fuse aarch64 ML-KEM K-way accumulate (95ea2e5)
  • auth: tighten aarch64 ML-KEM product-domain reduction (bf5bfe5)
  • auth: vectorize aarch64 ML-KEM product-domain conversion (c665306)
  • auth: fix aarch64 ML-KEM NTT canonicalization (1e41083)
  • auth: dispatch Linux aarch64 ML-KEM NTT asm (67cee6d)
  • auth: add fused aarch64 ML-KEM basemul diagnostics (67caab7)
  • auth: vectorize s390x ML-KEM product-domain conversion (6453f04)
  • auth: batch s390x ML-KEM dot products under CT roots (4b8f7f4)
  • auth: prove s390x ML-KEM vector kernels in CT artifacts (26f80ac)
  • auth: add s390x z/Vector ML-KEM NTT kernels (39cfe62)
  • auth: use materialized ML-KEM matrix path on s390x (420517b)
  • auth: fix s390x ML-KEM barrier build mode (75e7d0a)
  • auth: harden s390x ML-KEM constant-time arithmetic (446e3d4)

rscrypto v0.5.0

Choose a tag to compare

@loadingalias loadingalias released this 14 Jun 21:49
v0.5.0
545e545

0.5.0 - 2026-06-14

📝 Documentation

  • prepare public docs for v0.5.0 release (1ba0795)

📦 Other Changes

  • auth: fix RSA-2048 leakage fixture policy (c8f6886)
  • crypto: harden secret handling and CT validation paths ci: scope CT evidence to required primitives and repair macOS RSA fixtures docs: align migration guidance with hardened verification defaults bench: refresh crypto benches for typed APIs checksum: clarify CRC64 reference constants workspace: align feature metadata and lockfiles for CT tooling (30ddfb6)

rscrypto v0.4.1

Choose a tag to compare

@loadingalias loadingalias released this 13 Jun 04:01
v0.4.1
58b2417

0.4.1 - 2026-06-13

📝 Documentation

  • make public docs user-facing and add ECDSA migration guides benchmarks: refresh 2026-06-12 benchmark evidence (4a3f4e8)

📦 Other Changes

  • auth: route RSA blinding inverse through fixed scratch (a33fc67)
  • auth: route macOS aarch64 HKDF-SHA256 through SHA2 compression hashes: batch Apple SHA3 Keccak absorb blocks bench: scale README perf chart axis from benchmark data benchmarks: refresh 2026-06-12 benchmark evidence (f9ab35f)
  • auth: harden HMAC pads against AArch64 SVE division ci: disable native RISC-V Rust cache restore (62be628)
  • auth: harden ECDSA P-256/P-384 CT backends ci: add ECDSA DudeCT diagnostics and target-scoped CT policy (82db892)
  • auth: add ECDSA P-256/P-384 signing and CT coverage (f24375d)

rscrypto v0.4.0

Choose a tag to compare

@loadingalias loadingalias released this 09 Jun 22:24
v0.4.0
78df8f4

0.4.0 - 2026-06-09

🏗️ Build

  • add light and full push preflight commands ci: harden BINSEC solver setup and CT diagnostics (5a8c2eb)

👷 CI

  • load BINSEC proof relocation sections (6421da9)
  • build BINSEC proof harnesses as non-PIE (783eac4)
  • preinstall BINSEC solver system packages (df71e54)
  • harden manual CT DudeCT filters (55ca702)
  • add s390x AES AEAD DudeCT trace cases (53812a5)
  • add AES-GCM-SIV DudeCT trace cases (5e6a24f)
  • add DudeCT filters for targeted CT runs (fcc326e)
  • scope RSA CT evidence and pass BINSEC SMT timeout auth: harden RSA modular import fixed-width output (c93dc79)

📦 Other Changes

  • workspace: refresh release package metadata, ignore rules, and lockfile pins ci: bump action pins and harden check, coverage, and fuzz scripts docs: align release docs, CT policy, examples, and module snippets with 0.3.1 benchmarks: refresh 2026-06-09 overview and README perf chart (147c747)
  • aead: align aegis256 AES helper cfgs on POWER and s390x ci: repair CT asm heuristic parsing and RISC-V BINSEC policy docs: narrow RISC-V CT evidence claims (7dbf097)
  • crypto: harden asm dispatch and backend equivalence gates (643dd44)
  • aead: batch s390x AES-GCM-SIV CTR keystream blocks ci: route AES AEAD CT evidence through secret-only probes (e9676b7)
  • hashes: fix Blake2b diag multiblock oracle (053c810)
  • auth: clear CT helper slice lints hashes: clear Blake2b diagnostic slice lints (32f0e12)
  • auth: align RSA keygen with FIPS 186-5 A.1.3 (5ceb703)

rscrypto v0.3.1

Choose a tag to compare

@loadingalias loadingalias released this 01 Jun 20:00
v0.3.1
6f1a146

0.3.1 - 2026-06-01

📦 Other Changes

  • workspace: enable cargo-rail release publishing (bb7ec88)
  • bench: add Ascon coverage and refresh HMAC measurement shape (b06b946)

rscrypto v0.3.0

Choose a tag to compare

@loadingalias loadingalias released this 30 May 17:08
v0.3.0
7f82051

rscrypto v0.3.0 is the RSA and validation-hardening release.

Highlights:

  • RSA is now a full first-class primitive: strict DER import/export, RSA-PSS, RSASSA-PKCS1-v1_5, OAEP, RSAES-PKCS1-v1_5, key generation, X.509/JWT/COSE/TLS profile mapping, blinded private operations, and
    reusable scratch APIs.
  • RSA verification coverage landed with vectors, fuzzing, oracle checks, and benchmark fixtures.
  • RSA private operations and assembly-backed paths were completed.
  • Ed25519 assembly backends were added.
  • RSA public verification was tightened: 8192-bit verifier backend coverage widened, public Montgomery precompute deferred, and brittle scratch allocation assertions removed.
  • CI validation was hardened: Miri now focuses on UB-risk coverage, weekly validation timeouts were widened, SHA3 fuzz builds were fixed, workflow cancellation was scoped, and action pins / lockfiles were
    refreshed.
  • Benchmark docs were refreshed with the 2026-05-27 Linux CI scorecard, including RSA rows.

Performance snapshot from the latest public benchmark pass:

  • 1.61x Linux CI fastest-external geomean.
  • 3,545 wins / 5,832 fastest-external comparisons.
  • 5,210 wins-or-ties / 5,832 comparisons.
  • Checksums: 5.03x geomean.
  • SHA-3 / SHAKE: 2.15x / 1.86x geomean.
  • BLAKE3 >=64 KiB: 2.31x geomean.
  • AEAD: 1.57x geomean.
  • RSA import + verify: 1.32x geomean, with RSA verify-only still at 0.98x.

Known pressure points remain visible and intentional: PBKDF2-SHA256 low-iteration setup, X25519 DH, RSA verification on some Arm/RISC-V rows, and small-message AEAD overhead. If you're really interested in them check the benchmark_results/OVERVIEW.md file.

Get it:

[dependencies]
rscrypto = { version = "0.3.0", default-features = false, features = ["sha2"] }

Full toolbox with OS randomness:

[dependencies]
rscrypto = { version = "0.3.0", features = ["full", "getrandom"] }

References: