Hi list,
I have written a rust implementation of ERIS.
The code is on GitHub:
https://github.com/mguentner/eris-rs/
eris-rs is also published on crates.io, so you can depend on
it in your project's Cargo.toml
https://crates.io/crates/eris-rs
The release 0.1.1 implements the spec in version 0.3.0 and
passes all vector tests + chacha20 stream tests.
Overall, the implementation performs decently fast but it could be sped
up using parallelization within the decoder and encoder. For example,
everything that happens in the encoder after a chunk for a storage block
has been read - meaning encryption and execution of the storage function
- can be distributed across multiple threads. Feel free to contribute!
Furthermore, I wrote a command line application that makes use
of eris-rs as a proof-of-concept and to benchmark the en- and
decoder:
https://github.com/mguentner/eris-cli
cheers,
Max
Hi Max,
Max <code@sourcediver.org> writes:
> I have written a rust implementation of ERIS.
> The code is on GitHub:
>
> https://github.com/mguentner/eris-rs/
Fantastic!
I think there might be quite some people interested in this. Among them
the Irdest project (https://irde.st/; https://git.irde.st/we/irdest/-/issues/43).
> eris-rs is also published on crates.io, so you can depend on
> it in your project's Cargo.toml
>
> https://crates.io/crates/eris-rs
>
> The release 0.1.1 implements the spec in version 0.3.0 and
> passes all vector tests + chacha20 stream tests.
>
> Overall, the implementation performs decently fast but it could be
> sped up using parallelization within the decoder and encoder. For
> example, everything that happens in the encoder after a chunk for a
> storage block has been read - meaning encryption and execution of the
> storage function - can be distributed across multiple threads. Feel
> free to contribute!
I think parallelization or at least non-sequential block fetching will
be important not only for optimizing the number crunching speed but also
when dereferencing blocks over various transports. I look forward to
seeing how this could be implemented!
Cheers,
pukkamustard