ReactOS  0.4.14-dev-606-g14ebc0b
oid.c File Reference
#include "config.h"
#include "wine/port.h"
#include <stdio.h>
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
#include "winreg.h"
#include "winuser.h"
#include "wine/debug.h"
#include "wine/list.h"
#include "crypt32_private.h"
#include "cryptres.h"
Include dependency graph for oid.c:

Go to the source code of this file.

Classes

struct  OIDFunctionSet
 
struct  OIDFunction
 
struct  FuncAddr
 
struct  OIDInfoConstructor
 
struct  OIDInfo
 

Macros

#define NONAMELESSUNION
 
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (crypt)
 
static void free_function_sets (void)
 
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet (LPCSTR pszFuncName, DWORD dwFlags)
 
static charCRYPT_GetKeyName (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
 
BOOL WINAPI CryptGetDefaultOIDDllList (HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
 
BOOL WINAPI CryptInstallOIDFunctionAddress (HMODULE hModule, DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry, const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags)
 
static BOOL CRYPT_GetFuncFromReg (DWORD dwEncodingType, LPCSTR pszOID, LPCSTR szFuncName, LPVOID *ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
 
BOOL WINAPI CryptGetOIDFunctionAddress (HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
 
static BOOL is_module_registered (HMODULE hModule)
 
BOOL WINAPI CryptFreeOIDFunctionAddress (HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
 
static BOOL CRYPT_GetFuncFromDll (LPCWSTR dll, LPCSTR func, HMODULE *lib, void **ppvFuncAddr)
 
BOOL WINAPI CryptGetDefaultOIDFunctionAddress (HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
 
BOOL WINAPI CryptRegisterOIDFunction (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszDll, LPCSTR pszOverrideFuncName)
 
BOOL WINAPI CryptUnregisterOIDInfo (PCCRYPT_OID_INFO info)
 
BOOL WINAPI CryptRegisterOIDInfo (PCCRYPT_OID_INFO info, DWORD flags)
 
BOOL WINAPI CryptUnregisterOIDFunction (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
 
BOOL WINAPI CryptGetOIDFunctionValue (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszValueName, DWORD *pdwValueType, BYTE *pbValueData, DWORD *pcbValueData)
 
BOOL WINAPI CryptSetOIDFunctionValue (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType, const BYTE *pbValueData, DWORD cbValueData)
 
static LPCWSTR CRYPT_FindStringInMultiString (LPCWSTR multi, LPCWSTR toFind)
 
static DWORD CRYPT_GetMultiStringCharacterLen (LPCWSTR multi)
 
static LPWSTR CRYPT_AddStringToMultiString (LPWSTR multi, LPCWSTR toAdd, DWORD index)
 
static BOOL CRYPT_RemoveStringFromMultiString (LPWSTR multi, LPCWSTR toRemove)
 
static BOOL CRYPT_GetDefaultOIDKey (DWORD dwEncodingType, LPCSTR pszFuncName, PHKEY key)
 
static LPWSTR CRYPT_GetDefaultOIDDlls (HKEY key)
 
static BOOL CRYPT_SetDefaultOIDDlls (HKEY key, LPCWSTR dlls)
 
BOOL WINAPI CryptRegisterDefaultOIDFunction (DWORD dwEncodingType, LPCSTR pszFuncName, DWORD dwIndex, LPCWSTR pwszDll)
 
BOOL WINAPI CryptUnregisterDefaultOIDFunction (DWORD dwEncodingType, LPCSTR pszFuncName, LPCWSTR pwszDll)
 
static void oid_init_localizednames (void)
 
LPCWSTR WINAPI CryptFindLocalizedName (LPCWSTR pwszCryptName)
 
static struct OIDInforead_oid_info (HKEY root, char *key_name, DWORD *flags)
 
static void init_registered_oid_info (void)
 
static void init_oid_info (void)
 
static void free_oid_info (void)
 
BOOL WINAPI CryptEnumOIDInfo (DWORD dwGroupId, DWORD dwFlags, void *pvArg, PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo)
 
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo (DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
 
LPCSTR WINAPI CertAlgIdToOID (DWORD dwAlgId)
 
DWORD WINAPI CertOIDToAlgId (LPCSTR pszObjId)
 
void crypt_oid_init (void)
 
void crypt_oid_free (void)
 

Variables

static const WCHAR DllW [] = { 'D','l','l',0 }
 
static CRITICAL_SECTION funcSetCS = { &funcSetCSDebug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG funcSetCSDebug
 
static struct list funcSets = { &funcSets, &funcSets }
 
static const WCHAR ROOT [] = {'R','O','O','T',0}
 
static const WCHAR MY [] = {'M','Y',0}
 
static const WCHAR CA [] = {'C','A',0}
 
static const WCHAR ADDRESSBOOK [] = {'A','D','D','R','E','S','S','B','O','O','K',0}
 
static const WCHAR TRUSTEDPUBLISHER [] = {'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r',0}
 
static const WCHAR DISALLOWED [] = {'D','i','s','a','l','l','o','w','e','d',0}
 
static const LPCWSTR LocalizedKeys [] = {ROOT,MY,CA,ADDRESSBOOK,TRUSTEDPUBLISHER,DISALLOWED}
 
static WCHAR LocalizedNames [ARRAY_SIZE(LocalizedKeys)][256]
 
static const WCHAR nameW [] = { 'N','a','m','e',0 }
 
static const WCHAR algidW [] = { 'A','l','g','i','d',0 }
 
static const WCHAR extraW [] = { 'E','x','t','r','a','I','n','f','o',0 }
 
static const WCHAR cngalgidW [] = { 'C','N','G','A','l','g','i','d',0 }
 
static const WCHAR cngextraalgidW [] = { 'C','N','G','E','x','t','r','a','A','l','g','i','d',0 }
 
static const WCHAR flagsW [] = { 'F','l','a','g','s',0 }
 
static CRITICAL_SECTION oidInfoCS = { &oidInfoCSDebug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG oidInfoCSDebug
 
static struct list oidInfo = { &oidInfo, &oidInfo }
 
static const WCHAR tripledes [] = { '3','d','e','s',0 }
 
static const WCHAR cms3deswrap []
 
static const WCHAR cmsrc2wrap [] = { 'C','M','S','R','C','2','w','r','a','p',0 }
 
static const WCHAR des [] = { 'd','e','s',0 }
 
static const WCHAR md2 [] = { 'm','d','2',0 }
 
static const WCHAR md4 [] = { 'm','d','4',0 }
 
static const WCHAR md5 [] = { 'm','d','5',0 }
 
static const WCHAR rc2 [] = { 'r','c','2',0 }
 
static const WCHAR rc4 [] = { 'r','c','4',0 }
 
static const WCHAR sha [] = { 's','h','a',0 }
 
static const WCHAR sha1 [] = { 's','h','a','1',0 }
 
static const WCHAR sha256 [] = { 's','h','a','2','5','6',0 }
 
static const WCHAR sha384 [] = { 's','h','a','3','8','4',0 }
 
static const WCHAR sha512 [] = { 's','h','a','5','1','2',0 }
 
static const WCHAR RSA [] = { 'R','S','A',0 }
 
static const WCHAR RSA_KEYX [] = { 'R','S','A','_','K','E','Y','X',0 }
 
static const WCHAR RSA_SIGN [] = { 'R','S','A','_','S','I','G','N',0 }
 
static const WCHAR DSA [] = { 'D','S','A',0 }
 
static const WCHAR DSA_SIGN [] = { 'D','S','A','_','S','I','G','N',0 }
 
static const WCHAR DH [] = { 'D','H',0 }
 
static const WCHAR DSS [] = { 'D','S','S',0 }
 
static const WCHAR mosaicKMandUpdSig []
 
static const WCHAR ESDH [] = { 'E','S','D','H',0 }
 
static const WCHAR NO_SIGN [] = { 'N','O','S','I','G','N',0 }
 
static const WCHAR dsaSHA1 [] = { 'd','s','a','S','H','A','1',0 }
 
static const WCHAR md2RSA [] = { 'm','d','2','R','S','A',0 }
 
static const WCHAR md4RSA [] = { 'm','d','4','R','S','A',0 }
 
static const WCHAR md5RSA [] = { 'm','d','5','R','S','A',0 }
 
static const WCHAR shaDSA [] = { 's','h','a','D','S','A',0 }
 
static const WCHAR sha1DSA [] = { 's','h','a','1','D','S','A',0 }
 
static const WCHAR shaRSA [] = { 's','h','a','R','S','A',0 }
 
static const WCHAR sha1RSA [] = { 's','h','a','1','R','S','A',0 }
 
static const WCHAR sha256RSA [] = { 's','h','a','2','5','6','R','S','A',0 }
 
static const WCHAR sha384RSA [] = { 's','h','a','3','8','4','R','S','A',0 }
 
static const WCHAR sha512RSA [] = { 's','h','a','5','1','2','R','S','A',0 }
 
static const WCHAR mosaicUpdatedSig []
 
static const WCHAR sha256ECDSA [] = { 's','h','a','2','5','6','E','C','D','S','A',0 }
 
static const WCHAR sha384ECDSA [] = { 's','h','a','3','8','4','E','C','D','S','A',0 }
 
static const WCHAR CN [] = { 'C','N',0 }
 
static const WCHAR L [] = { 'L',0 }
 
static const WCHAR O [] = { 'O',0 }
 
static const WCHAR OU [] = { 'O','U',0 }
 
static const WCHAR E [] = { 'E',0 }
 
static const WCHAR C [] = { 'C',0 }
 
static const WCHAR S [] = { 'S',0 }
 
static const WCHAR ST [] = { 'S','T',0 }
 
static const WCHAR STREET [] = { 'S','T','R','E','E','T',0 }
 
static const WCHAR T [] = { 'T',0 }
 
static const WCHAR Title [] = { 'T','i','t','l','e',0 }
 
static const WCHAR G [] = { 'G',0 }
 
static const WCHAR GivenName [] = { 'G','i','v','e','n','N','a','m','e',0 }
 
static const WCHAR I [] = { 'I',0 }
 
static const WCHAR Initials [] = { 'I','n','i','t','i','a','l','s',0 }
 
static const WCHAR SN [] = { 'S','N',0 }
 
static const WCHAR DC [] = { 'D','C',0 }
 
static const WCHAR Description []
 
static const WCHAR PostalCode [] = { 'P','o','s','t','a','l','C','o','d','e',0 }
 
static const WCHAR POBox [] = { 'P','O','B','o','x',0 }
 
static const WCHAR Phone [] = { 'P','h','o','n','e',0 }
 
static const WCHAR X21Address [] = { 'X','2','1','A','d','d','r','e','s','s',0 }
 
static const WCHAR dnQualifier []
 
static const WCHAR SpcSpAgencyInfo [] = { 'S','p','c','S','p','A','g','e','n','c','y','I','n','f','o',0 }
 
static const WCHAR SpcFinancialCriteria [] = { 'S','p','c','F','i','n','a','n','c','i','a','l','C','r','i','t','e','r','i','a',0 }
 
static const WCHAR SpcMinimalCriteria [] = { 'S','p','c','M','i','n','i','m','a','l','C','r','i','t','e','r','i','a',0 }
 
static const WCHAR Email [] = { 'E','m','a','i','l',0 }
 
static const WCHAR GN [] = { 'G','N',0 }
 
static const WCHAR SERIALNUMBER [] = { 'S','E','R','I','A','L','N','U','M','B','E','R',0 }
 
static const DWORD noNullFlag = CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
 
static const DWORD mosaicFlags
 
static const CRYPT_DATA_BLOB noNullBlob
 
static const CRYPT_DATA_BLOB mosaicFlagsBlob
 
static const DWORD rsaSign = CALG_RSA_SIGN
 
static const DWORD dssSign [2]
 
static const DWORD mosaicSign [2]
 
static const DWORD ecdsaSign [2] = { CALG_OID_INFO_PARAMETERS, CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG }
 
static const CRYPT_DATA_BLOB rsaSignBlob
 
static const CRYPT_DATA_BLOB dssSignBlob
 
static const CRYPT_DATA_BLOB mosaicSignBlob
 
static const CRYPT_DATA_BLOB ecdsaSignBlob = { sizeof(ecdsaSign), (BYTE *)ecdsaSign }
 
static const DWORD ia5String [] = { CERT_RDN_IA5_STRING, 0 }
 
static const DWORD numericString [] = { CERT_RDN_NUMERIC_STRING, 0 }
 
static const DWORD printableString [] = { CERT_RDN_PRINTABLE_STRING, 0 }
 
static const DWORD domainCompTypes []
 
static const CRYPT_DATA_BLOB ia5StringBlob
 
static const CRYPT_DATA_BLOB numericStringBlob
 
static const CRYPT_DATA_BLOB printableStringBlob
 
static const CRYPT_DATA_BLOB domainCompTypesBlob
 
static const struct OIDInfoConstructor oidInfoConstructors []
 

Macro Definition Documentation

◆ CRYPT_OID_INFO_HAS_EXTRA_FIELDS

#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

Definition at line 32 of file oid.c.

◆ NONAMELESSUNION

#define NONAMELESSUNION

Definition at line 29 of file oid.c.

Function Documentation

◆ CertAlgIdToOID()

LPCSTR WINAPI CertAlgIdToOID ( DWORD  dwAlgId)

Definition at line 1888 of file oid.c.

1889 {
1890  LPCSTR ret;
1892  &dwAlgId, 0);
1893 
1894  if (info)
1895  ret = info->pszOID;
1896  else
1897  ret = NULL;
1898  return ret;
1899 }
smooth NULL
Definition: ftsmooth.c:416
const char * LPCSTR
Definition: xmlstorage.h:183
int ret
#define CRYPT_OID_INFO_ALGID_KEY
Definition: wincrypt.h:1704
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
Definition: oid.c:1799

Referenced by CRYPT_EncodePKCSDigestedData(), CRYPT_ExportPublicKeyInfoEx(), and testAlgIDToOID().

◆ CertOIDToAlgId()

DWORD WINAPI CertOIDToAlgId ( LPCSTR  pszObjId)

Definition at line 1901 of file oid.c.

1902 {
1903  DWORD ret;
1905  (void *)pszObjId, 0);
1906 
1907  if (info)
1908  ret = info->u.Algid;
1909  else
1910  ret = 0;
1911  return ret;
1912 }
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
#define CRYPT_OID_INFO_OID_KEY
Definition: wincrypt.h:1702
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
Definition: oid.c:1799

Referenced by CDecodeMsg_FinalizeHashedContent(), CEnvelopedEncodeMsg_Open(), CHashEncodeMsg_Open(), CRYPT_ImportKeyTrans(), CRYPT_IsValidSigner(), CSignedMsgData_ConstructSignerHandles(), SOFTPUB_VerifyImageHash(), and testOIDToAlgID().

◆ CRYPT_AddStringToMultiString()

static LPWSTR CRYPT_AddStringToMultiString ( LPWSTR  multi,
LPCWSTR  toAdd,
DWORD  index 
)
static

Definition at line 958 of file oid.c.

960 {
961  LPWSTR ret;
962 
963  if (!multi)
964  {
965  /* FIXME: ignoring index, is that okay? */
966  ret = CryptMemAlloc((lstrlenW(toAdd) + 2) * sizeof(WCHAR));
967  if (ret)
968  {
969  /* copy string, including NULL terminator */
970  memcpy(ret, toAdd, (lstrlenW(toAdd) + 1) * sizeof(WCHAR));
971  /* add terminating empty string */
972  *(ret + lstrlenW(toAdd) + 1) = 0;
973  }
974  }
975  else
976  {
978 
979  ret = CryptMemRealloc(multi, (len + lstrlenW(toAdd) + 1) *
980  sizeof(WCHAR));
981  if (ret)
982  {
983  LPWSTR spotToAdd;
984 
986  spotToAdd = ret + len - 1;
987  else
988  {
989  DWORD i;
990 
991  /* FIXME: if index is too large for the string, toAdd is
992  * added to the end. Is that okay?
993  */
994  for (i = 0, spotToAdd = ret; i < index && *spotToAdd;
995  spotToAdd += lstrlenW(spotToAdd) + 1)
996  ;
997  }
998  if (spotToAdd)
999  {
1000  /* Copy existing string "right" */
1001  memmove(spotToAdd + lstrlenW(toAdd) + 1, spotToAdd,
1002  (len - (spotToAdd - ret)) * sizeof(WCHAR));
1003  /* Copy new string */
1004  memcpy(spotToAdd, toAdd, (lstrlenW(toAdd) + 1) * sizeof(WCHAR));
1005  }
1006  else
1007  {
1008  CryptMemFree(ret);
1009  ret = NULL;
1010  }
1011  }
1012  }
1013  return ret;
1014 }
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
#define lstrlenW
Definition: compat.h:415
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
Definition: glfuncs.h:248
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
smooth NULL
Definition: ftsmooth.c:416
GLuint index
Definition: glext.h:6031
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
LPVOID WINAPI CryptMemRealloc(LPVOID pv, ULONG cbSize)
Definition: main.c:136
int ret
#define CRYPT_REGISTER_LAST_INDEX
Definition: wincrypt.h:2543
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
WCHAR * LPWSTR
Definition: xmlstorage.h:184
static DWORD CRYPT_GetMultiStringCharacterLen(LPCWSTR multi)
Definition: oid.c:940

Referenced by CryptRegisterDefaultOIDFunction().

◆ CRYPT_FindStringInMultiString()

static LPCWSTR CRYPT_FindStringInMultiString ( LPCWSTR  multi,
LPCWSTR  toFind 
)
static

Definition at line 928 of file oid.c.

929 {
930  LPCWSTR ret = NULL, ptr;
931 
932  for (ptr = multi; ptr && *ptr && !ret; ptr += lstrlenW(ptr) + 1)
933  {
934  if (!lstrcmpiW(ptr, toFind))
935  ret = ptr;
936  }
937  return ret;
938 }
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define lstrlenW
Definition: compat.h:415
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:194
static PVOID ptr
Definition: dispmode.c:27
smooth NULL
Definition: ftsmooth.c:416
int ret

Referenced by CRYPT_RemoveStringFromMultiString(), and CryptRegisterDefaultOIDFunction().

◆ CRYPT_GetDefaultOIDDlls()

static LPWSTR CRYPT_GetDefaultOIDDlls ( HKEY  key)
static

Definition at line 1073 of file oid.c.

1074 {
1075  LONG r;
1076  DWORD type, size;
1077  LPWSTR dlls;
1078 
1080  if (r == ERROR_SUCCESS && type == REG_MULTI_SZ)
1081  {
1082  dlls = CryptMemAlloc(size);
1083  r = RegQueryValueExW(key, DllW, NULL, &type, (LPBYTE)dlls, &size);
1084  if (r != ERROR_SUCCESS)
1085  {
1086  CryptMemFree(dlls);
1087  dlls = NULL;
1088  }
1089  }
1090  else
1091  dlls = NULL;
1092  return dlls;
1093 }
static const WCHAR DllW[]
Definition: oid.c:43
#define ERROR_SUCCESS
Definition: deptool.c:10
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
unsigned char * LPBYTE
Definition: typedefs.h:52
long LONG
Definition: pedump.c:60
#define REG_MULTI_SZ
Definition: nt_native.h:1501
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
unsigned long DWORD
Definition: ntddk_ex.h:95
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
WCHAR * LPWSTR
Definition: xmlstorage.h:184
Definition: path.c:41

Referenced by CryptRegisterDefaultOIDFunction(), and CryptUnregisterDefaultOIDFunction().

◆ CRYPT_GetDefaultOIDKey()

static BOOL CRYPT_GetDefaultOIDKey ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
PHKEY  key 
)
static

Definition at line 1050 of file oid.c.

1052 {
1053  LPSTR keyName;
1054  LONG r;
1055 
1056  keyName = CRYPT_GetKeyName(dwEncodingType, pszFuncName, "DEFAULT");
1057  TRACE("Key name is %s\n", debugstr_a(keyName));
1058 
1059  if (!keyName)
1060  return FALSE;
1061 
1063  NULL, key, NULL);
1064  CryptMemFree(keyName);
1065  if (r != ERROR_SUCCESS)
1066  {
1067  SetLastError(r);
1068  return FALSE;
1069  }
1070  return TRUE;
1071 }
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
char * LPSTR
Definition: xmlstorage.h:182
long LONG
Definition: pedump.c:60
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
#define SetLastError(x)
Definition: compat.h:417
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
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)
Definition: reg.c:1029
Definition: path.c:41
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by CryptRegisterDefaultOIDFunction(), and CryptUnregisterDefaultOIDFunction().

◆ CRYPT_GetFuncFromDll()

static BOOL CRYPT_GetFuncFromDll ( LPCWSTR  dll,
LPCSTR  func,
HMODULE lib,
void **  ppvFuncAddr 
)
static

Definition at line 491 of file oid.c.

493 {
494  BOOL ret = FALSE;
495 
496  *lib = LoadLibraryW(dll);
497  if (*lib)
498  {
499  *ppvFuncAddr = GetProcAddress(*lib, func);
500  if (*ppvFuncAddr)
501  ret = TRUE;
502  else
503  {
504  FreeLibrary(*lib);
505  *lib = NULL;
506  }
507  }
508  return ret;
509 }
GLenum func
Definition: glext.h:6028
#define TRUE
Definition: types.h:120
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void ** ppvFuncAddr
Definition: wincrypt.h:4638
static HMODULE dll
Definition: str.c:188
unsigned int BOOL
Definition: ntddk_ex.h:94
#define LoadLibraryW(x)
Definition: compat.h:412
smooth NULL
Definition: ftsmooth.c:416
#define FreeLibrary(x)
Definition: compat.h:413
int ret
#define GetProcAddress(x, y)
Definition: compat.h:418

Referenced by CryptGetDefaultOIDFunctionAddress().

◆ CRYPT_GetFuncFromReg()

static BOOL CRYPT_GetFuncFromReg ( DWORD  dwEncodingType,
LPCSTR  pszOID,
LPCSTR  szFuncName,
LPVOID ppvFuncAddr,
HCRYPTOIDFUNCADDR phFuncAddr 
)
static

Definition at line 298 of file oid.c.

300 {
301  BOOL ret = FALSE;
302  char *keyName;
303  const char *funcName;
304  HKEY key;
305  LSTATUS rc;
306 
308  rc = RegOpenKeyExA(HKEY_LOCAL_MACHINE, keyName, 0, KEY_READ, &key);
309  if (!rc)
310  {
311  DWORD type, size = 0;
312 
313  rc = RegQueryValueExA(key, "FuncName", NULL, &type, NULL, &size);
314  if ((!rc || rc == ERROR_MORE_DATA) && type == REG_SZ)
315  {
316  funcName = CryptMemAlloc(size);
317  rc = RegQueryValueExA(key, "FuncName", NULL, &type,
318  (LPBYTE)funcName, &size);
319  }
320  else
321  funcName = szFuncName;
322  rc = RegQueryValueExW(key, DllW, NULL, &type, NULL, &size);
323  if ((!rc || rc == ERROR_MORE_DATA) && type == REG_SZ)
324  {
325  LPWSTR dllName = CryptMemAlloc(size);
326 
327  if (dllName)
328  {
330  (LPBYTE)dllName, &size);
331  if (!rc)
332  {
333  HMODULE lib;
334 
335  /* This is a bit of a hack; MSDN describes a more
336  * complicated unload routine than this will allow.
337  * Still, this seems to suffice for now.
338  */
339  lib = LoadLibraryW(dllName);
340  if (lib)
341  {
342  *ppvFuncAddr = GetProcAddress(lib, funcName);
343  if (*ppvFuncAddr)
344  {
345  struct FuncAddr *addr =
346  CryptMemAlloc(sizeof(struct FuncAddr));
347 
348  if (addr)
349  {
350  addr->lib = lib;
351  addr->dllList = addr->currentDll = NULL;
352  *phFuncAddr = addr;
353  ret = TRUE;
354  }
355  else
356  {
357  *phFuncAddr = NULL;
358  FreeLibrary(lib);
359  }
360  }
361  else
362  {
363  /* Unload the library, the caller doesn't want
364  * to unload it when the return value is NULL.
365  */
366  FreeLibrary(lib);
367  }
368  }
369  }
370  else
371  SetLastError(rc);
372  CryptMemFree(dllName);
373  }
374  }
375  else
376  SetLastError(rc);
377  if (funcName != szFuncName)
378  CryptMemFree((char *)funcName);
379  RegCloseKey(key);
380  }
381  else
382  SetLastError(rc);
383  CryptMemFree(keyName);
384  return ret;
385 }
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4023
static const WCHAR DllW[]
Definition: oid.c:43
#define TRUE
Definition: types.h:120
#define KEY_READ
Definition: nt_native.h:1023
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void ** ppvFuncAddr
Definition: wincrypt.h:4638
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3331
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define LoadLibraryW(x)
Definition: compat.h:412
smooth NULL
Definition: ftsmooth.c:416
#define FreeLibrary(x)
Definition: compat.h:413
GLsizeiptr size
Definition: glext.h:5919
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
int ret
GLenum const GLvoid * addr
Definition: glext.h:9621
HKEY key
Definition: reg.c:42
HMODULE lib
Definition: oid.c:293
#define ERROR_MORE_DATA
Definition: dderror.h:13
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void _Inout_ HCRYPTOIDFUNCADDR * phFuncAddr
Definition: wincrypt.h:4638
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
#define GetProcAddress(x, y)
Definition: compat.h:418
Definition: oid.c:291
WCHAR * LPWSTR
Definition: xmlstorage.h:184
static const WCHAR szFuncName[]
Definition: sip.c:62
Definition: path.c:41
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define REG_SZ
Definition: layer.c:22

Referenced by CryptGetOIDFunctionAddress().

◆ CRYPT_GetKeyName()

static char* CRYPT_GetKeyName ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID 
)
static

Definition at line 157 of file oid.c.

159 {
160  static const char szEncodingTypeFmt[] =
161  "Software\\Microsoft\\Cryptography\\OID\\EncodingType %d\\%s\\%s";
162  UINT len;
163  char numericOID[7]; /* enough for "#65535" */
164  const char *oid;
165  LPSTR szKey;
166 
167  /* MSDN says the encoding type is a mask, but it isn't treated that way.
168  * (E.g., if dwEncodingType were 3, the key names "EncodingType 1" and
169  * "EncodingType 2" would be expected if it were a mask. Instead native
170  * stores values in "EncodingType 3".
171  */
172  if (IS_INTOID(pszOID))
173  {
174  snprintf(numericOID, sizeof(numericOID), "#%d", LOWORD(pszOID));
175  oid = numericOID;
176  }
177  else
178  oid = pszOID;
179 
180  /* This is enough: the lengths of the two string parameters are explicitly
181  * counted, and we need up to five additional characters for the encoding
182  * type. These are covered by the "%d", "%s", and "%s" characters in the
183  * format specifier that are removed by sprintf.
184  */
185  len = sizeof(szEncodingTypeFmt) + lstrlenA(pszFuncName) + lstrlenA(oid);
186  szKey = CryptMemAlloc(len);
187  if (szKey)
188  sprintf(szKey, szEncodingTypeFmt,
189  GET_CERT_ENCODING_TYPE(dwEncodingType), pszFuncName, oid);
190  return szKey;
191 }
#define snprintf
Definition: wintirpc.h:48
char * LPSTR
Definition: xmlstorage.h:182
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
#define sprintf(buf, format,...)
Definition: sprintf.c:55
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define IS_INTOID(x)
#define GET_CERT_ENCODING_TYPE(x)
Definition: wincrypt.h:2292
GLenum GLsizei len
Definition: glext.h:6722
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82

Referenced by CRYPT_GetDefaultOIDKey(), CRYPT_GetFuncFromReg(), CryptGetDefaultOIDDllList(), CryptGetOIDFunctionValue(), CryptRegisterOIDFunction(), CryptSetOIDFunctionValue(), and CryptUnregisterOIDFunction().

◆ CRYPT_GetMultiStringCharacterLen()

static DWORD CRYPT_GetMultiStringCharacterLen ( LPCWSTR  multi)
static

Definition at line 940 of file oid.c.

941 {
942  DWORD ret;
943 
944  if (multi)
945  {
946  LPCWSTR ptr;
947 
948  /* Count terminating empty string */
949  ret = 1;
950  for (ptr = multi; *ptr; ptr += lstrlenW(ptr) + 1)
951  ret += lstrlenW(ptr) + 1;
952  }
953  else
954  ret = 0;
955  return ret;
956 }
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define lstrlenW
Definition: compat.h:415
static PVOID ptr
Definition: dispmode.c:27
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret

Referenced by CRYPT_AddStringToMultiString(), CRYPT_RemoveStringFromMultiString(), and CRYPT_SetDefaultOIDDlls().

◆ crypt_oid_free()

void crypt_oid_free ( void  )

Definition at line 1920 of file oid.c.

1921 {
1923  free_oid_info();
1924 }
static void free_function_sets(void)
Definition: oid.c:87
static void free_oid_info(void)
Definition: oid.c:1761

Referenced by DllMain().

◆ crypt_oid_init()

void crypt_oid_init ( void  )

Definition at line 1914 of file oid.c.

1915 {
1916  init_oid_info();
1918 }
static void init_oid_info(void)
Definition: oid.c:1690
static void init_registered_oid_info(void)
Definition: oid.c:1650

Referenced by DllMain().

◆ CRYPT_RemoveStringFromMultiString()

static BOOL CRYPT_RemoveStringFromMultiString ( LPWSTR  multi,
LPCWSTR  toRemove 
)
static

Definition at line 1016 of file oid.c.

1017 {
1018  LPWSTR spotToRemove = (LPWSTR)CRYPT_FindStringInMultiString(multi,
1019  toRemove);
1020  BOOL ret;
1021 
1022  if (spotToRemove)
1023  {
1025 
1026  if (spotToRemove + lstrlenW(toRemove) + 2 >= multi + len)
1027  {
1028  /* Removing last string in list, terminate multi string directly */
1029  *spotToRemove = 0;
1030  *(spotToRemove + 1) = 0;
1031  }
1032  else
1033  {
1034  LPCWSTR nextStr = spotToRemove + lstrlenW(toRemove) + 1;
1035 
1036  /* Copy remainder of string "left" */
1037  memmove(spotToRemove, nextStr,
1038  (len - (nextStr - multi)) * sizeof(WCHAR));
1039  }
1040  ret = TRUE;
1041  }
1042  else
1043  {
1045  ret = FALSE;
1046  }
1047  return ret;
1048 }
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
#define TRUE
Definition: types.h:120
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
static LPCWSTR CRYPT_FindStringInMultiString(LPCWSTR multi, LPCWSTR toFind)
Definition: oid.c:928
#define lstrlenW
Definition: compat.h:415
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
int ret
GLenum GLsizei len
Definition: glext.h:6722
WCHAR * LPWSTR
Definition: xmlstorage.h:184
static DWORD CRYPT_GetMultiStringCharacterLen(LPCWSTR multi)
Definition: oid.c:940

Referenced by CryptUnregisterDefaultOIDFunction().

◆ CRYPT_SetDefaultOIDDlls()

static BOOL CRYPT_SetDefaultOIDDlls ( HKEY  key,
LPCWSTR  dlls 
)
inlinestatic

Definition at line 1095 of file oid.c.

1096 {
1098  LONG r;
1099 
1100  if ((r = RegSetValueExW(key, DllW, 0, REG_MULTI_SZ, (const BYTE *)dlls,
1101  len * sizeof (WCHAR))))
1102  SetLastError(r);
1103  return r == ERROR_SUCCESS;
1104 }
static const WCHAR DllW[]
Definition: oid.c:43
#define ERROR_SUCCESS
Definition: deptool.c:10
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
long LONG
Definition: pedump.c:60
#define REG_MULTI_SZ
Definition: nt_native.h:1501
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
GLenum GLsizei len
Definition: glext.h:6722
unsigned char BYTE
Definition: mem.h:68
Definition: path.c:41
static DWORD CRYPT_GetMultiStringCharacterLen(LPCWSTR multi)
Definition: oid.c:940

Referenced by CryptRegisterDefaultOIDFunction(), and CryptUnregisterDefaultOIDFunction().

◆ CryptEnumOIDInfo()

BOOL WINAPI CryptEnumOIDInfo ( DWORD  dwGroupId,
DWORD  dwFlags,
void pvArg,
PFN_CRYPT_ENUM_OID_INFO  pfnEnumOIDInfo 
)

Definition at line 1776 of file oid.c.

1778 {
1779  BOOL ret = TRUE;
1780  struct OIDInfo *info;
1781 
1782  TRACE("(%d, %08x, %p, %p)\n", dwGroupId, dwFlags, pvArg,
1783  pfnEnumOIDInfo);
1784 
1787  {
1788  if (!dwGroupId || dwGroupId == info->info.dwGroupId)
1789  {
1790  ret = pfnEnumOIDInfo(&info->info, pvArg);
1791  if (!ret)
1792  break;
1793  }
1794  }
1796  return ret;
1797 }
#define TRUE
Definition: types.h:120
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION oidInfoCS
Definition: oid.c:1198
struct _test_info info[]
Definition: SetCursorPos.c:19
static struct list oidInfo
Definition: oid.c:1206
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
int ret
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
uint32_t entry
Definition: isohybrid.c:63
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
Definition: oid.c:1566

Referenced by WTHelperGetKnownUsages().

◆ CryptFindLocalizedName()

LPCWSTR WINAPI CryptFindLocalizedName ( LPCWSTR  pwszCryptName)

Definition at line 1182 of file oid.c.

1183 {
1184  unsigned int i;
1185 
1186  for(i = 0; i < ARRAY_SIZE(LocalizedKeys); i++)
1187  {
1188  if(!lstrcmpiW(LocalizedKeys[i], pwszCryptName))
1189  {
1190  return LocalizedNames[i];
1191  }
1192  }
1193 
1194  FIXME("No name for: %s - stub\n",debugstr_w(pwszCryptName));
1195  return NULL;
1196 }
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:194
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
Definition: glfuncs.h:248
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define ARRAY_SIZE(a)
Definition: main.h:24
static const LPCWSTR LocalizedKeys[]
Definition: oid.c:77
static WCHAR LocalizedNames[ARRAY_SIZE(LocalizedKeys)][256]
Definition: oid.c:78

Referenced by enum_store_callback(), and show_cert_stores().

◆ CryptFindOIDInfo()

PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo ( DWORD  dwKeyType,
void pvKey,
DWORD  dwGroupId 
)

Definition at line 1799 of file oid.c.

1801 {
1803 
1804  TRACE("(%d, %p, %d)\n", dwKeyType, pvKey, dwGroupId);
1805 
1806  switch(dwKeyType)
1807  {
1809  {
1810  struct OIDInfo *info;
1811 
1812  TRACE("CRYPT_OID_INFO_ALGID_KEY: %d\n", *(DWORD *)pvKey);
1815  {
1816  if (info->info.u.Algid == *(DWORD *)pvKey &&
1817  (!dwGroupId || info->info.dwGroupId == dwGroupId))
1818  {
1819  ret = &info->info;
1820  break;
1821  }
1822  }
1824  break;
1825  }
1827  {
1828  struct OIDInfo *info;
1829 
1830  TRACE("CRYPT_OID_INFO_NAME_KEY: %s\n", debugstr_w(pvKey));
1833  {
1834  if (!lstrcmpW(info->info.pwszName, pvKey) &&
1835  (!dwGroupId || info->info.dwGroupId == dwGroupId))
1836  {
1837  ret = &info->info;
1838  break;
1839  }
1840  }
1842  break;
1843  }
1845  {
1846  struct OIDInfo *info;
1847  LPSTR oid = pvKey;
1848 
1849  TRACE("CRYPT_OID_INFO_OID_KEY: %s\n", debugstr_a(oid));
1852  {
1853  if (!lstrcmpA(info->info.pszOID, oid) &&
1854  (!dwGroupId || info->info.dwGroupId == dwGroupId))
1855  {
1856  ret = &info->info;
1857  break;
1858  }
1859  }
1861  break;
1862  }
1864  {
1865  struct OIDInfo *info;
1866 
1867  TRACE("CRYPT_OID_INFO_SIGN_KEY: %d\n", *(DWORD *)pvKey);
1870  {
1871  if (info->info.u.Algid == *(DWORD *)pvKey &&
1872  info->info.ExtraInfo.cbData >= sizeof(DWORD) &&
1873  *(DWORD *)info->info.ExtraInfo.pbData ==
1874  *(DWORD *)((LPBYTE)pvKey + sizeof(DWORD)) &&
1875  (!dwGroupId || info->info.dwGroupId == dwGroupId))
1876  {
1877  ret = &info->info;
1878  break;
1879  }
1880  }
1882  break;
1883  }
1884  }
1885  return ret;
1886 }
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
#define CRYPT_OID_INFO_SIGN_KEY
Definition: wincrypt.h:1705
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
char * LPSTR
Definition: xmlstorage.h:182
static CRITICAL_SECTION oidInfoCS
Definition: oid.c:1198
struct _test_info info[]
Definition: SetCursorPos.c:19
static struct list oidInfo
Definition: oid.c:1206
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
unsigned char * LPBYTE
Definition: typedefs.h:52
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
uint32_t entry
Definition: isohybrid.c:63
#define CRYPT_OID_INFO_OID_KEY
Definition: wincrypt.h:1702
#define CRYPT_OID_INFO_ALGID_KEY
Definition: wincrypt.h:1704
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
Definition: oid.c:1566
#define CRYPT_OID_INFO_NAME_KEY
Definition: wincrypt.h:1703

Referenced by add_cert_extension_detail(), add_oid_text_to_control(), cert_name_to_str_with_indent(), CertAlgIdToOID(), CertGetPublicKeyLength(), CertNameToStrA(), CertOIDToAlgId(), CertStrToNameW(), CRYPT_FormatEnhancedKeyUsage(), CRYPT_VerifyCertSignatureFromPublicKeyInfo(), CryptHashToBeSigned(), CryptSignCertificate(), field_format_public_key(), find_oid_in_list(), get_cert_usages(), initialize_purpose_selection(), request_query_option(), show_cert_usages(), test_findOIDInfo(), and test_registerOIDInfo().

◆ CryptFreeOIDFunctionAddress()

BOOL WINAPI CryptFreeOIDFunctionAddress ( HCRYPTOIDFUNCADDR  hFuncAddr,
DWORD  dwFlags 
)

Definition at line 468 of file oid.c.

470 {
471  TRACE("(%p, %08x)\n", hFuncAddr, dwFlags);
472 
473  /* FIXME: as MSDN states, need to check for DllCanUnloadNow in the DLL,
474  * and only unload it if it can be unloaded. Also need to implement ref
475  * counting on the functions.
476  */
477  if (hFuncAddr)
478  {
479  struct FuncAddr *addr = hFuncAddr;
480 
481  if (!is_module_registered(addr->lib))
482  {
483  CryptMemFree(addr->dllList);
484  FreeLibrary(addr->lib);
486  }
487  }
488  return TRUE;
489 }
#define TRUE
Definition: types.h:120
static BOOL is_module_registered(HMODULE hModule)
Definition: oid.c:436
#define TRACE(s)
Definition: solgame.cpp:4
#define FreeLibrary(x)
Definition: compat.h:413
GLenum const GLvoid * addr
Definition: glext.h:9621
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
Definition: oid.c:291

Referenced by CertVerifyCertificateChainPolicy(), CertVerifyRevocation(), CRYPT_ExportEncryptedKey(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_GenKey(), CRYPT_ImportEncryptedKey(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_ProvOpenStore(), CryptDecodeObjectEx(), CryptEncodeObject(), CryptEncodeObjectEx(), CryptExportPublicKeyInfoEx(), CryptFormatObject(), CryptGetDefaultOIDFunctionAddress(), CryptGetObjectUrl(), CryptImportPublicKeyInfoEx(), CryptRetrieveObjectByUrlW(), and test_installOIDFunctionAddress().

◆ CryptGetDefaultOIDDllList()

BOOL WINAPI CryptGetDefaultOIDDllList ( HCRYPTOIDFUNCSET  hFuncSet,
DWORD  dwEncodingType,
LPWSTR  pwszDllList,
DWORD pcchDllList 
)

Definition at line 193 of file oid.c.

195 {
196  BOOL ret = TRUE;
197  struct OIDFunctionSet *set = hFuncSet;
198  char *keyName;
199  HKEY key;
200  LSTATUS rc;
201 
202  TRACE("(%p, %d, %p, %p)\n", hFuncSet, dwEncodingType, pwszDllList,
203  pcchDllList);
204 
205  keyName = CRYPT_GetKeyName(dwEncodingType, set->name, "DEFAULT");
206  rc = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keyName, 0, NULL, 0,
207  KEY_READ, NULL, &key, NULL);
208  if (!rc)
209  {
210  DWORD size = *pcchDllList * sizeof(WCHAR);
211 
213  &size);
214  if (!rc)
215  *pcchDllList = size / sizeof(WCHAR);
216  else
217  {
218  /* No value, return an empty list */
219  if (pwszDllList && *pcchDllList)
220  *pwszDllList = '\0';
221  *pcchDllList = 1;
222  }
223  RegCloseKey(key);
224  }
225  else
226  {
227  /* No value, return an empty list */
228  if (pwszDllList && *pcchDllList)
229  *pwszDllList = '\0';
230  *pcchDllList = 1;
231  }
232  CryptMemFree(keyName);
233 
234  return ret;
235 }
static const WCHAR DllW[]
Definition: oid.c:43
#define TRUE
Definition: types.h:120
#define KEY_READ
Definition: nt_native.h:1023
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
_In_ DWORD _Out_writes_to_opt_ pcchDllList _Post_ _NullNull_terminated_ WCHAR _Inout_ DWORD * pcchDllList
Definition: wincrypt.h:4630
_In_ DWORD _Out_writes_to_opt_ pcchDllList _Post_ _NullNull_terminated_ WCHAR * pwszDllList
Definition: wincrypt.h:4630
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
int ret
HKEY key
Definition: reg.c:42
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
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)
Definition: reg.c:1029
Definition: _set.h:46
Definition: path.c:41
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by CertVerifyRevocation(), CryptGetDefaultOIDFunctionAddress(), and test_oidFunctionSet().

◆ CryptGetDefaultOIDFunctionAddress()

BOOL WINAPI CryptGetDefaultOIDFunctionAddress ( HCRYPTOIDFUNCSET  hFuncSet,
DWORD  dwEncodingType,
LPCWSTR  pwszDll,
DWORD  dwFlags,
void **  ppvFuncAddr,
HCRYPTOIDFUNCADDR phFuncAddr 
)

Definition at line 511 of file oid.c.

514 {
515  struct OIDFunctionSet *set = hFuncSet;
516  BOOL ret = FALSE;
517 
518  TRACE("(%p, %d, %s, %08x, %p, %p)\n", hFuncSet, dwEncodingType,
520 
521  if (pwszDll)
522  {
523  HMODULE lib;
524 
525  *phFuncAddr = NULL;
527  if (ret)
528  {
529  struct FuncAddr *addr = CryptMemAlloc(sizeof(struct FuncAddr));
530 
531  if (addr)
532  {
533  addr->lib = lib;
534  addr->dllList = addr->currentDll = NULL;
535  *phFuncAddr = addr;
536  }
537  else
538  {
539  FreeLibrary(lib);
540  *ppvFuncAddr = NULL;
542  ret = FALSE;
543  }
544  }
545  else
547  }
548  else
549  {
550  struct FuncAddr *addr = *phFuncAddr;
551 
552  if (!addr)
553  {
554  DWORD size;
555 
557  &size);
558  if (ret)
559  {
560  LPWSTR dllList = CryptMemAlloc(size * sizeof(WCHAR));
561 
562  if (dllList)
563  {
565  dllList, &size);
566  if (ret)
567  {
568  addr = CryptMemAlloc(sizeof(struct FuncAddr));
569  if (addr)
570  {
571  addr->dllList = dllList;
572  addr->currentDll = dllList;
573  addr->lib = NULL;
574  *phFuncAddr = addr;
575  }
576  else
577  {
580  ret = FALSE;
581  }
582  }
583  }
584  else
585  {
587  ret = FALSE;
588  }
589  }
590  }
591  if (addr)
592  {
593  if (!*addr->currentDll)
594  {
597  *phFuncAddr = NULL;
598  ret = FALSE;
599  }
600  else
601  {
602  /* FIXME: as elsewhere, can't free until DllCanUnloadNow says
603  * it's possible, and should defer unloading for some time to
604  * avoid repeated LoadLibrary/FreeLibrary on the same dll.
605  */
606  FreeLibrary(addr->lib);
607  ret = CRYPT_GetFuncFromDll(addr->currentDll, set->name,
608  &addr->lib, ppvFuncAddr);
609  if (ret)
610  {
611  /* Move past the current DLL */
612  addr->currentDll += lstrlenW(addr->currentDll) + 1;
613  *phFuncAddr = addr;
614  }
615  else
616  {
619  *phFuncAddr = NULL;
620  }
621  }
622  }
623  }
624  return ret;
625 }
static BOOL CRYPT_GetFuncFromDll(LPCWSTR dll, LPCSTR func, HMODULE *lib, void **ppvFuncAddr)
Definition: oid.c:491
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void ** ppvFuncAddr
Definition: wincrypt.h:4638
#define lstrlenW
Definition: compat.h:415
LPWSTR dllList
Definition: oid.c:294
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define debugstr_w
Definition: kernel32.h:32
BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
Definition: oid.c:193
smooth NULL
Definition: ftsmooth.c:416
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define TRACE(s)
Definition: solgame.cpp:4
#define FreeLibrary(x)
Definition: compat.h:413
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
int ret
GLenum const GLvoid * addr
Definition: glext.h:9621
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
HMODULE lib
Definition: oid.c:293
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void _Inout_ HCRYPTOIDFUNCADDR * phFuncAddr
Definition: wincrypt.h:4638
_In_ DWORD _In_opt_ LPCWSTR pwszDll
Definition: wincrypt.h:4638
BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
Definition: oid.c:468
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
Definition: oid.c:291
WCHAR * LPWSTR
Definition: xmlstorage.h:184
Definition: _set.h:46
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13

Referenced by CertVerifyRevocation(), and test_getDefaultOIDFunctionAddress().

◆ CryptGetOIDFunctionAddress()

BOOL WINAPI CryptGetOIDFunctionAddress ( HCRYPTOIDFUNCSET  hFuncSet,
DWORD  dwEncodingType,
LPCSTR  pszOID,
DWORD  dwFlags,
void **  ppvFuncAddr,
HCRYPTOIDFUNCADDR phFuncAddr 
)

Definition at line 387 of file oid.c.

390 {
391  BOOL ret = FALSE;
392  struct OIDFunctionSet *set = hFuncSet;
393 
394  TRACE("(%p, %d, %s, %08x, %p, %p)\n", hFuncSet, dwEncodingType,
396 
397  *ppvFuncAddr = NULL;
399  {
400  struct OIDFunction *function;
401 
403  LIST_FOR_EACH_ENTRY(function, &set->functions, struct OIDFunction, next)
404  {
405  if (function->encoding == GET_CERT_ENCODING_TYPE(dwEncodingType))
406  {
407  if (!IS_INTOID(pszOID))
408  {
409  if (!IS_INTOID(function->entry.pszOID) &&
410  !strcasecmp(function->entry.pszOID, pszOID))
411  {
412  *ppvFuncAddr = function->entry.pvFuncAddr;
413  *phFuncAddr = NULL; /* FIXME: what should it be? */
414  ret = TRUE;
415  break;
416  }
417  }
418  else if (function->entry.pszOID == pszOID)
419  {
420  *ppvFuncAddr = function->entry.pvFuncAddr;
421  *phFuncAddr = NULL; /* FIXME: what should it be? */
422  ret = TRUE;
423  break;
424  }
425  }
426  }
428  }
429  if (!*ppvFuncAddr)
432  TRACE("returning %d\n", ret);
433  return ret;
434 }
#define TRUE
Definition: types.h:120
#define strcasecmp
Definition: fake.h:9
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void ** ppvFuncAddr
Definition: wincrypt.h:4638
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define IS_INTOID(x)
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
#define GET_CERT_ENCODING_TYPE(x)
Definition: wincrypt.h:2292
#define CRYPT_GET_INSTALLED_OID_FUNC_FLAG
Definition: wincrypt.h:2540
static BOOL CRYPT_GetFuncFromReg(DWORD dwEncodingType, LPCSTR pszOID, LPCSTR szFuncName, LPVOID *ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:298
int ret
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
_In_ DWORD _In_opt_ LPCWSTR _In_ DWORD _Outptr_ void _Inout_ HCRYPTOIDFUNCADDR * phFuncAddr
Definition: wincrypt.h:4638
static unsigned __int64 next
Definition: rand_nt.c:6
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
Definition: _set.h:46

Referenced by CertVerifyCertificateChainPolicy(), CRYPT_ExportEncryptedKey(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_GenKey(), CRYPT_GetCreateFunction(), CRYPT_GetRetrieveFunction(), CRYPT_ImportEncryptedKey(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_LoadDecoderExFunc(), CRYPT_LoadDecoderFunc(), CRYPT_LoadEncoderExFunc(), CRYPT_LoadEncoderFunc(), CRYPT_ProvOpenStore(), CryptExportPublicKeyInfoEx(), CryptFormatObject(), CryptGetObjectUrl(), CryptImportPublicKeyInfoEx(), test_installOIDFunctionAddress(), and test_oidFunctionSet().

◆ CryptGetOIDFunctionValue()

BOOL WINAPI CryptGetOIDFunctionValue ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
LPCWSTR  pwszValueName,
DWORD pdwValueType,
BYTE pbValueData,
DWORD pcbValueData 
)

Definition at line 854 of file oid.c.

857 {
858  LPSTR szKey;
859  LONG rc;
860  HKEY hKey;
861 
862  TRACE("%x %s %s %s %p %p %p\n", dwEncodingType, debugstr_a(pszFuncName),
863  debugstr_a(pszOID), debugstr_w(pwszValueName), pdwValueType, pbValueData,
864  pcbValueData);
865 
867  return TRUE;
868 
869  if (!pszFuncName || !pszOID || !pwszValueName)
870  {
872  return FALSE;
873  }
874 
875  szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
876  rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
877  CryptMemFree(szKey);
878  if (rc)
879  SetLastError(rc);
880  else
881  {
882  rc = RegQueryValueExW(hKey, pwszValueName, NULL, pdwValueType,
883  pbValueData, pcbValueData);
884  if (rc)
885  SetLastError(rc);
886  RegCloseKey(hKey);
887  }
888  return !rc;
889 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3257
#define TRUE
Definition: types.h:120
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
char * LPSTR
Definition: xmlstorage.h:182
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
long LONG
Definition: pedump.c:60
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
#define debugstr_a
Definition: kernel32.h:31
_In_z_ PCWSTR pwszValueName
Definition: ntuser.h:36
#define GET_CERT_ENCODING_TYPE(x)
Definition: wincrypt.h:2292
#define SetLastError(x)
Definition: compat.h:417
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

◆ CryptInitOIDFunctionSet()

HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet ( LPCSTR  pszFuncName,
DWORD  dwFlags 
)

Definition at line 114 of file oid.c.

116 {
117  struct OIDFunctionSet *cursor, *ret = NULL;
118 
119  TRACE("(%s, %x)\n", debugstr_a(pszFuncName), dwFlags);
120 
123  {
124  if (!strcasecmp(pszFuncName, cursor->name))
125  {
126  ret = cursor;
127  break;
128  }
129  }
130  if (!ret)
131  {
132  ret = CryptMemAlloc(sizeof(struct OIDFunctionSet));
133  if (ret)
134  {
135  memset(ret, 0, sizeof(*ret));
136  ret->name = CryptMemAlloc(strlen(pszFuncName) + 1);
137  if (ret->name)
138  {
140  ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": OIDFunctionSet.cs");
141  list_init(&ret->functions);
142  strcpy(ret->name, pszFuncName);
143  list_add_tail(&funcSets, &ret->next);
144  }
145  else
146  {
147  CryptMemFree(ret);
148  ret = NULL;
149  }
150  }
151  }
153 
154  return ret;
155 }
static struct list funcSets
Definition: oid.c:53
static CRITICAL_SECTION funcSetCS
Definition: oid.c:45
#define DWORD_PTR
Definition: treelist.c:76
#define strcasecmp
Definition: fake.h:9
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
int ret
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
static unsigned __int64 next
Definition: rand_nt.c:6
const char cursor[]
Definition: icontest.c:13
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define memset(x, y, z)
Definition: compat.h:39

Referenced by CertVerifyCertificateChainPolicy(), CertVerifyRevocation(), CRYPT_ExportEncryptedKey(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_GenKey(), CRYPT_GetCreateFunction(), CRYPT_GetRetrieveFunction(), CRYPT_ImportEncryptedKey(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_LoadDecoderExFunc(), CRYPT_LoadDecoderFunc(), CRYPT_LoadEncoderExFunc(), CRYPT_LoadEncoderFunc(), CRYPT_ProvOpenStore(), CryptExportPublicKeyInfoEx(), CryptFormatObject(), CryptGetObjectUrl(), CryptImportPublicKeyInfoEx(), CryptInstallOIDFunctionAddress(), test_getDefaultOIDFunctionAddress(), test_installOIDFunctionAddress(), and test_oidFunctionSet().

◆ CryptInstallOIDFunctionAddress()

BOOL WINAPI CryptInstallOIDFunctionAddress ( HMODULE  hModule,
DWORD  dwEncodingType,
LPCSTR  pszFuncName,
DWORD  cFuncEntry,
const CRYPT_OID_FUNC_ENTRY  rgFuncEntry[],
DWORD  dwFlags 
)

Definition at line 237 of file oid.c.

240 {
241  BOOL ret = TRUE;
242  struct OIDFunctionSet *set;
243 
244  TRACE("(%p, %d, %s, %d, %p, %08x)\n", hModule, dwEncodingType,
245  debugstr_a(pszFuncName), cFuncEntry, rgFuncEntry, dwFlags);
246 
247  set = CryptInitOIDFunctionSet(pszFuncName, 0);
248  if (set)
249  {
250  DWORD i;
251 
253  for (i = 0; ret && i < cFuncEntry; i++)
254  {
255  struct OIDFunction *func;
256 
257  TRACE("OID %s, func %p\n", debugstr_a(rgFuncEntry[i].pszOID), rgFuncEntry[i].pvFuncAddr);
258 
259  if (!IS_INTOID(rgFuncEntry[i].pszOID))
260  func = CryptMemAlloc(sizeof(struct OIDFunction)
261  + strlen(rgFuncEntry[i].pszOID) + 1);
262  else
263  func = CryptMemAlloc(sizeof(struct OIDFunction));
264  if (func)
265  {
267  if (!IS_INTOID(rgFuncEntry[i].pszOID))
268  {
269  LPSTR oid;
270 
271  oid = (LPSTR)((LPBYTE)func + sizeof(*func));
272  strcpy(oid, rgFuncEntry[i].pszOID);
273  func->entry.pszOID = oid;
274  }
275  else
276  func->entry.pszOID = rgFuncEntry[i].pszOID;
277  func->entry.pvFuncAddr = rgFuncEntry[i].pvFuncAddr;
278  func->hModule = hModule;
279  list_add_tail(&set->functions, &func->next);
280  }
281  else
282  ret = FALSE;
283  }
285  }
286  else
287  ret = FALSE;
288  return ret;
289 }
GLenum func
Definition: glext.h:6028
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
Definition: oid.c:114
#define TRUE
Definition: types.h:120
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
char * LPSTR
Definition: xmlstorage.h:182
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
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
Definition: glfuncs.h:248
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
unsigned char * LPBYTE
Definition: typedefs.h:52
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define IS_INTOID(x)
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
#define GET_CERT_ENCODING_TYPE(x)
Definition: wincrypt.h:2292
static UINT set(struct ID3DXConstantTableImpl *table, IDirect3DDevice9 *device, struct ctab_constant *constant, const void **indata, D3DXPARAMETER_TYPE intype, UINT *size, UINT incol, D3DXPARAMETER_CLASS inclass, UINT index, BOOL is_pointer)
Definition: shader.c:1095
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
Definition: _set.h:46
void * pvFuncAddr
Definition: wincrypt.h:1356
LPCSTR pszOID
Definition: wincrypt.h:1355
HMODULE hModule
Definition: animate.c:44

Referenced by test_installOIDFunctionAddress().

◆ CryptRegisterDefaultOIDFunction()

BOOL WINAPI CryptRegisterDefaultOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
DWORD  dwIndex,
LPCWSTR  pwszDll 
)

Definition at line 1109 of file oid.c.

1111 {
1112  HKEY key;
1113  LPWSTR dlls;
1114  BOOL ret = FALSE;
1115 
1116  TRACE("(%x, %s, %d, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
1117  dwIndex, debugstr_w(pwszDll));
1118 
1119  if (!pwszDll)
1120  {
1122  return FALSE;
1123  }
1124 
1125  if (!CRYPT_GetDefaultOIDKey(dwEncodingType, pszFuncName, &key))
1126  return FALSE;
1127 
1128  dlls = CRYPT_GetDefaultOIDDlls(key);
1131  else
1132  {
1133  dlls = CRYPT_AddStringToMultiString(dlls, pwszDll, dwIndex);
1134  if (dlls)
1135  ret = CRYPT_SetDefaultOIDDlls(key, dlls);
1136  }
1137  CryptMemFree(dlls);
1138  RegCloseKey(key);
1139  return ret;
1140 }
#define ERROR_FILE_EXISTS
Definition: winerror.h:165
static LPWSTR CRYPT_AddStringToMultiString(LPWSTR multi, LPCWSTR toAdd, DWORD index)
Definition: oid.c:958
static LPCWSTR CRYPT_FindStringInMultiString(LPCWSTR multi, LPCWSTR toFind)
Definition: oid.c:928
static LPWSTR CRYPT_GetDefaultOIDDlls(HKEY key)
Definition: oid.c:1073
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define debugstr_w
Definition: kernel32.h:32
#define E_INVALIDARG
Definition: ddrawi.h:101
static BOOL CRYPT_SetDefaultOIDDlls(HKEY key, LPCWSTR dlls)
Definition: oid.c:1095
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
#define SetLastError(x)
Definition: compat.h:417
int ret
HKEY key
Definition: reg.c:42
_In_ DWORD _In_opt_ LPCWSTR pwszDll
Definition: wincrypt.h:4638
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
static BOOL CRYPT_GetDefaultOIDKey(DWORD dwEncodingType, LPCSTR pszFuncName, PHKEY key)
Definition: oid.c:1050
WCHAR * LPWSTR
Definition: xmlstorage.h:184
Definition: path.c:41

Referenced by DllRegisterServer(), test_getDefaultOIDFunctionAddress(), and test_registerDefaultOIDFunction().

◆ CryptRegisterOIDFunction()

BOOL WINAPI CryptRegisterOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
LPCWSTR  pwszDll,
LPCSTR  pszOverrideFuncName 
)

Definition at line 647 of file oid.c.

649 {
650  LONG r;
651  HKEY hKey;
652  LPSTR szKey;
653 
654  TRACE("(%x, %s, %s, %s, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
655  debugstr_a(pszOID), debugstr_w(pwszDll), debugstr_a(pszOverrideFuncName));
656 
657  /* Native does nothing pwszDll is NULL */
658  if (!pwszDll)
659  return TRUE;
660 
661  /* I'm not matching MS bug for bug here, because I doubt any app depends on
662  * it: native "succeeds" if pszFuncName is NULL, but the nonsensical entry
663  * it creates would never be used.
664  */
665  if (!pszFuncName || !pszOID)
666  {
668  return FALSE;
669  }
670 
671  szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
672  TRACE("Key name is %s\n", debugstr_a(szKey));
673 
674  if (!szKey)
675  return FALSE;
676 
677  r = RegCreateKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
678  CryptMemFree(szKey);
679 
680  if (r != ERROR_SUCCESS) goto error_close_key;
681 
682  /* write the values */
683  if (pszOverrideFuncName)
684  {
685  r = RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
686  (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
687  if (r != ERROR_SUCCESS) goto error_close_key;
688  }
689  r = RegSetValueExW(hKey, DllW, 0, REG_SZ, (const BYTE*) pwszDll,
690  (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
691 
692 error_close_key:
693 
694  RegCloseKey(hKey);
695 
696  if (r != ERROR_SUCCESS)
697  {
698  SetLastError(r);
699  return FALSE;
700  }
701 
702  return TRUE;
703 }
static const WCHAR DllW[]
Definition: oid.c:43
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
char * LPSTR
Definition: xmlstorage.h:182
#define lstrlenW
Definition: compat.h:415
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
long LONG
Definition: pedump.c:60
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define debugstr_w
Definition: kernel32.h:32
#define E_INVALIDARG
Definition: ddrawi.h:101
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:1177
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
#define SetLastError(x)
Definition: compat.h:417
unsigned char BYTE
Definition: mem.h:68
_In_ DWORD _In_opt_ LPCWSTR pwszDll
Definition: wincrypt.h:4638
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
Definition: reg.c:4812
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define REG_SZ
Definition: layer.c:22

Referenced by DllRegisterServer(), and test_registerOIDFunction().

◆ CryptRegisterOIDInfo()

BOOL WINAPI CryptRegisterOIDInfo ( PCCRYPT_OID_INFO  info,
DWORD  flags 
)

Definition at line 750 of file oid.c.

751 {
752  char *key_name;
753  HKEY root = 0, key = 0;
754  DWORD err;
755 
756  TRACE("(%p, %x)\n", info, flags );
757 
758  if (!info || info->cbSize != sizeof(*info) || !info->pszOID)
759  {
761  return FALSE;
762  }
763 
764  if (!info->dwGroupId) return TRUE;
765 
766  key_name = CryptMemAlloc(strlen(info->pszOID) + 16);
767  if (!key_name)
768  {
770  goto done;
771  }
772 
773  err = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo",
774  0, NULL, 0, KEY_ALL_ACCESS, NULL, &root, NULL);
775  if (err != ERROR_SUCCESS) goto done;
776 
777  sprintf(key_name, "%s!%u", info->pszOID, info->dwGroupId);
779  if (err != ERROR_SUCCESS) goto done;
780 
781  if (flags)
782  {
783  err = RegSetValueExW(key, flagsW, 0, REG_DWORD, (const BYTE *)&flags, sizeof(flags));
784  if (err != ERROR_SUCCESS) goto done;
785  }
786 
787  if (info->pwszName)
788  {
789  err = RegSetValueExW(key, nameW, 0, REG_SZ, (const BYTE *)info->pwszName, (lstrlenW(info->pwszName) + 1) * sizeof(WCHAR));
790  if (err != ERROR_SUCCESS) goto done;
791  }
792 
793  if (info->u.Algid)
794  {
795  err = RegSetValueExW(key, algidW, 0, REG_DWORD, (const BYTE *)&info->u.Algid, sizeof(info->u.Algid));
796  if (err != ERROR_SUCCESS) goto done;
797  }
798 
799  if (info->ExtraInfo.cbData && info->ExtraInfo.pbData)
800  {
801  err = RegSetValueExW(key, extraW, 0, REG_BINARY, info->ExtraInfo.pbData, info->ExtraInfo.cbData);
802  if (err != ERROR_SUCCESS) goto done;
803  }
804 
805  if (info->pwszCNGAlgid)
806  {
807  err = RegSetValueExW(key, cngalgidW, 0, REG_SZ, (const BYTE *)info->pwszCNGAlgid, (lstrlenW(info->pwszCNGAlgid) + 1) * sizeof(WCHAR));
808  if (err != ERROR_SUCCESS) goto done;
809  }
810 
811  if (info->pwszCNGExtraAlgid)
812  {
813  err = RegSetValueExW(key, cngextraalgidW, 0, REG_SZ, (const BYTE *)info->pwszCNGExtraAlgid, (lstrlenW(info->pwszCNGExtraAlgid) + 1) * sizeof(WCHAR));
814  if (err != ERROR_SUCCESS) goto done;
815  }
816 
817 done:
819  if (key) RegCloseKey(key);
820  if (root) RegCloseKey(root);
821 
822  if (err)
823  SetLastError(err);
824 
825  return !err;
826 }
static const WCHAR nameW[]
Definition: oid.c:80
static const WCHAR cngalgidW[]
Definition: oid.c:83
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define REG_BINARY
Definition: nt_native.h:1496
static const WCHAR extraW[]
Definition: oid.c:82
#define lstrlenW
Definition: compat.h:415
static const WCHAR algidW[]
Definition: oid.c:81
#define sprintf(buf, format,...)
Definition: sprintf.c:55
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:1177
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
GLbitfield flags
Definition: glext.h:7161
static const WCHAR cngextraalgidW[]
Definition: oid.c:84
unsigned char BYTE
Definition: mem.h:68
#define err(...)
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
static const WCHAR flagsW[]
Definition: oid.c:85
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)
Definition: reg.c:1029
#define REG_DWORD
Definition: sdbapi.c:596
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13
Definition: path.c:41
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define REG_SZ
Definition: layer.c:22

Referenced by test_registerOIDInfo().

◆ CryptSetOIDFunctionValue()

BOOL WINAPI CryptSetOIDFunctionValue ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
LPCWSTR  pwszValueName,
DWORD  dwValueType,
const BYTE pbValueData,
DWORD  cbValueData 
)

Definition at line 891 of file oid.c.

894 {
895  LPSTR szKey;
896  LONG rc;
897  HKEY hKey;
898 
899  TRACE("%x %s %s %s %d %p %d\n", dwEncodingType, debugstr_a(pszFuncName),
900  debugstr_a(pszOID), debugstr_w(pwszValueName), dwValueType, pbValueData,
901  cbValueData);
902 
904  return TRUE;
905 
906  if (!pszFuncName || !pszOID || !pwszValueName)
907  {
909  return FALSE;
910  }
911 
912  szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
913  rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
914  CryptMemFree(szKey);
915  if (rc)
916  SetLastError(rc);
917  else
918  {
919  rc = RegSetValueExW(hKey, pwszValueName, 0, dwValueType, pbValueData,
920  cbValueData);
921  if (rc)
922  SetLastError(rc);
923  RegCloseKey(hKey);
924  }
925  return !rc;
926 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3257
#define TRUE
Definition: types.h:120
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
char * LPSTR
Definition: xmlstorage.h:182
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
long LONG
Definition: pedump.c:60
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define debugstr_w
Definition: kernel32.h:32
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
_In_z_ PCWSTR pwszValueName
Definition: ntuser.h:36
#define GET_CERT_ENCODING_TYPE(x)
Definition: wincrypt.h:2292
#define SetLastError(x)
Definition: compat.h:417
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

◆ CryptUnregisterDefaultOIDFunction()

BOOL WINAPI CryptUnregisterDefaultOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCWSTR  pwszDll 
)

Definition at line 1142 of file oid.c.

1144 {
1145  HKEY key;
1146  LPWSTR dlls;
1147  BOOL ret;
1148 
1149  TRACE("(%x, %s, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
1150  debugstr_w(pwszDll));
1151 
1152  if (!pwszDll)
1153  {
1155  return FALSE;
1156  }
1157 
1158  if (!CRYPT_GetDefaultOIDKey(dwEncodingType, pszFuncName, &key))
1159  return FALSE;
1160 
1161  dlls = CRYPT_GetDefaultOIDDlls(key);
1163  ret = CRYPT_SetDefaultOIDDlls(key, dlls);
1164  CryptMemFree(dlls);
1165  RegCloseKey(key);
1166  return ret;
1167 }
static LPWSTR CRYPT_GetDefaultOIDDlls(HKEY key)
Definition: oid.c:1073
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define debugstr_w
Definition: kernel32.h:32
#define E_INVALIDARG
Definition: ddrawi.h:101
static BOOL CRYPT_SetDefaultOIDDlls(HKEY key, LPCWSTR dlls)
Definition: oid.c:1095
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
static BOOL CRYPT_RemoveStringFromMultiString(LPWSTR multi, LPCWSTR toRemove)
Definition: oid.c:1016
#define SetLastError(x)
Definition: compat.h:417
int ret
HKEY key
Definition: reg.c:42
_In_ DWORD _In_opt_ LPCWSTR pwszDll
Definition: wincrypt.h:4638
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
static BOOL CRYPT_GetDefaultOIDKey(DWORD dwEncodingType, LPCSTR pszFuncName, PHKEY key)
Definition: oid.c:1050
WCHAR * LPWSTR
Definition: xmlstorage.h:184
Definition: path.c:41

Referenced by DllUnregisterServer(), test_getDefaultOIDFunctionAddress(), and test_registerDefaultOIDFunction().

◆ CryptUnregisterOIDFunction()

BOOL WINAPI CryptUnregisterOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID 
)

Definition at line 831 of file oid.c.

833 {
834  LPSTR szKey;
835  LONG rc;
836 
837  TRACE("%x %s %s\n", dwEncodingType, debugstr_a(pszFuncName),
838  debugstr_a(pszOID));
839 
840  if (!pszFuncName || !pszOID)
841  {
843  return FALSE;
844  }
845 
846  szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
847  rc = RegDeleteKeyA(HKEY_LOCAL_MACHINE, szKey);
848  CryptMemFree(szKey);
849  if (rc)
850  SetLastError(rc);
851  return !rc;
852 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
char * LPSTR
Definition: xmlstorage.h:182
_In_ DWORD _In_ LPCSTR pszOID
Definition: wincrypt.h:4649
long LONG
Definition: pedump.c:60
_In_ DWORD dwEncodingType
Definition: wincrypt.h:4629
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
#define SetLastError(x)
Definition: compat.h:417
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
Definition: reg.c:1222
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by DllUnregisterServer(), and test_registerOIDFunction().

◆ CryptUnregisterOIDInfo()

BOOL WINAPI CryptUnregisterOIDInfo ( PCCRYPT_OID_INFO  info)

Definition at line 708 of file oid.c.

709 {
710  char *key_name;
711  HKEY root;
712  DWORD err;
713 
714  TRACE("(%p)\n", info);
715 
716  if (!info || info->cbSize != sizeof(*info) || !info->pszOID)
717  {
719  return FALSE;
720  }
721 
722  err = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo", 0, KEY_ALL_ACCESS, &root);
723  if (err != ERROR_SUCCESS)
724  {
725  SetLastError(err);
726  return FALSE;
727  }
728 
729  key_name = CryptMemAlloc(strlen(info->pszOID) + 16);
730  if (key_name)
731  {
732  sprintf(key_name, "%s!%u", info->pszOID, info->dwGroupId);
734  }
735  else
737 
739  RegCloseKey(root);
740 
741  if (err)
742  SetLastError(err);
743 
744  return !err;
745 }
#define ERROR_SUCCESS
Definition: deptool.c:10
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
struct _root root
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3331
#define sprintf(buf, format,...)
Definition: sprintf.c:55
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
#define err(...)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
Definition: reg.c:1222
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by test_registerOIDInfo().

◆ free_function_sets()

static void free_function_sets ( void  )
static

Definition at line 87 of file oid.c.

88 {
89  struct OIDFunctionSet *setCursor, *setNext;
90 
91  LIST_FOR_EACH_ENTRY_SAFE(setCursor, setNext, &funcSets,
92  struct OIDFunctionSet, next)
93  {
94  struct OIDFunction *functionCursor, *funcNext;
95 
96  list_remove(&setCursor->next);
97  CryptMemFree(setCursor->name);
98  LIST_FOR_EACH_ENTRY_SAFE(functionCursor, funcNext,
99  &setCursor->functions, struct OIDFunction, next)
100  {
101  list_remove(&functionCursor->next);
102  CryptMemFree(functionCursor);
103  }
104  setCursor->cs.DebugInfo->Spare[0] = 0;
105  DeleteCriticalSection(&setCursor->cs);
106  CryptMemFree(setCursor);
107  }
109 }
static struct list funcSets
Definition: oid.c:53
static CRITICAL_SECTION funcSetCS
Definition: oid.c:45
struct list functions
Definition: oid.c:59
CRITICAL_SECTION cs
Definition: oid.c:58
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
PCRITICAL_SECTION_DEBUG DebugInfo
Definition: winbase.h:866
static unsigned __int64 next
Definition: rand_nt.c:6
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
LPSTR name
Definition: oid.c:57
struct list next
Definition: oid.c:60
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
struct list next
Definition: oid.c:68
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
Definition: winbase.h:859

Referenced by crypt_oid_free().

◆ free_oid_info()

static void free_oid_info ( void  )
static

Definition at line 1761 of file oid.c.

1762 {
1763  struct OIDInfo *info, *next;
1764 
1766  {
1767  list_remove(&info->entry);
1768  CryptMemFree(info);
1769  }
1771 }
static CRITICAL_SECTION oidInfoCS
Definition: oid.c:1198
struct _test_info info[]
Definition: SetCursorPos.c:19
static struct list oidInfo
Definition: oid.c:1206
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
uint32_t entry
Definition: isohybrid.c:63
static unsigned __int64 next
Definition: rand_nt.c:6
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
Definition: oid.c:1566

Referenced by crypt_oid_free().

◆ init_oid_info()

static void init_oid_info ( void  )
static

Definition at line 1690 of file oid.c.

1691 {
1692  DWORD i;
1693 
1695  for (i = 0; i < ARRAY_SIZE(oidInfoConstructors); i++)
1696  {
1697  if (!IS_INTRESOURCE(oidInfoConstructors[i].pwszName))
1698  {
1699  struct OIDInfo *info;
1700 
1701  /* The name is a static string, so just use the same pointer */
1702  info = CryptMemAlloc(sizeof(struct OIDInfo));
1703  if (info)
1704  {
1705  memset(info, 0, sizeof(*info));
1706  info->info.cbSize = sizeof(CRYPT_OID_INFO);
1707  info->info.pszOID = oidInfoConstructors[i].pszOID;
1708  info->info.pwszName = oidInfoConstructors[i].pwszName;
1709  info->info.dwGroupId = oidInfoConstructors[i].dwGroupId;
1710  info->info.u.Algid = oidInfoConstructors[i].Algid;
1711  if (oidInfoConstructors[i].blob)
1712  {
1713  info->info.ExtraInfo.cbData =
1714  oidInfoConstructors[i].blob->cbData;
1715  info->info.ExtraInfo.pbData =
1716  oidInfoConstructors[i].blob->pbData;
1717  }
1718  info->info.pwszCNGAlgid = oidInfoConstructors[i].pwszCNGAlgid;
1719  info->info.pwszCNGExtraAlgid = oidInfoConstructors[i].pwszCNGExtraAlgid;
1720  list_add_tail(&oidInfo, &info->entry);
1721  }
1722  }
1723  else
1724  {
1725  LPCWSTR stringresource;
1726  int len = LoadStringW(hInstance,
1727  (UINT_PTR)oidInfoConstructors[i].pwszName,
1728  (LPWSTR)&stringresource, 0);
1729 
1730  if (len)
1731  {
1732  struct OIDInfo *info = CryptMemAlloc(sizeof(struct OIDInfo) +
1733  (len + 1) * sizeof(WCHAR));
1734 
1735  if (info)
1736  {
1737  memset(info, 0, sizeof(*info));
1738  info->info.cbSize = sizeof(CRYPT_OID_INFO);
1739  info->info.pszOID = oidInfoConstructors[i].pszOID;
1740  info->info.pwszName = (LPWSTR)(info + 1);
1741  info->info.dwGroupId = oidInfoConstructors[i].dwGroupId;
1742  info->info.u.Algid = oidInfoConstructors[i].Algid;
1743  memcpy(info + 1, stringresource, len*sizeof(WCHAR));
1744  ((LPWSTR)(info + 1))[len] = 0;
1745  if (oidInfoConstructors[i].blob)
1746  {
1747  info->info.ExtraInfo.cbData =
1748  oidInfoConstructors[i].blob->cbData;
1749  info->info.ExtraInfo.pbData =
1750  oidInfoConstructors[i].blob->pbData;
1751  }
1752  info->info.pwszCNGAlgid = oidInfoConstructors[i].pwszCNGAlgid;
1753  info->info.pwszCNGExtraAlgid = oidInfoConstructors[i].pwszCNGExtraAlgid;
1754  list_add_tail(&oidInfo, &info->entry);
1755  }
1756  }
1757  }
1758  }
1759 }
struct _CRYPT_OID_INFO CRYPT_OID_INFO
static const struct OIDInfoConstructor oidInfoConstructors[]
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
Definition: image.c:133
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
struct _test_info info[]
Definition: SetCursorPos.c:19
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
static struct list oidInfo
Definition: oid.c:1206
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
Definition: glfuncs.h:248
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
HINSTANCE hInstance
Definition: charmap.c:20
static void oid_init_localizednames(void)
Definition: oid.c:1169
#define IS_INTRESOURCE(i)
Definition: winuser.h:580
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
#define ARRAY_SIZE(a)
Definition: main.h:24
WCHAR * LPWSTR
Definition: xmlstorage.h:184
Definition: oid.c:1566
#define memset(x, y, z)
Definition: compat.h:39

Referenced by crypt_oid_init().

◆ init_registered_oid_info()

static void init_registered_oid_info ( void  )
static

Definition at line 1650 of file oid.c.

1651 {
1652  DWORD err, idx;
1653  HKEY root;
1654 
1655  err = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo",
1656  0, KEY_ALL_ACCESS, &root);
1657  if (err != ERROR_SUCCESS) return;
1658 
1659  idx = 0;
1660  for (;;)
1661  {
1662  char key_name[MAX_PATH];
1663  struct OIDInfo *info;
1664  DWORD flags;
1665 
1667  if (err == ERROR_NO_MORE_ITEMS)
1668  break;
1669 
1670  if (err == ERROR_SUCCESS)
1671  {
1672  if ((info = read_oid_info(root, key_name, &flags)))
1673  {
1674  TRACE("adding oid %s, name %s, groupid %u, algid %u, extra %u, CNG algid %s, CNG extra %s\n",
1675  debugstr_a(info->info.pszOID), debugstr_w(info->info.pwszName),
1676  info->info.dwGroupId, info->info.u.Algid, info->info.ExtraInfo.cbData,
1677  debugstr_w(info->info.pwszCNGAlgid), debugstr_w(info->info.pwszCNGExtraAlgid));
1678 
1680  list_add_head(&oidInfo, &info->entry);
1681  else
1682  list_add_tail(&oidInfo, &info->entry);
1683  }
1684  }
1685  }
1686 
1687  RegCloseKey(root);
1688 }
#define ERROR_SUCCESS
Definition: deptool.c:10
#define ERROR_NO_MORE_ITEMS
Definition: compat.h:95
struct _root root
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
Definition: list.h:96
static struct OIDInfo * read_oid_info(HKEY root, char *key_name, DWORD *flags)
Definition: oid.c:1571
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3331
struct _test_info info[]
Definition: SetCursorPos.c:19
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
static struct list oidInfo
Definition: oid.c:1206
#define CRYPT_INSTALL_OID_INFO_BEFORE_FLAG
Definition: wincrypt.h:2538
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
#define debugstr_w
Definition: kernel32.h:32
unsigned int idx
Definition: utils.c:41
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
LONG WINAPI RegEnumKeyA(HKEY hKey, DWORD dwIndex, LPSTR lpName, DWORD cbName)
Definition: reg.c:2391
#define err(...)
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
Definition: oid.c:1566
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by crypt_oid_init().

◆ is_module_registered()

static BOOL is_module_registered ( HMODULE  hModule)
static

Definition at line 436 of file oid.c.

437 {
438  struct OIDFunctionSet *set;
439  BOOL ret = FALSE;
440 
442 
444  {
445  struct OIDFunction *function;
446 
448 
449  LIST_FOR_EACH_ENTRY(function, &set->functions, struct OIDFunction, next)
450  {
451  if (function->hModule == hModule)
452  {
453  ret = TRUE;
454  break;
455  }
456  }
457 
459 
460  if (ret) break;
461  }
462 
464 
465  return ret;
466 }
static struct list funcSets
Definition: oid.c:53
#define TRUE
Definition: types.h:120
static CRITICAL_SECTION funcSetCS
Definition: oid.c:45
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
unsigned int BOOL
Definition: ntddk_ex.h:94
static UINT set(struct ID3DXConstantTableImpl *table, IDirect3DDevice9 *device, struct ctab_constant *constant, const void **indata, D3DXPARAMETER_TYPE intype, UINT *size, UINT incol, D3DXPARAMETER_CLASS inclass, UINT index, BOOL is_pointer)
Definition: shader.c:1095
int ret
static unsigned __int64 next
Definition: rand_nt.c:6
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
Definition: _set.h:46
HMODULE hModule
Definition: animate.c:44

Referenced by CryptFreeOIDFunctionAddress().

◆ oid_init_localizednames()

static void oid_init_localizednames ( void  )
static

Definition at line 1169 of file oid.c.

1170 {
1171  unsigned int i;
1172 
1173  for(i = 0; i < ARRAY_SIZE(LocalizedKeys); i++)
1174  {
1176  }
1177 }
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
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
Definition: glfuncs.h:248
HINSTANCE hInstance
Definition: charmap.c:20
#define ARRAY_SIZE(a)
Definition: main.h:24
static const LPCWSTR LocalizedKeys[]
Definition: oid.c:77
static WCHAR LocalizedNames[ARRAY_SIZE(LocalizedKeys)][256]
Definition: oid.c:78
#define IDS_LOCALIZEDNAME_ROOT
Definition: cryptres.h:162

Referenced by init_oid_info().

◆ read_oid_info()

static struct OIDInfo* read_oid_info ( HKEY  root,
char key_name,
DWORD flags 
)
static

Definition at line 1571 of file oid.c.

1572 {
1573  HKEY key;
1574  DWORD len, oid_len, name_len = 0, extra_len = 0, cngalgid_len = 0, cngextra_len = 0, group_id = 0;
1575  struct OIDInfo *info;
1576  char *p;
1577 
1578  if (RegOpenKeyExA(root, key_name, 0, KEY_READ, &key))
1579  return NULL;
1580 
1581  p = strchr(key_name, '!');
1582  if (p)
1583  {
1584  group_id = strtol(p + 1, NULL, 10);
1585  *p = 0;
1586  }
1587 
1588  oid_len = strlen(key_name) + 1;
1589 
1590  RegQueryValueExW(key, nameW, NULL, NULL, NULL, &name_len);
1591  RegQueryValueExW(key, extraW, NULL, NULL, NULL, &extra_len);
1592  RegQueryValueExW(key, cngalgidW, NULL, NULL, NULL, &cngalgid_len);
1593  RegQueryValueExW(key, cngextraalgidW, NULL, NULL, NULL, &cngextra_len);
1594 
1595  info = CryptMemAlloc(sizeof(*info) + oid_len + name_len + extra_len + cngalgid_len + cngextra_len);
1596  if (info)
1597  {
1598  *flags = 0;
1599  len = sizeof(*flags);
1601 
1602  memset(info, 0, sizeof(*info));
1603  info->info.cbSize = sizeof(info->info);
1604 
1605  p = (char *)(info + 1);
1606 
1607  info->info.pszOID = p;
1608  strcpy((char *)info->info.pszOID, key_name);
1609  p += oid_len;
1610 
1611  if (name_len)
1612  {
1613  info->info.pwszName = (WCHAR *)p;
1614  RegQueryValueExW(key, nameW, NULL, NULL, (BYTE *)info->info.pwszName, &name_len);
1615  p += name_len;
1616  }
1617 
1618  info->info.dwGroupId = group_id;
1619 
1620  len = sizeof(info->info.u.Algid);
1621  RegQueryValueExW(key, algidW, NULL, NULL, (BYTE *)&info->info.u.Algid, &len);
1622 
1623  if (extra_len)
1624  {
1625  info->info.ExtraInfo.cbData = extra_len;
1626  info->info.ExtraInfo.pbData = (BYTE *)p;
1627  RegQueryValueExW(key, extraW, NULL, NULL, info->info.ExtraInfo.pbData, &extra_len);
1628  p += extra_len;
1629  }
1630 
1631  if (cngalgid_len)
1632  {
1633  info->info.pwszCNGAlgid = (WCHAR *)p;
1634  RegQueryValueExW(key, cngalgidW, NULL, NULL, (BYTE *)info->info.pwszCNGAlgid, &cngalgid_len);
1635  p += cngalgid_len;
1636  }
1637 
1638  if (cngextra_len)
1639  {
1640  info->info.pwszCNGExtraAlgid = (WCHAR *)p;
1641  RegQueryValueExW(key, cngextraalgidW, NULL, NULL, (BYTE *)info->info.pwszCNGExtraAlgid, &cngalgid_len);
1642  }
1643  }
1644 
1645  RegCloseKey(key);
1646 
1647  return info;
1648 }
static const WCHAR nameW[]
Definition: oid.c:80
static const WCHAR cngalgidW[]
Definition: oid.c:83
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define KEY_READ
Definition: nt_native.h:1023
static const WCHAR extraW[]
Definition: oid.c:82
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3331
static const WCHAR algidW[]
Definition: oid.c:81
struct _test_info info[]
Definition: SetCursorPos.c:19
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
smooth NULL
Definition: ftsmooth.c:416
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
static const WCHAR cngextraalgidW[]
Definition: oid.c:84
HKEY key
Definition: reg.c:42
GLenum GLsizei len
Definition: glext.h:6722
unsigned char BYTE
Definition: mem.h:68
char * strchr(const char *String, int ch)
Definition: utclib.c:501
static const WCHAR flagsW[]
Definition: oid.c:85
_Check_return_ long __cdecl strtol(_In_z_ const char *_Str, _Out_opt_ _Deref_post_z_ char **_EndPtr, _In_ int _Radix)
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
GLfloat GLfloat p
Definition: glext.h:8902
Definition: oid.c:1566
#define memset(x, y, z)
Definition: compat.h:39
Definition: path.c:41

Referenced by init_registered_oid_info().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( crypt  )

Variable Documentation

◆ ADDRESSBOOK

const WCHAR ADDRESSBOOK[] = {'A','D','D','R','E','S','S','B','O','O','K',0}
static

Definition at line 74 of file oid.c.

◆ algidW

const WCHAR algidW[] = { 'A','l','g','i','d',0 }
static

Definition at line 81 of file oid.c.

Referenced by CryptRegisterOIDInfo(), and read_oid_info().

◆ C

const WCHAR C[] = { 'C',0 }
static

Definition at line 1254 of file oid.c.

◆ CA

const WCHAR CA[] = {'C','A',0}
static

Definition at line 73 of file oid.c.

Referenced by test_crypt_ui_wiz_import().

◆ cms3deswrap

const WCHAR cms3deswrap[]
static
Initial value:
= { 'C','M','S','3','D','E','S','w','r','a',
'p',0 }

Definition at line 1209 of file oid.c.

◆ cmsrc2wrap

const WCHAR cmsrc2wrap[] = { 'C','M','S','R','C','2','w','r','a','p',0 }
static

Definition at line 1211 of file oid.c.

◆ CN

const WCHAR CN[] = { 'C','N',0 }
static

Definition at line 1249 of file oid.c.

◆ cngalgidW

const WCHAR cngalgidW[] = { 'C','N','G','A','l','g','i','d',0 }
static

Definition at line 83 of file oid.c.

Referenced by CryptRegisterOIDInfo(), and read_oid_info().

◆ cngextraalgidW

const WCHAR cngextraalgidW[] = { 'C','N','G','E','x','t','r','a','A','l','g','i','d',0 }
static

Definition at line 84 of file oid.c.

Referenced by CryptRegisterOIDInfo(), and read_oid_info().

◆ DC

const WCHAR DC[] = { 'D','C',0 }
static

Definition at line 1265 of file oid.c.

◆ des

const WCHAR des[] = { 'd','e','s',0 }
static

Definition at line 1212 of file oid.c.

Referenced by ConvertULargeInteger(), des_ecb_decrypt(), des_ecb_encrypt(), des_setup(), and test_des().

◆ Description

◆ DH

const WCHAR DH[] = { 'D','H',0 }
static

Definition at line 1228 of file oid.c.

◆ DISALLOWED

const WCHAR DISALLOWED[] = {'D','i','s','a','l','l','o','w','e','d',0}
static

Definition at line 76 of file oid.c.

◆ DllW

◆ dnQualifier

const WCHAR dnQualifier[]
static
Initial value:
=
{ 'd','n','Q','u','a','l','i','f','i','e','r',0 }

Definition at line 1272 of file oid.c.

◆ domainCompTypes

const DWORD domainCompTypes[]
static
Initial value:
#define CERT_RDN_IA5_STRING
Definition: wincrypt.h:2784
#define CERT_RDN_UTF8_STRING
Definition: wincrypt.h:2793

Definition at line 1307 of file oid.c.

◆ domainCompTypesBlob

const CRYPT_DATA_BLOB domainCompTypesBlob
static
Initial value:
= { sizeof(domainCompTypes),
static const DWORD domainCompTypes[]
Definition: oid.c:1307
unsigned char * LPBYTE
Definition: typedefs.h:52

Definition at line 1315 of file oid.c.

◆ DSA

const WCHAR DSA[] = { 'D','S','A',0 }
static

Definition at line 1226 of file oid.c.

◆ DSA_SIGN

const WCHAR DSA_SIGN[] = { 'D','S','A','_','S','I','G','N',0 }
static

Definition at line 1227 of file oid.c.

◆ dsaSHA1

const WCHAR dsaSHA1[] = { 'd','s','a','S','H','A','1',0 }
static

Definition at line 1234 of file oid.c.

◆ DSS

const WCHAR DSS[] = { 'D','S','S',0 }
static

Definition at line 1229 of file oid.c.

◆ dssSign

const DWORD dssSign[2]
static
Initial value:
#define CALG_DSS_SIGN
Definition: wincrypt.h:1817
#define CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
Definition: wincrypt.h:1700

Definition at line 1290 of file oid.c.

◆ dssSignBlob

const CRYPT_DATA_BLOB dssSignBlob
static
Initial value:
= { sizeof(dssSign),
unsigned char * LPBYTE
Definition: typedefs.h:52
static const DWORD dssSign[2]
Definition: oid.c:1290

Definition at line 1298 of file oid.c.

◆ E

◆ ecdsaSign

Definition at line 1295 of file oid.c.

◆ ecdsaSignBlob

const CRYPT_DATA_BLOB ecdsaSignBlob = { sizeof(ecdsaSign), (BYTE *)ecdsaSign }
static

Definition at line 1302 of file oid.c.

◆ Email

const WCHAR Email[] = { 'E','m','a','i','l',0 }
static

Definition at line 1277 of file oid.c.

◆ ESDH

const WCHAR ESDH[] = { 'E','S','D','H',0 }
static

Definition at line 1232 of file oid.c.

◆ extraW

const WCHAR extraW[] = { 'E','x','t','r','a','I','n','f','o',0 }
static

Definition at line 82 of file oid.c.

Referenced by CryptRegisterOIDInfo(), and read_oid_info().

◆ flagsW

const WCHAR flagsW[] = { 'F','l','a','g','s',0 }
static

Definition at line 85 of file oid.c.

Referenced by CryptRegisterOIDInfo(), and read_oid_info().

◆ funcSetCS

static CRITICAL_SECTION funcSetCS = { &funcSetCSDebug, -1, 0, 0, 0, 0 }
static

Definition at line 45 of file oid.c.

Referenced by CryptInitOIDFunctionSet(), free_function_sets(), and is_module_registered().

◆ funcSetCSDebug

CRITICAL_SECTION_DEBUG funcSetCSDebug
static
Initial value:
=
{
0, 0, &funcSetCS,
0, 0, { (DWORD_PTR)(__FILE__ ": funcSetCS") }
}
static CRITICAL_SECTION funcSetCS
Definition: oid.c:45
#define DWORD_PTR
Definition: treelist.c:76
LIST_ENTRY ProcessLocksList
Definition: winbase.h:855
static CRITICAL_SECTION_DEBUG funcSetCSDebug
Definition: oid.c:46

Definition at line 46 of file oid.c.

◆ funcSets

struct list funcSets = { &funcSets, &funcSets }
static

Definition at line 53 of file oid.c.

Referenced by CryptInitOIDFunctionSet(), free_function_sets(), and is_module_registered().

◆ G

const WCHAR G[] = { 'G',0 }
static

Definition at line 1260 of file oid.c.

◆ GivenName

const WCHAR GivenName[] = { 'G','i','v','e','n','N','a','m','e',0 }
static

Definition at line 1261 of file oid.c.

◆ GN

const WCHAR GN[] = { 'G','N',0 }
static

Definition at line 1278 of file oid.c.

◆ I

const WCHAR I[] = { 'I',0 }
static

Definition at line 1262 of file oid.c.

◆ ia5String

const DWORD ia5String[] = { CERT_RDN_IA5_STRING, 0 }
static

Definition at line 1304 of file oid.c.

◆ ia5StringBlob

const CRYPT_DATA_BLOB ia5StringBlob
static
Initial value:
= { sizeof(ia5String),
static const DWORD ia5String[]
Definition: oid.c:1304
unsigned char * LPBYTE
Definition: typedefs.h:52

Definition at line 1309 of file oid.c.

◆ Initials

const WCHAR Initials[] = { 'I','n','i','t','i','a','l','s',0 }
static

Definition at line 1263 of file oid.c.

◆ L

const WCHAR L[] = { 'L',0 }
static
Examples
/srv/doxygen/reactos/win32ss/gdi/gdi32/objects/utils.c.

Definition at line 1250 of file oid.c.

Referenced by __mingw_get_msvcrt_handle(), __mingw_invalidParameterHandler(), __ttyname(), __write_formatted_timeT(), _bdf_parse_glyphs(), _CDataObject_CreateInstance(), _chdrive(), _CmdWndProc(), _CopyAndUnquoteText(), _CreateActCtxFromFile(), CBandSiteMenu::_CreateMenuPart(), CBandSiteMenu::_CreateNewISFBand(), _CreateNonspooledPort(), _CreateV5ActCtx(), LocaleTest::_ctype_facet_w(), _cvmod(), _Dispatch_type_(), _DoDLLInjection(), CFSDropTarget::_DoDrop(), _FileOpCount(), _FindFirstField(), _FindNextArg(), _Function_class_(), _GetDocumentsPidl(), _getdrive(), CFSFolder::_GetDropTarget(), CZipFolder::_GetFileTimeString(), CFSFolder::_GetIconHandler(), _getopt_internal(), CBandSiteMenu::_GetQLaunchPidl(), CFSDropTarget::_GetUniqueFileName(), _HandleConfigureLPTPortCommandOK(), _HandleMonitorUI(), _i64toa(), _i64tow(), _ILCreatePrinterItem(), _ILReadFromSharedMemory(), _Init_timeinfo(), _InitializeLocalSpooler(), _InitializePrintProviderList(), _IRQL_requires_max_(), _IRQL_requires_min_(), _IsLegacyPort(), _IsNEPort(), _LocalEnumPrintersCheckName(), _LocalGetPrinterDriverLevel2(), _LocalGetPrinterDriverLevel3(), _LocalGetPrinterLevel1(), _LocalGetPrinterLevel2(), _LocalGetPrintServerHandleData(), _LocalOpenPrinterHandle(), _LocalOpenXcvHandle(), _LocalSetPrintServerHandleData(), _locking(), _ltoa(), _ltow(), _main(), _MakePrinterSubKey(), CBandSiteBase::_OnContextMenu(), _OpenEnvironment(), _RpcGetPrinterData(), _RpcSetPrinterData(), _RTC_CheckStackVars(), _RTC_CheckStackVars2(), _RTC_Failure(), _RTC_UninitUse(), _RunHotplug(), _RunMMCpl(), _RunPower(), _RunRemoteTest(), _RunVolume(), _SHCreateDesktop(), _SHDesktopMessageLoop(), _ShellDDEInit(), _ShowContextMenu(), CBandSiteMenu::_ShowToolbarError(), _Stl_loc_combine_names(), _Stl_loc_combine_names_aux(), _strtold(), _Success_(), _tasctime_s(), _tchdir(), _test_key_name(), _TIFFVSetField(), LocaleTest::_time_put_get(), _tmain(), _tr_align(), _tr_init(), _tr_stored_block(), _tr_tally(), CTuningSpaceContainer::_TuningSpacesForCLSID(), _tWinMain(), _ui64toa(), _ui64tow(), _ultoa(), _ultow(), _wgetenv(), _WinList_Init(), _WLocale_am_str(), _WLocale_decimal_point(), _WLocale_false(), _WLocale_mon_decimal_point(), _WLocale_mon_thousands_sep(), _WLocale_pm_str(), _WLocale_thousands_sep(), _WLocale_true(), _wperror(), _wsopen_s(), _wtol(), AboutDlgProc(), AcceptConnections(), AccpGetTrusteeSid(), AccpOpenLSAPolicyHandle(), AccpOpenNamedObject(), ACDBG_FN(), AckPageDlgProc(), acmFormatSuggest(), acmStreamClose(), acmStreamOpen(), acmStreamPrepareHeader(), acmStreamSize(), acpi_create_registry_table(), acpi_create_volatile_registry_tables(), ACPIDispatchDeviceControl(), AcsHlpSendCommand(), actctx_init(), ActionDlg_OnBrowse(), ActionThread(), active_main(), ActiveScriptSite_GetItemInfo(), CTuningSpaceContainer::Add(), COpenWithList::Add(), COpenWithList::AddAppToMRUList(), CTrayBandSite::AddBand(), AddBootStoreEntry(), CNotifyToolbar::AddButton(), AddCodePage(), AddCodepageToRegistry(), AddComboBoxTime(), AddCommas(), AddCommasW(), ATL::CAtlModuleT< CComModule >::AddCommonRGSReplacements(), AddComputerTypeEntries(), AddControllers(), AddDesktopItemW(), BtrfsDeviceAdd::AddDevice(), AddDeviceInternal(), AddDeviceW(), AddDialogControl(), AddDiskToList(), AddEntryToList(), AddFeature(), AddFontsSettingsToRegistry(), AddFSClassKeysToArray(), AddFullResourcesToList(), AddHotkeySettings(), AddImpersonatePrivilege(), AddIPAddressToListView(), AddIpv4HostEntries(), AddIpv6HostEntries(), CRegFolderEnum::AddItemsFromKey(), AddItemW(), AddKbLayoutsToRegistry(), CACLCustomMRU::AddMRUString(), AddNewKbLayoutsByLcid(), AddNewLayout(), AddNewMftEntry(), AddNotificationDll(), AddNTOSInstallationItem(), AddPartitionToDisk(), CMenuToolbarBase::AddPlaceholder(), AddResourceItems(), AddService(), AddServiceNamesToStop(), AddServiceToList(), CDefaultContextMenu::AddStaticContextMenusToMenu(), CDefaultContextMenu::AddStaticEntriesForKey(), CDefaultContextMenu::AddStaticEntry(), AddSubst(), AddTool(), AddUserProfile(), AddUserProfiles(), adler32_z(), ADPCM_StreamOpen(), Adv_SaveData(), AdvAppearanceDlg_Init(), AdvAppearanceDlgProc(), CKsProxy::AdvisePeriodic(), CKsProxy::AdviseTime(), AdvPropGeneralDlgProc(), af_latin_metrics_init_widths(), af_loader_embolden_glyph_in_slot(), AfdCreateSocket(), AllocateIndexNode(), AllocateSoundDevice(), AllocConsole(), allow_degraded_mount(), AllowPermLayer(), AllSysInfo(), ANIMATE_GetAviCodec(), animate_test_wnd_proc(), AppearancePage_OnInit(), AppendBackslash(), CStartMenuSite::AppendMenu(), AppendSystemFamily(), AppendSystemPostfix(), AppendUserEnvironmentVariable(), ApphelpCheckShellObject(), ApphelppInitDebugLevel(), ApplicationPage_OnSwitchTo(), ApplicationPageWndProc(), ApplyOrCancelChanges(), ApplyParameterStringsToMessage(), ApplyRegistryValues(), ApplyScheme(), ArcGetNextTokenU(), Archx86TransferTo32BitApplicationAsm(), ArcPathNormalize(), ario_ApplyBrokenVideoHack(), arith_decode(), arith_encode(), AssignDriveLetters(), AtapiFindIsaController(), AtapiReadChipConfig(), AtapiRegCheckDevLunValue(), AtapiRegCheckDevValue(), AtapiRegCheckParameterValue(), ATL::AtlLoadTypeLib(), ATL::AtlRegisterClassCategoriesHelper(), ATSVC_HANDLE_bind(), AttachToConsoleInternal(), AudioDlgProc(), automount_main(), CScanningTunner::AutoProgram(), AutoStartupApplications(), auxGetVolume(), auxMessage(), auxSetVolume(), AvailableStrings::AvailableStrings(), AVISaveOptionsDlgProc(), AVrfInitializeVerifier(), AVrfpLoadAndInitializeProvider(), AVrfReadIFEO(), COutputPin::Backout(), CInputPin::Backout(), BackupIniFile(), BaseCheckVDM(), BaseComputeProcessDllPath(), BaseCreateVDMEnvironment(), BaseGetVdmConfigInfo(), BaseInitApphelp(), BaseInitializeStaticServerData(), BasepComputeProcessPath(), BasepGetComputerNameFromNtPath(), BasepGetVolumeNameForVolumeMountPoint(), BasepGetVolumeNameFromReparsePoint(), BasepIsProcessAllowed(), BasepLoadLibraryAsDatafile(), BasepMoveFileDelayed(), BasePushProcessParameters(), BaseSrvIsVdmAllowed(), basic_test(), BcdDeleteElement(), BcdOpenObject(), BcInitialize(), BcpDestroy(), BDF_Face_Init(), Beep(), CPin::BeginFlush(), CInputPin::BeginFlush(), BestFit_FromNLS(), BfiLoadFontFile(), BiAddStoreFromFile(), BiConvertRegistryDataToElement(), BiEnumerateElements(), BiEnumerateSubObjectElements(), BiFlushHive(), BiGetObjectDescription(), BiLoadHive(), BindAdapter(), CDrivesFolder::BindToObject(), CFSFolder::BindToObject(), BiNotifyEnumerationError(), Bios32Post(), BiosInitialize(), BiosRomBasic(), BitsetTest::bitset1(), BlankArgument(), BlArchGetCpuVendor(), BlArchGetPerformanceCounter(), BlArchIsCpuIdFunctionSupported(), BlBdPullRemoteFile(), BlBsdInitializeLog(), BlDestroyLibrary(), BlDisplayGetTextCellResolution(), BlFileOpen(), BlFileReadAtOffsetEx(), BlImgLoadImageWithProgress2(), BlMmAllocateHeap(), BlMmRemoveBadMemory(), BlMmUnmapVirtualAddressEx(), BlockIoEfiCreateDeviceEntry(), BlockIoEfiFlush(), BlockIoEfiGetDeviceInformation(), BlockIoEfiReset(), BlockIoFirmwareOpen(), BlockIoGetGPTDiskSignature(), BlockIopOperation(), BlockIopReadPhysicalDevice(), BlockIopReadUsingPrefetch(), BlockIoSetInformation(), BlpArchInitialize(), BlpDeviceOpen(), BlpDeviceResolveLocate(), BlpDisplayRegisterLocale(), BlPdQueryData(), BlpMmInitialize(), BlpPdParseReturnArguments(), BlpSecureBootEFIIsEnabled(), BlpTimeCalibratePerformanceCounter(), BlpTimeMeasureTscFrequency(), BlResourceFindHtml(), BlResourceFindMessage(), BlSecureBootCheckForFactoryReset(), BlStatusError(), BlStatusPrint(), BlTimeQueryPerformanceCounter(), BlUtlCheckSum(), BlUtlGetAcpiTable(), BlUtlUpdateProgress(), BlXmiWrite(), BmCloseDataStore(), BmDisplayDumpError(), BmEnumerateBootEntries(), BmFatalErrorEx(), BmfdQueryFont(), BmFwInitializeBootDirectoryPath(), BmFwMemoryInitialize(), BmFwRegisterRevocationList(), BmMain(), BmOpenDataStore(), BmpCreateDevices(), BmpGetSelectedBootEntry(), BmpInitializeBootStatusDataLog(), BmpPopulateBootEntryList(), BmpProcessBadMemory(), BmpProcessBootEntry(), BmProcessCustomAction(), BmpTransferExecution(), BmResumeFromHibernate(), BmUpdateProgress(), BmUpdateProgressInfo(), BootLoaderHarddiskMbrPage(), BootLoaderPage(), break_main(), BroadcastDriveLetterChange(), COpenWithDialog::Browse(), BrowseDlgProc(), BrowseFile(), BrowseIndexEntries(), BROWSER_IDENTIFY_HANDLE_bind(), CDefaultContextMenu::BrowserFlagsFromVerb(), CShellBrowser::BrowseToPath(), BrsFolder_NewFolder(), BtrfsPropSheet::BtrfsPropSheet(), BtrfsSend::BtrfsSend(), BuildCodePageList(), BuildCommandLine(), BuildCommandOptions(), BuildDesktopNameList(), CShellBrowser::BuildExplorerBandCategory(), CShellBrowser::BuildExplorerBandMenu(), BuildFilterStrings(), BuildFullDirectoryPath(), BuildInteractiveProfileBuffer(), BuildLogListAndFilterList(), BuildNewCommDCB(), BuildOldCommDCB(), BuildParameterArray(), BuildServiceArray(), BuildSubSysCommandLine(), BuildUserInfoBuffer(), BuildUserModeWindowStationName(), BuildVolatileEnvironment(), BuildWindowStationNameList(), BuildWorkstationsList(), Bus_PDO_QueryDeviceId(), Bus_PDO_QueryDeviceText(), Bus_PDO_QueryResourceRequirements(), Bus_PDO_QueryResources(), Bus_PlugInDevice(), bus_query_hardware_ids(), CabinetFindNext(), CabinetInitialize(), CabinetNormalizePath(), CabinetOpen(), CComCatCachedCategory::CacheDSA(), CConfigParser::CacheINILocale(), CNewMenu::CacheItems(), call_script(), CDrivesFolder::CallBack(), CDesktopFolder::CallBack(), CallInitCommonControls(), CallNotificationDlls(), CallShellDimScreen(), CallSoundThread(), CancelIPChangeNotify(), capCreateCaptureWindowW(), capGetDriverDescriptionW(), CapTest(), CaptWndProc(), CascadeWindows(), cb_AddPage(), CB_Paint(), CBDADeviceControl_fnConstructor(), CBDADigitalDemodulator_fnConstructor(), CBDAFrequencyFilter_fnConstructor(), CBDALNBInfo_fnConstructor(), CBDAPinControl_fnConstructor(), CBDAPinControl_RealConstructor(), CBDASignalStatistics_fnConstructor(), CBindStatusCallback_OnProgress(), cc_token(), CConfiguration::CConfiguration(), CControlNode_fnConstructor(), CdDissectName(), CDeviceManager::CDeviceManager(), CdFindActiveVolDescriptor(), CdGenerate8dot3Name(), CDimmedWindow::CDimmedWindow(), CdInitializeEnumeration(), CdIs8dot3Name(), CdIsLegalName(), CdQueryFsAttributeInfo(), CDrivesContextMenu_CreateInstance(), CDrivesExtractIcon_CreateInstance(), CdRomCheckRegistryForMediaChangeValue(), CdRomCreateWellKnownName(), CDrvDefExt::CDrvDefExt(), CdShortNameDirentOffset(), CdUpcaseName(), CdUpdateDirentName(), CdUpdatePathEntryName(), CEnumMediaTypes_fnConstructor(), CEnumTuningSpaces_fnConstructor(), cff_parse_font_matrix(), cff_parse_real(), cff_slot_load(), cff_subfont_load(), CFileDefExt::CFileDefExt(), CFileVersionInfo::CFileVersionInfo(), CFn_WMDrawItem(), CFSExtractIcon_CreateInstance(), CGridView::CGridView(), CGuidItemContextMenu_CreateInstance(), change_symlink(), ChangeAttribute(), ChangePortNumber(), ChargenHandler(), CharToHex(), check_db_exes(), check_db_layer(), check_db_properties(), check_matching_file(), check_matching_layer(), CKsProxy::CheckCapabilities(), CBDADeviceControl::CheckChanges(), checkcmap(), CheckFileSystemPage(), CheckForDeviceDesc(), CheckForFileInfo(), CheckForGlobalDriveLetter(), CheckForLoudOperations(), CInputPin::CheckFormat(), CheckForNoDriveLetterEntry(), CheckForValidPEAndVendor(), CheckInfFile(), CheckListWndProc(), CheckLogOrSourceExistence(), CheckTerminalDeviceType(), CheckUnattendedSetup(), CheckVolume(), ChildWndProc(), Chkdsk(), ChkdskCallback(), ChooseGinaUI(), cid_parse_font_matrix(), CJournaledTestList::CJournaledTestList(), CKsAllocator_Constructor(), CKsBasicAudio_Constructor(), CKsClockForwarder_Constructor(), CKsDataTypeHandler_Constructor(), CKsInterfaceHandler::CKsInterfaceHandler(), CKsInterfaceHandler_Constructor(), CKsNode_Constructor(), CKsProxy_Constructor(), CKsQualityForwarder_Constructor(), ClassCreateDeviceObject(), ClassDeviceControl(), ClassDispatchPnp(), ClassNameToVersion(), ClasspIsMediaChangeDisabledDueToHardwareLimitation(), ClasspIsMediaChangeDisabledForClass(), ClassQueryTimeOutRegistryValue(), ClassSystemControl(), ClassUpdateInformationInRegistry(), CLayerStringList::CLayerStringList(), ClearLineBuffer(), ClearScreen(), ClipThread(), ClockInitialize(), CEnumMediaTypes::Clone(), CEnumTuningSpaces::Clone(), CEnumPins::Clone(), CTuneRequest::Clone(), CTuningSpace::Clone(), audio_resampler_acm::close(), CloseNt4SoundDevice(), CM_Connect_MachineW(), CM_Open_DevNode_Key_Ex(), CmBattAddDevice(), CmBattCreateFdo(), BtrfsRecv::cmd_chmod(), BtrfsRecv::cmd_chown(), BtrfsRecv::cmd_clone(), cmd_ctty(), BtrfsRecv::cmd_link(), BtrfsRecv::cmd_mkfile(), BtrfsRecv::cmd_removexattr(), BtrfsRecv::cmd_rename(), BtrfsRecv::cmd_rmdir(), BtrfsRecv::cmd_setxattr(), BtrfsRecv::cmd_snapshot(), BtrfsRecv::cmd_subvol(), BtrfsRecv::cmd_truncate(), BtrfsRecv::cmd_unlink(), BtrfsRecv::cmd_utimes(), BtrfsRecv::cmd_write(), cmdAccounts(), cmdComputer(), cmdConfig(), cmdContinue(), cmdGroup(), cmdHelp(), cmdHelpMsg(), cmdLocalGroup(), cmdPause(), cmdShare(), cmdStart(), CmdStartProcess(), cmdStatistics(), cmdStop(), cmdSyntax(), cmdUse(), cmdUser(), CMediaSample_Constructor(), CMenuBand_CreateInstance(), CMenuToolbarBase::CMenuToolbarBase(), CMergedFolder_CreateInstance(), CmGetSystemControlValues(), CmGetSystemDriverList(), CmInitSystem1(), CmosInitialize(), CMP_WaitNoPendingInstallEvents(), CmpAddDriverToList(), CmpAddToHiveFileList(), CmpComputeHashKey(), CmpConvertLangId(), CmpCreateControlSet(), CmpCreateHardwareProfile(), CmpCreateObjectTypes(), CmpCreateRegistryRoot(), CmpFindControlSet(), CmpFindDrivers(), CmpGetHiveName(), CmpGetRegistryPath(), CmpInitHiveFromFile(), CmpInitializeHardwareConfiguration(), CmpInitializeHiveList(), CmpInitializeMachineDependentConfiguration(), CmpInitializeRegistryNode(), CmpInitializeSystemHive(), CmpIsLoadType(), CmpIsSafe(), CmpOpenHiveFiles(), CmpSetSystemValues(), CmpSetVersionData(), CmpSortDriverList(), CNetworkProvider_fnConstructor(), co_IntInitializeDesktopGraphics(), co_IntShellHookNotify(), co_IntTranslateAccelerator(), co_UserCreateWindowEx(), CobbleDeviceName(), LocaleTest::collate_facet(), ComboExTestWndProc(), ComDBClaimNextFreePort(), ComDBClaimPort(), ComDBGetCurrentPortUsage(), ComDBOpen(), ComDBReleasePort(), ComDBResizeDatabase(), CommandDir(), CommandDumpSector(), CommandPartInfo(), CommaSeparateNumberString(), CommDlgProc(), CKsAllocator::Commit(), CBDADeviceControl::CommitChanges(), ATL::CAtlModule::CommonInitRegistrar(), CommonInstall(), CommonWndProc(), CompareProductName(), CompBattAddDevice(), CompBattQueryInformation(), compile_script(), CompleteIO(), CompleteWaveHeader(), compute_glyph_metrics(), ComputeRouteMetric(), ComputerPageDlgProc(), ConcatPathsV(), ConCfgInitDefaultSettings(), ConCfgOpenUserSettings(), ConCfgReadUserSettings(), ConCfgWriteUserSettings(), ConClearLine(), ConClearScreen(), ConDrvGetConsoleTitle(), ConDrvReadConsole(), ConDrvSetConsoleTitle(), ConGetScreenInfo(), ConInString(), ConioProcessKey(), ConioResizeBuffer(), ConioWriteConsole(), ConMgrSerialPortConsumer(), CPin::Connect(), CInputPin::Connect(), COutputPin::Connect(), CPin::ConnectedTo(), COutputPin::ConnectedTo(), CPin::ConnectionMediaType(), CInputPin::ConnectionMediaType(), COutputPin::ConnectionMediaType(), ConnectRegistry(), ConsoleAttach(), ConsoleEfiGopOpen(), ConsoleEfiGraphicalOpenProtocol(), ConsoleEfiTextFindModeFromAllowed(), ConsoleEfiUgaOpen(), ConsoleFirmwareGraphicalClear(), ConsoleFirmwareTextClear(), ConsoleFirmwareTextOpen(), ConsoleGraphicalConstruct(), ConsoleGraphicalSetTextState(), ConsoleInit(), ConsoleTextLocalConstruct(), ConsoleTextLocalReinitialize(), ConSrvAllocateConsole(), ConSrvGetDefaultSettings(), ConSrvInitConsole(), ConSrvOpenUserSettings(), ConSrvReadUserSettings(), ConSrvTermReadStream(), ConSrvWriteUserSettings(), Control_LoadApplet(), Control_UnloadApplet(), ControlBop(), ConvertNtPathToWin32Path(), ConvertPath(), CClassNode::ConvertResourceDescriptorToString(), CKsProxy::ConvertTimeFormat(), ConWrite(), cookey(), CopyBlock(), CopyDirectory(), CopyHardwareProfile(), CopyIpAddrString(), CopyLines(), CopySystemProfile(), CFileDefExt::CountFolderAndFiles(), CountThread(), COutputPin::COutputPin(), COutputPin_SetState(), CPin_fnConstructor(), CPipe::CPipe(), CPlApplet(), CpuSimulate(), CDeviceManager::Create(), CRichEdit::Create(), CStartButton::Create(), CTreeView::Create(), CTooltips::Create(), CSearchBar::Create(), create_root_store(), create_server_process(), create_snapshot(), create_snapshot2(), create_stream(), create_subvol(), create_test_windows(), create_writepipe_process(), CreateAppPathRegKey(), CreateBaseAcls(), CreateBoldFont(), CreateBtn(), CreateBTreeFromIndex(), CreateButtonSet(), CreateClassDeviceObject(), CreateCommonFreeLdrSections(), CreateComputerTypeList(), CreateConsoleFontEx(), CControlPanelEnum::CreateCPanelEnumList(), CreateDeviceIds(), CreateDeviceInstance(), CreateDirectoryExW(), CreateDirectoryPath(), CreateDirectoryW(), CreateDisplayDriverList(), CreateEnvironmentBlock(), CreateEventLog(), CHCDController::CreateFDO(), CreateFilterList(), CreateFontW(), CreateFreeLoaderReactOSEntries(), CreateGroupListRoutine(), CreateGroupW(), CreateIDataObject(), CreateInsertBlankRegion(), CreateInstanceKey(), CreateJob(), CreateKeyboardDriverList(), CreateKeyboardLayoutList(), CreateKeyTest(), CreateLanguageList(), CreateLayoutIcon(), CDefView::CreateList(), CreateListView(), CreateListViewColumns(), CreateMemoryResourceNotification(), CreateMonospaceFont(), CreateMultiSzString(), CreateNestedKey(), CreateNewDriveLetterName(), CreateNewKey(), CKsProxy::CreateNodeInstance(), CreateNoDriveLetterEntry(), CreateNotificationObject(), CreateNTOSEntry(), CreateNTPServerList(), CreateOpenInfo(), CreatePartitionList(), CHubController::CreatePDO(), CreatePerfWindows(), CBDADeviceControl::CreatePin(), CInputPin::CreatePin(), COutputPin::CreatePin(), CInputPin::CreatePinHandle(), COutputPin::CreatePinHandle(), CKsProxy::CreatePins(), CreatePipe(), CreateProcessInternalW(), CreateProfile(), CreateProfileMutex(), CreateProtoHive(), CreateRedirectedFile(), CreateRegAppPath(), CreateRegistryFile(), CreateSecurityPage(), CSendToMenu::CreateSendToFiles(), CreateServers(), CreateServiceListEntry(), CreateShortcut(), CreateShortcutsFromSection(), CreateSidCacheMgr(), CISFBand::CreateSimpleToolbar(), CreateSoundDeviceInstance(), CreateSoundThread(), CreateSoundThreadEvents(), CreateStandardProfile(), CreateStateImageList(), CreateStockFonts(), CreateSwitcherWindow(), CreateSymbolicLink(), CreateSysMenu(), CreateTempDir(), CreateTimeZoneList(), CreateTitleFont(), CMenuToolbarBase::CreateToolbar(), CBDADeviceControl::CreateTopology(), CTuningSpace::CreateTuneRequest(), CreateUsbChildDeviceObject(), CreateUserHive(), CreateUserProfileExW(), CDrivesFolder::CreateViewObject(), CDesktopFolder::CreateViewObject(), CFSFolder::CreateViewObject(), CreateWindowStationAndDesktops(), CreateWindowStationW(), CriticalDeviceCoInstaller(), CRYPT_DEShash(), CRYPT_DESunhash(), CryptExtOpenCERW(), CScanningTunner_fnConstructor(), CSR_API(), CsrCaptureMessageUnicodeStringInPlace(), CsrClientConnectToServer(), CsrCreateSessionObjectDirectory(), CsrLoadServerDll(), CsrpConnectToServer(), CsrUnhandledExceptionFilter(), CTaskbarList::CTaskbarList(), CTaskSwitchWnd::CTaskSwitchWnd(), CtrlCIntercept(), CTuneRequest_fnConstructor(), CTuningSpace_fnConstructor(), CTuningSpaceContainer_fnConstructor(), CURSORICON_CopyImage(), custom_draw_wnd_proc(), CVfdFactory::CVfdFactory(), CVfdShExt::CVfdShExt(), CVPConfig_Constructor(), CVPVBIConfig_Constructor(), cvtcmap(), CWebService::CWebService(), CWineTest::CWineTest(), D3DTests(), DaytimeHandler(), DbgkCreateThread(), DbgkInitialize(), DbgPrint(), DceCreateDisplayDC(), DdCreateDirectDrawObject(), dde_connect(), Dde_OnExecute(), DdeNameService(), DDTests(), DebugChannels_OnCreate(), DebugChannels_OnNotify(), decode_mcu(), decode_mcu_DC_first(), CKsAllocator::Decommit(), DecrementRefCount(), DefineDosDeviceW(), deflate(), deflate_stored(), deflateInit2_(), deflateResetKeep(), deflateSetDictionary(), Defragment::Defragment(), DefSetText(), DefWndDoSizeMove(), delete_directory(), delete_key(), DeleteAppPathRegKey(), DeleteDesktopItemW(), DeleteExt(), DeleteGroupW(), DeleteItemW(), DeleteJob(), DeleteKeyTest(), DeleteNoDriveLetterEntryRoutine(), DeletePartition(), CBDADeviceControl::DeletePin(), DeletePwrScheme(), DeleteRegAppPath(), DeleteSubst(), DeleteValueTest(), desfunc(), deskey(), destroy_test_window(), DestroySoundDeviceInstance(), DestroySoundThread(), DestroySoundThreadEvents(), DetectNt4SoundDevices(), DetectSerialPointerPeripheral(), BtrfsVolPropSheet::DeviceDlgProc(), CKsProxy::DeviceInfo(), DeviceProblemTextW(), DIALOG_Browse(), DIALOG_BrowsePrograms(), DIALOG_BrowseSymbols(), DIALOG_DoDialogBox(), DIALOG_Execute(), DIALOG_GetControl32(), DIALOG_ProgramAttributes(), CCharMapWindow::DialogProc(), DialogProc(), DirectInputEnumDevCb(), DirPrintNewList(), DirReadParam(), DisableMediaSense(), DisableShellext(), CConsole::DisableWrite(), CKsProxy::Disassociate(), DiscardHandler(), CPin::Disconnect(), CNetConnectionPropertyUi::Disconnect(), CNetConnection::Disconnect(), CInputPin::Disconnect(), COutputPin::Disconnect(), DiskAddDevice(), DiskCreateFdo(), DiskCreateSymbolicLinks(), DiskDeleteSymbolicLinks(), DiskIdentifierQueryRoutine(), DiskStartFdo(), DismountVolume(), Dispatch_GetIDsOfNames(), DispatcherThread(), Display_DrawText(), Display_GetFullName(), Display_OnCreate(), Display_OnPrint(), Display_SetTypeFace(), DisplayApplet(), DisplayClassCoinstallers(), DisplayClassInstaller(), DisplayCsFlags(), DisplayCurrentPowerState(), DisplayDacl(), DisplayDeviceAdvancedProperties(), DisplayDeviceCoinstallers(), DisplayDeviceProperties(), DisplayDevicePropertyText(), DisplayDevNodeFlags(), DisplayEntryPoint(), DisplayError(), DisplayEvent(), DisplayEventData(), DisplayGroup(), DisplayImageInfo(), DisplayLocalGroup(), DisplayMatchingDeviceId(), DisplayMessage(), DisplayOutput(), DisplayPowerCapabilities(), DisplayPowerStateMappings(), DisplayResourceText(), DisplayServerConfig(), DisplayServerStatistics(), DisplayShare(), DisplayStatus(), DisplayString(), DisplayTableHeader(), DisplayTitle(), DisplayUser(), DisplayWin32Error(), DisplayWorkstationConfig(), DisplayWorkstationStatistics(), DlgParentSubWndProc(), BtrfsChangeDriveLetter::DlgProc(), DlgProc(), DllMain(), DllRegisterServer(), DllUnregisterServer(), dn_expand(), Dns_Ip4AddressToReverseName_W(), DNSRSLVR_HANDLE_bind(), BtrfsChangeDriveLetter::do_change(), numpunct< wchar_t >::do_decimal_point(), moneypunct< wchar_t, true >::do_decimal_point(), moneypunct< wchar_t, false >::do_decimal_point(), numpunct< wchar_t >::do_falsename(), do_file_copyW(), do_fixed(), _Messages::do_open(), messages_byname< wchar_t >::do_open(), do_parent(), ATL::CRegObject::do_preprocess(), ATL::CRegObject::do_process_key(), ATL::CRegObject::do_process_root_key(), BtrfsRecv::do_recv(), BtrfsDeviceResize::do_resize(), BtrfsPropSheet::do_search(), numpunct< wchar_t >::do_thousands_sep(), moneypunct< wchar_t, true >::do_thousands_sep(), moneypunct< wchar_t, false >::do_thousands_sep(), numpunct< wchar_t >::do_truename(), DoAddFilesFromItem(), DoCreateTestFile(), DoDSoundCallback(), DoEntry(), DoExport(), DoFileNew(), DoFileOpen(), DoGetNameInZip(), DoGetZipName(), CWineTest::DoListCommand(), DoLoadItems(), CShellLink::DoOpen(), DoOpenFile(), CShellLink::DoOpenFileLocation(), DoParse(), DoParseFile(), DoQuery(), CWebService::DoRequest(), DoSaveAs(), DoSaveFileAs(), DosBIOSInitialize(), DosCreateProcess(), DosStart(), DosStartProcess32(), DoStartStartupItems(), DoTest(), DoTestComputerName(), DoTestEntry(), DoWaveStreaming(), download_file(), CDownloadManager::DownloadDlgProc(), DrawCaptionTest(), DrawLogoffScreen(), DrawNCPreview(), DrawProc(), DrawTest(), DrawThemeText(), DrawTree(), drive_letter_callback2(), DRIVER_AddToList(), DRIVER_RemoveFromList(), DRIVER_TryOpenDriver32(), DriverEntry(), DriverFilesCallback(), DriverProc(), DrivesContextMenuCallback(), DriveType(), CDeskLinkDropHandler::Drop(), CExeDropHandler::Drop(), DSEnumCallback(), DSoundEnumerate(), DsppInitialize(), DsppLoadFontFile(), DsppReinitialize(), DsSetupBind(), DumpEnum(), DumpFilterDescriptor(), DumpInfo(), DumpMemory(), DumpSubstedDrives(), DumpUDT(), DuplicatesTest(), DuplicateStringWEx(), DxDdStartupDxGraphics(), DxDiagWndProc(), EchoHandler(), EchoIncomingPackets(), EditTypeDlg_OnChangeIcon(), EditTypeDlg_OnCommand(), EditTypeDlg_OnInitDialog(), EditTypeDlg_ReadClass(), EditTypeDlg_WriteClass(), EfiConInExReset(), EfiConInReset(), EfiConnectController(), EfiConOutEnableCursor(), EfiConOutOutputString(), EfiConOutQueryMode(), EfiConOutReadCurrentMode(), EfiConOutSetAttribute(), EfiConOutSetCursorPosition(), EfiConOutSetMode(), EfiGetVariable(), EfiGopSetMode(), EfiInitpCreateApplicationEntry(), EfiResetSystem(), EjectFloppy(), ElfCreateEventLogHandle(), emit_restart(), emit_sof(), EmulatorException(), EmulatorInitialize(), CSysTray::EnableService(), EnableUserModePnpManager(), encode_mcu(), encode_mcu_DC_first(), EncodeVendorStr(), CPin::EndFlush(), CInputPin::EndFlush(), EndLog(), CPin::EndOfStream(), CInputPin::EndOfStream(), EngLoadImageEx(), EngpRegisterGraphicsDevice(), EnqueueWaveHeader(), CMainWindow::EnumAvailableAppProc(), CTuningSpace::EnumCategoryGUIDs(), EnumClientServiceProtocol(), EnumConnectionsCallback(), EnumDesktopProc(), EnumDeviceClasses(), CTuningSpace::EnumDeviceMonikers(), CCharMapWindow::EnumDisplayFont(), EnumerateBiosDiskEntries(), EnumerateBusKey(), EnumerateConnectedDrives(), EnumerateConnections(), EnumerateDevices(), CDefaultContextMenu::EnumerateDynamicContextHandlerForKey(), EnumerateGroups(), CNetConnectionManager::EnumerateINetConnections(), EnumerateKeyTest(), EnumerateLocalGroups(), EnumerateNetworkAdapter(), EnumerateNetworkComponent(), EnumerateNt4ServiceSoundDevices(), EnumerateReactOSEntries(), EnumerateRunningServices(), EnumerateServiceProviders(), EnumerateShares(), EnumerateUsers(), EnumerateValueTest(), EnumEventsThread(), EnumFontFamExProc(), EnumFontNames(), EnumFontSizesProc(), EnumFuncEx(), EnumHKCRKey(), EnumHKCRValue(), EnumInstalledApplications(), CMainWindow::EnumInstalledAppProc(), EnumInterfaces(), EnumNameServers(), EnumPageFilesW(), EnumPickIconResourceProc(), EnumProtocolsA(), EnumProtocolsW(), EnumPwrSchemes(), EnumStubProc(), CScanningTunner::EnumTuningSpaces(), EnumWindowsProc(), EraseLine(), err_string_prop(), error(), error_code_messagebox(), error_unknown_switch(), ErrorMessage(), ErrorMessageBox(), Escape(), EscapeQuickSearch(), EtfsMount(), EtfsOpen(), EtfspCheckCdfs(), EtfspCheckEtfs(), EtfspCreateContext(), EtfspGetDirent(), EtfsSetInformation(), EventDetails(), EVENTLOG_HANDLE_W_bind(), EventLogPropProc(), Ex2ProcessMountPoint(), CTrayWindow::ExecContextMenuCmd(), CTrayWindow::ExecResourceCmd(), CShellCommandValue::Execute(), COpenWithList::Execute(), execute_from_key(), ExitWindowsDialog(), ExitWindowsDialog_backup(), ExpandSymbolicLink(), ExpCreateSystemRootLink(), ExpGetCurrentUserUILanguage(), ExpInitializeCallbacks(), ExpInitializeEventImplementation(), ExpInitializeEventPairImplementation(), ExpInitializeMutantImplementation(), ExpInitializeProfileImplementation(), ExpInitializeSemaphoreImplementation(), ExpInitializeTimerImplementation(), ExpInitNls(), ExpLoadBootSymbols(), ExpLoadInitialProcess(), ExportFile(), ExportRegistryFile_OFNHookProc(), ExpSetCurrentUserUILanguage(), ExpUuidLoadSequenceNumber(), ExpUuidSaveSequenceNumber(), ExpWin32kInit(), Ext2AllocateMcb(), Ext2BuildName(), Ext2CreateFile(), Ext2InitializeVcb(), Ext2IsDot(), Ext2IsDotDot(), Ext2IsNameValid(), Ext2IsSpecialSystemFile(), Ext2LookupFile(), Ext2ParseRegistryVolumeParams(), Ext2ProcessEntry(), Ext2QueryDirectory(), Ext2QueryVolumeInformation(), Ext2QueryVolumeParams(), Ext2SetLinkInfo(), Ext2SetRenameInfo(), ExtractFilesFromCab(), ExtractFont(), ExtractTTFFile(), CDrvDefExt::ExtraPageProc(), FaceNameList_Initialize(), FaceNameList_SelectFont(), FATAddEntry(), FatalError(), FatEvaluateNameCase(), FatMount(), FatQueryFsAttributeInfo(), FatSetFullNameInFcb(), FatSpaceInName(), FatTunnelFcbOrDcb(), FatUnicodeRestoreShortNameCase(), FATXGetNextDirEntry(), FD31_DiskChange(), FdcFdoQueryBusRelations(), FDebugBreakForService(), FdoCreateRawParallelPdo(), FFSCreateFile(), FFSGetFullFileName(), FFSInitializeVcb(), FFSQueryDirectory(), FFSQueryVolumeInformation(), FFSSetRenameInfo(), FFSv1LookupFileName(), FFSv2LookupFileName(), file_pathW(), FileCopyCallback(), FileDeviceOpen(), FILEDLG95_InitControls(), FileExtractDialogWndProc(), FileInitialize(), FileIoOpen(), FileQueryFiles(), FileSystemToPartitionType(), ATL::CImage::FileTypeFromExtension(), FileTypesDlg_AddExt(), FileTypesDlg_DoList(), FileTypesDlg_InitListView(), FileTypesDlg_InsertToLV(), FileTypesDlg_OnItemChanging(), FileTypesDlg_RemoveExt(), filewrite(), fill_in_file_stream_information(), FillComboBox(), FillDefault(), FillDefaultSettings(), CDefView::FillEditMenu(), FillList(), CDefView::FillList(), FillListView(), FillResetComboBox(), FillServerAddressCombo(), CDefView::FillViewMenu(), filter(), FilterConnectCommunicationPort(), FilterLoadUnload(), CDrivesFolder::FinalConstruct(), CDesktopFolder::FinalConstruct(), find_actctx_dll(), find_devices(), find_next_bit(), FindBitmapResource(), FindCurrentDriver(), FindDateSep(), FindDeviceDescForAdapter(), FindDevices(), FindDialogWndProc(), FindDriverObjectDirectory(), FindFile(), FindFirstFileExW(), CTuningSpaceContainer::FindID(), FindLanguageIndex(), FindLFNorSFN_U(), FindMatchingCreateItem(), FindNetworkAdapter(), FindNTOSInstallations(), CNetworkProvider::FindPin(), CKsProxy::FindPin(), FindProductName(), findRev(), FindScsiAdapter(), FindString(), FindSupportedSystemPartition(), FinishDlgProc(), FirstSoundSentry(), FitName(), FixupServiceBinaryPath(), FltpAttachToFileSystemDevice(), FltpOpenFilterServicesKey(), FltpSetupCommunicationObjects(), FmtAcquireDrive_(), FNFDINOTIFY(), FNREAD(), CSendToMenu::FolderHasAnyItems(), FontFamilyFillInfo(), FontProc(), FontSizeChange(), FontSizeList_SelectFontSize(), FontTypeChange(), format_drive_thread(), format_message(), format_ntstatus(), format_size(), FormatBytes(), FormatByteSize(), FormatChooseDlgProc(), CRegistryFolder::FormatContentsForDisplay(), FormatDateTime(), FormatDrive(), FormatEx(), FormatEx2(), FormatExCallback(), FormatFileSizeWithBytes(), FormatInteger(), FormatMenuString(), FormatMsg(), FormatPartitionPage(), FormatProfileSize(), BtrfsVolPropSheet::FormatUsage(), CRegistryFolder::FormatValueData(), FoundDevice(), FraggerHelp(), FrameOnCreate(), FreeBT_AddDevice(), FreeBT_QueryWmiDataBlock(), FreeClusters(), FreeGlobalData(), FreeJob(), FreeLdrEnumerateBootEntries(), FreeSoundDevice(), fs_ignored(), FsdGetFsAttributeInformation(), FsRecBtrfsFsControl(), FsRecCdfsFsControl(), FsRecExt2FsControl(), FsRecFfsFsControl(), FsRecNtfsFsControl(), FsRecReiserfsFsControl(), FsRecUdfsFsControl(), FsRecVfatFsControl(), FsRtlDissectName(), FsRtlDoesNameContainWildCards(), FsRtlGetTunnelParameterValue(), FsRtlInitializeTunnels(), FsRtlIsNameInExpressionPrivate(), FsRtlNotifyFilterReportChange(), FsRtlNotifyUpdateBuffer(), FsRtlpIsDfsEnabled(), FsRtlpSetSymbolicLink(), FsRtlRegisterUncProvider(), FsRtlTest_OpenTestDirectory(), FsRtlTest_OpenTestFile(), FT_CeilFix(), ft_corner_orientation(), ft_div64by32(), FT_FloorFix(), FT_Get_PFR_Metrics(), FT_GlyphSlot_Oblique(), FT_Matrix_Multiply_Scaled(), FT_MulDiv(), FT_MulDiv_No_Round(), ft_open_face_internal(), FT_Outline_EmboldenXY(), FT_Raccess_Get_DataOffsets(), FT_Request_Metrics(), FT_RoundFix(), FT_Select_Metrics(), FT_Set_Transform(), FT_Stream_ReadChar(), FT_Stream_ReadULong(), FT_Stream_ReadULongLE(), FT_Stream_ReadUOffset(), FT_Stream_ReadUShort(), FT_Stream_ReadUShortLE(), FT_Stroker_Set(), FT_Vector_Length(), FT_Vector_Rotate(), FT_Vector_Transform_Scaled(), FT_Vector_Unit(), ftGdiGetTextCharsetInfo(), G711_StreamOpen(), GB_Paint(), GdiAddFontResourceW(), GdipGetSupportedFileExtensions(), GeneralDlgProc(), CDrvDefExt::GeneralPageProc(), GeneralPageProc(), GeneralPageWndProc(), GenerateComputerName(), CKsProxy::Get(), CTuningSpace::get__NetworkType(), CTuningSpaceContainer::get__NewEnum(), CKsBasicAudio::get_Balance(), CTuningSpace::get_CLSID(), CTuneRequest::get_Components(), CTuningSpaceContainer::get_Count(), CTuningSpace::get_DefaultLocator(), CTuningSpace::get_DefaultPreferredComponentTypes(), CTuningSpaceContainer::get_EnumTuningSpaces(), get_file_name(), CTuningSpace::get_FrequencyMapping(), CTuningSpace::get_FriendlyName(), get_ImageBase(), CTuningSpaceContainer::get_Item(), get_item_path(), CTuneRequest::get_Locator(), get_manifest_in_pe_file(), CTuningSpaceContainer::get_MaxCount(), get_module_version(), get_mountdev_name(), CTuningSpace::get_NetworkType(), CTuneRequest::get_ONID(), get_operation(), CScanningTunner::get_PreferredComponentTypes(), get_root_key_name(), CBDASignalStatistics::get_SampleTime(), get_sectionheader(), get_session_start(), CTuneRequest::get_SID(), CBDASignalStatistics::get_SignalLocked(), CBDASignalStatistics::get_SignalPresent(), CBDASignalStatistics::get_SignalQuality(), CBDASignalStatistics::get_SignalStrength(), CScanningTunner::get_SignalStrength(), get_system_root_partition(), CTuningSpace::get_SystemType(), get_time(), CTuneRequest::get_TSID(), CScanningTunner::get_TuneRequest(), CScanningTunner::get_TuningSpace(), CTuneRequest::get_TuningSpace(), BtrfsContextMenu::get_uac_icon(), CTuningSpace::get_UniqueName(), CKsBasicAudio::get_Volume(), GetActiveClassicTheme(), GetActiveDiskPartition(), GetActivePwrScheme(), GetAdapterIndexFromNetCfgInstanceId(), GetAdapterOrderMap(), GetAddressByNameA(), GetAddressByNameW(), GetAdvertisedArg(), CInputPin::GetAllocator(), COutputPin::GetAllocatorProperties(), CInputPin::GetAllocatorRequirements(), GetAllUsersProfileDirectoryW(), ATL::CAtlModuleT< CComModule >::GetAppId(), GetApplicationString(), getAppName(), GetArg(), GetAutoDaylightInfo(), CKsProxy::GetAvailable(), CToolsBand::GetBandInfo(), CBrandBand::GetBandInfo(), GetBestInterfaceEx(), GetBinaryTypeW(), GetBIOSValue(), DriveVolume::GetBitmap(), GetBooleanValue(), GetBootResourceList(), CKsAllocator::GetBuffer(), CKsProxy::GetCapabilities(), CNetworkProvider::GetClassID(), CKsProxy::GetClassID(), GetCLSIDForFileType(), ATL::CImage::GetClsidFromFileType(), DriveVolume::GetClusterInfo(), GetComCtl32Version(), CQueryAssociations::GetCommand(), GetCommandConsoleLaunchingPermission(), GetComputerIdentifier(), GetComputerNameExW(), CConfiguration::GetConfigurationFromFile(), CVPConfig::GetConnectInfo(), CVPVBIConfig::GetConnectInfo(), CBDADeviceControl::GetControlNode(), GetCPFileNameFromRegistry(), GetCurrencySetting(), GetCurrentDPI(), GetCurrentHwProfileW(), GetCurrentLoggedOnUserName(), CKsProxy::GetCurrentPosition(), CFSFolder::GetCustomViewInfo(), CQueryAssociations::GetData(), CTrayBandSite::GetDefaultBandsStream(), GetDefaultClusterSize(), GetDefaultLayoutForLocale(), GetDefaultPrinterFromRegistry(), GetDefaultPrinterW(), GetDefaultTitle(), GetDefaultUserProfileDirectoryW(), GetDefragTitle(), GetDelayMilliseconds(), GetDesktopPath(), CRegistryFolder::GetDetailsEx(), CNtObjectFolder::GetDetailsEx(), CRecycleBin::GetDetailsOf(), CRegistryFolder::GetDetailsOf(), CNtObjectFolder::GetDetailsOf(), CZipFolder::GetDetailsOf(), GetDeviceAndComputerName(), GetDeviceCapabilities(), GetDeviceDescriptionString(), CNetConnectionPropertyUi::GetDeviceInstanceID(), GetDeviceInstanceKeyPath(), GetDeviceInstanceList(), GetDeviceLocationString(), GetDeviceManufacturerString(), GetDeviceStatusString(), GetDeviceTypeString(), GetDirectoryStructure(), GetDirectXVersion(), GetDiskFreeSpaceExW(), GetDiskFreeSpaceW(), GetDisplayIdentifier(), GetDisplayNameFileAndID(), CDrivesFolder::GetDisplayNameOf(), CRecycleBin::GetDisplayNameOf(), CRegFolder::GetDisplayNameOf(), GetDllList(), GetDosDevicesProtection(), GetDriveNameWithLetter(), GetDriverDateString(), GetDriverName(), GetDriverProviderString(), GetDriverVersionString(), GetDriveTypeW(), CKsProxy::GetDuration(), GetEnumeratorInstanceList(), GetEnumeratorInstanceListSize(), GetEnumOptions(), GetError(), GetEventCategory(), GetEventMessage(), GetExecutableVendor(), GetExpandedFilePathName(), GetExplorerRegValueSet(), GetFallbackHKCRKey(), GetFileExt(), ATL::CImage::GetFileExtension(), GetFileModifyTime(), GetFileName(), GetFileNameFromBrowse(), GetFileSystemByName(), CFileDefExt::GetFileTimeString(), GetFileTimeString(), GetFileTypeIconsByKey(), GetFileTypeIconsEx(), GetFileVersion(), GetFilterAltitude(), CFileVersionInfo::GetFixedInfo(), GetFontCellSize(), COutputPin::GetFormat(), GetGeneralGroupData(), GetGinaPath(), gethmsfromlargeint(), GetIcmpStatisticsEx(), CExplorerCommand::GetIcon(), getIconLocationForDrive(), CTuningSpaceContainer::GetIDsOfNames(), CTuningSpace::GetIDsOfNames(), CTuneRequest::GetIDsOfNames(), CKsBasicAudio::GetIDsOfNames(), anonymous_namespace{mstscax.cpp}::CoClass::GetIDsOfNames(), GetImmFileName(), CConfigParser::GetINIFullPath(), GetInstalledVersion_WowUser(), GetInstallSourceWin32(), GetIntegerFromSettings(), GetInterfaceName(), GetInterfaceNameInternal(), GetIntervalSetting(), GetIpAddressFromStringA(), GetIpAddressFromStringW(), GetIpErrorString(), GetJobFilePath(), GetJobName(), GetKeyName(), GetLastErrorText(), GetLayerInfo(), GetLayoutCount(), GetLayoutName(), GetLineExtentW(), GetListOfTestExes(), GetListViewEntries(), GetLocalisedText(), GetLocalsplFuncs(), GetLPTTransmissionRetryTimeout(), CVPConfig::GetMaxPixelRate(), CVPVBIConfig::GetMaxPixelRate(), GetMessageLineCount(), CKsProxy::GetMiscFlags(), GetName(), GetNameByTypeA(), GetNameByTypeW(), GetNCCaptionTheme(), GetNCScrollbarTheme(), getnetbyname(), CNetworkProvider::GetNetworkType(), CWineTest::GetNextFile(), GetNextVolumeDevice(), CBDADeviceControl::GetNodeDescriptors(), CBDADeviceControl::GetNodeInterfaces(), CBDADeviceControl::GetNodeTypes(), GetNt4SoundDeviceCapabilities(), COutputPin::GetNumberOfCapabilities(), GetNumberSetting(), CVPConfig::GetOverlaySurface(), CVPVBIConfig::GetOverlaySurface(), GetOwnerModuleFromPidEntry(), GetOwnerModuleFromTagEntry(), COutputPin::GetPages(), CKsProxy::GetPages(), GetPerAdapterInfo(), CBDAPinControl::GetPinID(), CKsProxy::GetPinName(), CBDAPinControl::GetPinType(), CBDADeviceControl::GetPinTypes(), GetPortNameWithoutColon(), GetPortType(), CKsProxy::GetPositions(), CKsProxy::GetPreroll(), GetPrinterDataExW(), GetPrinterDataW(), GetProc(), GetProcessInfo(), GetProcessorInformation(), GetProfile(), GetProfileCount(), GetProfileName(), GetProfiles(), GetProfilesDirectoryW(), GetProfileSize(), GetProfileType(), GetProgramsPath(), CNetConnection::GetProperties(), CKsProxy::GetRate(), GetRealOSVersion(), GetRegistrySettings(), GetRegKeys(), GetRegValue(), GetSeconds(), GetServiceA(), GetServiceDisplayNameW(), GetServiceInstanceList(), GetServiceInstanceListSize(), GetServiceKeyNameW(), GetServiceMainFunctions(), GetServicesActivation(), CSysTray::GetServicesEnabled(), GetServiceW(), GetSetupType(), GetShell(), GetShutdownReasonUI(), CNetworkProvider: