Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/schannel.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef __SCHANNEL_H__ | |
| 7 #define __SCHANNEL_H__ | |
| 8 | |
| 9 #include <wincrypt.h> | |
| 10 | |
| 11 #define UNISP_NAME_A "Microsoft Unified Security Protocol Provider" | |
| 12 #define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider" | |
| 13 | |
| 14 #define SSL2SP_NAME_A "Microsoft SSL 2.0" | |
| 15 #define SSL2SP_NAME_W L"Microsoft SSL 2.0" | |
| 16 | |
| 17 #define SSL3SP_NAME_A "Microsoft SSL 3.0" | |
| 18 #define SSL3SP_NAME_W L"Microsoft SSL 3.0" | |
| 19 | |
| 20 #define TLS1SP_NAME_A "Microsoft TLS 1.0" | |
| 21 #define TLS1SP_NAME_W L"Microsoft TLS 1.0" | |
| 22 | |
| 23 #define PCT1SP_NAME_A "Microsoft PCT 1.0" | |
| 24 #define PCT1SP_NAME_W L"Microsoft PCT 1.0" | |
| 25 | |
| 26 #define SCHANNEL_NAME_A "Schannel" | |
| 27 #define SCHANNEL_NAME_W L"Schannel" | |
| 28 | |
| 29 #ifdef UNICODE | |
| 30 | |
| 31 #define UNISP_NAME UNISP_NAME_W | |
| 32 #define PCT1SP_NAME PCT1SP_NAME_W | |
| 33 #define SSL2SP_NAME SSL2SP_NAME_W | |
| 34 #define SSL3SP_NAME SSL3SP_NAME_W | |
| 35 #define TLS1SP_NAME TLS1SP_NAME_W | |
| 36 #define SCHANNEL_NAME SCHANNEL_NAME_W | |
| 37 #else | |
| 38 | |
| 39 #define UNISP_NAME UNISP_NAME_A | |
| 40 #define PCT1SP_NAME PCT1SP_NAME_A | |
| 41 #define SSL2SP_NAME SSL2SP_NAME_A | |
| 42 #define SSL3SP_NAME SSL3SP_NAME_A | |
| 43 #define TLS1SP_NAME TLS1SP_NAME_A | |
| 44 #define SCHANNEL_NAME SCHANNEL_NAME_A | |
| 45 #endif | |
| 46 | |
| 47 #define UNISP_RPC_ID 14 | |
| 48 | |
| 49 #define SECPKG_ATTR_ISSUER_LIST 0x50 | |
| 50 #define SECPKG_ATTR_REMOTE_CRED 0x51 | |
| 51 #define SECPKG_ATTR_LOCAL_CRED 0x52 | |
| 52 #define SECPKG_ATTR_REMOTE_CERT_CONTEXT 0x53 | |
| 53 #define SECPKG_ATTR_LOCAL_CERT_CONTEXT 0x54 | |
| 54 #define SECPKG_ATTR_ROOT_STORE 0x55 | |
| 55 #define SECPKG_ATTR_SUPPORTED_ALGS 0x56 | |
| 56 #define SECPKG_ATTR_CIPHER_STRENGTHS 0x57 | |
| 57 #define SECPKG_ATTR_SUPPORTED_PROTOCOLS 0x58 | |
| 58 #define SECPKG_ATTR_ISSUER_LIST_EX 0x59 | |
| 59 #define SECPKG_ATTR_CONNECTION_INFO 0x5a | |
| 60 #define SECPKG_ATTR_EAP_KEY_BLOCK 0x5b | |
| 61 #define SECPKG_ATTR_MAPPED_CRED_ATTR 0x5c | |
| 62 #define SECPKG_ATTR_SESSION_INFO 0x5d | |
| 63 #define SECPKG_ATTR_APP_DATA 0x5e | |
| 64 | |
| 65 typedef struct _SecPkgContext_IssuerListInfo { | |
| 66 DWORD cbIssuerList; | |
| 67 PBYTE pIssuerList; | |
| 68 } SecPkgContext_IssuerListInfo,*PSecPkgContext_IssuerListInfo; | |
| 69 | |
| 70 typedef struct _SecPkgContext_RemoteCredentialInfo { | |
| 71 DWORD cbCertificateChain; | |
| 72 PBYTE pbCertificateChain; | |
| 73 DWORD cCertificates; | |
| 74 DWORD fFlags; | |
| 75 DWORD dwBits; | |
| 76 } SecPkgContext_RemoteCredentialInfo,*PSecPkgContext_RemoteCredentialInfo; | |
| 77 | |
| 78 typedef SecPkgContext_RemoteCredentialInfo SecPkgContext_RemoteCredenitalInfo,*PSecPkgContext_RemoteCredenitalInfo; | |
| 79 | |
| 80 #define RCRED_STATUS_NOCRED 0x00000000 | |
| 81 #define RCRED_CRED_EXISTS 0x00000001 | |
| 82 #define RCRED_STATUS_UNKNOWN_ISSUER 0x00000002 | |
| 83 | |
| 84 typedef struct _SecPkgContext_LocalCredentialInfo { | |
| 85 DWORD cbCertificateChain; | |
| 86 PBYTE pbCertificateChain; | |
| 87 DWORD cCertificates; | |
| 88 DWORD fFlags; | |
| 89 DWORD dwBits; | |
| 90 } SecPkgContext_LocalCredentialInfo,*PSecPkgContext_LocalCredentialInfo; | |
| 91 | |
| 92 typedef SecPkgContext_LocalCredentialInfo SecPkgContext_LocalCredenitalInfo,*PSecPkgContext_LocalCredenitalInfo; | |
| 93 | |
| 94 #define LCRED_STATUS_NOCRED 0x00000000 | |
| 95 #define LCRED_CRED_EXISTS 0x00000001 | |
| 96 #define LCRED_STATUS_UNKNOWN_ISSUER 0x00000002 | |
| 97 | |
| 98 typedef struct _SecPkgCred_SupportedAlgs { | |
| 99 DWORD cSupportedAlgs; | |
| 100 ALG_ID *palgSupportedAlgs; | |
| 101 } SecPkgCred_SupportedAlgs,*PSecPkgCred_SupportedAlgs; | |
| 102 | |
| 103 typedef struct _SecPkgCred_CipherStrengths { | |
| 104 DWORD dwMinimumCipherStrength; | |
| 105 DWORD dwMaximumCipherStrength; | |
| 106 } SecPkgCred_CipherStrengths,*PSecPkgCred_CipherStrengths; | |
| 107 | |
| 108 typedef struct _SecPkgCred_SupportedProtocols { | |
| 109 DWORD grbitProtocol; | |
| 110 } SecPkgCred_SupportedProtocols,*PSecPkgCred_SupportedProtocols; | |
| 111 | |
| 112 typedef struct _SecPkgContext_IssuerListInfoEx { | |
| 113 PCERT_NAME_BLOB aIssuers; | |
| 114 DWORD cIssuers; | |
| 115 } SecPkgContext_IssuerListInfoEx,*PSecPkgContext_IssuerListInfoEx; | |
| 116 | |
| 117 typedef struct _SecPkgContext_ConnectionInfo { | |
| 118 DWORD dwProtocol; | |
| 119 ALG_ID aiCipher; | |
| 120 DWORD dwCipherStrength; | |
| 121 ALG_ID aiHash; | |
| 122 DWORD dwHashStrength; | |
| 123 ALG_ID aiExch; | |
| 124 DWORD dwExchStrength; | |
| 125 } SecPkgContext_ConnectionInfo,*PSecPkgContext_ConnectionInfo; | |
| 126 | |
| 127 typedef struct _SecPkgContext_EapKeyBlock { | |
| 128 BYTE rgbKeys[128]; | |
| 129 BYTE rgbIVs[64]; | |
| 130 } SecPkgContext_EapKeyBlock,*PSecPkgContext_EapKeyBlock; | |
| 131 | |
| 132 typedef struct _SecPkgContext_MappedCredAttr { | |
| 133 DWORD dwAttribute; | |
| 134 PVOID pvBuffer; | |
| 135 } SecPkgContext_MappedCredAttr,*PSecPkgContext_MappedCredAttr; | |
| 136 | |
| 137 #define SSL_SESSION_RECONNECT 1 | |
| 138 | |
| 139 typedef struct _SecPkgContext_SessionInfo { | |
| 140 DWORD dwFlags; | |
| 141 DWORD cbSessionId; | |
| 142 BYTE rgbSessionId[32]; | |
| 143 } SecPkgContext_SessionInfo,*PSecPkgContext_SessionInfo; | |
| 144 | |
| 145 typedef struct _SecPkgContext_SessionAppData { | |
| 146 DWORD dwFlags; | |
| 147 DWORD cbAppData; | |
| 148 PBYTE pbAppData; | |
| 149 } SecPkgContext_SessionAppData,*PSecPkgContext_SessionAppData; | |
| 150 | |
| 151 #define SCH_CRED_V1 0x00000001 | |
| 152 #define SCH_CRED_V2 0x00000002 | |
| 153 #define SCH_CRED_VERSION 0x00000002 | |
| 154 #define SCH_CRED_V3 0x00000003 | |
| 155 #define SCHANNEL_CRED_VERSION 0x00000004 | |
| 156 | |
| 157 struct _HMAPPER; | |
| 158 | |
| 159 typedef struct _SCHANNEL_CRED { | |
| 160 DWORD dwVersion; | |
| 161 DWORD cCreds; | |
| 162 PCCERT_CONTEXT *paCred; | |
| 163 HCERTSTORE hRootStore; | |
| 164 DWORD cMappers; | |
| 165 struct _HMAPPER **aphMappers; | |
| 166 DWORD cSupportedAlgs; | |
| 167 ALG_ID *palgSupportedAlgs; | |
| 168 DWORD grbitEnabledProtocols; | |
| 169 DWORD dwMinimumCipherStrength; | |
| 170 DWORD dwMaximumCipherStrength; | |
| 171 DWORD dwSessionLifespan; | |
| 172 DWORD dwFlags; | |
| 173 DWORD dwCredFormat; | |
| 174 } SCHANNEL_CRED,*PSCHANNEL_CRED; | |
| 175 | |
| 176 #define SCH_CRED_FORMAT_CERT_HASH 0x00000001 | |
| 177 | |
| 178 #define SCH_CRED_MAX_SUPPORTED_ALGS 256 | |
| 179 #define SCH_CRED_MAX_SUPPORTED_CERTS 100 | |
| 180 | |
| 181 typedef struct _SCHANNEL_CERT_HASH { | |
| 182 DWORD dwLength; | |
| 183 DWORD dwFlags; | |
| 184 HCRYPTPROV hProv; | |
| 185 BYTE ShaHash[20]; | |
| 186 } SCHANNEL_CERT_HASH,*PSCHANNEL_CERT_HASH; | |
| 187 | |
| 188 #define SCH_MACHINE_CERT_HASH 0x00000001 | |
| 189 | |
| 190 #define SCH_CRED_NO_SYSTEM_MAPPER 0x00000002 | |
| 191 #define SCH_CRED_NO_SERVERNAME_CHECK 0x00000004 | |
| 192 #define SCH_CRED_MANUAL_CRED_VALIDATION 0x00000008 | |
| 193 #define SCH_CRED_NO_DEFAULT_CREDS 0x00000010 | |
| 194 #define SCH_CRED_AUTO_CRED_VALIDATION 0x00000020 | |
| 195 #define SCH_CRED_USE_DEFAULT_CREDS 0x00000040 | |
| 196 #define SCH_CRED_DISABLE_RECONNECTS 0x00000080 | |
| 197 | |
| 198 #define SCH_CRED_REVOCATION_CHECK_END_CERT 0x00000100 | |
| 199 #define SCH_CRED_REVOCATION_CHECK_CHAIN 0x00000200 | |
| 200 #define SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 0x00000400 | |
| 201 #define SCH_CRED_IGNORE_NO_REVOCATION_CHECK 0x00000800 | |
| 202 #define SCH_CRED_IGNORE_REVOCATION_OFFLINE 0x00001000 | |
| 203 #define SCH_CRED_REVOCATION_CHECK_CACHE_ONLY 0x00004000 | |
| 204 | |
| 205 #define SCH_CRED_CACHE_ONLY_URL_RETRIEVAL 0x00008000 | |
| 206 | |
| 207 #define SCHANNEL_RENEGOTIATE 0 | |
| 208 #define SCHANNEL_SHUTDOWN 1 | |
| 209 #define SCHANNEL_ALERT 2 | |
| 210 #define SCHANNEL_SESSION 3 | |
| 211 | |
| 212 typedef struct _SCHANNEL_ALERT_TOKEN { | |
| 213 DWORD dwTokenType; | |
| 214 DWORD dwAlertType; | |
| 215 DWORD dwAlertNumber; | |
| 216 } SCHANNEL_ALERT_TOKEN; | |
| 217 | |
| 218 #define TLS1_ALERT_WARNING 1 | |
| 219 #define TLS1_ALERT_FATAL 2 | |
| 220 | |
| 221 #define TLS1_ALERT_CLOSE_NOTIFY 0 | |
| 222 #define TLS1_ALERT_UNEXPECTED_MESSAGE 10 | |
| 223 #define TLS1_ALERT_BAD_RECORD_MAC 20 | |
| 224 #define TLS1_ALERT_DECRYPTION_FAILED 21 | |
| 225 #define TLS1_ALERT_RECORD_OVERFLOW 22 | |
| 226 #define TLS1_ALERT_DECOMPRESSION_FAIL 30 | |
| 227 #define TLS1_ALERT_HANDSHAKE_FAILURE 40 | |
| 228 #define TLS1_ALERT_BAD_CERTIFICATE 42 | |
| 229 #define TLS1_ALERT_UNSUPPORTED_CERT 43 | |
| 230 #define TLS1_ALERT_CERTIFICATE_REVOKED 44 | |
| 231 #define TLS1_ALERT_CERTIFICATE_EXPIRED 45 | |
| 232 #define TLS1_ALERT_CERTIFICATE_UNKNOWN 46 | |
| 233 #define TLS1_ALERT_ILLEGAL_PARAMETER 47 | |
| 234 #define TLS1_ALERT_UNKNOWN_CA 48 | |
| 235 #define TLS1_ALERT_ACCESS_DENIED 49 | |
| 236 #define TLS1_ALERT_DECODE_ERROR 50 | |
| 237 #define TLS1_ALERT_DECRYPT_ERROR 51 | |
| 238 #define TLS1_ALERT_EXPORT_RESTRICTION 60 | |
| 239 #define TLS1_ALERT_PROTOCOL_VERSION 70 | |
| 240 #define TLS1_ALERT_INSUFFIENT_SECURITY 71 | |
| 241 #define TLS1_ALERT_INTERNAL_ERROR 80 | |
| 242 #define TLS1_ALERT_USER_CANCELED 90 | |
| 243 #define TLS1_ALERT_NO_RENEGOTIATATION 100 | |
| 244 | |
| 245 #define SSL_SESSION_ENABLE_RECONNECTS 1 | |
| 246 #define SSL_SESSION_DISABLE_RECONNECTS 2 | |
| 247 | |
| 248 typedef struct _SCHANNEL_SESSION_TOKEN { | |
| 249 DWORD dwTokenType; | |
| 250 DWORD dwFlags; | |
| 251 } SCHANNEL_SESSION_TOKEN; | |
| 252 | |
| 253 #define CERT_SCHANNEL_IIS_PRIVATE_KEY_PROP_ID (CERT_FIRST_USER_PROP_ID + 0) | |
| 254 #define CERT_SCHANNEL_IIS_PASSWORD_PROP_ID (CERT_FIRST_USER_PROP_ID + 1) | |
| 255 #define CERT_SCHANNEL_SGC_CERTIFICATE_PROP_ID (CERT_FIRST_USER_PROP_ID + 2) | |
| 256 | |
| 257 #define SP_PROT_PCT1_SERVER 0x00000001 | |
| 258 #define SP_PROT_PCT1_CLIENT 0x00000002 | |
| 259 #define SP_PROT_PCT1 (SP_PROT_PCT1_SERVER | SP_PROT_PCT1_CLIENT) | |
| 260 | |
| 261 #define SP_PROT_SSL2_SERVER 0x00000004 | |
| 262 #define SP_PROT_SSL2_CLIENT 0x00000008 | |
| 263 #define SP_PROT_SSL2 (SP_PROT_SSL2_SERVER | SP_PROT_SSL2_CLIENT) | |
| 264 | |
| 265 #define SP_PROT_SSL3_SERVER 0x00000010 | |
| 266 #define SP_PROT_SSL3_CLIENT 0x00000020 | |
| 267 #define SP_PROT_SSL3 (SP_PROT_SSL3_SERVER | SP_PROT_SSL3_CLIENT) | |
| 268 | |
| 269 #define SP_PROT_TLS1_SERVER 0x00000040 | |
| 270 #define SP_PROT_TLS1_CLIENT 0x00000080 | |
| 271 #define SP_PROT_TLS1 (SP_PROT_TLS1_SERVER | SP_PROT_TLS1_CLIENT) | |
| 272 | |
| 273 #define SP_PROT_SSL3TLS1_CLIENTS (SP_PROT_TLS1_CLIENT | SP_PROT_SSL3_CLIENT) | |
| 274 #define SP_PROT_SSL3TLS1_SERVERS (SP_PROT_TLS1_SERVER | SP_PROT_SSL3_SERVER) | |
| 275 #define SP_PROT_SSL3TLS1 (SP_PROT_SSL3 | SP_PROT_TLS1) | |
| 276 | |
| 277 #define SP_PROT_UNI_SERVER 0x40000000 | |
| 278 #define SP_PROT_UNI_CLIENT 0x80000000 | |
| 279 #define SP_PROT_UNI (SP_PROT_UNI_SERVER | SP_PROT_UNI_CLIENT) | |
| 280 | |
| 281 #define SP_PROT_ALL 0xffffffff | |
| 282 #define SP_PROT_NONE 0 | |
| 283 #define SP_PROT_CLIENTS (SP_PROT_PCT1_CLIENT | SP_PROT_SSL2_CLIENT | SP_PROT_SSL3_CLIENT | SP_PROT_UNI_CLIENT | SP_PROT_TLS1_CLIENT) | |
| 284 #define SP_PROT_SERVERS (SP_PROT_PCT1_SERVER | SP_PROT_SSL2_SERVER | SP_PROT_SSL3_SERVER | SP_PROT_UNI_SERVER | SP_PROT_TLS1_SERVER) | |
| 285 | |
| 286 typedef WINBOOL (*SSL_EMPTY_CACHE_FN_A)(LPSTR pszTargetName,DWORD dwFlags); | |
| 287 | |
| 288 WINBOOL SslEmptyCacheA(LPSTR pszTargetName,DWORD dwFlags); | |
| 289 | |
| 290 typedef WINBOOL (*SSL_EMPTY_CACHE_FN_W)(LPWSTR pszTargetName,DWORD dwFlags); | |
| 291 | |
| 292 WINBOOL SslEmptyCacheW(LPWSTR pszTargetName,DWORD dwFlags); | |
| 293 | |
| 294 #ifdef UNICODE | |
| 295 #define SSL_EMPTY_CACHE_FN SSL_EMPTY_CACHE_FN_W | |
| 296 #define SslEmptyCache SslEmptyCacheW | |
| 297 #else | |
| 298 #define SSL_EMPTY_CACHE_FN SSL_EMPTY_CACHE_FN_A | |
| 299 #define SslEmptyCache SslEmptyCacheA | |
| 300 #endif | |
| 301 | |
| 302 typedef struct _SSL_CREDENTIAL_CERTIFICATE { | |
| 303 DWORD cbPrivateKey; | |
| 304 PBYTE pPrivateKey; | |
| 305 DWORD cbCertificate; | |
| 306 PBYTE pCertificate; | |
| 307 PSTR pszPassword; | |
| 308 } SSL_CREDENTIAL_CERTIFICATE,*PSSL_CREDENTIAL_CERTIFICATE; | |
| 309 | |
| 310 #define SCHANNEL_SECRET_TYPE_CAPI 0x00000001 | |
| 311 #define SCHANNEL_SECRET_PRIVKEY 0x00000002 | |
| 312 #define SCH_CRED_X509_CERTCHAIN 0x00000001 | |
| 313 #define SCH_CRED_X509_CAPI 0x00000002 | |
| 314 #define SCH_CRED_CERT_CONTEXT 0x00000003 | |
| 315 | |
| 316 struct _HMAPPER; | |
| 317 typedef struct _SCH_CRED { | |
| 318 DWORD dwVersion; | |
| 319 DWORD cCreds; | |
| 320 PVOID *paSecret; | |
| 321 PVOID *paPublic; | |
| 322 DWORD cMappers; | |
| 323 struct _HMAPPER **aphMappers; | |
| 324 } SCH_CRED,*PSCH_CRED; | |
| 325 | |
| 326 typedef struct _SCH_CRED_SECRET_CAPI { | |
| 327 DWORD dwType; | |
| 328 HCRYPTPROV hProv; | |
| 329 } SCH_CRED_SECRET_CAPI,*PSCH_CRED_SECRET_CAPI; | |
| 330 | |
| 331 typedef struct _SCH_CRED_SECRET_PRIVKEY { | |
| 332 DWORD dwType; | |
| 333 PBYTE pPrivateKey; | |
| 334 DWORD cbPrivateKey; | |
| 335 PSTR pszPassword; | |
| 336 } SCH_CRED_SECRET_PRIVKEY,*PSCH_CRED_SECRET_PRIVKEY; | |
| 337 | |
| 338 typedef struct _SCH_CRED_PUBLIC_CERTCHAIN { | |
| 339 DWORD dwType; | |
| 340 DWORD cbCertChain; | |
| 341 PBYTE pCertChain; | |
| 342 } SCH_CRED_PUBLIC_CERTCHAIN,*PSCH_CRED_PUBLIC_CERTCHAIN; | |
| 343 | |
| 344 typedef struct _SCH_CRED_PUBLIC_CAPI { | |
| 345 DWORD dwType; | |
| 346 HCRYPTPROV hProv; | |
| 347 } SCH_CRED_PUBLIC_CAPI,*PSCH_CRED_PUBLIC_CAPI; | |
| 348 | |
| 349 typedef struct _PctPublicKey { | |
| 350 DWORD Type; | |
| 351 DWORD cbKey; | |
| 352 UCHAR pKey[1]; | |
| 353 } PctPublicKey; | |
| 354 | |
| 355 typedef struct _X509Certificate { | |
| 356 DWORD Version; | |
| 357 DWORD SerialNumber[4]; | |
| 358 ALG_ID SignatureAlgorithm; | |
| 359 FILETIME ValidFrom; | |
| 360 FILETIME ValidUntil; | |
| 361 PSTR pszIssuer; | |
| 362 PSTR pszSubject; | |
| 363 PctPublicKey *pPublicKey; | |
| 364 } X509Certificate,*PX509Certificate; | |
| 365 | |
| 366 WINBOOL SslGenerateKeyPair(PSSL_CREDENTIAL_CERTIFICATE pCerts,PSTR pszDN,PSTR pszPassword,DWORD Bits); | |
| 367 VOID SslGenerateRandomBits(PUCHAR pRandomData,LONG cRandomData); | |
| 368 WINBOOL SslCrackCertificate(PUCHAR pbCertificate,DWORD cbCertificate,DWORD dwFlags,PX509Certificate *ppCertificate); | |
| 369 VOID SslFreeCertificate(PX509Certificate pCertificate); | |
| 370 DWORD WINAPI SslGetMaximumKeySize(DWORD Reserved); | |
| 371 WINBOOL SslGetDefaultIssuers(PBYTE pbIssuers,DWORD *pcbIssuers); | |
| 372 | |
| 373 #define SSL_CRACK_CERTIFICATE_NAME TEXT("SslCrackCertificate") | |
| 374 #define SSL_FREE_CERTIFICATE_NAME TEXT("SslFreeCertificate") | |
| 375 | |
| 376 typedef WINBOOL (WINAPI *SSL_CRACK_CERTIFICATE_FN)(PUCHAR pbCertificate,DWORD cbCertificate,WINBOOL VerifySignature,PX509Certificate *ppCertificate); | |
| 377 typedef VOID (WINAPI *SSL_FREE_CERTIFICATE_FN)(PX509Certificate pCertificate); | |
| 378 | |
| 379 #endif |
