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