78#define _SEC_ERR(x) case (x): return #x;
115 ret = pQuerySecurityPackageInfoA( p_package_name, p_pkg_info);
126 sec_fun_table = pInitSecurityInterfaceA();
127 ok(sec_fun_table !=
NULL,
"InitSecurityInterface() returned NULL.\n");
138 trace(
"Running testEnumerateSecurityPackages\n");
140 sec_status = pEnumerateSecurityPackagesA(&num_packages, &pkg_info);
143 "EnumerateSecurityPackages() should return %d, not %08x\n",
146 if (num_packages == 0)
149 ok(num_packages > 0,
"Number of sec packages should be > 0 ,but is %d\n",
151 skip(
"no sec packages to check\n");
155 ok(num_packages > 0,
"Number of sec packages should be > 0 ,but is %d\n",
159 "pkg_info should not be NULL after EnumerateSecurityPackages\n");
161 trace(
"Number of packages: %d\n", num_packages);
162 for(
i = 0;
i < num_packages; ++
i){
163 trace(
"%d: Package \"%s\"\n",
i, pkg_info[
i].
Name);
164 trace(
"Supported flags:\n");
166 if(pkg_info[i].fCapabilities & flag) \
167 trace("\t" #flag "\n")
198 pFreeContextBuffer(pkg_info);
209 trace(
"Running testQuerySecurityPackageInfo\n");
213 pkg_info = (
void *)0xdeadbeef;
218 "Return value of QuerySecurityPackageInfo() shouldn't be %s\n",
223 ok(pkg_info != (
void *)0xdeadbeef,
"wrong pkg_info address %p\n", pkg_info);
224 ok(pkg_info->
wVersion == 1,
"wVersion always should be 1, but is %d\n", pkg_info->
wVersion);
229 sec_status = pFreeContextBuffer(pkg_info);
231 "Return value of FreeContextBuffer() shouldn't be %s\n",
237 pkg_info = (
void *)0xdeadbeef;
238 sec_status = pQuerySecurityPackageInfoA(
winetest, &pkg_info);
241 "Return value of QuerySecurityPackageInfo() should be %s for a nonexistent package\n",
244 ok(pkg_info == (
void *)0xdeadbeef,
"wrong pkg_info address %p\n", pkg_info);
250 if(pInitSecurityInterfaceA)
252 if(pFreeContextBuffer)
254 if(pEnumerateSecurityPackagesA)
256 if(pQuerySecurityPackageInfoA)
#define GetProcAddress(x, y)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
GLenum GLuint GLenum GLsizei const GLchar * buf
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
#define sprintf(buf, format,...)
static void testEnumerateSecurityPackages(void)
static void testQuerySecurityPackageInfo(void)
static PSecPkgInfoA *static SEC_CHAR PLUID
static void InitFunctionPtrs(void)
static SECURITY_STATUS setupPackageA(SEC_CHAR *p_package_name, PSecPkgInfoA *p_pkg_info)
static PSecPkgInfoA *static SEC_CHAR PCredHandle
static void testInitSecurityInterface(void)
static const char * getSecError(SECURITY_STATUS status)
static PSecPkgInfoA *static SEC_CHAR SEC_GET_KEY_FN
static PSecPkgInfoA *static SEC_CHAR PTimeStamp
static SEC_CHAR PSecBufferDesc
#define SECPKG_FLAG_APPCONTAINER_CHECKS
#define SECPKG_FLAG_TOKEN_ONLY
#define SECPKG_FLAG_IMPERSONATION
#define SECPKG_FLAG_CLIENT_ONLY
#define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH
#define SECPKG_FLAG_STREAM
#define SECPKG_FLAG_EXTENDED_ERROR
#define SECPKG_FLAG_PRIVACY
#define SECPKG_FLAG_RESTRICTED_TOKENS
#define SECPKG_FLAG_MULTI_REQUIRED
#define SECPKG_FLAG_CONNECTION
#define SECPKG_FLAG_NEGOTIABLE
#define SECPKG_FLAG_DELEGATION
#define SECPKG_FLAG_INTEGRITY
#define SECPKG_FLAG_ASCII_BUFFERS
struct _SECURITY_FUNCTION_TABLE_A * PSecurityFunctionTableA
#define SECPKG_FLAG_MUTUAL_AUTH
#define SECPKG_FLAG_DATAGRAM
#define SECPKG_FLAG_NEGO_EXTENDER
#define SECPKG_FLAG_NEGOTIABLE2
#define SECPKG_FLAG_LOGON
#define SECPKG_FLAG_READONLY_WITH_CHECKSUM
#define SECPKG_FLAG_FRAGMENT
#define SECPKG_FLAG_ACCEPT_WIN32_NAME
#define SECPKG_FLAG_GSS_COMPATIBLE
static QUERY_CONTEXT_ATTRIBUTES_FN_A pQueryContextAttributesA
#define SEC_E_INVALID_HANDLE
#define SEC_E_LOGON_DENIED
#define SEC_E_INTERNAL_ERROR
#define SEC_E_CANNOT_INSTALL
#define SEC_E_NO_IMPERSONATION
#define SEC_E_UNSUPPORTED_FUNCTION
#define SEC_E_BUFFER_TOO_SMALL
#define SEC_E_ILLEGAL_MESSAGE
#define SEC_E_SECPKG_NOT_FOUND
#define SEC_E_CANNOT_PACK
#define SEC_E_INVALID_TOKEN
#define SEC_E_OUT_OF_SEQUENCE
#define SEC_E_NO_CREDENTIALS
#define SEC_E_QOP_NOT_SUPPORTED
#define SEC_E_INSUFFICIENT_MEMORY
#define SEC_I_CONTINUE_NEEDED
#define SEC_E_TARGET_UNKNOWN