Skip to main content

Crate fips_core

Crate fips_core 

Source
Expand description

FIPS: Free Internetworking Peering System

A distributed, decentralized network routing protocol for mesh nodes connecting over arbitrary transports.

Re-exports§

pub use config::Config;
pub use config::ConfigError;
pub use config::IdentityConfig;
pub use config::TorConfig;
pub use config::UdpConfig;
pub use upper::config::DnsConfig;
pub use upper::config::TunConfig;
pub use discovery::BootstrapHandoffResult;
pub use discovery::EstablishedTraversal;
pub use tree::CoordEntry;
pub use tree::ParentDeclaration;
pub use tree::TreeCoordinate;
pub use tree::TreeError;
pub use tree::TreeState;
pub use bloom::BloomError;
pub use bloom::BloomFilter;
pub use bloom::BloomState;
pub use transport::udp::UdpTransport;
pub use transport::DiscoveredPeer;
pub use transport::LinkDirection;
pub use transport::LinkId;
pub use transport::LinkState;
pub use transport::LinkStats;
pub use transport::PacketRx;
pub use transport::PacketTx;
pub use transport::ReceivedPacket;
pub use transport::Transport;
pub use transport::TransportAddr;
pub use transport::TransportError;
pub use transport::TransportHandle;
pub use transport::TransportId;
pub use transport::TransportState;
pub use transport::TransportType;
pub use transport::packet_channel;
pub use protocol::CoordsRequired;
pub use protocol::FilterAnnounce;
pub use protocol::HandshakeMessageType;
pub use protocol::LinkMessageType;
pub use protocol::LookupRequest;
pub use protocol::LookupResponse;
pub use protocol::PathBroken;
pub use protocol::ProtocolError;
pub use protocol::SessionAck;
pub use protocol::SessionDatagram;
pub use protocol::SessionFlags;
pub use protocol::SessionMessageType;
pub use protocol::SessionSetup;
pub use protocol::TreeAnnounce;
pub use cache::CacheEntry;
pub use cache::CacheError;
pub use cache::CacheStats;
pub use cache::CoordCache;
pub use peer::ActivePeer;
pub use peer::ConnectivityState;
pub use peer::HandshakeState;
pub use peer::PeerConnection;
pub use peer::PeerError;
pub use peer::PeerSlot;
pub use peer::PromotionResult;
pub use peer::cross_connection_winner;
pub use endpoint::FipsEndpoint;
pub use endpoint::FipsEndpointBuilder;
pub use endpoint::FipsEndpointError;
pub use endpoint::FipsEndpointMessage;
pub use node::ExternalPacketIo;
pub use node::Node;
pub use node::NodeDeliveredPacket;
pub use node::NodeError;
pub use node::NodeState;

Modules§

bloom
Bloom Filter Implementation
cache
Caching Entities
config
FIPS Configuration System
control
Control socket for runtime management and observability.
discovery
Bootstrap handoff types.
endpoint
Library-first endpoint API for embedding FIPS in applications.
gateway
Outbound LAN gateway.
identity
mmp
Metrics Measurement Protocol (MMP) — link-layer instantiation.
node
FIPS Node Entity
noise
Noise Protocol Implementations for FIPS
peer
Peer Management
protocol
FIPS Protocol Messages
transport
Transport Layer Abstractions
tree
Spanning Tree Protocol Entities
upper
IPv6 Upper Layer Adaptation
utils
Utility modules.
version
Build version information for FIPS binaries.

Structs§

AuthChallenge
A 32-byte random authentication challenge.
AuthResponse
Response to an authentication challenge.
FipsAddress
128-bit FIPS address with IPv6-compatible format.
Identity
A FIPS node identity consisting of a keypair and derived identifiers.
NodeAddr
16-byte node identifier derived from truncated SHA-256(pubkey).
PeerIdentity
A known peer’s identity (public key only, no signing capability).

Enums§

IdentityError
Errors that can occur in identity operations.

Functions§

decode_npub
Decode an npub string to an x-only public key.
decode_nsec
Decode an nsec string to a secret key.
decode_secret
Decode a secret key from either nsec (bech32) or hex format.
encode_npub
Encode an x-only public key as a bech32 npub string (NIP-19).
encode_nsec
Encode a secret key as a bech32 nsec string (NIP-19).