Michael Rosenberg
474c272945
Removed "nightly" from default features
2019-02-03 11:13:50 -05:00
Henry de Valence
ff0dc4a3db
Merge branch 'master' into develop
2019-01-27 23:19:44 -08:00
Henry de Valence
4bdccd7b7c
Merge branch 'release/1.0.3'
2019-01-27 23:18:35 -08:00
Henry de Valence
9cd4551b40
Bump patch version
2019-01-27 23:17:27 -08:00
Henry de Valence
33e7d26513
Merge branch 'add-compressed-cteq-impls' into release/1.0.3
2019-01-27 23:16:48 -08:00
Henry de Valence
5ddc30061c
Implement ConstantTimeEq on compressed points.
2019-01-27 23:13:58 -08:00
Nicolas Stalder
1dfe00b79d
Fix rand dependency, deal with unusedness warnings
2019-01-27 03:06:18 +01:00
Philippe Dugre
1d23a1d30d
Added doc example for x25519()
2019-01-25 17:08:48 -05:00
Henry de Valence
6d7d94372e
Merge pull request #227 from isislovecruft/fix/weird-pub
...
I found a weird pub, not the kind you get cidre in.
2019-01-24 14:12:10 -08:00
Isis Lovecruft
0d23260a75
I found a weird pub, not the kind you get cidre in.
2019-01-24 21:36:00 +00:00
Henry de Valence
8e276b9e5a
Merge branch 'master' into develop
2019-01-22 14:17:23 -08:00
Henry de Valence
8b0306252a
Merge branch 'release/0.4.4'
2019-01-22 14:17:11 -08:00
Henry de Valence
bcc6383d9a
Bump version number
2019-01-22 14:15:14 -08:00
Henry de Valence
759d35b8c4
Merge pull request #29 from dalek-cryptography/as_bytes_for_ephemeral_public
...
Add EphemeralPublic::as_bytes
2019-01-22 14:14:27 -08:00
Henry de Valence
1117184a02
Add EphemeralPublic::as_bytes
2019-01-22 14:11:44 -08:00
Henry de Valence
314041b277
Merge pull request #28 from dalek-cryptography/docs-hotfix
...
Docs hotfix: disable KaTeX in docs.rs
2019-01-22 14:08:48 -08:00
Henry de Valence
9e553688c3
Docs hotfix: disable KaTeX in docs.rs
2019-01-22 14:03:00 -08:00
Henry de Valence
8e5062521f
Merge pull request #225 from isislovecruft/fix/invsqrt-doc-typos
...
Fix two typos in FieldElement::invsqrt documentation
2019-01-21 18:50:14 -08:00
Isis Lovecruft
4270d4ff5f
Fix two typos in FieldElement::invsqrt documentation.
2019-01-22 01:01:08 +00:00
Henry de Valence
353e3fe81a
Merge pull request #215 from hdevalence/ifma
...
Restructure vector backends and add a new IFMA backend
2019-01-19 21:51:13 -08:00
Isis Lovecruft
1249fcccee
Merge branch 'master' into develop
2019-01-20 00:49:49 +00:00
Isis Lovecruft
f9c9c5e558
Merge branch 'release/0.4.3'
2019-01-20 00:49:42 +00:00
Isis Lovecruft
ee359f6100
Bump x25519-dalek version to 0.4.3.
2019-01-20 00:45:31 +00:00
isis agora lovecruft
e61b620059
Merge pull request #24 from isislovecruft/fix/23-katex-header
...
Fix link to now-missing katex header.
2019-01-20 00:43:34 +00:00
Henry de Valence
e3ca8961fc
Fix rustdoc feature flags to compile on stable.
2019-01-18 14:19:39 -08:00
Henry de Valence
9ddbf1ba83
Add notes on the IFMA implementation.
2019-01-18 14:19:39 -08:00
Henry de Valence
dc8431429f
Refactor documentation to use doc_cfg.
2019-01-18 14:19:39 -08:00
Henry de Valence
5700add507
Clean up warnings.
2019-01-18 14:19:30 -08:00
Henry de Valence
fa42708257
Change naming scheme for multiplication accumulators.
2019-01-18 14:19:30 -08:00
Henry de Valence
a84f9eafe4
Allow non_snake_case in the IFMA field and edwards modules.
2019-01-18 14:19:30 -08:00
Henry de Valence
06766bfdea
Delay shuffles that cross the "Great Wall of Intel".
2019-01-18 14:19:30 -08:00
Henry de Valence
33aa544cf4
Add IFMA constants file.
2019-01-18 14:19:30 -08:00
Henry de Valence
f825426ff4
Add impl Default, Identity for ExtendedPoint, CachedPoint.
2019-01-18 14:19:30 -08:00
Henry de Valence
da62569355
Add lookup table support.
2019-01-18 14:19:30 -08:00
Henry de Valence
6cec313f16
Add impl of Sub and Neg for Edwards points.
2019-01-18 14:19:30 -08:00
Henry de Valence
6faaef21df
Add mul_by_pow_2 for IFMA
2019-01-18 14:19:30 -08:00
Henry de Valence
8e38ff2859
Add Edwards doubling implementation.
2019-01-18 14:19:30 -08:00
Henry de Valence
c4617b28a9
Add squaring implementation.
2019-01-18 14:19:30 -08:00
Henry de Valence
a62571b003
Reduce field elements during conversion to vector form.
...
The IFMA types have tighter bounds than the u64 types.
2019-01-18 14:19:30 -08:00
Henry de Valence
3f21bb3b58
Add skeleton of parallel Edwards formulas.
2019-01-18 14:19:30 -08:00
Henry de Valence
5880fced2b
Add skeleton of shuffle and blend functions.
2019-01-18 14:19:30 -08:00
Henry de Valence
d90bb779ca
Delay all computations using x[0], y[0]
...
Since computation of the 0 term in reduction requires a multiplication with a
4-cycle latency, this ensures that the rest of the computation can start before
the 0 term is finished
2019-01-18 14:19:30 -08:00
Henry de Valence
c925c76342
Change the strategy for reducing the high half of the product.
2019-01-18 14:19:30 -08:00
Henry de Valence
607b839032
Change size of limbs in the reduction test.
2019-01-18 14:19:30 -08:00
Henry de Valence
14163131f9
Lift the reduction state of the field elements into the type system.
...
This splits the `FieldElement51x4` type into two types:
- `F51x4Reduced` (with reduced limbs)
- `F51x4Unreduced` (with unreduced limbs)
The reduction is implemented as a `From` impl to convert one type to the other.
The output of a multiplication is now a `F51x4Unreduced`. The reason is that
the inputs to IFMA operations must be at most 52 bits, so it's not possible to
perform an addition of (51+epsilon)-bit values and still be small enough to be
used as an input to multiplication. So, it doesn't make sense to perform a
reduction at the end of a multiplication, because the reduced values will be
fed into an addition or subtraction, which then needs to be re-reduced.
2019-01-18 14:19:30 -08:00
Henry de Valence
ff49673214
Add impl Mul<(u32, u32, u32, u32)> for FieldElement51x4.
2019-01-18 14:19:30 -08:00
Henry de Valence
70199d6094
Add impl Mul<FieldElement51x4> for FieldElement51x4.
2019-01-18 14:19:30 -08:00
Henry de Valence
aa73d7b1bc
Add a FieldElement51x4 type.
2019-01-18 14:19:30 -08:00
Henry de Valence
3233e2eac6
Fix: cfg_target_feature is stable since 1.27.
2019-01-18 14:19:20 -08:00
Henry de Valence
be77af1cd8
Remove unnecessary feature gate.
...
The vector backend doesn't generate constants in build.rs, so this isn't necessary.
2019-01-18 14:18:55 -08:00