Commit Graph

54 Commits

Author SHA1 Message Date
Hans Leidekker 2795c7f995 bcrypt: Add support for exporting RSA private keys.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52060
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:09 +01:00
Hans Leidekker a226331851 bcrypt: Return export size from export_gnutls_datum().
And make zero padding explicit.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Alexandre Julliard 39336fd02d bcrypt: Use the ntdll Unicode string functions instead of wine/unicode.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 22:07:20 +01:00
Alexandre Julliard fcc827d141 bcrypt: Implement Wow64 entry points in the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:38:45 +01:00
Alexandre Julliard ef6e33f89f include: Don't include wine/port.h in Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Alexandre Julliard ef9a0f3bc3 include: Don't include stdlib.h in wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Alexandre Julliard dc3a240a2d bcrypt: Convert the Unix library to the __wine_unix_call() interface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 13:52:42 +02:00
Alexandre Julliard 696255907c bcrypt: Move public key allocation to the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 13:52:42 +02:00
Alexandre Julliard 52ca433e78 bcrypt: Add a helper macros to load GnuTLS optional functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 13:52:42 +02:00
Alexandre Julliard e4f716bc26 bcrypt: Remove some no longer needed Unix backend functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 13:52:39 +02:00
Hans Leidekker ae194f6997 bcrypt: Pass output length as a separate parameter to key_asymmetric_decrypt.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 21:07:10 +02:00
Esme Povirk 3db37dc5ae bcrypt: Don't try to unload gnutls if loading failed.
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 15:07:01 +02:00
Paul Gofman 085f9fb198 bcrypt: Fix padding in format_gnutls_signature().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Paul Gofman 541356dac5 bcrypt: Pad exported datums in key_export_dsa_capi().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Paul Gofman 4bf5371011 bcrypt: Pad exported datums in key_export_ecc().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Paul Gofman 37c86663eb bcrypt: Pad exported datums in export_gnutls_pubkey_dsa_capi().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Paul Gofman 68171b1c3a bcrypt: Pad exported datums in export_gnutls_pubkey_dsa().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Paul Gofman c5c2b7da3e bcrypt: Pad exported datums in export_gnutls_pubkey_ecc().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Paul Gofman 88a1848ca4 bcrypt: Introduce export_gnutls_datum() helper and use it in export_gnutls_pubkey_rsa().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Nikolay Sivov 38d9020f29 bcrypt: Add initial support for asymmetric keys in BCryptDecrypt().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 16:36:32 +01:00
Nikolay Sivov 21839185d9 bcrypt: Implement RSA key pair importing.
Requires libgnutls 3.7.0, that contains fixes for optional arguments handling
in gnutls_privkey_import_rsa_raw() to support BCRYPT_RSAPRIVATE_BLOB.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-03 20:18:36 +01:00
Paul Gofman f15328b145 bcrypt: Prevent gnutls from using system priority file.
Fedora 33 disabled protocols below TLS 1.2 through crypto policy.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-12 20:22:33 +01:00
Rémi Bernon 6b569a451f bcrypt: Implement 3DES cipher support.
This is used by CoD: WWII multiplayer mode to login to its servers.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Hans Leidekker 6decf17305 bcrypt: Add support for duplicating asymmetric keys.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-14 20:31:16 +02:00
Hans Leidekker f79ca651ae bcrypt: Add support for importing legacy DSA public keys.
This is not supported on native but it will be useful to implement public key
import in dssenh.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:47:56 +02:00
Hans Leidekker 2a91b0bead bcrypt: Add support for exporting legacy DSA public keys.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:47:56 +02:00
Hans Leidekker a729efb964 bcrypt: Convert legacy DSA key parameters to and from little-endian format.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:47:56 +02:00
Hans Leidekker ab0a7d2a1b bcrypt: Fix buffer size query in BCryptSignHash.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:47:56 +02:00
Alexandre Julliard a472ad191f bcrypt: Move the backend code to a new Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 15:37:29 +02:00
Alexandre Julliard 209b968efc bcrypt: Split the key structure into generic and backend-specific parts.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 15:28:49 +02:00
Alexandre Julliard f0e1384777 bcrypt: Add separate backend functions for destroying symmetric/asymmetric keys.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 14:23:40 +02:00
Alexandre Julliard 4590465613 bcrypt: Move the symmetric key initialization to the generic code.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 14:12:19 +02:00
Alexandre Julliard b8ada902d1 bcrypt: Move setting a symmetric key vector to the generic code.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 13:58:56 +02:00
Alexandre Julliard 54c1b0ac26 bcrypt: Move the public key initialization to the generic code.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 13:47:14 +02:00
Rémi Bernon 4ee4fffafa bcrypt: Export ECDSA/ECDH blobs with the correct header magic.
This fixes Flight Simulator XAL authentication error message.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-02 12:57:47 +02:00
Hans Leidekker d17b118f03 bcrypt: Allow importing private ECDSA keys.
Based on a patch by Derek Lesho.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 21:26:35 +02:00
Hans Leidekker ec3ca4ee73 bcrypt: Handle different sized R/S signature components.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Hans Leidekker 7cf9a75dfa bcrypt: Add support for importing and exporting DSS private keys.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 21:46:30 +02:00
Hans Leidekker c2a4a4ec3c bcrypt: Add support for BCRYPT_DSA_ALGORITHM.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 20:05:30 +02:00
Alexandre Julliard 3caa333127 bcrypt: Use standard dlopen() instead of the libwine wrappers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:41 +02:00
Francois Gouget c9f9f83631 bcrypt: Make format_gnutls_signature() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-03 20:48:03 +01:00
Derek Lesho ff91d9473a bcrypt: Add fallback when gnutls_decode_rs_value isn't present.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 10:33:11 +01:00
Hans Leidekker 1703ac54fa bcrypt: Handle SHA1 hash in key_asymmetric_verify.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Derek Lesho 741f76fc2c bcrypt: Add support for signing hashes with ECDSA keys.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Hans Leidekker f4d6df8947 bcrypt: Avoid recreating cipher handles when the initialization vector doesn't change.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-06 16:03:50 +01:00
Hans Leidekker 04631f9c6e bcrypt: Implement BCryptEnumAlgorithms.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-30 22:24:27 +02:00
Hans Leidekker 98b230f851 bcrypt: Implement BCryptSignHash.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 19:44:18 +02:00
Hans Leidekker b2bbb6f48f bcrypt: Add support for generating RSA keys.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 19:44:18 +02:00
Hans Leidekker 691fcebf3d bcrypt: Ignore the size parameter in BCRYPT_CHAINING_MODE setters.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47432
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-05 17:38:04 +02:00
Hans Leidekker 158ce169e4 bcrypt: Add support for importing and exporting ECC private keys.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-13 19:45:24 +01:00