27#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
44 0, 0, { (
DWORD_PTR)(__FILE__
": funcSetCS") }
129 ret->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": OIDFunctionSet.cs");
149 static const char szEncodingTypeFmt[] =
150 "Software\\Microsoft\\Cryptography\\OID\\EncodingType %ld\\%s\\%s";
177 sprintf(szKey, szEncodingTypeFmt,
190 TRACE(
"(%p, %ld, %p, %p)\n", hFuncSet, dwEncodingType, pwszDllList,
207 if (pwszDllList && *pcchDllList)
216 if (pwszDllList && *pcchDllList)
232 TRACE(
"(%p, %ld, %s, %ld, %p, %08lx)\n",
hModule, dwEncodingType,
241 for (
i = 0;
ret &&
i < cFuncEntry;
i++)
245 TRACE(
"OID %s, func %p\n",
debugstr_a(rgFuncEntry[
i].pszOID), rgFuncEntry[
i].pvFuncAddr);
249 +
strlen(rgFuncEntry[
i].pszOID) + 1);
260 strcpy(oid, rgFuncEntry[
i].pszOID);
261 func->entry.pszOID = oid;
291 const char *funcName;
309 funcName = szFuncName;
365 if (funcName != szFuncName)
382 TRACE(
"(%p, %ld, %s, %08lx, %p, %p)\n", hFuncSet, dwEncodingType,
419 ppvFuncAddr, phFuncAddr);
506 TRACE(
"(%p, %ld, %s, %08lx, %p, %p)\n", hFuncSet, dwEncodingType,
581 if (!*
addr->currentDll)
596 &
addr->lib, ppvFuncAddr);
642 TRACE(
"(%lx, %s, %s, %s, %s)\n", dwEncodingType,
debugstr_a(pszFuncName),
653 if (!pszFuncName || !pszOID)
671 if (pszOverrideFuncName)
674 (
const BYTE*)pszOverrideFuncName,
lstrlenA(pszOverrideFuncName) + 1);
787 if (
info->ExtraInfo.cbData &&
info->ExtraInfo.pbData)
793 if (
info->pwszCNGAlgid)
799 if (
info->pwszCNGExtraAlgid)
828 if (!pszFuncName || !pszOID)
850 TRACE(
"%lx %s %s %s %p %p %p\n", dwEncodingType,
debugstr_a(pszFuncName),
871 pbValueData, pcbValueData);
881 const BYTE *pbValueData,
DWORD cbValueData)
887 TRACE(
"%lx %s %s %s %ld %p %ld\n", dwEncodingType,
debugstr_a(pszFuncName),
974 spotToAdd =
ret +
len - 1;
982 for (
i = 0, spotToAdd =
ret;
i <
index && *spotToAdd;
983 spotToAdd +=
lstrlenW(spotToAdd) + 1)
1014 if (spotToRemove +
lstrlenW(toRemove) + 2 >= multi +
len)
1018 *(spotToRemove + 1) = 0;
1025 memmove(spotToRemove, nextStr,
1026 (
len - (nextStr - multi)) *
sizeof(
WCHAR));
1104 TRACE(
"(%lx, %s, %ld, %s)\n", dwEncodingType,
debugstr_a(pszFuncName),
1191 0, 0, { (
DWORD_PTR)(__FILE__
": oidInfoCS") }
1374 { 6,
"1.3.6.1.4.1.311.2.1.10", 0,
L"SpcSpAgencyInfo",
NULL },
1375 { 6,
"1.3.6.1.4.1.311.2.1.27", 0,
L"SpcFinancialCriteria",
NULL },
1376 { 6,
"1.3.6.1.4.1.311.2.1.26", 0,
L"SpcMinimalCriteria",
NULL },
1489 DWORD len, oid_len, name_len = 0, extra_len = 0, cngalgid_len = 0, cngextra_len = 0, group_id = 0;
1514 len =
sizeof(*flags);
1518 info->info.cbSize =
sizeof(
info->info);
1520 p = (
char *)(
info + 1);
1522 info->info.pszOID =
p;
1533 info->info.dwGroupId = group_id;
1535 len =
sizeof(
info->info.Algid);
1540 info->info.ExtraInfo.cbData = extra_len;
1541 info->info.ExtraInfo.pbData = (
BYTE *)
p;
1589 TRACE(
"adding oid %s, name %s, groupid %lu, algid %u, extra %lu, CNG algid %s, CNG extra %s\n",
1591 info->info.dwGroupId,
info->info.Algid,
info->info.ExtraInfo.cbData,
1628 info->info.ExtraInfo.cbData =
1630 info->info.ExtraInfo.pbData =
1643 (
LPWSTR)&stringresource, 0);
1662 info->info.ExtraInfo.cbData =
1664 info->info.ExtraInfo.pbData =
1697 TRACE(
"(%ld, %08lx, %p, %p)\n", dwGroupId,
dwFlags, pvArg,
1703 if (!dwGroupId || dwGroupId ==
info->info.dwGroupId)
1705 ret = pfnEnumOIDInfo(&
info->info, pvArg);
1719 TRACE(
"(%ld, %p, %ld)\n", dwKeyType, pvKey, dwGroupId);
1727 TRACE(
"CRYPT_OID_INFO_ALGID_KEY: %ld\n", *(
DWORD *)pvKey);
1731 if (
info->info.Algid == *(
DWORD *)pvKey &&
1732 (!dwGroupId ||
info->info.dwGroupId == dwGroupId))
1750 (!dwGroupId ||
info->info.dwGroupId == dwGroupId))
1769 (!dwGroupId ||
info->info.dwGroupId == dwGroupId))
1782 TRACE(
"CRYPT_OID_INFO_SIGN_KEY: %ld\n", *(
DWORD *)pvKey);
1786 if (
info->info.Algid == *(
DWORD *)pvKey &&
1787 info->info.ExtraInfo.cbData >=
sizeof(
DWORD) &&
1788 *(
DWORD *)
info->info.ExtraInfo.pbData ==
1790 (!dwGroupId ||
info->info.dwGroupId == dwGroupId))
1820 (
void *)pszObjId, 0);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static const WCHAR BCRYPT_SHA384_ALGORITHM[]
static const WCHAR BCRYPT_SHA256_ALGORITHM[]
#define RegCloseKey(hKey)
#define IDS_KEY_PACK_LICENSES
#define IDS_RDN_DUMMY_SIGNER
#define IDS_SUBJECT_ALT_NAME
#define IDS_PKCS_7_ENVELOPED
#define IDS_ANY_CERT_POLICY
#define IDS_CERT_MANIFOLD
#define IDS_UNSTRUCTURED_NAME
#define IDS_FILE_RECOVERY
#define IDS_CLIENT_AUTHENTICATION
#define IDS_SERIAL_NUMBER
#define IDS_NETSCAPE_CERT_RENEWAL_URL
#define IDS_POLICY_CONSTRAINTS
#define IDS_QUALIFIED_SUBORDINATION
#define IDS_PKCS_7_ENCRYPTED
#define IDS_DIGITAL_RIGHTS
#define IDS_NEXT_UPDATE_LOCATION
#define IDS_MICROSOFT_TIME_STAMPING
#define IDS_UNSIGNED_CMC_REQUEST
#define IDS_CERT_TEMPLATE_NAME
#define IDS_NETSCAPE_REVOCATION_URL
#define IDS_ISSUING_DIST_POINT
#define IDS_KEY_RECOVERY_AGENT
#define IDS_APPLICATION_POLICY_CONSTRAINTS
#define IDS_IPSEC_IKE_INTERMEDIATE
#define IDS_ARCHIVED_KEY_CERT_HASH
#define IDS_CMC_EXTENSIONS
#define IDS_NETSCAPE_CERT_TYPE
#define IDS_PREVIOUS_CA_CERT_HASH
#define IDS_SERIALIZED_SIG_SERIAL_NUMBER
#define IDS_ENROLLMENT_NAME_VALUE_PAIR
#define IDS_CLIENT_INFORMATION
#define IDS_DOCUMENT_SIGNING
#define IDS_PRIVATE_KEY_USAGE_PERIOD
#define IDS_ENHANCED_KEY_USAGE
#define IDS_ROOT_LIST_SIGNER
#define IDS_QUERY_PENDING
#define IDS_NETSCAPE_COMMENT
#define IDS_ORGANIZATIONAL_UNIT
#define IDS_PRINCIPAL_NAME
#define IDS_TIME_STAMPING
#define IDS_STATE_OR_PROVINCE
#define IDS_ENROLLMENT_AGENT
#define IDS_CROSS_CA_VERSION
#define IDS_PREFER_SIGNED_DATA
#define IDS_DOMAIN_COMPONENT
#define IDS_CERTIFICATE_TEMPLATE
#define IDS_EMAIL_ADDRESS
#define IDS_NAME_CONSTRAINTS
#define IDS_KEY_ATTRIBUTES
#define IDS_LICENSE_SERVER
#define IDS_UNSTRUCTURED_ADDRESS
#define IDS_ANY_APPLICATION_POLICIES
#define IDS_ENTERPRISE_ROOT_OID
#define IDS_CRL_REASON_CODE
#define IDS_NETSCAPE_BASE_URL
#define IDS_PKCS_7_SIGNED_ENVELOPED
#define IDS_KEY_USAGE_RESTRICTION
#define IDS_NETSCAPE_SSL_SERVER_NAME
#define IDS_AUTHORITY_KEY_ID
#define IDS_LIFETIME_SIGNING
#define IDS_SMIME_CAPABILITIES
#define IDS_PKCS_7_SIGNED
#define IDS_LOCALIZEDNAME_ROOT
#define IDS_CMC_ATTRIBUTES
#define IDS_CRL_NEXT_PUBLISH
#define IDS_POLICY_MAPPINGS
#define IDS_YES_OR_NO_TRUST
#define IDS_ISSUER_ALT_NAME
#define IDS_CERT_POLICIES
#define IDS_REVOKE_REQUEST
#define IDS_CERT_EXTENSIONS
#define IDS_STREET_ADDRESS
#define IDS_APPLICATION_POLICY_MAPPINGS
#define IDS_CROSS_CERT_DIST_POINTS
#define IDS_IPSEC_END_SYSTEM
#define IDS_CRL_DIST_POINTS
#define IDS_NETSCAPE_CA_REVOCATION_URL
#define IDS_AUTHORITY_INFO_ACCESS
#define IDS_EMBEDDED_NT_CRYPTO
#define IDS_DS_EMAIL_REPLICATION
#define IDS_MESSAGE_DIGEST
#define IDS_REQUIRE_CERT_CHAIN_POLICY
#define IDS_TRANSACTION_ID
#define IDS_SUBJECT_KEY_IDENTIFIER
#define IDS_APPLICATION_POLICIES
#define IDS_OEM_WHQL_CRYPTO
#define IDS_RECIPIENT_NONCE
#define IDS_CHALLENGE_PASSWORD
#define IDS_SERVER_AUTHENTICATION
#define IDS_SMART_CARD_LOGON
#define IDS_ENROLLMENT_CSP
#define IDS_DELTA_CRL_INDICATOR
#define IDS_ARCHIVED_KEY_ATTR
#define IDS_CMC_STATUS_INFO
#define IDS_BASIC_CONSTRAINTS
#define IDS_MICROSOFT_TRUST_LIST_SIGNING
#define IDS_CRL_VIRTUAL_BASE
#define IDS_GET_CERTIFICATE
#define IDS_PKCS_7_DIGESTED
#define IDS_WINDOWS_PRODUCT_UPDATE
#define IDS_NETSCAPE_CA_POLICY_URL
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegEnumKeyA(HKEY hKey, DWORD dwIndex, LPSTR lpName, DWORD cbName)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
LPVOID WINAPI CryptMemRealloc(LPVOID pv, ULONG cbSize)
VOID WINAPI CryptMemFree(LPVOID pv)
static const CRYPT_DATA_BLOB numericStringBlob
BOOL WINAPI CryptRegisterOIDInfo(PCCRYPT_OID_INFO info, DWORD flags)
static struct list oidInfo
void crypt_oid_init(void)
BOOL WINAPI CryptRegisterDefaultOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, DWORD dwIndex, LPCWSTR pwszDll)
static const DWORD numericString[]
static CRITICAL_SECTION_DEBUG funcSetCSDebug
static const LPCWSTR LocalizedKeys[]
BOOL WINAPI CryptUnregisterDefaultOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCWSTR pwszDll)
void crypt_oid_free(void)
static const DWORD mosaicFlags
static BOOL CRYPT_RemoveStringFromMultiString(LPWSTR multi, LPCWSTR toRemove)
BOOL WINAPI CryptSetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType, const BYTE *pbValueData, DWORD cbValueData)
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
BOOL WINAPI CryptGetDefaultOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
static LPWSTR CRYPT_AddStringToMultiString(LPWSTR multi, LPCWSTR toAdd, DWORD index)
static CRITICAL_SECTION_DEBUG oidInfoCSDebug
static const CRYPT_DATA_BLOB ia5StringBlob
BOOL WINAPI CryptEnumOIDInfo(DWORD dwGroupId, DWORD dwFlags, void *pvArg, PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo)
static const DWORD rsaSign
static LPCWSTR CRYPT_FindStringInMultiString(LPCWSTR multi, LPCWSTR toFind)
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
static const DWORD noNullFlag
static const CRYPT_DATA_BLOB noNullBlob
static BOOL is_module_registered(HMODULE hModule)
BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
static void free_oid_info(void)
LPCWSTR WINAPI CryptFindLocalizedName(LPCWSTR pwszCryptName)
BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
static const DWORD ecdsaSign[2]
static const CRYPT_DATA_BLOB mosaicSignBlob
static void free_function_sets(void)
static CRITICAL_SECTION oidInfoCS
static BOOL CRYPT_GetFuncFromReg(DWORD dwEncodingType, LPCSTR pszOID, LPCSTR szFuncName, LPVOID *ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
static BOOL CRYPT_GetDefaultOIDKey(DWORD dwEncodingType, LPCSTR pszFuncName, PHKEY key)
static WCHAR LocalizedNames[ARRAY_SIZE(LocalizedKeys)][256]
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
static const DWORD dssSign[2]
static const DWORD domainCompTypes[]
static struct OIDInfo * read_oid_info(HKEY root, char *key_name, DWORD *flags)
static DWORD CRYPT_GetMultiStringCharacterLen(LPCWSTR multi)
static const CRYPT_DATA_BLOB dssSignBlob
static const DWORD printableString[]
static const CRYPT_DATA_BLOB mosaicFlagsBlob
BOOL WINAPI CryptInstallOIDFunctionAddress(HMODULE hModule, DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry, const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags)
static void init_oid_info(void)
static BOOL CRYPT_SetDefaultOIDDlls(HKEY key, LPCWSTR dlls)
static const CRYPT_DATA_BLOB domainCompTypesBlob
static const CRYPT_DATA_BLOB printableStringBlob
static BOOL CRYPT_GetFuncFromDll(LPCWSTR dll, LPCSTR func, HMODULE *lib, void **ppvFuncAddr)
static const DWORD ia5String[]
BOOL WINAPI CryptRegisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszDll, LPCSTR pszOverrideFuncName)
static CRITICAL_SECTION funcSetCS
static void init_registered_oid_info(void)
LPCSTR WINAPI CertAlgIdToOID(DWORD dwAlgId)
static const struct OIDInfoConstructor oidInfoConstructors[]
static const CRYPT_DATA_BLOB ecdsaSignBlob
DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId)
BOOL WINAPI CryptUnregisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
static void oid_init_localizednames(void)
static const CRYPT_DATA_BLOB rsaSignBlob
static LPWSTR CRYPT_GetDefaultOIDDlls(HKEY key)
BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
BOOL WINAPI CryptGetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszValueName, DWORD *pdwValueType, BYTE *pbValueData, DWORD *pcbValueData)
BOOL WINAPI CryptUnregisterOIDInfo(PCCRYPT_OID_INFO info)
static const DWORD mosaicSign[2]
static struct list funcSets
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define ERROR_NO_MORE_ITEMS
#define stricmp(_String1, _String2)
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
#define IS_INTRESOURCE(x)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP __msvcrt_long __cdecl strtol(const char *, char **, int)
_ACRTIMP char *__cdecl strchr(const char *, int)
_ACRTIMP size_t __cdecl strlen(const char *)
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLenum const GLvoid * addr
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
unsigned __int3264 UINT_PTR
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
CRYPT_OID_FUNC_ENTRY entry
const CRYPT_DATA_BLOB * blob
const WCHAR * pwszCNGAlgid
const WCHAR * pwszCNGExtraAlgid
LIST_ENTRY ProcessLocksList
PRTL_CRITICAL_SECTION_DEBUG DebugInfo
_In_z_ PCWSTR pwszValueName
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define szOID_PKIX_KP_IPSEC_END_SYSTEM
#define szOID_CMC_TRANSACTION_ID
#define szOID_RSA_SHA256RSA
#define szOID_OIWSEC_sha1RSASign
#define CRYPT_GET_INSTALLED_OID_FUNC_FLAG
static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[]
#define szOID_APPLICATION_POLICY_CONSTRAINTS
#define szOID_KP_DOCUMENT_SIGNING
#define szOID_RSA_SHA512RSA
#define szOID_AUTHORITY_KEY_IDENTIFIER
#define szOID_INFOSEC_mosaicKMandUpdSig
#define szOID_X957_SHA1DSA
#define szOID_ARCHIVED_KEY_CERT_HASH
#define szOID_RSA_SMIMECapabilities
#define CERT_RDN_UTF8_STRING
#define CERT_RDN_IA5_STRING
#define szOID_EFS_RECOVERY
#define szOID_CERT_EXTENSIONS
#define szOID_RSA_envelopedData
#define szOID_OIWSEC_dsaSHA1
#define szOID_KP_KEY_RECOVERY_AGENT
BOOL(WINAPI * PFN_CRYPT_ENUM_OID_INFO)(PCCRYPT_OID_INFO pInfo, void *pvArg)
#define GET_CERT_ENCODING_TYPE(x)
#define CRYPT_OID_INFO_SIGN_KEY
#define szOID_CRL_NEXT_PUBLISH
#define CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
#define szOID_PKIX_POLICY_QUALIFIER_CPS
#define CERT_RDN_PRINTABLE_STRING
#define szOID_CROSS_CERT_DIST_POINTS
struct _CRYPT_OID_INFO CRYPT_OID_INFO
#define szOID_POLICY_MAPPINGS
#define szOID_ECDSA_SHA256
#define szOID_NIST_sha256
#define szOID_CRL_DIST_POINTS
#define szOID_OIWSEC_md4RSA
#define szOID_BASIC_CONSTRAINTS2
#define szOID_CMC_GET_CERT
#define szOID_FRESHEST_CRL
#define szOID_NETSCAPE_COMMENT
#define szOID_LEGACY_POLICY_MAPPINGS
#define szOID_ENROLLMENT_AGENT
#define szOID_ENROLLMENT_CSP_PROVIDER
#define szOID_NAME_CONSTRAINTS
#define szOID_IPSEC_KP_IKE_INTERMEDIATE
#define szOID_CMC_ADD_EXTENSIONS
#define szOID_ENTERPRISE_OID_ROOT
#define szOID_OIWSEC_rsaXchg
#define szOID_RSA_DES_EDE3_CBC
#define szOID_OIWSEC_md4RSA2
#define szOID_CT_PKI_RESPONSE
#define szOID_KP_LIFETIME_SIGNING
#define szOID_RSA_messageDigest
#define szOID_ISSUER_ALT_NAME2
#define szOID_RSA_SMIMEalgESDH
#define szOID_PKIX_KP_CLIENT_AUTH
#define szOID_DELTA_CRL_INDICATOR
#define szOID_CERTSRV_CROSSCA_VERSION
#define szOID_RSA_signedData
#define szOID_RSA_preferSignedData
#define szOID_POST_OFFICE_BOX
#define szOID_RSA_SHA384RSA
#define szOID_KEY_USAGE_RESTRICTION
#define szOID_OIWSEC_md5RSA
#define szOID_PKIX_KP_CODE_SIGNING
#define szOID_YESNO_TRUST_ATTR
#define szOID_NETSCAPE_CA_REVOCATION_URL
#define CALG_OID_INFO_PARAMETERS
#define szOID_STATE_OR_PROVINCE_NAME
#define szOID_CMC_RECIPIENT_NONCE
#define CRYPT_REGISTER_LAST_INDEX
#define CALG_OID_INFO_CNG_ONLY
#define szOID_OIWSEC_shaRSA
#define szOID_KP_TIME_STAMP_SIGNING
#define szOID_ECC_PUBLIC_KEY
#define szOID_PKIX_KP_IPSEC_USER
#define szOID_CMC_STATUS_INFO
#define szOID_COUNTRY_NAME
#define szOID_PKIX_KP_TIMESTAMP_SIGNING
#define szOID_PKIX_KP_IPSEC_TUNNEL
#define szOID_NT_PRINCIPAL_NAME
#define szOID_OEM_WHQL_CRYPTO
#define CRYPT_OID_INFO_NAME_KEY
#define szOID_ANY_CERT_POLICY
#define szOID_REQUIRE_CERT_CHAIN_POLICY
#define szOID_BASIC_CONSTRAINTS
#define szOID_OIWSEC_desCBC
#define szOID_KEY_ATTRIBUTES
#define szOID_NETSCAPE_CERT_RENEWAL_URL
#define szOID_SUBJECT_KEY_IDENTIFIER
#define szOID_DN_QUALIFIER
#define szOID_PKIX_NO_SIGNATURE
#define szOID_REQUEST_CLIENT_INFO
#define szOID_OIWSEC_shaDSA
#define szOID_NETSCAPE_BASE_URL
#define szOID_KP_CTL_USAGE_SIGNING
#define szOID_CMC_GET_CRL
#define szOID_ENROLL_CERTTYPE_EXTENSION
#define szOID_ORGANIZATIONAL_UNIT_NAME
#define szOID_NETSCAPE_CA_POLICY_URL
#define szOID_CRL_REASON_CODE
#define szOID_RSA_emailAddr
#define szOID_NIST_sha384
#define szOID_CT_PKI_DATA
#define szOID_RSA_contentType
#define szOID_CERTSRV_PREVIOUS_CERT_HASH
#define szOID_DEVICE_SERIAL_NUMBER
#define szOID_NETSCAPE_REVOCATION_URL
#define szOID_KP_QUALIFIED_SUBORDINATION
#define szOID_NETSCAPE_CERT_TYPE
#define szOID_CMC_QUERY_PENDING
#define szOID_RSA_signingTime
#define szOID_KP_KEY_RECOVERY
#define szOID_INFOSEC_mosaicUpdatedSig
#define szOID_RSA_SMIMEalgCMS3DESwrap
#define szOID_SUBJECT_ALT_NAME
#define szOID_CERT_POLICIES
#define szOID_PKIX_KP_SERVER_AUTH
#define szOID_RDN_DUMMY_SIGNER
#define szOID_DESCRIPTION
#define szOID_X21_ADDRESS
#define szOID_LOCALITY_NAME
#define szOID_CRL_VIRTUAL_BASE
#define szOID_CERTIFICATE_TEMPLATE
#define szOID_ENHANCED_KEY_USAGE
#define szOID_OIWDIR_md2RSA
#define szOID_SUBJECT_ALT_NAME2
#define szOID_PKIX_KP_EMAIL_PROTECTION
#define szOID_OIWSEC_sha1
#define szOID_KP_SMARTCARD_LOGON
#define szOID_WHQL_CRYPTO
#define szOID_ECDSA_SHA384
#define szOID_CERT_MANIFOLD
#define szOID_TELEPHONE_NUMBER
#define szOID_CMC_REG_INFO
#define szOID_APPLICATION_POLICY_MAPPINGS
#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE
#define CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
#define szOID_EMBEDDED_NT_CRYPTO
#define szOID_PRIVATEKEY_USAGE_PERIOD
#define szOID_NEXT_UPDATE_LOCATION
#define szOID_STREET_ADDRESS
#define szOID_RSA_SHA1RSA
#define CERT_RDN_NUMERIC_STRING
#define szOID_AUTHORITY_INFO_ACCESS
#define CRYPT_OID_INFO_OID_KEY
#define szOID_NETSCAPE_SSL_SERVER_NAME
#define szOID_AUTHORITY_KEY_IDENTIFIER2
#define szOID_COMMON_NAME
#define szOID_RSA_SMIMEalgCMSRC2wrap
#define szOID_CMC_REVOKE_REQUEST
#define szOID_KP_CA_EXCHANGE
#define szOID_ARCHIVED_KEY_ATTR
#define szOID_RSA_challengePwd
#define CRYPT_INSTALL_OID_INFO_BEFORE_FLAG
#define szOID_PRODUCT_UPDATE
#define szOID_RSA_certExtensions
#define CRYPT_OID_INFO_ALGID_KEY
#define szOID_ANY_APPLICATION_POLICY
#define szOID_POLICY_CONSTRAINTS
#define szOID_RSA_signEnvData
#define szOID_RSA_unstructName
#define szOID_DOMAIN_COMPONENT
#define szOID_ISSUING_DIST_POINT
#define szOID_APPLICATION_CERT_POLICIES
#define szOID_DS_EMAIL_REPLICATION
#define szOID_CMC_SENDER_NONCE
#define szOID_CERTSRV_CA_VERSION
#define szOID_ANSI_X942_DH
#define szOID_RSA_digestedData
#define szOID_NIST_sha512
#define szOID_PKIX_CA_ISSUERS
#define szOID_RSA_counterSign
#define szOID_ENROLLMENT_NAME_VALUE_PAIR
#define szOID_CRL_SELF_CDP
#define szOID_ROOT_LIST_SIGNER
#define szOID_POSTAL_CODE
#define szOID_RSA_unstructAddr
#define szOID_LICENSE_SERVER
#define szOID_ORGANIZATION_NAME
#define szOID_RSA_encryptedData
#define ERROR_FILE_EXISTS
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
#define HKEY_LOCAL_MACHINE