Commit Graph

36 Commits

Author SHA1 Message Date
Filippo Valsorda 0e06c64ad7 ristretto255: expose scalar multiplication APIs
The names of the ScalarMults were picked to match elliptic.Curve.

The Scalar type is re-exposed as an opaque type, with an API that
matches the Element one.
2019-05-16 15:08:48 -04:00
Filippo Valsorda 97912109c3 internal/edwards25519: fix shadowing of B in TestAddSubNegOnBasePoint 2019-05-16 15:08:48 -04:00
Filippo Valsorda 4baac9a766 internal/edwards25519,internal/scalar: apply some Go style touches
Including unexporting the table types (which are not used in any API) to
declutter the godoc page.
2019-05-16 15:08:48 -04:00
Henry de Valence 2d09ffd636 internal/ed25519: rearrange VartimeDoubleBaseMul args
This way they line up with a*A + b*B (except B is implicit).
2019-05-12 02:20:59 -04:00
Henry de Valence 1e66180e96 internal/ed25519: add benchmarks for scalar mul 2019-05-12 02:20:59 -04:00
Henry de Valence 8186dbd6e1 internal/ed25519: add variable-time multiscalar mul 2019-05-12 02:20:59 -04:00
Henry de Valence 4ba8cc9326 internal/ed25519: add vartime double-base scmul 2019-05-12 02:20:59 -04:00
Henry de Valence 7b8b390b63 internal/ed25519: add precomputed NAF table for basepoint 2019-05-12 02:20:59 -04:00
Henry de Valence 0da0c530f4 internal/ed25519: lower quickcheck size for point ops 2019-05-12 02:20:59 -04:00
Henry de Valence f0e9a21a6d internal/ed25519: implement MultiscalarMul 2019-05-12 02:20:59 -04:00
Henry de Valence 23073b0135 internal/ed25519: implement BasepointMul 2019-05-12 02:20:59 -04:00
Henry de Valence e69072e96b internal/ed25519: extract common test variables 2019-05-12 02:20:59 -04:00
Henry de Valence b9eebc0ea7 internal/ed25519: add a basepoint multiple table.
The table is hardcoded, and regenerated in the test code.
2019-05-12 02:20:59 -04:00
Henry de Valence 95e035b5e5 internal/ed25519: add constant-time variable-base scmul.
This also adds stub functions for the other scalar mul functionality.
2019-05-12 02:20:59 -04:00
Henry de Valence af6c23d070 internal/ed25519: move basepoint constant & correct it
The new values are extracted from the dalek test vectors.
2019-05-12 02:20:59 -04:00
Henry de Valence ce204aaa9d internal/ed25519: add TODO note and doc ref 2019-05-08 14:54:33 -07:00
Henry de Valence 9353104792 internal/ed25519: rename twoD to D2 2019-05-08 14:54:33 -07:00
Henry de Valence 26af03f7b3 internal/ed25519: add lookup tables for scalar mul. 2019-05-08 14:54:33 -07:00
Henry de Valence 0b5e1eb054 ristretto255: use multi-model arithmetic 2019-05-08 14:54:33 -07:00
Henry de Valence a360a6556f internal/ed25519: remove single-model code 2019-05-08 14:54:33 -07:00
Henry de Valence bdc420be66 internal/ed25519: add addition for Edwards points 2019-05-08 14:54:33 -07:00
Henry de Valence 596a79126e internal/ed25519: use twoD 2019-05-08 14:54:33 -07:00
Henry de Valence c56a898ecf internal/ed25519: add tests for multi-model point types. 2019-05-08 14:54:33 -07:00
Henry de Valence 158f91f02f internal/ed25519: add multi-model point types. 2019-05-08 14:54:33 -07:00
Henry de Valence 2691d4b60c Move comment inside function 2019-04-19 12:58:47 -07:00
Henry de Valence cc27ee0ee3 implement Add, Sub, Neg for ed25519 and ristretto255 points. 2019-04-19 11:47:12 -07:00
Filippo Valsorda 88aa823cd0 internal/group: rename to internal/edwards25519 2019-04-19 12:40:08 -04:00
Filippo Valsorda dcc5867ec2 Update gtank/ed25519 code to fe6e0954e0
Our Ristretto-agnostic field operations are now upstreamed, so we can
drop the internal package.
2019-01-21 18:13:23 -05:00
Filippo Valsorda 7522470fbc Replace x/crypto/ed25519 code with github.com/gtank/ed25519
Code pulled from commit 0a030f62c0 with
FeEqual and FeCSwap removed.
2019-01-21 17:43:47 -05:00
George Tankersley 2156d823cd implement SQRT_RATIO_M1 2019-01-20 17:59:28 -05:00
Filippo Valsorda 6140fa2e7b Refactor const.go 2019-01-20 17:36:31 -05:00
Filippo Valsorda 268ae6be59 Selectively expose types and functions from the inner x/crypto implementation 2019-01-20 17:32:31 -05:00
George Tankersley e93531adad internal: initialize Ristretto constants 2019-01-20 16:53:02 -05:00
Filippo Valsorda f963b4ec88 Add constant time field operations 2019-01-20 16:52:53 -05:00
Filippo Valsorda f1ea30515a Add FeEqual and feFromBig 2019-01-20 16:33:45 -05:00
George Tankersley 3db329037d initial import from x/crypto ff983b9c42bc9fbf91556e191cc8efb585c16908 2019-01-20 15:44:03 -05:00