Commit Graph

204 Commits

Author SHA1 Message Date
Dmitry Timoshkov d54b02e281 crypt32: Add support for importing RSA public keys with BCrypt.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50925
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
(cherry picked from commit 9d1ae850df)
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
2021-07-08 00:04:23 +02:00
Dmitry Timoshkov fa4714e604 crypt32: Implement CryptImportPublicKeyInfoEx2.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
(cherry picked from commit c2c7946680)
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
2021-07-08 00:04:23 +02:00
Dmitry Timoshkov 01d7953189 crypt32: Fix reading and writing CRYPT_KEY_PROV_INFO certificate property.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50024
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 21:23:27 +01:00
Alexandre Julliard 4120fb994a crypt32: Use wide-character string literals.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 11:44:12 +01:00
Alexandre Julliard 03bf236961 crypt32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 11:41:21 +01:00
Dmitry Timoshkov 7f8f424f38 crypt32: Fix conversion of CRYPT_KEY_PROV_INFO between store and certificate property.
Store uses relative offsets while certificate property uses pointers.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 20:46:44 +02:00
Hans Leidekker 49165c25e8 crypt32: Store CERT_KEY_CONTEXT in a platform independent way.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49792
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 22:06:46 +02:00
Dmitry Timoshkov fd1be205ba crypt32: Store CRYPT_KEY_PROV_INFO in a platform independent way.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 12:25:09 +02:00
Dmitry Timoshkov 0e30815636 crypt32: pwszContainerName or pwszProvName could be NULL in CRYPT_KEY_PROV_INFO.
Make behaviour of CRYPT_FixKeyProvInfoPointers match
CRYPT_CopyKeyProvInfo, and fix reading CRYPT_KEY_PROV_INFO certificate
property from the store.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 20:25:50 +02:00
Piotr Caban 57a8c4dbe8 crypt32: Don't use strncasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 20:27:39 +02:00
Dmitry Timoshkov 23f97773ee crypt32: CryptAcquireCertificatePrivateKey should look up certificate in the user's store if not linked to a provider.
Under Windows passing to CryptAcquireCertificatePrivateKey() a certificate
retrieved from the key container using CryptGetKeyParam(KP_CERTIFICATE) +
CertCreateCertificateContext() works although such a certificate doesn't
have assigned properties at all. In order for this to work Windows probably
looks up an original certificate in the user's private store.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-06 19:57:27 +01:00
Dmitry Timoshkov fca88e169a crypt32: Simplify the code.
cache can't be FALSE at this point.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:27:11 +01:00
Dmitry Timoshkov df173bd097 crypt32: Add support for CRYPT_ACQUIRE_SILENT_FLAG to CryptAcquireCertificatePrivateKey.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:59 +01:00
Dmitry Timoshkov e020d6c99d crypt32: Add support for CERT_COMPARE_KEY_IDENTIFIER to CertFindCertificateInStore.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 13:26:18 +01:00
Orhan Kavrakoğlu d3c606954b crypt32: Implement CryptHashCertificate2.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46516
Signed-off-by: Orhan Kavrakoğlu <aibok42@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 17:12:13 +01:00
Dmitry Timoshkov ca683382e0 crypt32: Make sure that the provider supports the specified hash algorithm.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 17:41:49 +01:00
Dmitry Timoshkov 34a89805e3 crypt32: Make sure that the provider supports the specified signature algorithm.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 17:41:47 +01:00
Dmitry Timoshkov ea77ba04f3 crypt32: If there is no optional parameters set rgProvParam to NULL in CRYPT_KEY_PROV_INFO.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-07 16:43:33 +01:00
Dmitry Timoshkov ee883ff659 crypt32: Pass type and flags in correct order to the find() helper.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-03 22:27:04 +01:00
Dmitry Timoshkov a9baa25c8c crypt32: Make sure that the provider supports the specified public key algorithm.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 22:42:41 +01:00
Dmitry Timoshkov 99a2514fda crypt32: Add support for 3rd party CSPs to CertGetPublicKeyLength.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 10:35:51 +01:00
Dmitry Timoshkov 41e0a38f7c crypt32: Directly call I_CryptGetDefaultCryptProv to make hooking from a 3rd party CSP work.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 10:35:45 +01:00
Dmitry Timoshkov 787133fc21 crypt32: Add CryptSetKeyIdentifierProperty stub.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-31 16:17:36 +01:00
Dmitry Timoshkov 8f488a71b9 crypt32: CertComparePublicKeyInfo should not try to decode a non-RSA public key.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-26 21:18:27 +02:00
Dmitry Timoshkov b81c0c3e47 crypt32: Simplify the CertComparePublicKeyInfo implementation.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-25 20:32:03 +02:00
Nikolay Sivov 568673282c crypt32: Fix key buffer leak (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Michael Müller 4d1190f5a8 crypt32: Implement verification of ECDSA signatures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 13:29:10 +02:00
Nikolay Sivov 6de2e83e00 crypt32: Use ARRAY_SIZE macro.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-20 11:23:06 +02:00
Philippe Groarke dcc6868057 crypt32: Add CERT_OCSP_RESPONSE_PROP_ID setter. 2015-08-26 23:53:22 +09:00
Bruno Jesus 9df1f2fa87 crypt32: Remove dead assignments in cert.c (Cppcheck). 2014-11-03 16:32:17 +09:00
Bruno Jesus 7a40fdbf8c crypt32: CertGetIssuerCertificateFromStore must return error for self-signed certificates. 2014-07-23 21:24:20 +02:00
Sebastian Lackner 2b1c8fed24 crypt32: Set correct return value if CryptMemAlloc fails. 2013-12-09 11:47:44 +01:00
Francois Gouget 62122b660f crypt32: Remove WINAPI on static functions where not needed. 2013-11-01 10:55:15 +01:00
Francois Gouget ca894127f8 crypt32: Make add_cert_to_store() static. 2013-10-25 14:41:37 +02:00
Jacek Caban 217e0119d9 crypt32: Get rid of no longer needed hCertStore checks. 2013-10-21 21:06:17 +02:00
Jacek Caban e7ab43c4bb crypt32: Return context_t from Context_CreateDataContext. 2013-10-21 21:06:17 +02:00
Jacek Caban 9fb1e4d675 crypt32: Keep reference to store in contexts. 2013-10-18 11:35:58 +02:00
Jacek Caban f329de4df4 crypt32: Always return TRUE from CertFreeCertificateContext. 2013-10-18 11:34:01 +02:00
Jacek Caban 83026a7143 crypt32: Use context_t in addContext. 2013-10-17 11:19:20 +02:00
Jacek Caban 6eddbf18ca crypt32: Store properties directly in link contexts and get rid of Context_GetProperties. 2013-10-17 11:19:03 +02:00
Jacek Caban 2601f58acb crypt32: Don't use links to certs in memory store. 2013-10-17 11:18:45 +02:00
Jacek Caban 6ab429363a crypt32: Added cloning logic to context's vtbl. 2013-10-15 17:43:11 +02:00
Jacek Caban 988e8a78c2 crypt32: Moved CertAddCertificateContextToStore to cert.c. 2013-10-15 17:43:00 +02:00
Jacek Caban 993691bef5 crypt32: Moved context desatructor to vtbl. 2013-10-14 17:26:15 +02:00
Jacek Caban 17e1dfef9b crypt32: Pass context as context_t to Context_Release. 2013-10-14 17:26:14 +02:00
Jacek Caban 802a6bc1bb crypt32: Pass context as BASE_CONTEXT to Context_AddRef and added structs describing memory layout behind context structs. 2013-10-14 17:26:14 +02:00
Jacek Caban c7d1082b4f crypt32: Added new empty store type and use it for creating certificates with no store. 2013-10-14 17:26:14 +02:00
Jacek Caban c1fa23ac5d crypt32: Get rid of no longer used contextSize argument in Context_Release. 2013-10-08 18:10:06 +02:00
Jacek Caban c6fd036b54 crypt32: Get rid of no longer used contextSize argument in Context_GetProperties. 2013-10-08 18:10:02 +02:00
Jacek Caban f82237102b crypt32: Get rid of no longer used contextSize argument in Context_AddRef. 2013-10-08 18:09:53 +02:00