Commit graph

12 commits

Author SHA1 Message Date
Miguel Oliveira d983042092
Document Edwards25519 2022-03-30 21:40:40 -03:00
Miguel Oliveira 9a5f8b37ea
Move curve point arithmetic into their own modules 2022-03-30 21:17:33 -03:00
Miguel Oliveira c180d31001
Switch Fp to rounding-based carrying
This improves performance while also simplifying analysis. Ed25519
doubling needs more carrying, but the speedup is worth it.

The simpler Fp model is easier to reason about, but it introduces an
unsound bit that needs to be handwaved away with a comment. Range
checking has not yet been performed.
2022-03-24 16:36:10 -03:00
Miguel Oliveira 54b821c091
Give up on masking for now
X25519c can be attacked by replying several times with invalid data.
This is hard to defend against in the API level without denying service
and using some hard-to-understand semantics.

Masked primitives are gone for now, some countermeasures have been moved
into their respective "regular" impls. I don't think that it's worth it
to care that much about side channels in CC. I haven't seen or managed
to mount any practical attacks myself. The further move away from Cobalt
will probably make them even harder to mount.
2022-03-05 12:03:08 -03:00
Miguel Oliveira 8335ddc81c
Split Ed25519 internals 2022-03-04 11:46:26 -03:00
Miguel Oliveira 292663b4a5
Update docs 2022-03-03 16:15:57 -03:00
Miguel Oliveira f6fd56cb9a
Remove unused imports 2022-03-03 15:26:19 -03:00
Miguel Oliveira c246b53d7b
Implement Ed25519 exports 2022-03-02 17:29:50 -03:00
Miguel Oliveira eae7c91453
Reformat
Fair enough.
2022-03-01 20:51:18 -03:00
Miguel Oliveira ccb0d8cea6
Move internal modules into another directory 2022-03-01 20:43:53 -03:00
Miguel Oliveira 7fa854c06b
Remove Ed25519 exports for now
Old exports used masking which isn't supported anymore.
2022-03-01 20:34:04 -03:00
Miguel Oliveira 43a58ebd5e
Add Ed25519 2022-03-01 20:27:38 -03:00