@@ -1488,7 +1488,7 @@ int test_gssapi_1(bool user_env_file, bool use_cb, bool no_seal)
14881488 uint8_t rand_cb [128 ];
14891489 struct gss_channel_bindings_struct cbts = { 0 };
14901490 gss_channel_bindings_t cbt = GSS_C_NO_CHANNEL_BINDINGS ;
1491- gss_buffer_set_t data_set ;
1491+ gss_buffer_set_t data_set = NULL ;
14921492 gss_OID_desc sasl_ssf_oid = {
14931493 11 , discard_const ("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x05\x0f" )
14941494 };
@@ -1498,12 +1498,10 @@ int test_gssapi_1(bool user_env_file, bool use_cb, bool no_seal)
14981498
14991499 setenv ("NTLM_USER_FILE" , TEST_USER_FILE , 0 );
15001500
1501- if (user_env_file ) {
1502- username = "testuser" ;
1503- } else {
1501+ username = getenv ("TEST_USER_NAME" );
1502+ if (username == NULL ) {
15041503 username = "TESTDOM\\testuser" ;
15051504 }
1506-
15071505 nbuf .value = discard_const (username );
15081506 nbuf .length = strlen (username );
15091507 retmaj = gssntlm_import_name (& retmin , & nbuf ,
@@ -1771,9 +1769,9 @@ int test_gssapi_1(bool user_env_file, bool use_cb, bool no_seal)
17711769 goto done ;
17721770 }
17731771
1774- if (strcmp (nbuf .value , "TESTDOM\\testuser" ) != 0 ) {
1772+ if (strcmp (nbuf .value , username ) != 0 ) {
17751773 fprintf (stderr , "Expected username of [%s] but got [%s] instead!\n" ,
1776- "TESTDOM\\testuser" , (char * )nbuf .value );
1774+ username , (char * )nbuf .value );
17771775 ret = EINVAL ;
17781776 goto done ;
17791777 }
@@ -1826,7 +1824,7 @@ int test_gssapi_cl(void)
18261824 gss_buffer_desc srv_token = { 0 };
18271825 gss_cred_id_t cli_cred = GSS_C_NO_CREDENTIAL ;
18281826 gss_cred_id_t srv_cred = GSS_C_NO_CREDENTIAL ;
1829- const char * username = "TESTDOM\\testuser" ;
1827+ const char * username ;
18301828 const char * password = "testpassword" ;
18311829 const char * srvname = "test@testserver" ;
18321830 gss_name_t gss_username = NULL ;
@@ -1846,6 +1844,10 @@ int test_gssapi_cl(void)
18461844
18471845 setenv ("NTLM_USER_FILE" , TEST_USER_FILE , 0 );
18481846
1847+ username = getenv ("TEST_USER_NAME" );
1848+ if (username == NULL ) {
1849+ username = "TESTDOM\\testuser" ;
1850+ }
18491851 nbuf .value = discard_const (username );
18501852 nbuf .length = strlen (username );
18511853 retmaj = gssntlm_import_name (& retmin , & nbuf ,
@@ -2223,183 +2225,222 @@ int test_ZERO_LMKEY(struct ntlm_ctx *ctx)
22232225int main (int argc , const char * argv [])
22242226{
22252227 struct ntlm_ctx * ctx ;
2228+ int gret = 0 ;
22262229 int ret ;
22272230
22282231 /* enable trace debugging by dfault in tests */
22292232 setenv ("GSSNTLMSSP_DEBUG" , "tests-trace.log" , 0 );
22302233
2231- fprintf (stdout , "Test errors\n" );
2234+ fprintf (stderr , "Test errors\n" );
22322235 ret = test_Errors ();
2233- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2236+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2237+ if (ret ) gret ++ ;
22342238
22352239 ret = ntlm_init_ctx (& ctx );
22362240 if (ret ) goto done ;
22372241
2238- fprintf (stdout , "Test LMOWFv1\n" );
2242+ fprintf (stderr , "Test LMOWFv1\n" );
22392243 ret = test_LMOWFv1 (ctx );
2240- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2244+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2245+ if (ret ) gret ++ ;
22412246
2242- fprintf (stdout , "Test NTOWFv1\n" );
2247+ fprintf (stderr , "Test NTOWFv1\n" );
22432248 ret = test_NTOWFv1 (ctx );
2244- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2249+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2250+ if (ret ) gret ++ ;
22452251
2246- fprintf (stdout , "Test LMResponse v1\n" );
2252+ fprintf (stderr , "Test LMResponse v1\n" );
22472253 ret = test_LMResponseV1 (ctx );
2248- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2254+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2255+ if (ret ) gret ++ ;
22492256
2250- fprintf (stdout , "Test NTResponse v1\n" );
2257+ fprintf (stderr , "Test NTResponse v1\n" );
22512258 ret = test_NTResponseV1 (ctx );
2252- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2259+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2260+ if (ret ) gret ++ ;
22532261
2254- fprintf (stdout , "Test SessionBaseKey v1\n" );
2262+ fprintf (stderr , "Test SessionBaseKey v1\n" );
22552263 ret = test_SessionBaseKeyV1 (ctx );
2256- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2264+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2265+ if (ret ) gret ++ ;
22572266
2258- fprintf (stdout , "Test LM KeyExchangeKey\n" );
2267+ fprintf (stderr , "Test LM KeyExchangeKey\n" );
22592268 ret = test_LM_KeyExchangeKey (ctx );
2260- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2269+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2270+ if (ret ) gret ++ ;
22612271
2262- fprintf (stdout , "Test EncryptedSessionKey v1 (1)\n" );
2272+ fprintf (stderr , "Test EncryptedSessionKey v1 (1)\n" );
22632273 ret = test_EncryptedSessionKey1 (ctx );
2264- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2274+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2275+ if (ret ) gret ++ ;
22652276
2266- fprintf (stdout , "Test EncryptedSessionKey v1 (2)\n" );
2277+ fprintf (stderr , "Test EncryptedSessionKey v1 (2)\n" );
22672278 ret = test_EncryptedSessionKey2 (ctx );
2268- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2279+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2280+ if (ret ) gret ++ ;
22692281
2270- fprintf (stdout , "Test EncryptedSessionKey v1 (3)\n" );
2282+ fprintf (stderr , "Test EncryptedSessionKey v1 (3)\n" );
22712283 ret = test_EncryptedSessionKey3 (ctx );
2272- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2284+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2285+ if (ret ) gret ++ ;
22732286
22742287 /* override internal version for V1 test vector */
22752288 ntlm_internal_set_version (6 , 0 , 6000 , 15 );
22762289
2277- fprintf (stdout , "Test decoding ChallengeMessage v1\n" );
2290+ fprintf (stderr , "Test decoding ChallengeMessage v1\n" );
22782291 ret = test_DecodeChallengeMessageV1 (ctx );
2279- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2292+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2293+ if (ret ) gret ++ ;
22802294
2281- fprintf (stdout , "Test encoding ChallengeMessage v1\n" );
2295+ fprintf (stderr , "Test encoding ChallengeMessage v1\n" );
22822296 ret = test_EncodeChallengeMessageV1 (ctx );
2283- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2297+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2298+ if (ret ) gret ++ ;
22842299
2285- fprintf (stdout , "Test LMResponse v2\n" );
2300+ fprintf (stderr , "Test LMResponse v2\n" );
22862301 ret = test_LMResponseV2 (ctx );
2287- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2302+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2303+ if (ret ) gret ++ ;
22882304
2289- fprintf (stdout , "Test NTResponse v2\n" );
2305+ fprintf (stderr , "Test NTResponse v2\n" );
22902306 ret = test_NTResponseV2 (ctx );
2291- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2307+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2308+ if (ret ) gret ++ ;
22922309
2293- fprintf (stdout , "Test SessionBaseKey v2\n" );
2310+ fprintf (stderr , "Test SessionBaseKey v2\n" );
22942311 ret = test_SessionBaseKeyV2 (ctx );
2295- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2312+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2313+ if (ret ) gret ++ ;
22962314
2297- fprintf (stdout , "Test EncryptedSessionKey v2\n" );
2315+ fprintf (stderr , "Test EncryptedSessionKey v2\n" );
22982316 ret = test_EncryptedSessionKey (ctx , & T_NTLMv2 .SessionBaseKey ,
22992317 & T_NTLMv2 .EncryptedSessionKey );
2300- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2318+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2319+ if (ret ) gret ++ ;
23012320
23022321 /* override internal version for V2 test vector */
23032322 ntlm_internal_set_version (6 , 0 , 6000 , 15 );
23042323
2305- fprintf (stdout , "Test decoding ChallengeMessage v2\n" );
2324+ fprintf (stderr , "Test decoding ChallengeMessage v2\n" );
23062325 ret = test_DecodeChallengeMessageV2 (ctx );
2307- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2326+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2327+ if (ret ) gret ++ ;
23082328
2309- fprintf (stdout , "Test encoding ChallengeMessage v2\n" );
2329+ fprintf (stderr , "Test encoding ChallengeMessage v2\n" );
23102330 ret = test_EncodeChallengeMessageV2 (ctx );
2311- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2331+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2332+ if (ret ) gret ++ ;
23122333
2313- fprintf (stdout , "Test decoding AuthenticateMessage v2\n" );
2334+ fprintf (stderr , "Test decoding AuthenticateMessage v2\n" );
23142335 ret = test_DecodeAuthenticateMessageV2 (ctx );
2315- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2336+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2337+ if (ret ) gret ++ ;
23162338
2317- fprintf (stdout , "Test encoding AuthenticateMessage v2\n" );
2339+ fprintf (stderr , "Test encoding AuthenticateMessage v2\n" );
23182340 ret = test_EncodeAuthenticateMessageV2 (ctx );
2319- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2341+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2342+ if (ret ) gret ++ ;
23202343
23212344 /* override internal version for CBT test vector */
23222345 ntlm_internal_set_version (6 , 1 , 7600 , 15 );
23232346
2324- fprintf (stdout , "Test decoding ChallengeMessage v2 with CBT\n" );
2347+ fprintf (stderr , "Test decoding ChallengeMessage v2 with CBT\n" );
23252348 ret = test_DecodeChallengeMessageV2CBT (ctx );
2326- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2349+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2350+ if (ret ) gret ++ ;
23272351
2328- fprintf (stdout , "Test encoding ChallengeMessage v2 with CBT\n" );
2352+ fprintf (stderr , "Test encoding ChallengeMessage v2 with CBT\n" );
23292353 ret = test_EncodeChallengeMessageV2CBT (ctx );
2330- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2354+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2355+ if (ret ) gret ++ ;
23312356
2332- fprintf (stdout , "Test decoding AuthenticateMessage v2 with CBT\n" );
2357+ fprintf (stderr , "Test decoding AuthenticateMessage v2 with CBT\n" );
23332358 ret = test_DecodeAuthenticateMessageV2CBT (ctx );
2334- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2359+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2360+ if (ret ) gret ++ ;
23352361
2336- fprintf (stdout , "Test sealing a Message with No Extended Security\n" );
2362+ fprintf (stderr , "Test sealing a Message with No Extended Security\n" );
23372363 ret = test_GSS_Wrap_EX (ctx , & T_GSSWRAPv1noESS );
2338- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2364+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2365+ if (ret ) gret ++ ;
23392366
2340- fprintf (stdout , "Test sealing a Message with NTLMv1 Extended Security\n" );
2367+ fprintf (stderr , "Test sealing a Message with NTLMv1 Extended Security\n" );
23412368 ret = test_GSS_Wrap_EX (ctx , & T_GSSWRAPEXv1 );
2342- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2369+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2370+ if (ret ) gret ++ ;
23432371
2344- fprintf (stdout , "Test sealing a Message with NTLMv2 Extended Security\n" );
2372+ fprintf (stderr , "Test sealing a Message with NTLMv2 Extended Security\n" );
23452373 ret = test_GSS_Wrap_EX (ctx , & T_GSSWRAPEXv2 );
2346- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2374+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2375+ if (ret ) gret ++ ;
23472376
2348- fprintf (stdout , " *** Test with NTLMv1 auth" );
2377+ fprintf (stderr , " *** Test with NTLMv1 auth\n " );
23492378 setenv ("LM_COMPAT_LEVEL" , "0" , 1 );
23502379
2351- fprintf (stdout , "Test GSSAPI conversation (user env file)\n" );
2380+ fprintf (stderr , "Test GSSAPI conversation (user env file)\n" );
23522381 ret = test_gssapi_1 (true, false, false);
2353- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2382+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2383+ if (ret ) gret ++ ;
23542384
2355- fprintf (stdout , "Test GSSAPI conversation (no SEAL)\n" );
2385+ fprintf (stderr , "Test GSSAPI conversation (no SEAL)\n" );
23562386 ret = test_gssapi_1 (true, false, true);
2357- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2387+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2388+ if (ret ) gret ++ ;
23582389
2359- fprintf (stdout , "Test GSSAPI conversation (with password)\n" );
2390+ fprintf (stderr , "Test GSSAPI conversation (with password)\n" );
23602391 ret = test_gssapi_1 (false, false, false);
2361- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2392+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2393+ if (ret ) gret ++ ;
23622394
2363- fprintf (stdout , "Test Connectionless exchange\n" );
2395+ fprintf (stderr , "Test Connectionless exchange\n" );
23642396 ret = test_gssapi_cl ();
2365- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2397+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2398+ if (ret ) gret ++ ;
23662399
2367- fprintf (stdout , " *** Again forcing NTLMv2 auth" );
2400+ fprintf (stderr , " *** Again forcing NTLMv2 auth\n " );
23682401 setenv ("LM_COMPAT_LEVEL" , "5" , 1 );
23692402
2370- fprintf (stdout , "Test GSSAPI conversation (user env file)\n" );
2403+ fprintf (stderr , "Test GSSAPI conversation (user env file)\n" );
23712404 ret = test_gssapi_1 (true, false, false);
2372- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2405+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2406+ if (ret ) gret ++ ;
23732407
2374- fprintf (stdout , "Test GSSAPI conversation (no SEAL)\n" );
2408+ fprintf (stderr , "Test GSSAPI conversation (no SEAL)\n" );
23752409 ret = test_gssapi_1 (true, false, true);
2376- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2410+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2411+ if (ret ) gret ++ ;
23772412
2378- fprintf (stdout , "Test GSSAPI conversation (with password)\n" );
2413+ fprintf (stderr , "Test GSSAPI conversation (with password)\n" );
23792414 ret = test_gssapi_1 (false, false, false);
2380- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2415+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2416+ if (ret ) gret ++ ;
23812417
2382- fprintf (stdout , "Test GSSAPI conversation (with CB)\n" );
2418+ fprintf (stderr , "Test GSSAPI conversation (with CB)\n" );
23832419 ret = test_gssapi_1 (false, true, false);
2384- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2420+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2421+ if (ret ) gret ++ ;
23852422
2386- fprintf (stdout , "Test Connectionless exchange\n" );
2423+ fprintf (stderr , "Test Connectionless exchange\n" );
23872424 ret = test_gssapi_cl ();
2388- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2425+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2426+ if (ret ) gret ++ ;
23892427
2390- fprintf (stdout , "Test RFC5801 SPI\n" );
2428+ fprintf (stderr , "Test RFC5801 SPI\n" );
23912429 ret = test_gssapi_rfc5801 ();
2392- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2430+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2431+ if (ret ) gret ++ ;
23932432
2394- fprintf (stdout , "Test RFC5587 SPI\n" );
2433+ fprintf (stderr , "Test RFC5587 SPI\n" );
23952434 ret = test_gssapi_rfc5587 ();
2396- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2435+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2436+ if (ret ) gret ++ ;
23972437
2398- fprintf (stdout , "Test ZERO LM_KEY\n" );
2438+ fprintf (stderr , "Test ZERO LM_KEY\n" );
23992439 ret = test_ZERO_LMKEY (ctx );
2400- fprintf (stdout , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2440+ fprintf (stderr , "Test: %s\n" , (ret ? "FAIL" :"SUCCESS" ));
2441+ if (ret ) gret ++ ;
24012442
24022443done :
24032444 ntlm_free_ctx (& ctx );
2404- return ret ;
2445+ return gret ;
24052446}
0 commit comments