Isis Lovecruft
d4cccbc4d8
Whitespace cleanup in constants module.
2017-01-27 01:38:56 +00:00
Isis Lovecruft
0c14f58797
Merge remote-tracking branch 'burdges/patch-1' into develop
2017-01-27 00:40:32 +00:00
Isis Lovecruft
8c986fb3da
Allow non-snakecase in constants.
...
We follow the standard mathematical naming convention of lowercase to
denote affine coordinates and uppercase to for projective.
2017-01-27 00:34:38 +00:00
Isis Lovecruft
3f900e60bd
Change CompressedPoint in constants module to CompressedEdwardsY.
2017-01-27 00:33:59 +00:00
Isis Lovecruft
1d964fa4b7
Merge remote-tracking branch 'hdevalence/feature/seperate-constants-file' into develop
2017-01-27 00:15:31 +00:00
Jeff Burdges
b96281ab12
Link needs http://www .
2017-01-23 00:29:02 -05:00
Isis Lovecruft
39f417f75e
Merge remote-tracking branch 'hdevalence/feature/move-ct-traits' into develop
2017-01-20 21:51:19 +00:00
Isis Lovecruft
6d2ab84d38
Merge remote-tracking branch 'hdevalence/feature/add-mult-cofactor-fn' into develop
2017-01-19 23:37:50 +00:00
Isis Lovecruft
761ef304d4
Merge remote-tracking branch 'hdevalence/feature/rename-compressed-point' into develop
2017-01-19 23:33:58 +00:00
Isis Lovecruft
99344b5f7e
Merge remote-tracking branch 'hdevalence/feature/split-scalar-type' into develop
2017-01-19 23:30:38 +00:00
Tony Arcieri
d08bc7395e
Add #![no_std] ( fixes #16 )
...
Use ::core in lieu of ::std, allowing this crate to be usable in #![no_std]
environments.
Gates features that presently depend on ::std (presently just rand) behind a
"std" cargo feature, which is enabled by default.
2017-01-18 15:16:01 -08:00
Henry de Valence
46bf69b80e
Test basepoint multiple generation
2017-01-09 16:15:23 -05:00
Henry de Valence
187d4d3c09
Make some conversions public
2017-01-09 16:15:23 -05:00
Henry de Valence
6559e1de37
Derive Eq for PreComputedPoints
2017-01-09 16:15:22 -05:00
Henry de Valence
d94edc6a36
Move compressed basepoint into constants
...
Would be good to have the basepoint itself, but this doesn't seem possible: the
fields of an ExtendedPoint are not public, so we can't construct them outside
of curve.rs (by design, to prevent constructing invalid points). Maybe const
fn support could change this.
2017-01-09 16:15:22 -05:00
Henry de Valence
ff9e78572c
Add a way to construct precomputed points
2017-01-09 16:15:22 -05:00
Henry de Valence
16b4be6663
Add fixme on SQRT_MINUS_A
2017-01-08 15:11:16 -05:00
Henry de Valence
7ee568780b
Shorten docstring on monty A value
2017-01-08 15:11:16 -05:00
Henry de Valence
8a5332b220
Remove unused, incorrect a value
...
This was presumably added for use with formulas that use two multiplications by
small constants (i.e., 121665 and 121666) instead of one multiplication by a
large constant (i.e., -121665/121666), but we don't use those formulas.
2017-01-08 15:11:16 -05:00
Henry de Valence
8fb9e44dd2
Test that d = -121665/121666
2017-01-08 15:11:16 -05:00
Henry de Valence
3f7d06138a
Test that SQRT_M1 is a square root of -1
2017-01-08 15:11:15 -05:00
Henry de Valence
a9e3c330a6
Move constants into its own module
2017-01-08 14:39:25 -05:00
Henry de Valence
63e7e9f8de
Implement CTAssignable for Scalar
2017-01-06 12:56:53 -05:00
Henry de Valence
74049e039e
Make FieldElement's conditional_assign a trait impl
2017-01-06 12:34:57 -05:00
Henry de Valence
c92ebdd0ac
Remove unused conditional_choose function
2017-01-06 12:29:24 -05:00
Henry de Valence
098ff2ffca
Move CTAssignable trait to util.rs from curve.rs
2017-01-06 12:26:43 -05:00
Henry de Valence
4a5d7052a9
Add convenience wrapper around mult_by_pow_2 to clear cofactor
2017-01-06 10:47:05 -05:00
Henry de Valence
d1599410ee
Rename CompressedPoint -> CompressedEdwardsY
...
This allows other compression formats (e.g., CompressedMontgomeryX).
2016-12-23 17:50:24 -08:00
Henry de Valence
ef2987349f
Add bench for unpacked multiply_add
2016-12-23 13:01:16 -08:00
Henry de Valence
85d4b7e98c
Split the Scalar type into Scalar and UnpackedScalar
...
The Scalar type is stored in memory as an array of bytes. This allows easy
access to the bits of a scalar for Scalar x Point operations, at the cost of
forcing a pack/unpack for Scalar x Scalar. This commit splits the Scalar type
into Scalar (packed) and UnpackedScalar (limbs).
2016-12-23 12:49:00 -08:00
Henry de Valence
e2dfa17879
Add fixme on load3/4 as utilities
2016-12-23 10:03:30 -08:00
Isis Lovecruft
42c2578f4c
Merge branch 'release/0.2.0'
2016-12-14 06:00:23 +00:00
Isis Lovecruft
fdbbce9ed0
Merge branch 'feature/001-specify-rng' into release/0.2.0
2016-12-14 05:54:47 +00:00
Isis Lovecruft
c9b0e45afb
Specify the RNG for Scalar::random.
2016-12-14 05:54:22 +00:00
Isis Lovecruft
a339da82e7
Update the minor version number in the README.
2016-12-14 05:02:55 +00:00
Isis Lovecruft
226f5c7019
Update version to 0.2.0 in Cargo.toml.
2016-12-14 05:02:36 +00:00
Isis Lovecruft
51e3763643
Merge remote-tracking branch 'isislovecruft/master'
2016-12-14 04:38:44 +00:00
Henry de Valence
918d0bca30
Merge pull request #3 from hdevalence/feature/scalar-random-constructor
...
Add a Scalar::random() constructor
2016-12-10 04:45:02 +00:00
Henry de Valence
c6b1b497b0
Add benchmark for Scalar::random()
2016-12-09 17:45:54 -08:00
Henry de Valence
d8476fe6cf
Add a Scalar::random() constructor
...
This adds a dependency on the `rand` crate, used to construct an
OS-backed CSPRNG. The implementation in this commit is somewhat
inefficient as it constructs a new OsRng object every time; it might be
better to construct it once. (Seems like a lot of overhead for a few
getrandom(2) calls...)
2016-12-09 17:38:51 -08:00
Isis Lovecruft
9630b91a03
Merge remote-tracking branch 'hdevalence/master'
2016-12-10 00:13:23 +00:00
Henry de Valence
22f78e227f
Merge remote-tracking branch 'isis/master'
2016-12-09 14:57:58 -08:00
Henry de Valence
71bf0d5e53
Remove port of Montgomery conversion from Adam's code
...
This should be brought back later as part of reworking the compressed
point formats / serialization code. Right now there's just
"CompressedPoint" which is in the ed25519 format. Ideally, users should
be able to serialize points to formats used for X25519, for decaf, etc.
and not have to worry too much about the internal model.
2016-12-09 14:49:27 -08:00
Henry de Valence
b5eee15f50
Add additional TODO items
2016-12-09 14:47:35 -08:00
Isis Lovecruft
6b9e2696bd
Merge branch 'release/0.1.3'
2016-12-09 04:19:58 +00:00
Isis Lovecruft
02bbc4eec9
Bump version to 0.1.3 in Cargo.toml.
2016-12-09 02:34:11 +00:00
Isis Lovecruft
0c9d43e82a
Fix another typo in the package description.
2016-12-09 02:13:04 +00:00
Isis Lovecruft
cd4642c57e
Fix typo in package description.
2016-12-09 01:39:55 +00:00
Isis Lovecruft
bf1da4e9cd
Add a crates.io badge.
2016-12-08 22:26:56 +00:00
Isis Lovecruft
f3b29398bc
Add warning, documentation links, and install instructions to the README.
2016-12-08 22:18:57 +00:00