23 #define WIN32_NO_STATUS 64 static const WCHAR policyKeyVistaW[] = {
65 'S',
'y',
's',
't',
'e',
'm',
'\\',
66 'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'S',
'e',
't',
'\\',
67 'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
69 'F',
'I',
'P',
'S',
'A',
'l',
'g',
'o',
'r',
'i',
't',
'h',
'm',
'P',
'o',
'l',
'i',
'c',
'y',0};
70 static const WCHAR policyValueVistaW[] = {
'E',
'n',
'a',
'b',
'l',
'e',
'd',0};
71 static const WCHAR policyKeyXPW[] = {
72 'S',
'y',
's',
't',
'e',
'm',
'\\',
73 'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'S',
'e',
't',
'\\',
74 'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
76 static const WCHAR policyValueXPW[] = {
77 'F',
'I',
'P',
'S',
'A',
'l',
'g',
'o',
'r',
'i',
't',
'h',
'm',
'P',
'o',
'l',
'i',
'c',
'y',0};
97 ok(0,
"Neither XP or Vista key is present\n");
126 #define test_hash_length(a,b) _test_hash_length(__LINE__,a,b) 135 ok_(__FILE__,
line)(
len == exlen,
"len = %u, expected %u\n",
len, exlen);
138 #define test_alg_name(a,b) _test_alg_name(__LINE__,a,b) 154 static const char expected[] =
"961fa64958818f767707072755d7018dcd278e94";
155 static const char expected_hmac[] =
"2472cf65d0e090618d769d3e46f0d9446cf212da";
158 UCHAR buf[512], buf_hmac[1024],
sha1[20], sha1_hmac[20];
166 ok(alg !=
NULL,
"alg not set\n");
188 ok(
len == 0xdeadbeef,
"got %u\n",
len);
194 ok(
len != 0xdeadbeef,
"len not set\n");
230 ok(alg !=
NULL,
"alg not set\n");
233 len =
sizeof(buf_hmac);
244 memset(sha1_hmac, 0,
sizeof(sha1_hmac));
260 "ceb73749c899693706ede1e30c9929b3fd5dd926163831c2fb8bd41e6efb1126";
261 static const char expected_hmac[] =
262 "34c1aa473a4468a91d06e7cdbc75bc4f93b830ccfc2a47ffd74e8e6ed29e4c72";
273 ok(alg !=
NULL,
"alg not set\n");
295 ok(
len == 0xdeadbeef,
"got %u\n",
len);
301 ok(
len != 0xdeadbeef,
"len not set\n");
337 ok(alg !=
NULL,
"alg not set\n");
340 len =
sizeof(buf_hmac);
351 memset(sha256_hmac, 0,
sizeof(sha256_hmac));
367 "62b21e90c9022b101671ba1f808f8631a8149f0f12904055839a35c1ca78ae5363eed1e743a692d70e0504b0cfd12ef9";
368 static const char expected_hmac[] =
369 "4b3e6d6ff2da121790ab7e7b9247583e3a7eed2db5bd4dabc680303b1608f37dfdc836d96a704c03283bc05b4f6c5eb8";
380 ok(alg !=
NULL,
"alg not set\n");
402 ok(
len == 0xdeadbeef,
"got %u\n",
len);
408 ok(
len != 0xdeadbeef,
"len not set\n");
444 ok(alg !=
NULL,
"alg not set\n");
447 len =
sizeof(buf_hmac);
458 memset(sha384_hmac, 0,
sizeof(sha384_hmac));
474 "d55ced17163bf5386f2cd9ff21d6fd7fe576a915065c24744d09cfae4ec84ee1e" 475 "f6ef11bfbc5acce3639bab725b50a1fe2c204f8c820d6d7db0df0ecbc49c5ca";
476 static const char expected_hmac[] =
477 "415fb6b10018ca03b38a1b1399c42ac0be5e8aceddb9a73103f5e543bf2d888f2" 478 "eecf91373941f9315dd730a77937fa92444450fbece86f409d9cb5ec48c6513";
489 ok(alg !=
NULL,
"alg not set\n");
511 ok(
len == 0xdeadbeef,
"got %u\n",
len);
517 ok(
len != 0xdeadbeef,
"len not set\n");
553 ok(alg !=
NULL,
"alg not set\n");
556 len =
sizeof(buf_hmac);
567 memset(sha512_hmac, 0,
sizeof(sha512_hmac));
584 "e2a3e68d23ce348b8f68b3079de3d4c9";
585 static const char expected_hmac[] =
586 "7bda029b93fa8d817fcc9e13d6bdf092";
589 UCHAR buf[512], buf_hmac[1024],
md5[16], md5_hmac[16];
597 ok(alg !=
NULL,
"alg not set\n");
619 ok(
len == 0xdeadbeef,
"got %u\n",
len);
625 ok(
len != 0xdeadbeef,
"len not set\n");
661 ok(alg !=
NULL,
"alg not set\n");
664 len =
sizeof(buf_hmac);
675 memset(md5_hmac, 0,
sizeof(md5_hmac));
691 "e2a3e68d23ce348b8f68b3079de3d4c9";
692 static const char expected_hmac[] =
693 "7bda029b93fa8d817fcc9e13d6bdf092";
702 ok(alg !=
NULL,
"alg not set\n");
717 memset(md5_hmac, 0,
sizeof(md5_hmac));
720 ok(alg !=
NULL,
"alg not set\n");
722 ret = pBCryptHash(alg, (
UCHAR *)
"key",
sizeof(
"key"), (
UCHAR *)
"test",
sizeof(
"test"), md5_hmac,
sizeof(md5_hmac));
741 ok(alg !=
NULL,
"alg not set\n");
779 win_skip(
"BCryptHash is not available\n");
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
static UCHAR ULONG UCHAR ULONG UCHAR ULONG outputlen
#define MS_PRIMITIVE_PROVIDER
return STATUS_NOT_SUPPORTED
static UCHAR ULONG UCHAR ULONG UCHAR * output
NTSTATUS WINAPI BCryptGenRandom(BCRYPT_ALG_HANDLE handle, UCHAR *buffer, ULONG count, ULONG flags)
#define BCRYPT_USE_SYSTEM_PREFERRED_RNG
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define test_alg_name(a, b)
#define BCRYPT_OBJECT_LENGTH
ACPI_SIZE strlen(const char *String)
#define STATUS_INVALID_PARAMETER
char * wine_dbgstr_w(const wchar_t *wstr)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei count
#define BCRYPT_MD5_ALGORITHM
static void test_sha256(void)
NTSTATUS WINAPI BCryptCloseAlgorithmProvider(BCRYPT_ALG_HANDLE handle, DWORD flags)
static UCHAR ULONG UCHAR * input
NTSTATUS WINAPI BCryptHashData(BCRYPT_HASH_HANDLE handle, UCHAR *input, ULONG size, ULONG flags)
static void _test_alg_name(unsigned line, void *handle, const char *exname)
#define BCRYPT_SHA256_ALGORITHM
NTSTATUS WINAPI BCryptFinishHash(BCRYPT_HASH_HANDLE handle, UCHAR *output, ULONG size, ULONG flags)
GLenum GLenum GLsizei const GLuint GLboolean enabled
#define STATUS_INVALID_HANDLE
#define STATUS_BUFFER_TOO_SMALL
static void test_sha384(void)
#define BCRYPT_ALG_HANDLE_HMAC_FLAG
static int strcmp_wa(const WCHAR *strw, const char *stra)
#define sprintf(buf, format,...)
static void _test_hash_length(unsigned line, void *handle, ULONG exlen)
GLenum GLuint GLenum GLsizei const GLchar * buf
static UCHAR ULONG secretlen
#define BCRYPT_ALGORITHM_NAME
static unsigned char bytes[4]
NTSTATUS WINAPI BCryptOpenAlgorithmProvider(BCRYPT_ALG_HANDLE *handle, LPCWSTR id, LPCWSTR implementation, DWORD flags)
#define test_hash_length(a, b)
static void test_BCryptGenRandom(void)
static void test_BcryptHash(void)
static void test_sha512(void)
NTSTATUS WINAPI BCryptGetFipsAlgorithmMode(BOOLEAN *enabled)
static void test_sha1(void)
#define BCRYPT_SHA384_ALGORITHM
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
GLsizei const GLfloat * value
static void format_hash(const UCHAR *bytes, ULONG size, char *buf)
static void test_rng(void)
#define BCRYPT_SHA512_ALGORITHM
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 void test_md5(void)
#define MultiByteToWideChar
NTSTATUS WINAPI BCryptGetProperty(BCRYPT_HANDLE handle, LPCWSTR prop, UCHAR *buffer, ULONG count, ULONG *res, ULONG flags)
static UCHAR ULONG UCHAR ULONG inputlen
int strcmp(const char *String1, const char *String2)
#define GetProcAddress(x, y)
static void test_BCryptGetFipsAlgorithmMode(void)
#define BCRYPT_RNG_USE_ENTROPY_IN_BUFFER
#define BCRYPT_RNG_ALGORITHM
static const WCHAR sha384[]
#define BCRYPT_SHA1_ALGORITHM
static SERVICE_STATUS status
static const char * strw(LPCWSTR x)
#define BCRYPT_HASH_LENGTH
static NTSTATUS(WINAPI *pBCryptHash)(BCRYPT_ALG_HANDLE algorithm
NTSTATUS WINAPI BCryptDestroyHash(BCRYPT_HASH_HANDLE handle)
NTSTATUS WINAPI BCryptCreateHash(BCRYPT_ALG_HANDLE algorithm, BCRYPT_HASH_HANDLE *handle, UCHAR *object, ULONG objectlen, UCHAR *secret, ULONG secretlen, ULONG flags)
#define HKEY_LOCAL_MACHINE