• Stars
    star
    150
  • Rank 247,323 (Top 5 %)
  • Language
    Rust
  • License
    Other
  • Created about 7 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

I2P router implementation in Rust

Ire: the I2P Rust engine

Crates.io Build Status codecov

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
    • 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
    • ElGamal
    • AES256
  • I2NP
    • Message parsing
    • Message handling
  • NetDB
    • Local storage
    • Persistence to disk
    • Reseeding
    • Lookups
    • Expiry
    • Exploration
    • Publishing
    • Floodfill
  • Transports
    • Transport manager
    • NTCP
      • Handshake
      • Session tracking
      • Automatic session creation
    • NTCP2
      • Handshake
      • Session tracking
      • Automatic session creation
    • SSU

Usage

The binary implements a router, along with a basic client that can be used to test the various transports:

  1. Create a router.toml file and configure the router. See examples/router.toml for available configuration options.

  2. Run the router:

$ RUST_LOG=ire=debug cargo run --features cli --release router router.toml
  1. Generate keys for the client:
$ cargo run --features cli --release cli gen client.router.keys.dat
  1. Run a client:
$ RUST_LOG=ire=debug cargo run --features cli --release cli client client.router.keys.dat router.info [NTCP|NTCP2]

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

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

More Repositories

1

rage

A simple, secure and modern file encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability.
Rust
2,594
star
2

age-plugin-yubikey

YubiKey plugin for age
Rust
590
star
3

ed25519-java

Pure Java implementation of EdDSA
Java
211
star
4

zcash-pow

The proof-of-work algorithm for Zcash
Python
80
star
5

wage

A WASM package and web app for encrypting and decrypting age-encrypted files, powered by rage.
Vue
75
star
6

bls

Rust crate for BLS signatures
Rust
30
star
7

fpe

Format-preserving encryption in Rust
Rust
25
star
8

pinentry-rs

Rust interface for pinentry binaries
Rust
24
star
9

memuse

Traits for inspecting memory usage of Rust types
Rust
24
star
10

txi2p

I2P bindings for Twisted.
Python
12
star
11

backflip

Help your Flipper Zero perform tricks!
Rust
10
star
12

addchain

Rust crate for generating addition chains
Rust
8
star
13

zcon1-demo-wasm

JavaScript
7
star
14

age-plugin-remote

[UNFINISHED] Expose local age identities to remote machines via SSH
Rust
6
star
15

partysig

Create and verify distributed multi-party signatures
Python
6
star
16

x509.rs

Pure-Rust X.509 serialization
Rust
5
star
17

girage

[ALPHA STATE] Graphical interface for a simple, secure, and modern encryption tool.
Rust
4
star
18

zk

Rust
4
star
19

halo2-website

Rust
4
star
20

hazmat

A collection of helpers for working with hazardous materials in Rust crates.
Rust
2
star
21

i2p_elgamal

Rust implementation of I2P's 2048-bit ElGamal primitive
Rust
2
star
22

plc

Key management for DID PLC identities
Rust
2
star
23

mostly-harmless

A bag of various unrelated projects with varying levels of serviceability and destructiveness.
Rust
1
star
24

vrf-r255

Implementation of draft-irtf-cfrg-vrf-15 with ristretto255
Rust
1
star