1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-02 12:42:13 +00:00
serenity/Userland/Libraries/LibCrypto
Michiel Visser 8f7219c6fa LibCrypto: Implement the SECP256r1 elliptic curve
This implementation of the secp256r1 elliptic curve uses two techniques
to improve the performance of the operations.

1. All coordinates are stored in Jacobian form, (X/Z^2, Y/Z^3, Z), which
   removes the need for division operations during point addition or
   doubling. The points are converted at the start of the computation,
   and converted back at the end.

2. All values are transformed to Montgomery form, to allow for faster
   modular multiplication using the Montgomery modular multiplication
   method. This means that all coordinates have to be converted into
   this form, and back out of this form before returning them.
2022-03-18 07:56:47 +03:30
..
ASN1 AK+Userland: Make AK::decode_base64 return ErrorOr 2022-01-24 22:36:09 +01:00
Authentication LibCrypto: Exclude class_name() methods from the Kernel 2022-02-16 22:21:37 +01:00
BigInt Libraries: Use default constructors/destructors in LibCrypto 2022-03-10 18:04:26 -08:00
Checksum Libraries: Use default constructors/destructors in LibCrypto 2022-03-10 18:04:26 -08:00
Cipher LibCrypto: Use AK::timing_safe_compare to validate sensitive data 2022-03-13 19:08:58 -07:00
Curves LibCrypto: Implement the SECP256r1 elliptic curve 2022-03-18 07:56:47 +03:30
Hash LibTLS: Add signature verification for DHE and ECDHE key exchange 2022-02-23 13:20:28 +03:30
NumberTheory Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOr 2022-01-24 22:36:09 +01:00
PK LibCrypto: Use AK::timing_safe_compare to validate sensitive data 2022-03-13 19:08:58 -07:00
CMakeLists.txt LibCrypto: Implement the SECP256r1 elliptic curve 2022-03-18 07:56:47 +03:30
Forward.h LibCrypto: Add the BigInteger concept 2021-12-22 11:27:31 +01:00
Verification.h AK+Userland: Use mpfard@serenityos.org for my copyright headers 2021-04-22 22:19:09 +02:00