#bip-32 #mnemonic #bip-39

no-std hkd32

HMAC-based Hierarchical Key Derivation: deterministically derive a hierarchy of symmetric keys from initial keying material through repeated applications of the Hash-based Message Authentication Code (HMAC) construction. Optionally supports storing root derivation passwords as a 24-word mnemonic phrase (i.e. BIP39).

11 releases (6 breaking)

0.7.0 May 11, 2022
0.6.0 Jun 17, 2021
0.5.0 Oct 19, 2020
0.4.0 Jun 18, 2020
0.1.2 Jul 24, 2019

#758 in Cryptography

Download history 1909/week @ 2023-11-20 2269/week @ 2023-11-27 2310/week @ 2023-12-04 2703/week @ 2023-12-11 2153/week @ 2023-12-18 719/week @ 2023-12-25 681/week @ 2024-01-01 1709/week @ 2024-01-08 1712/week @ 2024-01-15 2070/week @ 2024-01-22 2024/week @ 2024-01-29 1731/week @ 2024-02-05 3306/week @ 2024-02-12 1948/week @ 2024-02-19 1722/week @ 2024-02-26 2243/week @ 2024-03-04

9,272 downloads per month
Used in 24 crates (7 directly)

Apache-2.0 OR MIT

52KB
1K SLoC

HMAC-based Hierarchical Key Derivation iqlusion

Crate Docs Apache 2.0 Licensed MSRV Build Status

hkd32 is a Rust library which implements a hierarchical deterministic symmetric key derivation construction inspired by BIP-0032: Hierarchical Deterministic Wallets.

It can be used to deterministically derive a hierarchy of symmetric keys from initial keying material (or when the mnemonic feature is enabled, through a 24-word BIP39 passphrase) by repeatedly applying the Hash-based Message Authentication Code (HMAC).

This construction is specialized for deriving 32-byte (256-bit) keys from an initial 32-bytes of input key material.

Documentation

Minimum Supported Rust Version

  • Rust 1.57

License

Copyright © 2019-2021 iqlusion

Includes code from the bip39 crate. Copyright © 2017-2018 Stephen Oliver, with contributions by Maciej Hirsz.

hkd32 is distributed under the terms of either the MIT license or the Apache License (Version 2.0), at your option.

See LICENSE (Apache License, Version 2.0) file in the iqlusioninc/crates toplevel directory of this repository or LICENSE-MIT for details.

Contribution

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

Dependencies

~0.8–1.4MB
~31K SLoC