ReactOS 0.4.16-dev-2491-g3dc6630
wintrust_priv.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

BOOL WINAPI WINTRUST_AddStore (CRYPT_PROVIDER_DATA *data, HCERTSTORE store)
 
BOOL WINAPI WINTRUST_AddSgnr (CRYPT_PROVIDER_DATA *data, BOOL fCounterSigner, DWORD idxSigner, CRYPT_PROVIDER_SGNR *sgnr)
 
BOOL WINAPI WINTRUST_AddCert (CRYPT_PROVIDER_DATA *data, DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner, PCCERT_CONTEXT pCert2Add)
 
BOOL WINAPI WINTRUST_AddPrivData (CRYPT_PROVIDER_DATA *data, CRYPT_PROVIDER_PRIVDATA *pPrivData2Add)
 

Function Documentation

◆ WINTRUST_AddCert()

BOOL WINAPI WINTRUST_AddCert ( CRYPT_PROVIDER_DATA data,
DWORD  idxSigner,
BOOL  fCounterSigner,
DWORD  idxCounterSigner,
PCCERT_CONTEXT  pCert2Add 
)

Definition at line 1044 of file wintrust_main.c.

1046{
1047 BOOL ret = FALSE;
1048
1049 TRACE("(%p, %ld, %d, %ld, %p)\n", data, idxSigner, fCounterSigner,
1050 idxSigner, pCert2Add);
1051
1052 if (fCounterSigner)
1053 {
1054 FIXME("unimplemented for counter signers\n");
1056 return FALSE;
1057 }
1058 data->pasSigners[idxSigner].pasCertChain =
1059 realloc(data->pasSigners[idxSigner].pasCertChain,
1060 (data->pasSigners[idxSigner].csCertChain + 1) *
1061 sizeof(CRYPT_PROVIDER_CERT));
1062 if (data->pasSigners[idxSigner].pasCertChain)
1063 {
1064 CRYPT_PROVIDER_CERT *cert = &data->pasSigners[idxSigner].pasCertChain[
1065 data->pasSigners[idxSigner].csCertChain];
1066
1067 cert->cbStruct = sizeof(CRYPT_PROVIDER_CERT);
1068 cert->pCert = CertDuplicateCertificateContext(pCert2Add);
1069 data->pasSigners[idxSigner].csCertChain++;
1070 ret = TRUE;
1071 }
1072 else
1074 return ret;
1075}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define realloc
Definition: debug_ros.c:6
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:360
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static BYTE cert[]
Definition: msg.c:1374
#define TRACE(s)
Definition: solgame.cpp:4
struct _CRYPT_PROVIDER_CERT CRYPT_PROVIDER_CERT

Referenced by WintrustLoadFunctionPointers().

◆ WINTRUST_AddPrivData()

BOOL WINAPI WINTRUST_AddPrivData ( CRYPT_PROVIDER_DATA data,
CRYPT_PROVIDER_PRIVDATA pPrivData2Add 
)

Definition at line 1077 of file wintrust_main.c.

1079{
1080 BOOL ret = FALSE;
1081
1082 TRACE("(%p, %p)\n", data, pPrivData2Add);
1083
1084 if (pPrivData2Add->cbStruct > sizeof(CRYPT_PROVIDER_PRIVDATA))
1085 {
1087 WARN("invalid struct size\n");
1088 return FALSE;
1089 }
1090 data->pasProvPrivData = realloc(data->pasProvPrivData,
1091 (data->csProvPrivData + 1) * sizeof(*data->pasProvPrivData));
1092 if (data->pasProvPrivData)
1093 {
1094 DWORD i;
1095
1096 for (i = 0; i < data->csProvPrivData; i++)
1097 if (IsEqualGUID(&pPrivData2Add->gProviderID, &data->pasProvPrivData[i]))
1098 break;
1099
1100 data->pasProvPrivData[i] = *pPrivData2Add;
1101 if (i == data->csProvPrivData)
1102 data->csProvPrivData++;
1103 }
1104 else
1106 return ret;
1107}
#define WARN(fmt,...)
Definition: precomp.h:61
unsigned long DWORD
Definition: ntddk_ex.h:95
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 IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

Referenced by WintrustLoadFunctionPointers().

◆ WINTRUST_AddSgnr()

BOOL WINAPI WINTRUST_AddSgnr ( CRYPT_PROVIDER_DATA data,
BOOL  fCounterSigner,
DWORD  idxSigner,
CRYPT_PROVIDER_SGNR sgnr 
)

Definition at line 997 of file wintrust_main.c.

999{
1000 BOOL ret = FALSE;
1001
1002 TRACE("(%p, %d, %ld, %p)\n", data, fCounterSigner, idxSigner, sgnr);
1003
1004 if (sgnr->cbStruct > sizeof(CRYPT_PROVIDER_SGNR))
1005 {
1007 return FALSE;
1008 }
1009 if (fCounterSigner)
1010 {
1011 FIXME("unimplemented for counter signers\n");
1013 return FALSE;
1014 }
1015 data->pasSigners = realloc(data->pasSigners,
1016 (data->csSigners + 1) * sizeof(CRYPT_PROVIDER_SGNR));
1017 if (data->pasSigners)
1018 {
1019 if (idxSigner < data->csSigners)
1020 memmove(&data->pasSigners[idxSigner],
1021 &data->pasSigners[idxSigner + 1],
1022 (data->csSigners - idxSigner) * sizeof(CRYPT_PROVIDER_SGNR));
1023 ret = TRUE;
1024 if (sgnr->cbStruct == sizeof(CRYPT_PROVIDER_SGNR))
1025 {
1026 /* The PSDK says psSigner should be allocated using pfnAlloc, but
1027 * it doesn't say anything about ownership. Since callers are
1028 * internal, assume ownership is passed, and just store the
1029 * pointer.
1030 */
1031 memcpy(&data->pasSigners[idxSigner], sgnr,
1032 sizeof(CRYPT_PROVIDER_SGNR));
1033 }
1034 else
1035 memset(&data->pasSigners[idxSigner], 0,
1036 sizeof(CRYPT_PROVIDER_SGNR));
1037 data->csSigners++;
1038 }
1039 else
1041 return ret;
1042}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
#define memset(x, y, z)
Definition: compat.h:39

Referenced by WintrustLoadFunctionPointers().

◆ WINTRUST_AddStore()

BOOL WINAPI WINTRUST_AddStore ( CRYPT_PROVIDER_DATA data,
HCERTSTORE  store 
)

Definition at line 980 of file wintrust_main.c.

981{
982 BOOL ret = FALSE;
983
984 TRACE("(%p, %p)\n", data, store);
985
986 data->pahStores = realloc(data->pahStores, (data->chStores + 1) * sizeof(HCERTSTORE));
987 if (data->pahStores)
988 {
989 data->pahStores[data->chStores++] = CertDuplicateStore(store);
990 ret = TRUE;
991 }
992 else
994 return ret;
995}
HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE hCertStore)
Definition: store.c:1116

Referenced by WintrustLoadFunctionPointers().