#i2p #privacy #networking #net #security

app ire

I2P router implementation in Rust

1 unstable release

Uses old Rust 2015

0.0.1 Oct 15, 2017

#9 in #i2p

MIT and GPL-2.0 licenses

190KB
4K SLoC

Ire: the I2P Rust engine

Ire is a Rust implementation of an I2P router, designed to participate in the global, decentralised I2P network.

Development Status

Ire is in pre-alpha; much of the internal architecture still needs to be defined and implemented.

Implemented Features

  • Cryptographic primitives
    • ElGamal
    • DSA
    • ECDSA
    • Ed25519
    • AES256
  • I2NP
    • Message parsing
    • Message handling
  • Transports
    • Transport manager
    • NTCP
      • Handshake
      • Connection tracking
    • SSU

Usage

The binary implements a basic client and server that can be used to test the NTCP handshake:

  1. Generate keys for the server and client:
$ cargo run --release cli gen server.router.keys.dat server.router.info
$ cargo run --release cli gen client.router.keys.dat client.router.info
  1. Run the server:
$ RUST_LOG=ire=debug cargo run --release cli server server.router.keys.dat 127.0.0.1:12345
  1. Run a client:
$ RUST_LOG=ire=debug cargo run --release cli client client.router.keys.dat server.router.info 127.0.0.1:12345

Code of Conduct

We abide by the Contributor Covenant and ask that you do as well.

For more information, please see CODE_OF_CONDUCT.md.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/str4d/ire

Copyright (c) 2017 The Ire Developers. See LICENSE.txt for further details.

Dependencies

~16MB
~297K SLoC