Commit Graph

1978 Commits (b37845dbcc20bb3534db63ba08b9b73d044578e2)

Author SHA1 Message Date
Dmitry Timoshkov 70f00e6246 crypt32: CryptMsgUpdate should skip broken certificates.
CertOpenStore() already verifies the certificate before adding it
to the memory store from the file, this patch makes CryptMsgUpdate()
behave in a similar way.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45757
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
(cherry picked from commit 1875620466)
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
2019-10-09 22:36:56 +02:00
Gijs Vermeulen a15d4de557 crypt32/tests: Fix a memory leak (Valgrind).
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-15 17:17:30 +01:00
Gijs Vermeulen 8e0139af2a crypt32/tests: Fix a typo in ok() message.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-14 18:18:39 +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 f4845059b6 crypt32: Use sizeof(WCHAR) instead of 2.
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 2ef62f9085 crypt32: Make sure that the provider supports algorithm of the message being decoded.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-16 20:55:01 +01:00
Alexander Morozov 263f6ef201 crypt32: Use correct private key for signing.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-15 13:43:14 +01:00
Dmitry Timoshkov fa713c3d23 crypt32: Look for the provider that supports the specified content OID in CryptMsgOpenToEncode(CMSG_HASHED).
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-06 12:48:58 +01:00
Dmitry Timoshkov fd6e9ccca3 crypt32: Add support for a particular ALG_ID to I_CryptGetDefaultCryptProv.
Based on a patch by Alexander Morozov.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-06 12:48:36 +01:00
Dmitry Timoshkov ac758a2a80 crypt32/tests: Add more tests for I_CryptGetDefaultCryptProv.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-06 12:48:28 +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 3b1e55d093 crypt32: CryptFreeOIDFunctionAddress should not unload a registered module.
MSDN states that hModule passed to CryptInstallOIDFunctionAddress() should be
used to prevent this module to be unloaded by CryptFreeOIDFunctionAddress in
case the provider's DLL uses CryptRegisterOIDFunction to add its own entries.

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 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 d34dc5fa3c crypt32/tests: Add more tests for CertComparePublicKeyInfo.
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 81b0a38c47 crypt32: Trace entry contents in CryptInstallOIDFunctionAddress.
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
Dmitry Timoshkov 98fad7df79 crypt32: Forward CryptDecodeObject to CryptDecodeObjectEx.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-25 20:32:03 +02:00
Dmitry Timoshkov 855dab34bd crypt32: Make it clear that LocalAlloc should return a pointer.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-25 20:32:03 +02:00
Dmitry Timoshkov 4422a96a23 crypt32/tests: Get rid of win9x specific checks.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-25 20:32:03 +02:00
Francois Gouget 4f36c83fa3 crypt32/tests: Avoid an unneeded strlen() call.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 16:34:48 +02:00
Francois Gouget 425cdb6b72 crypt32/tests: Fix a typo and reword a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 16:34:39 +02:00
Dmitry Timoshkov 62838182d5 crypt32: Add support for importing public key information to a 3rd party CSP.
Based on a patch by Alexander Morozov.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 15:30:24 +02:00
Dmitry Timoshkov f0d6637f0f crypt32: Add support for exporting public key information from a 3rd party CSP.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 15:30:19 +02:00
Dmitry Timoshkov a7d07684cc crypt32: Make I_CryptGetDefaultCryptProv hot-patchable.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 15:29:57 +02:00
Dmitry Timoshkov c3d6211aef crypt32/tests: Actually test the return value of CryptGetKeyParam.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 15:29:56 +02:00
Dmitry Timoshkov 94c19040a1 crypt32: Read OID information from the registry.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 13:37:21 +02:00
Dmitry Timoshkov de9b90b955 crypt32/tests: Add some tests for registering OID info.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 13:37:21 +02:00
Dmitry Timoshkov 061033ed02 crypt32: Implement CryptRegisterOIDInfo.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 13:37:21 +02:00
Dmitry Timoshkov 0b89c5a264 crypt32: Implement CryptUnregisterOIDInfo.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 13:37:21 +02:00
Nikolay Sivov 71f3a22519 crypt32: Add CRYPT_STRING_BINARY mode for CryptBinaryToStringW().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-27 16:33:53 +02:00
Nikolay Sivov 09a785cb4d crypt32: Fix formatted output length for base64.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 17:07:58 +02:00
Nikolay Sivov 5652a19110 crypt32: Fix output buffer handling for CRYPT_STRING_BINARY case.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 17:07:56 +02:00
Nikolay Sivov d18d38bc98 crypt32: Fix NULL output buffer handling for CryptBinaryToString().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 17:07:54 +02:00
Nikolay Sivov fb53f6e79d crypt32/base64: Fix certificate request header and trailer in CryptBinaryToStringW() output.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-25 21:45:04 +02:00
André Hentschel 42c20ac0b8 crypt32: Print Crypt(Un)protectMemory FIXME only once.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:33:22 +02:00
Zhiyi Zhang a1e2c7fd2f crypt32: Properly check root certificate in CERT_CHAIN_REVOCATION_CHECK_CHAIN.
Original patch by Michael Müller.

Root certificates don't have CRL Distribution Point or Authority Info Access field.
Don't report error with CERT_CHAIN_REVOCATION_CHECK_CHAIN in CertGetCertificateChain()
because of this.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 13:39:53 +02:00
Zhiyi Zhang 01262515b4 crypt32/tests: Add revocation flags tests for CertGetCertificateChain().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 13:39:49 +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 Stefaniuc 962b31c80b include: Add a generic available ARRAY_SIZE().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 10:39:15 +02:00
Nikolay Sivov 3dcdbba6ef crypt32: Fix string arguments tracing.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 13:29:10 +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 e353656804 crypt32: Correctly return how the issuer of a self signed certificate was matched.
Original patch by Michael Müller.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-25 16:06:13 +02:00
Michael Stefaniuc 207e70cdc9 crypt32/tests: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-23 00:41:48 +02:00
Michael Stefaniuc f7c2fe87f5 crypt32: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-23 00:41:43 +02:00
Michael Müller 224e3f43e9 crypt32: Add oids for sha256ECDSA and sha384ECDSA.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-22 17:13:02 +02:00
Michael Müller 3b168abc16 crypt32/tests: Add a basic test for ecdsa oid.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-22 17:12:53 +02:00