[][src]Module curve25519_dalek::backend::avx2::edwards

Parallel Edwards Arithmetic for Curve25519.

This module currently has two point types:

Details on the formulas can be found in the documentation for the parent avx2 module.

This API is designed to be safe: vectorized points can only be created from serial points (which do validation on decompression), and operations on valid points return valid points, so invalid point states should be unrepresentable.

This design goal is met, with one exception: the Neg implementation for the CachedPoint performs a lazy negation, so that subtraction can be efficiently implemented as a negation and an addition. Repeatedly negating a CachedPoint will cause its coefficients to grow and eventually overflow. Repeatedly negating a point should not be necessary anyways.

Structs

CachedPoint

A cached point with some precomputed variables used for readdition.

ExtendedPoint

A point on Curve25519, using parallel Edwards formulas for curve operations.