@@ -29,14 +29,14 @@ The crate starts conservative: a small scalar implementation, strict RFC 4648 be
2929
3030## Current Status
3131
32- The current public release is ` 1.3.7 ` .
32+ The current public release is ` 1.3.8 ` .
3333
34- ` 1.3.7 ` is a maintenance and crate-family version synchronization patch on top
34+ ` 1.3.8 ` is a security-hardening and crate-family synchronization patch on top
3535of the ` 1.3.0 ` implementation-completion release, the ` 1.3.1 ` Tokio
3636writer patch, the ` 1.3.2 ` non-standard SIMD surface review, the ` 1.3.3 `
3737wasm SIMD runtime-dispatch and profile-ergonomics patch, the ` 1.3.4 `
3838big-endian QEMU evidence patch, the ` 1.3.5 ` RISC-V QEMU evidence patch, and
39- the ` 1.3.6 ` documentation refresh.
39+ the ` 1.3.6 ` documentation refresh and ` 1.3.7 ` maintenance patch .
4040It keeps the admitted ` 1.2.x ` native encode acceleration posture and the
4141admitted ` 1.3.0 ` normal strict SIMD decode scope for Standard and URL-safe
4242alphabet families on std ` x86 ` /` x86_64 ` AVX-512 VBMI, AVX2, SSSE3/SSE4.1,
@@ -54,14 +54,14 @@ and normal strict decode when the binary is compiled with
5454` target-feature=+simd128 ` , the ` simd ` feature, and the explicit
5555` allow-wasm32-best-effort-wipe ` feature.
5656
57- The latest patch in this line is ` 1.3.7 ` , which keeps all workspace crate
58- versions aligned, moves release builds to Rust ` 1.97.0 ` , and refreshes audited
59- companion dependencies and GitHub Action pins. It also hardens Tokio companion
60- cancellation cleanup and bounds limited-helper over-read and cleanup cost
61- without changing core encode/decode behavior or SIMD admission .
62- The stronger RISC-V RVV proof and admission review is scheduled for ` 1.3.8 ` ;
57+ The latest patch in this line is ` 1.3.8 ` , which keeps all workspace crate
58+ versions aligned and closes two low-severity evidence and cleanup gaps. Tokio
59+ read-all helpers now wipe replaced vector allocations before deallocation, and
60+ the Chromium wasm smoke gate requires a success attribute created only by
61+ runtime execution rather than matching a token present in static HTML .
62+ The stronger RISC-V RVV proof and admission review is scheduled for ` 1.3.9 ` ;
6363until then, RISC-V remains QEMU-tested scalar/fallback-only. The workspace
64- crate family stays version-aligned at ` 1.3.7 ` .
64+ crate family stays version-aligned at ` 1.3.8 ` .
6565
6666Implemented on this branch now:
6767
@@ -182,14 +182,14 @@ and CWE mapping lives in [docs/SECURITY_CONTROLS.md](docs/SECURITY_CONTROLS.md).
182182## Rust Version Support
183183
184184The minimum supported Rust version is Rust ` 1.90.0 ` . New deployments should
185- prefer the latest tested stable Rust; as of July 10 , 2026, this project tests
185+ prefer the latest tested stable Rust; as of July 15 , 2026, this project tests
186186through Rust ` 1.97.0 ` .
187187
188188The active release toolchain is Rust ` 1.97.0 ` . MSRV remains Rust ` 1.90.0 ` and
189189is checked separately in CI so the project can build and test with the latest
190190stable compiler without dropping older supported users.
191191
192- Compatibility evidence for the ` 1.3.7 ` workspace:
192+ Compatibility evidence for the ` 1.3.8 ` workspace:
193193
194194| Rust | Local Evidence |
195195| --- | --- |
@@ -207,7 +207,7 @@ Compatibility evidence for the `1.3.7` workspace:
207207
208208``` toml
209209[dependencies ]
210- base64-ng = " 1.3.7 "
210+ base64-ng = " 1.3.8 "
211211```
212212
213213The crate is dual-licensed:
@@ -264,7 +264,7 @@ only the crates that changed instead of republishing the whole ecosystem.
264264` base64-ng-sanitization ` provides extension helpers for
265265` base64_ng::ct::CtEngine ` that decode directly into
266266` sanitization::SecretBytes<N> ` in ` no_std ` , with ` SecretVec ` helpers behind its
267- own ` alloc ` feature. The ` 1.3.7 ` companion uses exact-pinned
267+ own ` alloc ` feature. The ` 1.3.8 ` companion uses exact-pinned
268268` sanitization ` ` =1.2.4 ` and exposes ` sanitization::ct::Choice ` comparison
269269helpers through ` SanitizationCtEqExt ` . Enable the companion's
270270` high-assurance ` feature to
@@ -274,8 +274,8 @@ decode directly into `sanitization::LockedSecretBytes` or
274274
275275``` toml
276276[dependencies ]
277- base64-ng = { version = " 1.3.7 " , default-features = false }
278- base64-ng-sanitization = { version = " 1.3.7 " , default-features = false }
277+ base64-ng = { version = " 1.3.8 " , default-features = false }
278+ base64-ng-sanitization = { version = " 1.3.8 " , default-features = false }
279279```
280280
281281``` rust
@@ -294,7 +294,7 @@ assert!(secret.sanitization_verify(
294294
295295``` toml
296296[dependencies ]
297- base64-ng-sanitization = { version = " 1.3.7 " , features = [" high-assurance" ] }
297+ base64-ng-sanitization = { version = " 1.3.8 " , features = [" high-assurance" ] }
298298```
299299
300300``` rust
@@ -313,8 +313,8 @@ newtypes around fixed byte arrays:
313313
314314``` toml
315315[dependencies ]
316- base64-ng = { version = " 1.3.7 " , default-features = false }
317- base64-ng-derive = " 1.3.7 "
316+ base64-ng = { version = " 1.3.8 " , default-features = false }
317+ base64-ng-derive = " 1.3.8 "
318318```
319319
320320``` rust
@@ -333,7 +333,7 @@ assert_eq!(key.encode_base64::<8>().unwrap().as_str(), "aGVsbG8=");
333333
334334``` toml
335335[dependencies ]
336- base64-ng-serde = " 1.3.7 "
336+ base64-ng-serde = " 1.3.8 "
337337serde = { version = " 1.0.228" , features = [" derive" ] }
338338```
339339
@@ -352,8 +352,8 @@ Field-level modules are available for `standard`, `standard_no_pad`,
352352
353353``` toml
354354[dependencies ]
355- base64-ng = " 1.3.7 "
356- base64-ng-bytes = " 1.3.7 "
355+ base64-ng = " 1.3.8 "
356+ base64-ng-bytes = " 1.3.8 "
357357bytes = " 1.12.1"
358358```
359359
@@ -370,8 +370,8 @@ projects that already admit `subtle`:
370370
371371``` toml
372372[dependencies ]
373- base64-ng = " 1.3.7 "
374- base64-ng-subtle = " 1.3.7 "
373+ base64-ng = " 1.3.8 "
374+ base64-ng-subtle = " 1.3.8 "
375375```
376376
377377``` rust
@@ -392,8 +392,8 @@ remain unread:
392392
393393``` toml
394394[dependencies ]
395- base64-ng = " 1.3.7 "
396- base64-ng-tokio = " 1.3.7 "
395+ base64-ng = " 1.3.8 "
396+ base64-ng-tokio = " 1.3.8 "
397397tokio = { version = " 1.52.3" , features = [" io-util" ] }
398398```
399399
@@ -426,7 +426,7 @@ Disable defaults for embedded or freestanding use:
426426
427427``` toml
428428[dependencies ]
429- base64-ng = { version = " 1.3.7 " , default-features = false }
429+ base64-ng = { version = " 1.3.8 " , default-features = false }
430430```
431431
432432Enable admitted encode acceleration on supported ` std ` targets with the
@@ -438,7 +438,7 @@ and URL-safe alphabets after whole-input scalar validation:
438438
439439``` toml
440440[dependencies ]
441- base64-ng = { version = " 1.3.7 " , features = [" simd" ] }
441+ base64-ng = { version = " 1.3.8 " , features = [" simd" ] }
442442```
443443
444444``` rust
0 commit comments