From fa4714e6045fdc4e25a0943bd9ef1936606b2755 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Mon, 12 Apr 2021 15:20:57 +0300 Subject: [PATCH] crypt32: Implement CryptImportPublicKeyInfoEx2. Signed-off-by: Dmitry Timoshkov Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard (cherry picked from commit c2c7946680b61bfccd4c4f5788864d4130af9baf) Signed-off-by: Michael Stefaniuc --- 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); }