Commit graph

256 commits

Author SHA1 Message Date
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
Hans Leidekker
d75f651404 bcrypt: Validate hash output length. 2022-11-01 20:46:22 +01:00
Hans Leidekker
d1291ebd40 bcrypt: Use get_object() in more places. 2022-11-01 20:46:22 +01:00
Hans Leidekker
ec85dfe3ab bcrypt: Rename mode_id to chain_mode. 2022-09-13 16:22:20 +02:00
Hans Leidekker
6f5028dd03 bcrypt: Add full support for algorithm pseudo-handles. 2022-09-13 16:22:20 +02:00
Hans Leidekker
069a7c6ac6 bcrypt: Support setting BCRYPT_CHAIN_MODE_CFB on keys. 2022-09-12 17:28:23 +02:00
Chris Denton
5df4ff1341 bcrypt: Add basic support for pseudo-handles.
Support constant values for algorithm handles in `BCryptGenRandom` and make no attempt to dereference such handles.
2022-09-09 23:21:40 +02:00
Hans Leidekker
745df5915c bcrypt: Force symmetric key reset if necessary.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52457
2022-08-31 21:52:55 +02:00
Nikolay Sivov
c6a75d01b5 bcrypt/tests: Use CRT allocation functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-31 17:44:53 +02:00
Hans Leidekker
5253c8d77e bcrypt: Support ECDH_P384 key import/export. 2022-08-23 09:40:56 -05:00
Santino Mazza
5c1b0e5df5 bcrypt: Move symmetric flags check to symmetric section.
Signed-off-by: Santino Mazza <mazzasantino1206@gmail.com>
2022-08-15 18:11:25 +02:00
Hans Leidekker
c2328d0fde bcrypt: Add compatibility defines for AES CFB8. 2022-08-09 15:53:45 +02:00
Hans Leidekker
d3638d426b bcrypt: Add AES CFB chaining mode support.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53483
2022-08-04 18:59:10 +02:00
Santino Mazza
dd61c5638a bcrypt: Initial RSA encryption implementation.
Signed-off-by: Santino Mazza <mazzasantino1206@gmail.com>
2022-08-03 15:09:02 +02:00
Santino Mazza
4a395899ea bcrypt/tests: Test for BCryptEncrypt with RSA keys.
Signed-off-by: Santino Mazza <mazzasantino1206@gmail.com>
2022-08-03 15:09:02 +02:00
Alexandre Julliard
194e09baec makefiles: Add separate variables for Unix flags and libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-29 23:23:41 +02:00
Hans Leidekker
2ad18d3992 bcrypt: Implement BCryptFreeBuffer().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-06 23:07:20 +02:00
Hans Leidekker
40306db341 bcrypt: Fix array index in BCryptEnumAlgorithms().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-06 23:07:20 +02:00
Huw Davies
ad0a18a49d bcrypt: Use GNUTLS_DIG_UNKNOWN for an unknown digest.
Mainly to avoid a clang warning.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-25 17:55:05 +01:00
Hans Leidekker
48075d2a08 bcrypt: Also duplicate the public key handle in key_asymmetric_duplicate().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-24 23:22:06 +01:00
Hans Leidekker
1fa5bfd7da bcrypt: Fix DSA public key export when we don't have a private key handle.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-24 23:22:06 +01:00
Hans Leidekker
5b860a44a0 bcrypt: Fix RSA public key export when we don't have a private key handle.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-24 23:22:06 +01:00
Paul Gofman
00dfa1bd04 bcrypt: Fix ECC public key export.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-23 18:42:13 +01:00
Hans Leidekker
777cbf06d2 bcrypt: Stop passing a dummy public key to gnutls_privkey_import_dsa_raw().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 11:37:46 +01:00
Hans Leidekker
b352d353b4 bcrypt: Store a public key handle instead of a blob.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 11:37:40 +01:00
Hans Leidekker
0c2408464c bcrypt: Merge the various key import Unix calls into one.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 11:37:22 +01:00
Hans Leidekker
c1ed9ca9b1 bcrypt: Merge the various key export Unix calls into one.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 11:37:15 +01:00
Hans Leidekker
9176251af4 bcrypt: Call key_destroy() instead of BCryptDestroyKey().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 11:36:52 +01:00
Hans Leidekker
f3d4df60ff bcrypt: Pass the algorithm ID to key_asymmetric_create().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 11:36:41 +01:00
Hans Leidekker
9ff16aa1cb bcrypt: Return an error when BCryptFinalizeKeyPair() is called twice.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 18:27:43 +01:00
Santino Mazza
bae287a1aa bcrypt: Implement KeyLength property.
Signed-off-by: Santino Mazza <mazzasantino1206@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00