rust-bip39-unsafe-fast/README.md

2.3 KiB

bip39

A Rust implementation of BIP-39 mnemonic codes.

Unsafe Fast Fork

DO NOT USE THIS LIBRARY

This is an experimental fork with extreme changes that intentionally break important security mechanisms and functionality in favor of speed for certain security research workloads.

The forked library version is completely unsuitable for any type of production use and receives no support or maintenance of any kind. It is published primarily as a reference for other researchers. You have been warned.

The original documentation content and other references are kept as-is to limit the repository differences to upstream. However, be aware that none of the contact information, usage guidance or security guarantees still applies since this is an experimental fork of the project.

At the time of writing, the changes are still compatible and cargo test works, but future changes may be more invasive.


Word lists (languages)

We support all languages specified in the BIP-39 standard as of writing.

The English language is always loaded and other languages can be loaded using the corresponding feature.

Use the all-languages feature to enable all languages.

  • English (always enabled)
  • Simplified Chinese (chinese-simplified)
  • Traditional Chinese (chinese-traditional)
  • Czech (czech)
  • French (french)
  • Italian (italian)
  • Japanese (japanese)
  • Korean (korean)
  • Portuguese (portuguese)
  • Spanish (spanish)

MSRV

This crate supports Rust v1.41.1 and up and works with no_std.

The bitcoin_hashes range dependency effects the MSRV as follows

  • bitcoin_hashes v0.12: MSRV v1.41.1
  • bitcoin_hashes v0.13: MSRV v1.48.0

When using older version of Rust, you might have to pin the versions of several crates, for an up-to-date list refer to contrib/test.sh:

cargo update --package "bitcoin_hashes" --precise "0.12.0"
cargo update --package "rand" --precise "0.6.0"
cargo update --package "libc" --precise "0.2.151"
cargo update --package "tinyvec" --precise "1.6.0"
cargo update --package "unicode-normalization" --precise "0.1.22"

If you enable the zeroize feature the MSRV becomes 1.51.