#base32 #constant-time #portable #pure #rfc #environments

no-std base32ct

Pure Rust implementation of Base32 (RFC 4648) which avoids any usages of data-dependent branches/LUTs and thereby provides portable "best effort" constant-time operation and embedded-friendly no_std support

5 unstable releases

0.2.2 Feb 23, 2025
0.2.1 May 28, 2024
0.2.0 Feb 26, 2023
0.1.0 Jun 12, 2022
0.0.0 Jan 11, 2022

#2741 in Cryptography

Download history 495/week @ 2024-11-18 374/week @ 2024-11-25 590/week @ 2024-12-02 373/week @ 2024-12-09 356/week @ 2024-12-16 434/week @ 2024-12-23 459/week @ 2024-12-30 526/week @ 2025-01-06 596/week @ 2025-01-13 772/week @ 2025-01-20 616/week @ 2025-01-27 835/week @ 2025-02-03 508/week @ 2025-02-10 518/week @ 2025-02-17 605/week @ 2025-02-24 739/week @ 2025-03-03

2,468 downloads per month
Used in 8 crates (4 directly)

Apache-2.0 OR MIT

22KB
361 lines

RustCrypto: Constant-Time Base32

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

Pure Rust implementation of Base32 (RFC 4648).

Implements lower and upper case Base32 variants without data-dependent branches or lookup tables, thereby providing portable "best effort" constant-time operation.

Supports no_std environments and avoids heap allocations in the core API (but also provides optional alloc support for convenience).

Documentation

Minimum Supported Rust Version

This crate requires Rust 1.65 at a minimum.

We may change the MSRV in the future, but it will be accompanied by a minor version bump.

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps