Skip to main content

nucypher_core/
lib.rs

1//! A collection of objects defining the protocol for NyCypher nodes (Ursulas).
2
3#![doc(html_root_url = "https://docs.rs/nucypher-core")]
4#![forbid(unsafe_code)]
5#![warn(missing_docs, rust_2018_idioms, unused_qualifications)]
6#![no_std]
7
8extern crate alloc;
9
10mod access_control;
11mod address;
12mod conditions;
13mod dkg;
14mod fleet_state;
15mod hrac;
16mod key_frag;
17mod message_kit;
18mod node_metadata;
19mod prim_types;
20mod reencryption;
21mod retrieval_kit;
22mod revocation_order;
23mod secret_box;
24mod session;
25mod signature_request;
26mod test_utils;
27mod threshold_message_kit;
28mod treasure_map;
29mod versioning;
30
31/// Error returned by various `verify()` methods in the crate.
32pub struct VerificationError;
33
34pub use access_control::{encrypt_for_dkg, AccessControlPolicy, AuthenticatedData};
35
36pub use address::Address;
37pub use conditions::{Conditions, Context};
38pub use dkg::{
39    EncryptedThresholdDecryptionRequest, EncryptedThresholdDecryptionResponse,
40    ThresholdDecryptionRequest, ThresholdDecryptionResponse,
41};
42pub use fleet_state::FleetStateChecksum;
43pub use hrac::HRAC;
44pub use key_frag::EncryptedKeyFrag;
45pub use message_kit::MessageKit;
46pub use node_metadata::{
47    MetadataRequest, MetadataResponse, MetadataResponsePayload, NodeMetadata, NodeMetadataPayload,
48};
49pub use prim_types::Uint256;
50pub use reencryption::{ReencryptionRequest, ReencryptionResponse};
51pub use retrieval_kit::RetrievalKit;
52pub use revocation_order::RevocationOrder;
53pub use session::{
54    key::{SessionSecretFactory, SessionSharedSecret, SessionStaticKey, SessionStaticSecret},
55    DecryptionError, EncryptionError,
56};
57pub use signature_request::{
58    deserialize_signature_request, AAVersion, BaseSignatureRequest, DirectSignatureRequest,
59    EncryptedThresholdSignatureRequest, EncryptedThresholdSignatureResponse, PackedUserOperation,
60    PackedUserOperationSignatureRequest, SignatureRequestType, SignatureResponse, UserOperation,
61    UserOperationSignatureRequest,
62};
63pub use threshold_message_kit::ThresholdMessageKit;
64pub use treasure_map::{EncryptedTreasureMap, TreasureMap};
65pub use versioning::ProtocolObject;
66
67// Re-export umbral_pre so that the users don't have to version-match.
68pub use umbral_pre;
69
70// Re-export ferveo so that the users don't have to version-match.
71pub use ferveo;