Hi folks,
I just open-sourced v0.0.1 of github.com/andrew-d/eris-go, an
implementation of the ERIS spec that passes all positive and negative
test vectors. It's intentionally written to be very minimal; the only
third-party dependency is the almost-standard-library x/crypto library
that contains the ChaCha20 and Blake2b implementations. It implements
both a streaming encoder and streaming decoder; I don't have a
personal need for random-access decoding, so I didn't implement it,
but I might do that if I get more free time one of these days.
Thanks for a very helpful spec! I've got a not-yet-announced side
project that this will be very useful for, and it was reasonably
straightforward to write the implementation given the detail in the
spec. The test vectors are *especially* appreciated!
A few small things I noticed when reading the spec; nothing major, but
I figured I'd mention them in case you wanted the feedback.
- Section 2.4 uses `Encrypt-Node` instead of `Encrypt-Leaf-Node`
- Section 2.5 has a small typo: `Eris-Decode-Recurse` should be
`ERIS-Decode-Recurse`
- Section 2.7 uses `urn:urn:eris:BIA[...]` in the example URN encoding
(`urn:` repeated twice)
Best,
--Andrew
Hi there,
That's pretty exciting that you found the spec to be sufficient for your
needs! From a brief look, your code is nicely organized and well
commented, which is excellent.
Just curious, did you find the existing eris-go implementation too
feature-full, or were there other reasons which prompted you to
implement a new version?
Best,
-Devan
On 11/18/24 05:19, Andrew Dunham wrote:
> Hi folks,
>
> I just open-sourced v0.0.1 of github.com/andrew-d/eris-go, an
> implementation of the ERIS spec that passes all positive and negative
> test vectors. It's intentionally written to be very minimal; the only
> third-party dependency is the almost-standard-library x/crypto library
> that contains the ChaCha20 and Blake2b implementations. It implements
> both a streaming encoder and streaming decoder; I don't have a
> personal need for random-access decoding, so I didn't implement it,
> but I might do that if I get more free time one of these days.
>
> Thanks for a very helpful spec! I've got a not-yet-announced side
> project that this will be very useful for, and it was reasonably
> straightforward to write the implementation given the detail in the
> spec. The test vectors are *especially* appreciated!
>
> A few small things I noticed when reading the spec; nothing major, but
> I figured I'd mention them in case you wanted the feedback.
> - Section 2.4 uses `Encrypt-Node` instead of `Encrypt-Leaf-Node`
> - Section 2.5 has a small typo: `Eris-Decode-Recurse` should be
> `ERIS-Decode-Recurse`
> - Section 2.7 uses `urn:urn:eris:BIA[...]` in the example URN encoding
> (`urn:` repeated twice)
>
> Best,
> --Andrew