fuel_crypto/
lib.rs

1//! Fuel cryptographic primitives.
2
3#![cfg_attr(docsrs, feature(doc_auto_cfg))]
4#![cfg_attr(not(feature = "std"), no_std)]
5// Wrong clippy convention; check
6// https://rust-lang.github.io/api-guidelines/naming.html
7#![warn(missing_docs)]
8#![deny(unsafe_code)]
9#![deny(unused_crate_dependencies)]
10#![deny(
11    clippy::arithmetic_side_effects,
12    clippy::cast_sign_loss,
13    clippy::cast_possible_truncation,
14    clippy::cast_possible_wrap,
15    clippy::string_slice
16)]
17
18// Unused but needed for version pinning
19use base64ct as _;
20
21// Satisfy unused_crate_dependencies lint for self-dependency enabling test features
22#[cfg(test)]
23use fuel_crypto as _;
24
25/// Required export for using mnemonic keygen on [`SecretKey::new_from_mnemonic`]
26#[cfg(feature = "std")]
27#[doc(no_inline)]
28pub use coins_bip32;
29/// Required export for using mnemonic keygen on [`SecretKey::new_from_mnemonic`]
30#[cfg(feature = "std")]
31#[doc(no_inline)]
32pub use coins_bip39;
33/// Required export to use various public interfaces in this crate
34#[doc(no_inline)]
35pub use fuel_types;
36#[cfg(feature = "random")]
37#[doc(no_inline)]
38/// Required export to use randomness features
39pub use rand;
40
41mod error;
42mod hasher;
43mod message;
44mod mnemonic;
45mod secp256;
46
47pub mod ed25519;
48
49pub use secp256::backend::r1 as secp256r1;
50
51pub use secp256::{
52    PublicKey,
53    SecretKey,
54    Signature,
55};
56
57#[cfg(test)]
58mod tests;
59
60pub use error::Error;
61pub use hasher::Hasher;
62pub use message::Message;
63
64#[cfg(all(feature = "std", feature = "random"))]
65pub use mnemonic::generate_mnemonic_phrase;