1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 18:05:07 +00:00
serenity/Userland/Libraries/LibCrypto/CMakeLists.txt
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

31 lines
780 B
CMake

add_compile_options(-Wvla)
set(SOURCES
ASN1/ASN1.cpp
ASN1/DER.cpp
ASN1/PEM.cpp
Authentication/GHash.cpp
BigInt/Algorithms/BitwiseOperations.cpp
BigInt/Algorithms/Division.cpp
BigInt/Algorithms/GCD.cpp
BigInt/Algorithms/ModularInverse.cpp
BigInt/Algorithms/ModularPower.cpp
BigInt/Algorithms/Multiplication.cpp
BigInt/Algorithms/SimpleOperations.cpp
BigInt/SignedBigInteger.cpp
BigInt/UnsignedBigInteger.cpp
Checksum/Adler32.cpp
Checksum/CRC32.cpp
Cipher/AES.cpp
Curves/SECP256r1.cpp
Curves/X25519.cpp
Curves/X448.cpp
Hash/MD5.cpp
Hash/SHA1.cpp
Hash/SHA2.cpp
NumberTheory/ModularFunctions.cpp
PK/RSA.cpp
)
serenity_lib(LibCrypto crypto)
target_link_libraries(LibCrypto LibC LibCore)