Crate cyphernet

Source
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 protocols
  • mixnets: supports for mixnet network addresses, including tor, nym, i2p (may require additional crypto libraries for parsing public keys)
  • serde: encoding for addresses types
  • dns: 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 name
  • addr::HostName - IP, DNS, Tor, I2P, Nym host name (no port or proxy information)
  • addr::NetAddr - any type of host name + port information
  • addr::PartialAddr - any type of host name + optional port, which defaults to generic const if not provided
  • addr::PeerAddr - any of the above addresses + node public key for authentication
  • addr::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§

autheidolon
display
ed25519ed25519
Edwards25519 curve keys and EdDSA algorithm implementation for Ed25519 scheme.
encrypt
proxy
x25519x25519
Curve25519 keys and ECDH algorithm implementation for X25519 scheme.

Structs§

Cert
CertFormat
EcPkInvalid
EcSigInvalid
EcSkInvalid
Hmac

Enums§

EcSerError
EcVerifyError
EcdhError

Traits§

Digest
Digest32
Digest64
EcPk
Elliptic-curve based public key type which can be used in ECDH or signature schemes.
EcSig
Marker trait for elliptic-curve based signatures
EcSign
Signature scheme trait
EcSk
Elliptic-curve based private key type.
Ecdh
Elliptic-curve based public key type which can be used for ECDH.
HmacDigest
KeyedDigest

Type Aliases§

Sha256
SHA-256 hasher.