1#![cfg_attr(not(feature = "std"), no_std)]
71#![cfg_attr(docsrs, feature(doc_cfg))]
72#![deny(missing_docs)]
73#![warn(
74 missing_debug_implementations,
75 rust_2018_idioms,
76 unreachable_pub,
77 clippy::all
78)]
79
80#[cfg(feature = "alloc")]
81extern crate alloc;
82
83#[cfg(feature = "std")]
84extern crate std;
85
86pub mod common;
91
92#[cfg(feature = "hash")]
97#[cfg_attr(docsrs, doc(cfg(feature = "hash")))]
98pub mod hash;
99
100#[cfg(feature = "seed")]
101#[cfg_attr(docsrs, doc(cfg(feature = "seed")))]
102pub mod seed;
103
104#[cfg(feature = "dsign")]
105#[cfg_attr(docsrs, doc(cfg(feature = "dsign")))]
106pub mod dsign;
107
108#[cfg(feature = "vrf")]
109#[cfg_attr(docsrs, doc(cfg(feature = "vrf")))]
110pub mod vrf;
111
112#[cfg(feature = "kes")]
113#[cfg_attr(docsrs, doc(cfg(feature = "kes")))]
114pub mod kes;
115
116#[cfg(feature = "cbor")]
117#[cfg_attr(docsrs, doc(cfg(feature = "cbor")))]
118pub mod cbor;
119
120pub mod key;
122
123#[cfg(feature = "hash")]
128pub use hash::{Blake2b224, Blake2b256, Blake2b512, HashAlgorithm};
129
130#[cfg(feature = "dsign")]
131pub use dsign::{
132 ed25519::{Ed25519Signature, Ed25519SigningKey, Ed25519VerificationKey},
133 DsignAlgorithm, DsignKeyPair, DsignSignature, DsignSigningKey, DsignVerificationKey, Ed25519,
134 SignedDsign,
135};
136
137#[cfg(feature = "vrf")]
138pub use vrf::{
139 CertifiedVrf, OutputVrf, VrfAlgorithm, VrfDraft03, VrfDraft13, VrfKeyPair, VrfProof,
140 VrfSigningKey, VrfVerificationKey,
141};
142
143#[cfg(feature = "kes")]
144pub use kes::{
145 CompactSum0Kes, CompactSum1Kes, CompactSum2Kes, CompactSum3Kes, CompactSum4Kes, CompactSum5Kes,
146 CompactSum6Kes, CompactSum7Kes, KesAlgorithm, KesError, KesKeyPair, KesSignature,
147 KesSigningKey, KesVerificationKey, Period, SignKeyWithPeriodKes, SignedKes, SingleKes, Sum0Kes,
148 Sum1Kes, Sum2Kes, Sum3Kes, Sum4Kes, Sum5Kes, Sum6Kes, Sum7Kes,
149};
150
151#[cfg(feature = "cbor")]
152pub use cbor::{
153 decode_bytes,
155 decode_hash,
157 decode_output_vrf,
159 decode_proof_vrf,
160 decode_signature,
162 decode_signature_dsign,
164 decode_signature_kes,
166 decode_signing_key_dsign,
167 decode_signing_key_kes,
168 decode_signing_key_vrf,
169 decode_verification_key,
170 decode_verification_key_dsign,
171 decode_verification_key_kes,
172 decode_verification_key_vrf,
173 encode_bytes,
174 encode_hash,
175 encode_output_vrf,
176 encode_proof_vrf,
177 encode_signature,
178 encode_signature_dsign,
179 encode_signature_kes,
180 encode_signing_key_dsign,
181 encode_signing_key_kes,
182 encode_signing_key_vrf,
183 encode_verification_key,
184 encode_verification_key_dsign,
185 encode_verification_key_kes,
186 encode_verification_key_vrf,
187 encoded_hash_blake2b224_size,
189 encoded_hash_blake2b256_size,
190 encoded_output_vrf_size,
192 encoded_proof_vrf_draft03_size,
193 encoded_proof_vrf_draft13_size,
194 encoded_signature_dsign_size,
195 encoded_signature_size,
197 encoded_signature_sum6kes_size,
199 encoded_signing_key_dsign_size,
201 encoded_signing_key_sum6kes_size,
202 encoded_signing_key_vrf_size,
203 encoded_size_bytes,
204 encoded_verification_key_dsign_size,
205 encoded_verification_key_kes_size,
206 encoded_verification_key_size,
207 encoded_verification_key_vrf_size,
208 CborError,
210 FromCbor,
212 ToCbor,
213};
214
215#[cfg(feature = "seed")]
216pub use seed::{derive_seed, expand_seed, SecureSeed, Seed, SeedError, SEED_SIZE};
217
218pub use key::bech32;
220pub use key::text_envelope;
221
222#[cfg(feature = "hash")]
223pub use key::hash::{
224 hash_payment_verification_key, hash_pool_verification_key, hash_raw,
225 hash_stake_verification_key, hash_verification_key, hash_vrf_verification_key,
226 CommitteeColdKeyHash, CommitteeHotKeyHash, DRepKeyHash, GenesisDelegateKeyHash, GenesisKeyHash,
227 KeyHash, PaymentKeyHash, PoolKeyHash, StakeKeyHash, VrfKeyHash, KEY_HASH_SIZE,
228};
229
230#[cfg(feature = "kes")]
231pub use key::kes_period::{
232 is_kes_expired, is_valid_period, kes_expiry_slot, kes_period_info, period_from_slot,
233 slot_from_period, KESPeriod, KESPeriodInfo, KES_MAX_PERIOD_SUM6, KES_SLOTS_PER_PERIOD_MAINNET,
234 KES_SLOTS_PER_PERIOD_TESTNET,
235};
236
237pub const VERSION: &str = env!("CARGO_PKG_VERSION");
243
244pub const NAME: &str = env!("CARGO_PKG_NAME");