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// Satisfy unused_crate_dependencies lint for self-dependency enabling test features
19#[cfg(test)]
20use fuel_crypto as _;
21
22/// Required export for using mnemonic keygen on [`SecretKey::new_from_mnemonic`]
23#[cfg(feature = "std")]
24#[doc(no_inline)]
25pub use coins_bip32;
26/// Required export for using mnemonic keygen on [`SecretKey::new_from_mnemonic`]
27#[cfg(feature = "std")]
28#[doc(no_inline)]
29pub use coins_bip39;
30/// Required export to use various public interfaces in this crate
31#[doc(no_inline)]
32pub use fuel_types;
33#[cfg(feature = "random")]
34#[doc(no_inline)]
35/// Required export to use randomness features
36pub use rand;
37
38mod error;
39mod hasher;
40mod message;
41mod mnemonic;
42mod secp256;
43
44pub mod ed25519;
45
46pub use secp256::backend::r1 as secp256r1;
47
48pub use secp256::{
49    PublicKey,
50    SecretKey,
51    Signature,
52};
53
54#[cfg(test)]
55mod tests;
56
57pub use error::Error;
58pub use hasher::Hasher;
59pub use message::Message;
60
61#[cfg(all(feature = "std", feature = "random"))]
62pub use mnemonic::generate_mnemonic_phrase;