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 config::WebRtcConfig;
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::FipsEndpointDirectDeliveryError;
pub use endpoint::FipsEndpointDirectPacketBatch;
pub use endpoint::FipsEndpointDirectPacketRun;
pub use endpoint::FipsEndpointDirectSink;
pub use endpoint::FipsEndpointError;
pub use endpoint::FipsEndpointMessage;
pub use endpoint::FipsEndpointOutboundDatagram;
pub use endpoint::FipsEndpointServiceDatagram;
pub use endpoint::FipsEndpointServiceReceiver;
pub use node::ExternalPacketIo;
pub use node::Node;
pub use node::NodeDeliveredPacket;
pub use node::NodeError;
pub use node::NodeState;

Modules§

bloom
Bloom filter compatibility exports.
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.
host_firewall
Host firewall helpers for FIPS mesh TUN interfaces.
identity
mmp
Metrics Measurement Protocol compatibility exports.
node
FIPS Node Entity
noise
Noise Protocol Implementations for FIPS
peer
Peer Management
peer_rating
protocol
Protocol compatibility exports.
transport
Transport Layer Abstractions
tree
Spanning-tree compatibility exports.
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).