Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make ecc modular inversion use redc form, for relevant curves.invert-with-redc | Niels Möller | 2020-01-29 | 1 | -1/+6 |
| | | | | | | | | | | | | | | | | | | | * ecc-mod-inv.c (ecc_mod_inv_destructive): New helper function, not preserving input argument. Extracted from old ecc_mod_inv. (ecc_mod_inv): Call ecc_mod_inv_destructive. (ecc_mod_inv_redc): New inversion function, with input and output in redc form. * ecc-secp224r1.c: Select between ecc_mod_inv and ecc_mod_inv_redc. * ecc-secp256r1.c: Likewise. * ecc-j-to-a.c (ecc_j_to_a): Simplify redc-related logic, taking advantage of ecc->p.invert handling redc, when appropriate. Reduce scratch need from 5n to 4n in the process (assuming inversion needs 2n). * testsuite/ecc-modinv-test.c (ref_modinv): Updated to do redc, if appropriate. | ||||
* | Fix comment typo | Niels Möller | 2020-01-29 | 1 | -1/+1 |
| | |||||
* | Merge branch 'delete-ecc-g' | Niels Möller | 2020-01-28 | 1 | -3/+0 |
|\ | |||||
| * | Delete definition of ecc->g | Niels Möller | 2020-01-25 | 1 | -3/+0 |
| | | |||||
* | | Add GOST DSA according to GOST R 34.10-2001/-2012 | Dmitry Baryshkov | 2020-01-25 | 1 | -0/+7 |
| | | | | | | | | | | | | | | | | Add GOST Digital Signature Algorithms support according to GOST R 34.10-2001/-2012. English translations of these standards are provided as RFC 5832 and RFC 7091. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> | ||||
* | | Add support for GOST GC512A curve | Dmitry Eremin-Solenikov | 2020-01-16 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | Add support for GC512A curve ("TLS Supported Groups" registry, draft-smyshlyaev-tls12-gost-suites) also known as tc26-gost-3410-12-512-paramSetA (RFC 7836). Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | ||||
* | | Add support for GOST GC256B curve | Dmitry Eremin-Solenikov | 2020-01-16 | 1 | -0/+3 |
|/ | | | | | | | | | Add support for GC256B curve ("TLS Supported Groups" registry, draft-smyshlyaev-tls12-gost-suites) also known as GostR3410-2001-CryptoPro-A and GostR3410-2001-CryptoPro-XchA (RFC 4357). Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> | ||||
* | Fix comment typo. | Niels Möller | 2020-01-02 | 1 | -1/+1 |
| | |||||
* | Use add_hh rather than add_hhh for ecc_mul_a_eh. | Niels Möller | 2019-12-25 | 1 | -1/+1 |
| | | | | | | | | * ecc-mul-a-eh.c (ecc_mul_a_eh) [ECC_MUL_A_EH_WBITS == 0]: Use add_hh rather than add_hhh. (table_init) [[ECC_MUL_A_EH_WBITS > 0]: Likewise. * ecc-internal.h (ECC_MUL_A_EH_ITCH) [ECC_MUL_A_EH_WBITS == 0]: Reduced from 13*n to 12*n. | ||||
* | Rename add and dup functions for Edwards curves. | Niels Möller | 2019-12-18 | 1 | -12/+15 |
| | |||||
* | New function ecc_mul_m. | Niels Möller | 2019-12-14 | 1 | -0/+9 |
| | | | | | | | | | | | | * curve25519-mul.c (curve25519_mul): Use ecc_mul_m. * curve448-mul.c (curve448_mul): Likewise. * ecc-mul-m.c (ecc_mul_m): New file and function. Implements multipliction for curves in Montgomery representation, as used for curve25519 and curve448. Extracted from curve25519_mul. * ecc-internal.h (ecc_mul_m): Declare. (ECC_MUL_M_ITCH): New macro. * Makefile.in (hogweed_SOURCES): Add ecc-mul-m.c. | ||||
* | Revert itch macro changes.curve448 | Niels Möller | 2019-12-09 | 1 | -4/+1 |
| | | | | | | | We now have h_to_a_itch <= mul_itch, mul_g_itch. Add asserts at a few places relying on this. (ECC_ECDSA_KEYGEN_ITCH, ECC_MAX): Delete macros. (ECC_ECDSA_SIGN_ITCH): Revert previous change. | ||||
* | Implement Curve448 primitives | Daiki Ueno | 2019-11-30 | 1 | -2/+29 |
| | | | | | | | This patch adds the necessary primitives for "curve448", defined in RFC 7748. Those primitives are namely: addition, doubling, scalar multiplication of the generator or an arbitrary point, inversion, and square root. | ||||
* | Merge branch 'curve448' into master | Niels Möller | 2019-11-21 | 1 | -9/+12 |
|\ | |||||
| * | Delete unused pointer edwards_root from struct ecc_curve. | Niels Möller | 2017-09-23 | 1 | -3/+0 |
| | | | | | | | | | | | | * ecc-internal.h (struct ecc_curve): Delete unused pointer edwards_root. Update all instances. * eccdata.c (output_curve): Don't output it. | ||||
| * | Comment fixes. | Niels Möller | 2017-09-23 | 1 | -5/+4 |
| | | |||||
| * | ecc: Add add_hh and dup members to ecc_curve | Daiki Ueno | 2017-09-18 | 1 | -0/+8 |
| | | | | | | | | | | | | | | | | This makes it possible to share the same code for curve25519 and curve448 primitives, which use different underlying formulas for addition and doubling. Signed-off-by: Daiki Ueno <dueno@redhat.com> | ||||
* | | ecc-internal.h comment fixes. | Niels Möller | 2019-09-26 | 1 | -4/+5 |
| | | |||||
* | | abi: explicitly export intended symbols and hide others | Nikos Mavrogiannopoulos | 2018-07-07 | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | This adds all exported symbols in the map files explicitly under the following rules: - Symbols mentioned in internal headers go in a section which is valid only for testing, and linking with these symbols will break in library updates. - Symbols mentioned in installed headers go in the exported sections and are considered part of the ABI. - All internal symbols move to internal headers. - The _nettle_md5_compress and _nettle_sha1_compress become exported without the _nettle prefix, due to existing usage. | ||||
* | | Revert change hiding nettle_secp_256r1 and friends.api-opaque-fix | Niels Möller | 2017-11-08 | 1 | -15/+0 |
| | | |||||
* | | Undo added underscores on public symbols. | Niels Möller | 2017-10-23 | 1 | -5/+14 |
| | | |||||
* | | Define accessor functions to get address of ecc curve structs. | Niels Möller | 2017-04-09 | 1 | -0/+6 |
|/ | |||||
* | Rename nettle_curve25519 to _nettle_curve25519, and remove declaration from ↵ | Niels Möller | 2015-03-19 | 1 | -0/+6 |
| | | | | ecc-curve.h. | ||||
* | Moved internal declarations from ecc.h to ecc-internal.h. | Niels Möller | 2015-01-27 | 1 | -0/+109 |
| | |||||
* | Added sqrt function to struct ecc_modulo. | Niels Möller | 2014-10-02 | 1 | -5/+8 |
| | | | | Reorganized curve25519 implementation to take a ratio as input. | ||||
* | Changed ecc_hash argument type from struct ecc_curve to struct ecc_modulo. | Niels Möller | 2014-09-23 | 1 | -1/+1 |
| | |||||
* | curve25519: Use powering to compute modp inverses, 5.5 times faster than ↵ | Niels Möller | 2014-09-23 | 1 | -1/+2 |
| | | | | ecc_mod_inv. | ||||
* | ecc_mod_inv interface and allocation changes. | Niels Möller | 2014-09-23 | 1 | -2/+2 |
| | |||||
* | Renamed and generalized ecc_modq_random -> ecc_mod_random. | Niels Möller | 2014-09-22 | 1 | -4/+4 |
| | |||||
* | New ecc_mod_* functions, replacing ecc_modp_* and ecc_modq_*. | Niels Möller | 2014-09-22 | 1 | -32/+43 |
| | |||||
* | Added invert function pointer to struct ecc_modulo. | Niels Möller | 2014-09-22 | 1 | -19/+10 |
| | | | | | Updated and renamed sec_modinv -> ecc_mod_inv, and deleted the ecc_modp_inv and ecc_modq_inv wrapper functions. | ||||
* | Moved mod and reduce function pointers to struct ecc_modulo. | Niels Möller | 2014-09-22 | 1 | -20/+21 |
| | |||||
* | Deleted redc function pointer. | Niels Möller | 2014-09-22 | 1 | -1/+0 |
| | |||||
* | Use struct ecc_modulo for all mod and redc functions. | Niels Möller | 2014-09-22 | 1 | -9/+2 |
| | |||||
* | Introduced struct ecc_modulo. | Niels Möller | 2014-09-22 | 1 | -31/+27 |
| | |||||
* | Deleted ecc_a_to_eh. | Niels Möller | 2014-09-17 | 1 | -1/+0 |
| | |||||
* | Let "affine" points for curve25519 be Edwards coordinates rather than ↵ | Niels Möller | 2014-09-17 | 1 | -1/+1 |
| | | | | Montgomery coordinates. | ||||
* | New function curve25519_eh_to_x. | Niels Möller | 2014-09-02 | 1 | -0/+5 |
| | |||||
* | New ecc_curve function pointer, add_hhh. | Niels Möller | 2014-08-28 | 1 | -1/+8 |
| | |||||
* | Deleted ECC_ECDSA_VERIFY_ITCH macro. Tweak the corresponding function, and ↵ | Niels Möller | 2014-08-28 | 1 | -2/+0 |
| | | | | use it. | ||||
* | Split ecc_generic_redc into two functions ecc_pp1_redc and ecc_pm1_redc. | Niels Möller | 2014-08-28 | 1 | -2/+4 |
| | |||||
* | Deleted unused constant redc_g. | Niels Möller | 2014-08-28 | 1 | -3/+2 |
| | |||||
* | New struct ecc_curve field, q_bit_size. | Niels Möller | 2014-08-27 | 1 | -0/+1 |
| | |||||
* | Merge branch 'curve25519' | Niels Möller | 2014-08-27 | 1 | -7/+49 |
|\ | |||||
| * | Additional function pointers in struct ecc_curve. | Niels Möller | 2014-08-25 | 1 | -1/+22 |
| | | | | | | | | To support curve25519 point operations. | ||||
| * | Reordered struct ecc_curve, moved function pointers before pointers to ↵ | Niels Möller | 2014-08-23 | 1 | -5/+5 |
| | | | | | | | | bignum constants. | ||||
| * | Implemented mod p square root for curve25519. | Niels Möller | 2014-08-18 | 1 | -0/+4 |
| | | |||||
| * | Fixed window-based ecc_mul_a_eh. | Niels Möller | 2014-08-02 | 1 | -2/+3 |
| | | |||||
| * | Implemented ecc_a_to_eh and ecc_mul_a_eh, for curve25519. | Niels Möller | 2014-07-29 | 1 | -0/+9 |
| | | |||||
| * | Reduce ecc_add_ehh scratch need. | Niels Möller | 2014-07-26 | 1 | -1/+1 |
| | |