go-i2p

command module
v0.0.0-...-83f3d11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2024 License: MIT Imports: 3 Imported by: 0

README

go-i2p

A pure Go implementation of the I2P router.

Status

go-i2p is in early development. The master branch is being refactored and API's are definitely going to change. If you choose to use any part of this code right now, please keep up with these changes, as they will not be backward compatible and require Fundamentally changing any code that treats this as a dependency.

Implemented Features
  • Clients
    • Datagrams
    • I2CP
    • Message routing
    • SAM
    • Streaming
    • Tunnel Manager
  • Cryptographic primitives
    • Signing
      • ECDSA_SHA256_P256
      • ECDSA_SHA384_P384
      • ECDSA_SHA512_P521
      • Ed25519
    • Verifying
      • DSA
      • ECDSA_SHA256_P256
      • ECDSA_SHA384_P384
      • ECDSA_SHA512_P521
      • RSA_SHA256_2048
      • RSA_SHA384_3072
      • RSA_SHA512_4096
      • Ed25519
      • Red25519
    • ElGamal
    • AES256
    • X25519
    • ChaCha20/Poly1305
    • Elligator2
    • HKDF
    • HMAC
    • Noise subsystem
  • End-to-End Crypto
    • Garlic messages
    • ElGamal/AES+SessionTag
    • Ratchet/X25519
  • I2NP
    • Message parsing
    • Message handling
  • NetDB
    • Local storage
    • [/] Persistence to disk
    • Reseeding
    • Lookups
    • Expiry
    • Exploration
    • Publishing
    • Floodfill
    • LS2 and Encrypted Leasesets
  • Transports
    • Transport manager
    • NTCP2
      • Handshake
      • Session tracking
      • Automatic session creation
    • SSU
      • Handshake
      • Session tracking
      • Automatic session creation
      • Peer Tests
      • Introducers
  • Tunnels
    • Building
    • Build Message Crypto (ElGamal)
    • Build Message Crypto (ECIES)
    • Participating
    • Tunnel Message Crypto
    • Tunnel Message Fragmentation/Reassembly
  • Common Data Structures
    • [/] Keys and Cert
    • Key Certificates
    • Certificate
    • Lease
    • Lease Set
    • Router Info
    • Router Identity
    • Router Address
    • Session Key
    • Signature Types
    • Destination
    • Data Types
    • Session Tag

Contributing

See CONTRIBUTING.md for more information.

License

This project is licensed under the MIT license, see LICENSE for more information.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
lib
bootstrap
provides generic interfaces for initial bootstrap into network and network reseeding
provides generic interfaces for initial bootstrap into network and network reseeding
common/base32
Package base32 implmenets utilities for encoding and decoding text using I2P's alphabet
Package base32 implmenets utilities for encoding and decoding text using I2P's alphabet
common/base64
Package base64 implmenets utilities for encoding and decoding text using I2P's alphabet
Package base64 implmenets utilities for encoding and decoding text using I2P's alphabet
common/data
Package data implements common data structures used in higher level structures.
Package data implements common data structures used in higher level structures.
common/destination
Package destination implements the I2P Destination common data structure
Package destination implements the I2P Destination common data structure
common/key_certificate
Package key_certificate implements the I2P Destination common data structure
Package key_certificate implements the I2P Destination common data structure
common/keys_and_cert
Package keys_and_cert implements the I2P KeysAndCert common data structure
Package keys_and_cert implements the I2P KeysAndCert common data structure
common/lease
Package lease implements the I2P lease common data structure
Package lease implements the I2P lease common data structure
common/lease_set
Package lease_set implements the I2P LeastSet common data structure
Package lease_set implements the I2P LeastSet common data structure
common/router_address
Package router_address implements the I2P RouterAddress common data structure
Package router_address implements the I2P RouterAddress common data structure
common/router_identity
Package router_identity implements the I2P RouterIdentity common data structure
Package router_identity implements the I2P RouterIdentity common data structure
common/router_info
Package router_info implements the I2P RouterInfo common data structure
Package router_info implements the I2P RouterInfo common data structure
common/session_key
Package session_key implements the I2P SessionKey common data structure
Package session_key implements the I2P SessionKey common data structure
common/session_tag
Package session_tag implements the I2P SessionTag common data structure
Package session_tag implements the I2P SessionTag common data structure
common/signature
Package signature implements the I2P Signature common data structure
Package signature implements the I2P Signature common data structure
crypto
package for i2p specific crpytography
package for i2p specific crpytography
su3
Package su3 implements reading the SU3 file format.
Package su3 implements reading the SU3 file format.
*
transport/ssu
i2p ssu transport implementation
i2p ssu transport implementation
tunnel
i2p garlic tunnel implementation
i2p garlic tunnel implementation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL