Commit graph

286 commits

Author SHA1 Message Date
Hans Leidekker 7231d4586d bcrypt: Fix private data size in wow64 thunks. 2024-01-23 12:20:10 +01:00
Hans Leidekker 47349f3422 bcrypt/tests: Add DH tests.
Mostly written by Paul Gofman.
2024-01-18 18:08:54 +01:00
Hans Leidekker c6974c6b46 bcrypt: Set dh_params in key_import_dh/_public(). 2024-01-18 18:08:54 +01:00
Hans Leidekker f067283f9b bcrypt: Assume we have a public key in key_export_dh_public(). 2024-01-18 18:08:54 +01:00
Hans Leidekker dfbbfd6f24 bcrypt: Make sure key_asymmetric_derive_key() returns correct size. 2024-01-18 18:08:54 +01:00
Hans Leidekker 7f41d5059e bcrypt: Add support for generating DH keys from known parameters. 2024-01-18 18:08:54 +01:00
Hans Leidekker 0d95ae4252 bcrypt: Reject DH keys smaller than 512 bits. 2024-01-18 18:08:54 +01:00
Hans Leidekker 3ef933c08f bcrypt: Make DH blob size validation more strict in key_import_pair(). 2024-01-18 18:08:54 +01:00
Hans Leidekker 4becbefe5d bcrypt: Add helpers to create a public/private key pair. 2024-01-18 18:08:54 +01:00
Hans Leidekker b82faa2697 bcrypt: Allow or disallow some operations based on whether keys are finalized. 2024-01-18 18:08:54 +01:00
Hans Leidekker 3bfccbc7e4 bcrypt: Add support for retrieving DH parameters. 2024-01-18 18:08:53 +01:00
Hans Leidekker a9193a200f bcrypt: Add support for setting DH parameters. 2024-01-18 18:08:53 +01:00
Zhiyi Zhang fe7e7c62ee bcrypt: Fix an possible out-of-bounds read (Coverity). 2024-01-17 11:07:00 +01:00
Hans Leidekker 8f087c4dff bcrypt/tests: Add DH tests. 2023-11-30 23:12:54 +01:00
Hans Leidekker be9f66c62b bcrypt: Add support for duplicating DH keys. 2023-11-30 23:12:54 +01:00
Hans Leidekker 36e1c9380c bcrypt: Add support for importing DH keys. 2023-11-30 23:12:54 +01:00
Hans Leidekker 94d90ceec4 bcrypt: Add support for exporting DH keys. 2023-11-30 23:12:54 +01:00
Hans Leidekker df83abb241 bcrypt: Add support for generating DH keys. 2023-11-30 23:12:54 +01:00
Hans Leidekker 81d71ee0bb bcrypt: Implement BCryptDeriveKey(). 2023-11-30 23:12:54 +01:00
Hans Leidekker cfa655c4a3 bcrypt: Implement BCryptSecretAgreement() and BCryptDestroySecret().
This series depends on secret agreement APIs added in GnuTLS 3.8.2.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49543
2023-11-30 23:12:54 +01:00
Alexandre Julliard f2451be041 bcrypt: Remove DECLSPEC_HIDDEN usage. 2023-11-23 22:51:07 +01:00
Alexandre Julliard acad49573a makefiles: Always use the global SOURCES variable for .c files. 2023-11-01 22:44:03 +01:00
Alexandre Julliard 7ccb5df0fc makefiles: Always use the global SOURCES variable for .rc files. 2023-11-01 22:43:56 +01:00
Brendan Shanks 2fd33f6ce1 bcrypt: Ensure unixlib function tables and enum stay in sync. 2023-09-14 11:12:16 +02:00
Piotr Caban f86c49695f bcrypt/tests: Add LEGACY_RSAPRIVATE_BLOB key import tests. 2023-08-10 10:01:08 +09:00
Piotr Caban 59ffbf204d bcrypt: Add support for importing LEGACY_RSAPRIVATE_BLOB keys. 2023-08-10 10:01:08 +09:00
Piotr Caban 65b90ab367 bcrypt: Add BCRYPT_KEY_STRENGTH key property implementation. 2023-08-10 10:01:07 +09:00
Paul Gofman 9af055170e bcrypt: Pass GNUTLS_VERIFY_ALLOW_BROKEN to gnutls_pubkey_verify_hash2(). 2023-06-30 17:34:53 +02:00
Hans Leidekker 9742fe8996 bcrypt: Add RC4 algorithm stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55160
2023-06-28 18:57:22 +02:00
Alex Henrie 36cf952664 bcrypt/tests: Don't allocate inside todo_wine and free outside of it.
Fixes a warning on GCC 13.
2023-06-02 09:29:37 +02:00
Sven Baars 533454111c bcrypt: Remove unused fields from struct key_asymmetric32. 2023-02-27 10:53:25 +01:00
Sven Baars 3fb2a5d55e bcrypt: Add wow64 support for PSS padding. 2023-02-24 22:23:12 +01:00
Sven Baars a554ff21d4 bcrypt: Factor out wow64 padding conversion. 2023-02-24 22:23:12 +01:00
Paul Gofman 39dc9d09f3 bcrypt: Only reset init vector if the new vector is non-NULL. 2023-02-13 17:02:45 +01:00
Paul Gofman 7d31f39487 bcrypt: Update init vector after encrypt or decrypt. 2023-02-13 17:02:45 +01:00
Paul Gofman 8e305d811a bcrypt/tests: Add more tests for AES initialization vectors. 2023-02-13 17:02:45 +01:00
Paul Gofman a88cc50365 bcrypt/tests: Test BCRYPT_PAD_NONE encryption result in test_rsa_encrypt(). 2022-12-15 22:28:28 +01:00
Paul Gofman e1fb631687 bcrypt: Set pubkey from privkey in key_asymmetric_import(). 2022-12-15 22:28:28 +01:00
Paul Gofman 6f455e10af bcrypt: Return correct error from key_asymmetric_encrypt() if key is missing. 2022-12-15 22:28:28 +01:00
Paul Gofman a7efc770f7 bcrypt: Use SecureZeroMemory() to zero magic values before free.
The compiler may optimize out the assignment before free and then
second free on the bcrypt handle finds magic values in the freed memory.
2022-12-15 22:28:28 +01:00
Paul Gofman ccdef80543 bcrypt: Do not error out for GNUTLS_ECC_CURVE_SECP384R1 in key_export_ecc(). 2022-12-14 21:25:52 +01:00
Hans Leidekker 45b823114c bcrypt: Add PSS compatibility defines.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54121
2022-12-14 11:57:07 +01:00
Hans Leidekker 96692a2c21 bcrypt: Add support for PSS padding.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53972
2022-12-06 17:12:31 +01:00
Hans Leidekker 5308911a82 bcrypt: Support duplicating public keys without access to the private key. 2022-12-06 17:12:31 +01:00
Hans Leidekker 4c46bd922d bcrypt: Validate key type. 2022-12-06 17:12:31 +01:00
Hans Leidekker f95c2e4629 bcrypt: Remove unused argument from hash_finalize(). 2022-12-06 17:12:31 +01:00
Hans Leidekker ffad823e34 bcrypt: Fix possible buffer overflow in export_gnutls_datum(). 2022-12-06 17:12:31 +01:00
Hans Leidekker cb3cc2b59f bcrypt: Pass key size in bytes to EXPORT_SIZE and use the macro consistently. 2022-12-06 17:12:30 +01:00
Hans Leidekker 11cc3ca151 bcrypt/tests: Get rid of workarounds for old Windows versions. 2022-12-06 17:12:30 +01:00
Alexandre Julliard a4f8d28de7 bcrypt: Use the Unix call helpers. 2022-11-25 10:10:34 +01:00