Hans Leidekker : secur32/tests: Add more context attributes tests.
Alexandre Julliard
julliard at winehq.org
Tue Jul 12 16:51:39 CDT 2022
Module: wine
Branch: master
Commit: c77b23a3e760d423335d0a9cdc725e05f7d107c3
URL: https://gitlab.winehq.org/wine/wine/-/commit/c77b23a3e760d423335d0a9cdc725e05f7d107c3
Author: Hans Leidekker <hans at codeweavers.com>
Date: Fri Jul 8 12:11:00 2022 +0200
secur32/tests: Add more context attributes tests.
---
dlls/secur32/tests/ntlm.c | 52 ++++++++++++++++++++++++++++++-----------------
1 file changed, 33 insertions(+), 19 deletions(-)
diff --git a/dlls/secur32/tests/ntlm.c b/dlls/secur32/tests/ntlm.c
index 6665af6bb76..4accf4b2d79 100644
--- a/dlls/secur32/tests/ntlm.c
+++ b/dlls/secur32/tests/ntlm.c
@@ -33,6 +33,7 @@
#include <rpc.h>
#include <rpcdce.h>
#include <secext.h>
+#include <wincrypt.h>
#include "wine/test.h"
@@ -819,8 +820,10 @@ static void testAuth(ULONG data_rep, BOOL fake)
BOOL first = TRUE;
SspiData client = {{0}}, server = {{0}};
SEC_WINNT_AUTH_IDENTITY_A id;
- SecPkgContext_Sizes ctxt_sizes;
+ SecPkgContext_Sizes sizes;
+ SecPkgContext_StreamSizes stream_sizes;
SecPkgContext_NegotiationInfoA info;
+ SecPkgContext_KeyInfoA key;
SecPkgInfoA *pi;
if(pQuerySecurityPackageInfoA( sec_pkg_name, &pkg_info)!= SEC_E_OK)
@@ -895,24 +898,35 @@ static void testAuth(ULONG data_rep, BOOL fake)
goto tAuthend;
}
- sec_status = pQueryContextAttributesA(&client.ctxt,
- SECPKG_ATTR_SIZES, &ctxt_sizes);
-
- ok(sec_status == SEC_E_OK,
- "pQueryContextAttributesA(SECPKG_ATTR_SIZES) returned %s\n",
- getSecError(sec_status));
- ok((ctxt_sizes.cbMaxToken == 1904) || (ctxt_sizes.cbMaxToken == 2888),
- "cbMaxToken should be 1904 or 2888 but is %lu\n",
- ctxt_sizes.cbMaxToken);
- ok(ctxt_sizes.cbMaxSignature == 16,
- "cbMaxSignature should be 16 but is %lu\n",
- ctxt_sizes.cbMaxSignature);
- ok(ctxt_sizes.cbSecurityTrailer == 16,
- "cbSecurityTrailer should be 16 but is %lu\n",
- ctxt_sizes.cbSecurityTrailer);
- ok(ctxt_sizes.cbBlockSize == 0,
- "cbBlockSize should be 0 but is %lu\n",
- ctxt_sizes.cbBlockSize);
+ sec_status = pQueryContextAttributesA(&client.ctxt, SECPKG_ATTR_SIZES, &sizes);
+ ok(sec_status == SEC_E_OK, "pQueryContextAttributesA(SECPKG_ATTR_SIZES) returned %s\n", getSecError(sec_status));
+ ok((sizes.cbMaxToken == 1904) || (sizes.cbMaxToken == 2888), "cbMaxToken should be 1904 or 2888 but is %lu\n",
+ sizes.cbMaxToken);
+ ok(sizes.cbMaxSignature == 16, "cbMaxSignature should be 16 but is %lu\n", sizes.cbMaxSignature);
+ ok(sizes.cbSecurityTrailer == 16, "cbSecurityTrailer should be 16 but is %lu\n", sizes.cbSecurityTrailer);
+ ok(sizes.cbBlockSize == 0, "cbBlockSize should be 0 but is %lu\n", sizes.cbBlockSize);
+
+ sec_status = pQueryContextAttributesA(&client.ctxt, SECPKG_ATTR_STREAM_SIZES, &stream_sizes);
+ ok(sec_status == SEC_E_UNSUPPORTED_FUNCTION, "pQueryContextAttributesA(SECPKG_ATTR_STREAM_SIZES) returned %s\n",
+ getSecError(sec_status));
+
+ memset( &key, 0, sizeof(key) );
+ sec_status = QueryContextAttributesA( &client.ctxt, SECPKG_ATTR_KEY_INFO, &key );
+ ok( sec_status == SEC_E_OK, "pQueryContextAttributesA returned %08lx\n", sec_status );
+ if (fake)
+ {
+ ok( !strcmp(key.sSignatureAlgorithmName, "RSADSI RC4-CRC32"), "got '%s'\n", key.sSignatureAlgorithmName );
+ ok( !strcmp(key.sEncryptAlgorithmName, "RSADSI RC4"), "got '%s'\n", key.sEncryptAlgorithmName );
+ ok( key.SignatureAlgorithm == 0xffffff7c, "got %#lx\n", key.SignatureAlgorithm );
+ }
+ else
+ {
+ ok( !strcmp(key.sSignatureAlgorithmName, "HMAC-MD5"), "got '%s'\n", key.sSignatureAlgorithmName );
+ ok( !strcmp(key.sEncryptAlgorithmName, "RSADSI RC4"), "got '%s'\n", key.sEncryptAlgorithmName );
+ ok( key.SignatureAlgorithm == 0xffffff76, "got %#lx\n", key.SignatureAlgorithm );
+ }
+ ok( key.KeySize == 128, "got %lu\n", key.KeySize );
+ ok( key.EncryptAlgorithm == CALG_RC4, "got %#lx\n", key.EncryptAlgorithm );
memset(&info, 0, sizeof(info));
sec_status = QueryContextAttributesA(&client.ctxt, SECPKG_ATTR_NEGOTIATION_INFO, &info);
More information about the wine-cvs
mailing list