1
1
mirror of https://github.com/urbit/shrub.git synced 2024-12-28 14:42:53 +03:00
shrub/pkg/ge-additions
Brendan Hay ce3cbf0857
build: rework all nix expressions to support hercules-ci builds
This also removes nixcrpkgs and OSX cross compilation in favour of
compiling on the target. x86_64/musl targets are still supported
on Linux.

All sources are now managed via niv (see nix/sources.json) and Haskell
package sets are provided/organised via IOHK's haskell.nix.

Some effort has been made to expose similar top-level attributes for
development, but in some cases there have been changes. Please see
the comments in the top-level default.nix and ci.nix files for usage.
2020-10-27 13:55:49 +01:00
..
ge-additions.c Merge branch 'rings' of github.com:urbit/urbit into rings 2019-06-24 13:51:18 -07:00
ge-additions.h Merge branch 'cc-release' into rings 2019-06-24 13:47:53 -07:00
LICENSE Merge branch 'cc-release' into rings 2019-06-24 13:47:53 -07:00
Makefile Makefile needs CFLAGS. 2019-06-24 15:58:51 -07:00
README.md Merge branch 'cc-release' into rings 2019-06-24 13:47:53 -07:00
shell.nix build: rework all nix expressions to support hercules-ci builds 2020-10-27 13:55:49 +01:00

Group Element Additions

Urbit uses the ge.h code from the ed25519 library, which was ported from the ref10 SUPERCOP public domain implementation. That implementation doesn't contain several functions needed for ring signatures.

This file does. The providence of this code starts with Adam Langley taking the SUPERCOP C implementation and producing an ed25519 implementation for it in golang (https://godoc.org/golang.org/x/crypto/ed25519). (If you look at the go code, you'll see the comments are the same as the comments in the C implementation.)

From there, the DEDIS group from ETH Zurich took that implementation and added the additional methods to make a generalized ECC point library. While their project as a whole is MPL, they deliberately left their ed25519 implementation under the Go BSD-3 license: (https://github.com/dedis/kyber/blob/master/group/edwards25519/LICENSE)

This file is a fairly straight translation from Go to C of DEDIS' additions, so this falls under the same license.