Name Description Size
curve25519_32.c Derived from machine-generated code via Fiat-Crypto: https://github.com/mit-plv/fiat-crypto and https://github.com/briansmith/ring The below captures notable changes: 1. Convert custom integer types to stdint.h types 48259
curve25519_64.c 789
ec_naf.c Returns 2^e as an integer. This is meant to be used for small powers of two. 1868
ecl-curve.h copied from certt.h 17728
ecl-exp.h Curve field type 6944
ecl-priv.h MAX_FIELD_SIZE_DIGITS is the maximum size of field element supported 11644
ecl.c Allocate memory for a new ECGroup object. 9984
ecl.h Although this is not an exported header file, code which uses elliptic curve point operations will need to include it. 2691
ecl_gf.c Allocate memory for a new GFMethod object. 24865
ecl_mult.c Elliptic curve scalar-point multiplication. Computes R(x, y) = k * P(x, y). If x, y = NULL, then P is assumed to be the generator (base point) of the group of points on the elliptic curve. Input and output values are assumed to be NOT field-encoded. 10983
eclt.h This header holds ECC types and must not be exported publicly. 785
ecp.h Checks if point P(px, py) is at infinity. Uses affine coordinates. 4958
ecp_256.c Fast modular reduction for p256 = 2^256 - 2^224 + 2^192+ 2^96 - 1. a can be r. Uses algorithm 2.29 from Hankerson, Menezes, Vanstone. Guide to Elliptic Curve Cryptography. 12789
ecp_256_32.c A 32-bit implementation of the NIST P-256 elliptic curve. 53655
ecp_384.c Fast modular reduction for p384 = 2^384 - 2^128 - 2^96 + 2^32 - 1. a can be r. Uses algorithm 2.30 from Hankerson, Menezes, Vanstone. Guide to Elliptic Curve Cryptography. 7696
ecp_521.c Fast modular reduction for p521 = 2^521 - 1. a can be r. Uses algorithm 2.31 from Hankerson, Menezes, Vanstone. Guide to Elliptic Curve Cryptography. 4083
ecp_25519.c curve 25519 https://www.rfc-editor.org/rfc/rfc7748.txt 4897
ecp_aff.c Checks if point P(px, py) is at infinity. Uses affine coordinates. 10289
ecp_jac.c Converts a point P(px, py) from affine coordinates to Jacobian projective coordinates R(rx, ry, rz). Assumes input is already field-encoded using field_enc, and returns output that is still field-encoded. 18801
ecp_jm.c Computes R = 2P. Elliptic curve points P and R can be identical. Uses Modified Jacobian coordinates. Assumes input is already field-encoded using field_enc, and returns output that is still field-encoded. 10208
ecp_mont.c Uses Montgomery reduction for field arithmetic. See mpi/mpmontg.c for code implementation. 4106
ecp_secp256r1.c P-256 from HACL* 6104
ecp_secp384r1.c Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila 928552
ecp_secp384r1.h - Wrapper: simultaneous scalar mutiplication. outx, outy := a * G + b * P where P = (inx, iny). Everything is LE byte ordering. 1333
ecp_secp384r1_wrap.c - reverse bytes -- total hack 7484
ecp_secp521r1.c Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila 561578
ecp_secp521r1.h - Wrapper: simultaneous scalar mutiplication. outx, outy := a * G + b * P where P = (inx, iny). Everything is LE byte ordering. 1191
ecp_secp521r1_wrap.c - reverse bytes -- total hack 8375
README This Source Code Form is subject to the terms of the Mozilla Public 6429