~pukkamustard/eris

1

New ERIS implementation in Go

Andrew Dunham <andrew@du.nham.ca>
Details
Message ID
<CADSBmCA5zFv7BNr=VBB0SQRk9ZQsa23e8PU9Px8_Vyzeb2H_hQ@mail.gmail.com>
DKIM signature
pass
Download raw message
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
Details
Message ID
<99565271-38f6-477d-8089-69a0e8d5ea12@dvn.me>
In-Reply-To
<CADSBmCA5zFv7BNr=VBB0SQRk9ZQsa23e8PU9Px8_Vyzeb2H_hQ@mail.gmail.com> (view parent)
DKIM signature
pass
Download raw message
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
Reply to thread Export thread (mbox)