34static const BYTE bigCert[] = { 0x30, 0x7a, 0x02, 0x01, 0x01, 0x30, 0x02, 0x06,
35 0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
36 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x22,
37 0x18, 0x0f, 0x31, 0x36, 0x30, 0x31, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30,
38 0x30, 0x30, 0x30, 0x5a, 0x18, 0x0f, 0x31, 0x36, 0x30, 0x31, 0x30, 0x31, 0x30,
39 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x15, 0x31, 0x13, 0x30,
40 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20,
41 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x07, 0x30, 0x02, 0x06, 0x00, 0x03, 0x01,
42 0x00, 0xa3, 0x16, 0x30, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
43 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01 };
44static WCHAR cspNameW[] = {
'W',
'i',
'n',
'e',
'C',
'r',
'y',
'p',
't',
'T',
'e',
47 0x07, 0x02, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x52, 0x53, 0x41, 0x32, 0x00,
48 0x02, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x79, 0x10, 0x1c, 0xd0, 0x6b, 0x10,
49 0x18, 0x30, 0x94, 0x61, 0xdc, 0x0e, 0xcb, 0x96, 0x4e, 0x21, 0x3f, 0x79, 0xcd,
50 0xa9, 0x17, 0x62, 0xbc, 0xbb, 0x61, 0x4c, 0xe0, 0x75, 0x38, 0x6c, 0xf3, 0xde,
51 0x60, 0x86, 0x03, 0x97, 0x65, 0xeb, 0x1e, 0x6b, 0xdb, 0x53, 0x85, 0xad, 0x68,
52 0x21, 0xf1, 0x5d, 0xe7, 0x1f, 0xe6, 0x53, 0xb4, 0xbb, 0x59, 0x3e, 0x14, 0x27,
53 0xb1, 0x83, 0xa7, 0x3a, 0x54, 0xe2, 0x8f, 0x65, 0x8e, 0x6a, 0x4a, 0xcf, 0x3b,
54 0x1f, 0x65, 0xff, 0xfe, 0xf1, 0x31, 0x3a, 0x37, 0x7a, 0x8b, 0xcb, 0xc6, 0xd4,
55 0x98, 0x50, 0x36, 0x67, 0xe4, 0xa1, 0xe8, 0x7e, 0x8a, 0xc5, 0x23, 0xf2, 0x77,
56 0xf5, 0x37, 0x61, 0x49, 0x72, 0x59, 0xe8, 0x3d, 0xf7, 0x60, 0xb2, 0x77, 0xca,
57 0x78, 0x54, 0x6d, 0x65, 0x9e, 0x03, 0x97, 0x1b, 0x61, 0xbd, 0x0c, 0xd8, 0x06,
58 0x63, 0xe2, 0xc5, 0x48, 0xef, 0xb3, 0xe2, 0x6e, 0x98, 0x7d, 0xbd, 0x4e, 0x72,
59 0x91, 0xdb, 0x31, 0x57, 0xe3, 0x65, 0x3a, 0x49, 0xca, 0xec, 0xd2, 0x02, 0x4e,
60 0x22, 0x7e, 0x72, 0x8e, 0xf9, 0x79, 0x84, 0x82, 0xdf, 0x7b, 0x92, 0x2d, 0xaf,
61 0xc9, 0xe4, 0x33, 0xef, 0x89, 0x5c, 0x66, 0x99, 0xd8, 0x80, 0x81, 0x47, 0x2b,
62 0xb1, 0x66, 0x02, 0x84, 0x59, 0x7b, 0xc3, 0xbe, 0x98, 0x45, 0x4a, 0x3d, 0xdd,
63 0xea, 0x2b, 0xdf, 0x4e, 0xb4, 0x24, 0x6b, 0xec, 0xe7, 0xd9, 0x0c, 0x45, 0xb8,
64 0xbe, 0xca, 0x69, 0x37, 0x92, 0x4c, 0x38, 0x6b, 0x96, 0x6d, 0xcd, 0x86, 0x67,
65 0x5c, 0xea, 0x54, 0x94, 0xa4, 0xca, 0xa4, 0x02, 0xa5, 0x21, 0x4d, 0xae, 0x40,
66 0x8f, 0x9d, 0x51, 0x83, 0xf2, 0x3f, 0x33, 0xc1, 0x72, 0xb4, 0x1d, 0x94, 0x6e,
67 0x7d, 0xe4, 0x27, 0x3f, 0xea, 0xff, 0xe5, 0x9b, 0xa7, 0x5e, 0x55, 0x8e, 0x0d,
68 0x69, 0x1c, 0x7a, 0xff, 0x81, 0x9d, 0x53, 0x52, 0x97, 0x9a, 0x76, 0x79, 0xda,
69 0x93, 0x32, 0x16, 0xec, 0x69, 0x51, 0x1a, 0x4e, 0xc3, 0xf1, 0x72, 0x80, 0x78,
70 0x5e, 0x66, 0x4a, 0x8d, 0x85, 0x2f, 0x3f, 0xb2, 0xa7 };
73 0x30, 0x82, 0x01, 0x1f, 0x30, 0x81, 0xce, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02,
74 0x10, 0xeb, 0x0d, 0x57, 0x2a, 0x9c, 0x09, 0xba, 0xa4, 0x4a, 0xb7, 0x25, 0x49,
75 0xd9, 0x3e, 0xb5, 0x73, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d,
76 0x05, 0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03,
77 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30,
78 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x30, 0x36, 0x32, 0x39, 0x30, 0x35, 0x30, 0x30,
79 0x34, 0x36, 0x5a, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x36, 0x32, 0x39, 0x31, 0x31,
80 0x30, 0x30, 0x34, 0x36, 0x5a, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
81 0x55, 0x04, 0x03, 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e,
82 0x67, 0x00, 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
83 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, 0x30, 0x48, 0x02, 0x41,
84 0x00, 0xe2, 0x54, 0x3a, 0xa7, 0x83, 0xb1, 0x27, 0x14, 0x3e, 0x59, 0xbb, 0xb4,
85 0x53, 0xe6, 0x1f, 0xe7, 0x5d, 0xf1, 0x21, 0x68, 0xad, 0x85, 0x53, 0xdb, 0x6b,
86 0x1e, 0xeb, 0x65, 0x97, 0x03, 0x86, 0x60, 0xde, 0xf3, 0x6c, 0x38, 0x75, 0xe0,
87 0x4c, 0x61, 0xbb, 0xbc, 0x62, 0x17, 0xa9, 0xcd, 0x79, 0x3f, 0x21, 0x4e, 0x96,
88 0xcb, 0x0e, 0xdc, 0x61, 0x94, 0x30, 0x18, 0x10, 0x6b, 0xd0, 0x1c, 0x10, 0x79,
89 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02,
90 0x1d, 0x05, 0x00, 0x03, 0x41, 0x00, 0x25, 0x90, 0x53, 0x34, 0xd9, 0x56, 0x41,
91 0x5e, 0xdb, 0x7e, 0x01, 0x36, 0xec, 0x27, 0x61, 0x5e, 0xb7, 0x4d, 0x90, 0x66,
92 0xa2, 0xe1, 0x9d, 0x58, 0x76, 0xd4, 0x9c, 0xba, 0x2c, 0x84, 0xc6, 0x83, 0x7a,
93 0x22, 0x0d, 0x03, 0x69, 0x32, 0x1a, 0x6d, 0xcb, 0x0c, 0x15, 0xb3, 0x6b, 0xc7,
94 0x0a, 0x8c, 0xb4, 0x5c, 0x34, 0x78, 0xe0, 0x3c, 0x9c, 0xe9, 0xf3, 0x30, 0x9f,
95 0xa8, 0x76, 0x57, 0x92, 0x36 };
103#define X(x) case x: return #x
195 ok(
protocols.grbitProtocol == exprots,
"protocols.grbitProtocol = %x, expected %x\n",
protocols.grbitProtocol, exprots);
197 trace(
"Supported protocols:\n");
199#define X(flag, name) do { if(protocols.grbitProtocol & flag) { trace(name "\n"); protocols.grbitProtocol &= ~flag; } }while(0)
295 skip(
"Schannel not available\n");
318 win_skip(
"CryptAcquireContextW is not implemented\n");
325 "Expected SEC_E_SECPKG_NOT_FOUND, got %08x\n", st);
348 ok(st ==
SEC_E_OK,
"AcquireCredentialsHandleA failed: %08x\n", st);
351 memset(&cred, 0,
sizeof(cred));
354 ok(st ==
SEC_E_OK,
"AcquireCredentialsHandleA failed: %08x\n", st);
356 trace(
"expiry: %08x%08x\n",
exp.HighPart,
exp.LowPart);
364 memset(&schanCred, 0,
sizeof(schanCred));
380 ok(st ==
SEC_E_OK,
"AcquireCredentialsHandleA failed: %08x\n", st);
387 "Expected SEC_E_NO_CREDENTIALS or SEC_E_OK, got %08x\n", st);
401 schanCred.
paCred = &certs[0];
417 schanCred.
paCred = &certs[1];
422 "Expected SEC_E_UNKNOWN_CREDENTIALS, SEC_E_NO_CREDENTIALS "
423 "or SEC_E_INTERNAL_ERROR, got %08x\n", st);
428 "Expected SEC_E_UNKNOWN_CREDENTIALS, SEC_E_NO_CREDENTIALS "
429 "or SEC_E_INTERNAL_ERROR, got %08x\n", st);
440 "Expected SEC_E_UNKNOWN_CREDENTIALS or SEC_E_INTERNAL_ERROR, got %08x\n", st);
445 "Expected SEC_E_UNKNOWN_CREDENTIALS or SEC_E_INTERNAL_ERROR, got %08x\n", st);
471 "Expected SEC_E_INTERNAL_ERROR or SEC_E_UNKNOWN_CREDENTIALS, got %08x\n", st);
476 "Expected SEC_E_INTERNAL_ERROR or SEC_E_UNKNOWN_CREDENTIALS, got %08x\n", st);
482 "Expected SEC_E_INTERNAL_ERROR or SEC_E_UNKNOWN_CREDENTIALS, got %08x\n", st);
487 "Expected SEC_E_INTERNAL_ERROR or SEC_E_UNKNOWN_CREDENTIALS, got %08x\n", st);
495 "AcquireCredentialsHandleA failed: %08x\n", st);
501 "AcquireCredentialsHandleA failed: %08x\n", st);
506 ok(st ==
SEC_E_OK,
"AcquireCredentialsHandleA failed: %08x\n", st);
512 "AcquireCredentialsHandleA failed: %08x\n", st);
540 "Expected SEC_E_UNKNOWN_CREDENTIALS, got %08x\n", st);
557 unsigned cert_cnt = 0;
562 if(iter == remote_cert)
567 ok(cert_cnt == 2,
"cert_cnt = %u\n", cert_cnt);
568 ok(incl_remote,
"context does not contain cert itself\n");
571static const char http_request[] =
"HEAD /test.html HTTP/1.1\r\nHost: test.winehq.org\r\nConnection: close\r\n\r\n";
587 for (
i = 0;
i <
desc->cBuffers; ++
i)
592 desc->pBuffers[
i].cbBuffer = 0;
610 unsigned char *
data =
buf->pvBuffer;
617 skip(
"recv failed\n");
622 skip(
"connection closed\n");
629 unsigned frame_size = 5 + ((
data[3]<<8) |
data[4]);
665 0, 0, &in_buffers, 0, &
context, &out_buffers, &attrs,
NULL);
697 unsigned buf_size = 8192;
703 win_skip(
"Required secur32 functions not available\n");
711 skip(
"Can't init winsock 2.2\n");
718 skip(
"Can't resolve test.winehq.org\n");
728 skip(
"Can't create socket\n");
735 skip(
"Can't connect to test.winehq.org\n");
761 buffers[0].pBuffers[0].cbBuffer = 1;
769 ok(
buffers[0].pBuffers[0].cbBuffer == 0,
"Output buffer size was not set to 0.\n");
773 buffers[0].pBuffers[0].cbBuffer = 1;
779 ok(
buffers[0].pBuffers[0].cbBuffer == 0,
"Output buffer size was not set to 0.\n");
781 buffers[0].pBuffers[0].cbBuffer = 0;
787 "Expected SEC_E_INSUFFICIENT_MEMORY or SEC_E_INVALID_TOKEN, got %08x\n",
status);
788 ok(
buffers[0].pBuffers[0].cbBuffer == 0,
"Output buffer size was not set to 0.\n");
796 buffers[0].pBuffers[0].cbBuffer = buf_size;
804 buf->cbBuffer = buf_size;
810 ok(
buffers[0].pBuffers[0].cbBuffer == buf_size,
"Output buffer size changed.\n");
814 buffers[1].pBuffers[0].cbBuffer = 0;
820 ok(
buffers[0].pBuffers[0].cbBuffer == buf_size,
"Output buffer size changed.\n");
824 buf->cbBuffer = buf_size;
829 buffers[1].pBuffers[0].cbBuffer = 4;
834 "Got unexpected status %#x.\n",
status);
835 ok(
buffers[0].pBuffers[0].cbBuffer == buf_size,
"Output buffer size changed.\n");
838 buffers[1].pBuffers[0].cbBuffer = 5;
843 "Got unexpected status %#x.\n",
status);
844 ok(
buffers[0].pBuffers[0].cbBuffer == buf_size,
"Output buffer size changed.\n");
851 buffers[1].pBuffers[0].cbBuffer = buf_size;
856 buf->cbBuffer = buf_size;
868 buffers[1].pBuffers[0].cbBuffer = buf_size;
871 ok(
buffers[0].pBuffers[0].cbBuffer == 0,
"Output buffer size was not set to 0.\n");
873 "InitializeSecurityContext failed: %08x\n",
status);
875 skip(
"Handshake failed\n");
879 "got %08x\n", attrs);
885 ok(
status ==
SEC_E_OK,
"QueryContextAttributesW(SECPKG_ATTR_REMOTE_CERT_CONTEXT) failed: %08x\n",
status);
893 "QueryContextAttributesW(SECPKG_ATTR_ENDPOINT_BINDINGS) failed: %08x\n",
status);
895 static const char prefix[] =
"tls-server-end-point:";
913 ok(!
memcmp(
p, prefix,
sizeof(prefix)-1),
"missing prefix\n");
914 p +=
sizeof(prefix)-1;
916 hash_size =
sizeof(
hash);
919 ok(hash_size == 32,
"hash_size = %u\n", hash_size);
922 win_skip(
"SHA 256 hash not supported.\n");
927 win_skip(
"SECPKG_ATTR_ENDPOINT_BINDINGS not supported\n");
984 buf->cbBuffer = buf_size;
1014 ok(
buffers[0].pBuffers[0].cbBuffer == 5,
"Expected first buffer to be a five bytes\n");
1016 buffers[0].pBuffers[0].cbBuffer = data_size;
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
struct protocol * protocols
BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
BOOL WINAPI CryptImportKey(HCRYPTPROV hProv, const BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrev)
#define ERROR_CALL_NOT_IMPLEMENTED
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
INT WSAAPI recv(IN SOCKET s, OUT CHAR FAR *buf, IN INT len, IN INT flags)
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
INT WINAPI WSAStartup(IN WORD wVersionRequested, OUT LPWSADATA lpWSAData)
PHOSTENT WSAAPI gethostbyname(IN const char FAR *name)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum const GLvoid * addr
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static unsigned char * in_buffer
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
static const WCHAR desc[]
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG PVOID out_buffer
static const struct @541 sizes[]
static SecHandle cred_handle
#define SECBUFFER_MISSING
#define ISC_REQ_CONFIDENTIALITY
#define ISC_REQ_ALLOCATE_MEMORY
#define SECPKG_CRED_OUTBOUND
#define ISC_RET_REPLAY_DETECT
#define SECBUFFER_STREAM_TRAILER
#define SECBUFFER_STREAM_HEADER
#define SECPKG_ATTR_KEY_INFO
#define SECPKG_CRED_ATTR_NAMES
#define ISC_REQ_USE_SUPPLIED_CREDS
#define SECPKG_ATTR_NEGOTIATION_INFO
#define ISC_RET_CONFIDENTIALITY
#define ISC_RET_USED_SUPPLIED_CREDS
#define SECPKG_CRED_INBOUND
SECURITY_STATUS(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, ULONG, void *)
#define SECPKG_ATTR_STREAM_SIZES
#define SECBUFFER_VERSION
#define SECPKG_ATTR_ENDPOINT_BINDINGS
#define ISC_RET_SEQUENCE_DETECT
static const BYTE bigCert[]
static void test_InitializeSecurityContext(void)
static void test_strength(PCredHandle handle)
static void init_cred(SCHANNEL_CRED *cred)
static void test_supported_algs(CredHandle *handle)
static const char * algid_to_str(ALG_ID alg)
static void test_supported_protocols(CredHandle *handle, unsigned exprots)
static CHAR unisp_name_a[]
static QUERY_CONTEXT_ATTRIBUTES_FN_A pQueryContextAttributesA
static void init_buffers(SecBufferDesc *desc, unsigned count, unsigned size)
static void reset_buffers(SecBufferDesc *desc)
static void test_cread_attrs(void)
static void free_buffers(SecBufferDesc *desc)
static void test_communication(void)
static int receive_data(SOCKET sock, SecBuffer *buf)
static void test_remote_cert(PCCERT_CONTEXT remote_cert)
static void testAcquireSecurityContext(void)
static const BYTE selfSignedCert[]
static const char http_request[]
#define SP_PROT_TLS1_1_CLIENT
#define SECPKG_ATTR_CONNECTION_INFO
#define SECPKG_ATTR_SUPPORTED_PROTOCOLS
#define SP_PROT_TLS1_3_CLIENT
#define SP_PROT_TLS1_CLIENT
#define SCHANNEL_CRED_VERSION
#define SCH_CRED_NO_DEFAULT_CREDS
#define SECPKG_ATTR_CIPHER_STRENGTHS
#define SP_PROT_TLS1_0_CLIENT
#define SECPKG_ATTR_SUPPORTED_ALGS
#define SP_PROT_TLS1_2_CLIENT
#define SP_PROT_SSL2_CLIENT
#define SP_PROT_SSL3_CLIENT
#define SCH_CRED_MANUAL_CRED_VALIDATION
#define SECPKG_ATTR_REMOTE_CERT_CONTEXT
SOCKET WSAAPI socket(IN INT af, IN INT type, IN INT protocol)
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG pcPackages, PSecPkgInfoA *ppPackageInfo)
PCRYPT_KEY_PROV_PARAM rgProvParam
DWORD dwMaximumCipherStrength
ALG_ID * palgSupportedAlgs
DWORD dwMinimumCipherStrength
struct _HMAPPER ** aphMappers
DWORD grbitEnabledProtocols
ULONG dwInitiatorAddrType
ULONG dwApplicationDataOffset
ULONG cbApplicationDataLength
SEC_CHANNEL_BINDINGS * Bindings
SEC_CHAR * sSignatureAlgorithmName
DWORD dwMaximumCipherStrength
DWORD dwMinimumCipherStrength
ALG_ID * palgSupportedAlgs
DWORD WINAPI GetLastError(void)
#define CALG_SCHANNEL_MASTER_HASH
#define CERT_KEY_PROV_INFO_PROP_ID
#define CALG_AGREEDKEY_ANY
#define CRYPT_DELETEKEYSET
#define CALG_SCHANNEL_MAC_KEY
#define X509_ASN_ENCODING
static const WCHAR MS_DEF_PROV_W[]
#define CALG_HASH_REPLACE_OWF
#define CALG_SCHANNEL_ENC_KEY
#define SEC_E_INTERNAL_ERROR
#define SEC_E_UNKNOWN_CREDENTIALS
#define SEC_E_UNSUPPORTED_FUNCTION
#define SEC_E_ILLEGAL_MESSAGE
#define SEC_E_SECPKG_NOT_FOUND
#define SEC_E_INVALID_TOKEN
#define SEC_E_NO_CREDENTIALS
#define SEC_E_INSUFFICIENT_MEMORY
#define SEC_I_CONTINUE_NEEDED
#define SEC_E_INCOMPLETE_MESSAGE
SECURITY_STATUS WINAPI EncryptMessage(PCtxtHandle phContext, ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo)
SECURITY_STATUS WINAPI DecryptMessage(PCtxtHandle phContext, PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP)
SECURITY_STATUS WINAPI QueryContextAttributesA(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI QueryCredentialsAttributesA(PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS WINAPI InitializeSecurityContextA(PCredHandle phCredential, PCtxtHandle phContext, SEC_CHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI DeleteSecurityContext(PCtxtHandle phContext)
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle phCredential)