Expand description
Cyphernet is a set of libraries for privacy-preserving networking & internet applications.
The set of libraries supports mix networks (Tor, I2P, Nym), proxies, end-to-end encryption without central authorities/PKI (Noise-based encryption protocols like lightning wire protocol, NTLS etc). The library provides three main components, structured as modules:
- Network addresses (module
addr
), which allow simple use of - Tor, Nym, I2P and other mix networks and SOCKS proxies
- P2P addresses with node public keys
- May be used in a way that prevents using DNS names (outside mixnet scope).
- Noise protocol framework (module
noise
) for end-to-end encrypted network communications.
The library tries to minimize number of dependencies. Most of its functionality is available via non-default features, like:
noise
: support for noise protocolsmixnets
: supports for mixnet network addresses, includingtor
,nym
,i2p
(may require additional crypto libraries for parsing public keys)serde
: encoding for addresses typesdns
: enable use of DNS names alongside IP addresses and mixnet names.
Network addresses provided by the library include the following types:
addr::InetHost
- IP addr or DNS nameaddr::HostName
- IP, DNS, Tor, I2P, Nym host name (no port or proxy information)addr::NetAddr
- any type of host name + port informationaddr::PartialAddr
- any type of host name + optional port, which defaults to generic const if not providedaddr::PeerAddr
- any of the above addresses + node public key for authenticationaddr::ProxiedHost
- host name + proxy (there are IP/DNS w/o proxy and with proxy)addr::ProxiedAddr
- any of the above addresses + proxy (thus IP/DNS is always proxied)
Re-exports§
pub extern crate cypheraddr as addr;
Modules§
- auth
eidolon
- ed25519
ed25519
Edwards25519 curve keys and EdDSA algorithm implementation for Ed25519 scheme. - x25519
x25519
Curve25519 keys and ECDH algorithm implementation for X25519 scheme.
Structs§
Enums§
Traits§
- Elliptic-curve based public key type which can be used in ECDH or signature schemes.
- Marker trait for elliptic-curve based signatures
- Signature scheme trait
- Elliptic-curve based private key type.
- Elliptic-curve based public key type which can be used for ECDH.
Type Aliases§
- SHA-256 hasher.