Module: wine Branch: master Commit: c2c7946680b61bfccd4c4f5788864d4130af9baf URL: https://source.winehq.org/git/wine.git/?a=commit;h=c2c7946680b61bfccd4c4f578...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Mon Apr 12 15:20:57 2021 +0300
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
---
dlls/crypt32/cert.c | 2 +- dlls/crypt32/crypt32_private.h | 2 ++ dlls/crypt32/encode.c | 9 ++++++--- 3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c index aad8fa047b7..95e2746a7d5 100644 --- a/dlls/crypt32/cert.c +++ b/dlls/crypt32/cert.c @@ -2689,7 +2689,7 @@ done: return !status; }
-static BOOL CNG_ImportPubKey(CERT_PUBLIC_KEY_INFO *pubKeyInfo, BCRYPT_KEY_HANDLE *key) +BOOL CNG_ImportPubKey(CERT_PUBLIC_KEY_INFO *pubKeyInfo, BCRYPT_KEY_HANDLE *key) { if (!strcmp(pubKeyInfo->Algorithm.pszObjId, szOID_ECC_PUBLIC_KEY)) return CNG_ImportECCPubKey(pubKeyInfo, key); diff --git a/dlls/crypt32/crypt32_private.h b/dlls/crypt32/crypt32_private.h index 30cf4334de4..9f8f43e7632 100644 --- a/dlls/crypt32/crypt32_private.h +++ b/dlls/crypt32/crypt32_private.h @@ -21,6 +21,8 @@
#include "wine/list.h"
+BOOL CNG_ImportPubKey(CERT_PUBLIC_KEY_INFO *pubKeyInfo, BCRYPT_KEY_HANDLE *key) DECLSPEC_HIDDEN; + /* a few asn.1 tags we need */ #define ASN_BOOL (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x01) #define ASN_BITSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03) diff --git a/dlls/crypt32/encode.c b/dlls/crypt32/encode.c index 46f4b8f25e7..02b235696ce 100644 --- a/dlls/crypt32/encode.c +++ b/dlls/crypt32/encode.c @@ -5050,8 +5050,11 @@ BOOL WINAPI CryptImportPublicKeyInfoEx2(DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD dwFlags, void *pvAuxInfo, BCRYPT_KEY_HANDLE *phKey) { - FIXME_(crypt)("(%d, %p, %08x, %p, %p): stub\n", dwCertEncodingType, pInfo, + TRACE_(crypt)("(%d, %p, %08x, %p, %p)\n", dwCertEncodingType, pInfo, dwFlags, pvAuxInfo, phKey); - SetLastError(ERROR_FILE_NOT_FOUND); - return FALSE; + + if (dwFlags) + FIXME("flags %#x ignored\n", dwFlags); + + return CNG_ImportPubKey(pInfo, phKey); }