Frank Denis
b98d7747fa
Use a unified error set for std/crypto/*
...
This ensures that errors are used consistently across all operations.
2021-03-14 20:51:31 +01:00
Tadeo Kondrak
5dfe0e7e8f
Convert inline fn to callconv(.Inline) everywhere
2021-02-10 20:06:12 -07:00
Frank Denis
6c2e0c2046
Year++
2020-12-31 15:45:24 -08:00
Frank Denis
0d9c474ecf
std/crypto: implement the Hash-To-Curve standard for Edwards25519
...
https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve
This is quite an important feature to have since many other standards
being worked on depend on this operation.
Brings a couple useful arithmetic operations on field elements by the way.
This PR also adds comments to the functions we expose in 25519/field
so that they can appear in the generated documentation.
2020-11-17 17:06:38 -08:00
Frank Denis
fb63a2cfae
std/crypto: faster (mod 2^255-19) square root computation
...
251 squarings, 250 multiplications -> 251 squarings, 11 multiplications
2020-10-06 19:48:26 -04:00
Andrew Kelley
4a69b11e74
add license header to all std lib files
...
add SPDX license identifier
copyright ownership is zig contributors
2020-08-20 16:07:04 -04:00
Frank Denis
8d60047697
ristretto255: add uniform string->element map & fast equivalence check
2020-08-18 00:31:02 -04:00
Frank Denis
37ae246405
Inline Fe.{sub,mul,sq} for a performance boost in release-safe mode
2020-08-16 22:35:28 -07:00
Frank Denis
ed558bfbaa
Address @daurnimator feedback
2020-08-16 22:35:27 -07:00
Frank Denis
dd8f7b396c
Rename the field and scalar modules
...
Suggested by @kubkon
2020-08-16 22:35:27 -07:00