Ivana 0 Posted September 5, 2019 Hi all. I am new here so please forgive me if I don't ask my question properly. So I am starting a new project that requires some Cryptographic algorithms for certain purposes which are Elliptical curves algorithms inclusive of secp256k1, Ed25519 (should have the ability to generate keypairs too). Asymmetric ciphers like AES, ChaCha20 Hashes like Sha256, Sha512, Sha3 and Blake2B. The requirements for the Cryptographic library is cross platform, affordable (if possible free), should provide reasonable performance. So I have come across TMS Cryptography Pack and decided to ask about people's experiences with it, performance wise, support wise and so on. If anyone has alternatives that meet the requirements above, it would be nice to hear your suggestions. Thanks and awaiting your responses. Share this post Link to post
Arnaud Bouchez 407 Posted September 5, 2019 (edited) Our Open-Source https://github.com/synopse/mORMot/blob/master/SynCrypto.pas has almost all that you require. About performance, it is the only one in the Delphi area using AES-NI and optimized SSE3/SSE4.2 assembly - as far as I know. So it should blow alternatives. It is cross-compiler (Delphi and FPC) and cross-platform (Windows, Linux, BSD... thanks to FPC). For elliptical curves, see its sibbling https://github.com/synopse/mORMot/blob/master/SynEcc.pas It supports only secp256r1 but it is feature complete (e.g. simple CA management) and fast (1 ms to create a key pair, 0.4 ms to sign or verify on x86-64) - also cross-platform and cross-compiler. See the documentation at https://synopse.info/files/html/Synopse mORMot Framework SAD 1.18.html#TITL_187 Both are highly maintained, and used on production since years. They don't require any external dll (like OpenSSL) which tends to be a maintenance nightmare on Windows. Edited September 5, 2019 by Arnaud Bouchez 2 1 Share this post Link to post
Ivana 0 Posted September 5, 2019 33 minutes ago, Arnaud Bouchez said: Our Open-Source https://github.com/synopse/mORMot/blob/master/SynCrypto.pas has almost all that you require. About performance, it is the only one in the Delphi area using AES-NI and optimized SSE3/SSE4.2 assembly - as far as I know. So it should blow alternatives. It is cross-compiler (Delphi and FPC) and cross-platform (Windows, Linux, BSD... thanks to FPC). For elliptical curves, see its sibbling https://github.com/synopse/mORMot/blob/master/SynEcc.pas It supports only secp256r1 but it is feature complete (e.g. simple CA management) and fast (1 ms to create a key pair, 0.4 ms to sign or verify on x86-64) - also cross-platform and cross-compiler. See the documentation at https://synopse.info/files/html/Synopse mORMot Framework SAD 1.18.html#TITL_187 Both are highly maintained, and used on production since years. They don't require any external dll (like OpenSSL) which tends to be a maintenance nightmare on Windows. Thanks a lot for your contributions, it is very much appreciated. I also noticed there is support for ECDH, something I need but forgot to indicate earlier on. I will also wait for contributions from others as regards the missing components that are unfortunately not available in Mormot. Thanks once again. Share this post Link to post
Ugochukwu Mmaduekwe 42 Posted September 5, 2019 Hi Ivana and welcome to the forum. To answer your question, CryptoLib4Pascal is the complete package and more. The hashes you requested and more can be found here sample for generating Key Pairs with Elliptic curves, signing and verifying can be found here and here AES and Chacha20 sample here Perks of CryptoLib4Pascal Constantly developed and improved Cross Platform and Cross Compiler support used in the real world on various products uses the friendly MIT License Best of all, it's free. 3 1 Share this post Link to post
Ivana 0 Posted September 6, 2019 10 hours ago, Ugochukwu Mmaduekwe said: Hi Ivana and welcome to the forum. To answer your question, CryptoLib4Pascal is the complete package and more. The hashes you requested and more can be found here sample for generating Key Pairs with Elliptic curves, signing and verifying can be found here and here AES and Chacha20 sample here Perks of CryptoLib4Pascal Constantly developed and improved Cross Platform and Cross Compiler support used in the real world on various products uses the friendly MIT License Best of all, it's free. Thanks a lot. Will surely look into this. Share this post Link to post
Ivana 0 Posted September 6, 2019 10 hours ago, Ugochukwu Mmaduekwe said: Hi Ivana and welcome to the forum. To answer your question, CryptoLib4Pascal is the complete package and more. The hashes you requested and more can be found here sample for generating Key Pairs with Elliptic curves, signing and verifying can be found here and here AES and Chacha20 sample here Perks of CryptoLib4Pascal Constantly developed and improved Cross Platform and Cross Compiler support used in the real world on various products uses the friendly MIT License Best of all, it's free. Thanks a lot. Will surely look into this. Share this post Link to post
Thijs van Dien 9 Posted September 7, 2019 If you can get away with its limited functionality (which is sort of the point), just use libsodium. Share this post Link to post
Ugochukwu Mmaduekwe 42 Posted September 7, 2019 8 minutes ago, Thijs van Dien said: If you can get away with its limited functionality (which is sort of the point), just use libsodium. Correct me if I am wrong but this will require him to port the headers first of all because the ones I see online are not crossplatform? Share this post Link to post
Fr0sT.Brutal 900 Posted September 10, 2019 Check Awesome-Pascal list from my signature as well Share this post Link to post
TimCruise 2 Posted December 21, 2021 Many great libraries! I've found this one from GetIT: Share this post Link to post
TimCruise 2 Posted December 21, 2021 On 9/6/2019 at 4:47 AM, Ugochukwu Mmaduekwe said: Hi Ivana and welcome to the forum. To answer your question, CryptoLib4Pascal is the complete package and more. The hashes you requested and more can be found here sample for generating Key Pairs with Elliptic curves, signing and verifying can be found here and here AES and Chacha20 sample here Perks of CryptoLib4Pascal Constantly developed and improved Cross Platform and Cross Compiler support used in the real world on various products uses the friendly MIT License Best of all, it's free. Any installation and user guide? Share this post Link to post