From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/crypt32/oid.c | 8 +++++++- include/wincrypt.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/crypt32/oid.c b/dlls/crypt32/oid.c index e00c683e181..9aa4a3e840a 100644 --- a/dlls/crypt32/oid.c +++ b/dlls/crypt32/oid.c @@ -1716,7 +1716,13 @@ PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, { PCCRYPT_OID_INFO ret = NULL;
- TRACE("(%ld, %p, %ld)\n", dwKeyType, pvKey, dwGroupId); + TRACE("(%#lx, %p, %lu)\n", dwKeyType, pvKey, dwGroupId); + + if (dwKeyType & (CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG | CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG)) + { + FIXME("flags %#lx not supported\n", dwKeyType & (CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG | CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG)); + dwKeyType &= ~(CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG | CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG); + }
switch(dwKeyType) { diff --git a/include/wincrypt.h b/include/wincrypt.h index 5b16760979c..e3a7ad0eb24 100644 --- a/include/wincrypt.h +++ b/include/wincrypt.h @@ -1658,6 +1658,9 @@ typedef const CERT_CRL_CONTEXT_PAIR *PCCERT_CRL_CONTEXT_PAIR; #define CRYPT_OID_INFO_ALGID_KEY 3 #define CRYPT_OID_INFO_SIGN_KEY 4
+#define CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG 0x40000000 +#define CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG 0x80000000 + /* Algorithm IDs */
#define GET_ALG_CLASS(x) (x & (7 << 13))