summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-08-07 11:15:46 -0400
committerSimo Sorce <simo@redhat.com>2014-08-08 09:25:08 -0400
commit1d17f438be02c564d932d3a1767fc8aa1fa2483e (patch)
tree5662ed12fb5a4c21447870cd69d4899af6c09684
parente540b84059bc3c0f1e220fc983fa33fc0842cea4 (diff)
downloadgss-ntlmssp-1d17f438be02c564d932d3a1767fc8aa1fa2483e.tar.gz
gss-ntlmssp-1d17f438be02c564d932d3a1767fc8aa1fa2483e.tar.xz
gss-ntlmssp-1d17f438be02c564d932d3a1767fc8aa1fa2483e.zip
Add test to check gss_wrap with no SEAL negotiated
-rw-r--r--tests/ntlmssptest.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/tests/ntlmssptest.c b/tests/ntlmssptest.c
index a2685bc..7304f29 100644
--- a/tests/ntlmssptest.c
+++ b/tests/ntlmssptest.c
@@ -1523,7 +1523,7 @@ static size_t repeatable_rand(uint8_t *buf, size_t max)
return len;
}
-int test_gssapi_1(bool user_env_file, bool use_cb)
+int test_gssapi_1(bool user_env_file, bool use_cb, bool no_seal)
{
gss_ctx_id_t cli_ctx = GSS_C_NO_CONTEXT;
gss_ctx_id_t srv_ctx = GSS_C_NO_CONTEXT;
@@ -1545,6 +1545,7 @@ int test_gssapi_1(bool user_env_file, bool use_cb)
uint8_t rand_cb[128];
struct gss_channel_bindings_struct cbts = { 0 };
gss_channel_bindings_t cbt = GSS_C_NO_CHANNEL_BINDINGS;
+ uint32_t req_flags;
int ret;
setenv("NTLM_USER_FILE", TEST_USER_FILE, 0);
@@ -1630,10 +1631,15 @@ int test_gssapi_1(bool user_env_file, bool use_cb)
cbt = &cbts;
}
+ if (no_seal) {
+ req_flags = GSS_C_INTEG_FLAG;
+ } else {
+ req_flags = GSS_C_CONF_FLAG | GSS_C_INTEG_FLAG;
+ }
+
retmaj = gssntlm_init_sec_context(&retmin, cli_cred, &cli_ctx,
gss_srvname, GSS_C_NO_OID,
- GSS_C_CONF_FLAG | GSS_C_INTEG_FLAG,
- 0, cbt,
+ req_flags, 0, cbt,
GSS_C_NO_BUFFER, NULL, &cli_token,
NULL, NULL);
if (retmaj != GSS_S_CONTINUE_NEEDED) {
@@ -1675,8 +1681,7 @@ int test_gssapi_1(bool user_env_file, bool use_cb)
retmaj = gssntlm_init_sec_context(&retmin, cli_cred, &cli_ctx,
gss_srvname, GSS_C_NO_OID,
- GSS_C_CONF_FLAG | GSS_C_INTEG_FLAG,
- 0, cbt,
+ req_flags, 0, cbt,
&srv_token, NULL, &cli_token,
NULL, NULL);
if (retmaj != GSS_S_COMPLETE) {
@@ -2171,11 +2176,15 @@ int main(int argc, const char *argv[])
setenv("LM_COMPAT_LEVEL", "0", 1);
fprintf(stdout, "Test GSSAPI conversation (user env file)\n");
- ret = test_gssapi_1(true, false);
+ ret = test_gssapi_1(true, false, false);
+ fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
+
+ fprintf(stdout, "Test GSSAPI conversation (no SEAL)\n");
+ ret = test_gssapi_1(true, false, true);
fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
fprintf(stdout, "Test GSSAPI conversation (with password)\n");
- ret = test_gssapi_1(false, false);
+ ret = test_gssapi_1(false, false, false);
fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
fprintf(stdout, "Test Connectionless exchange\n");
@@ -2186,15 +2195,19 @@ int main(int argc, const char *argv[])
setenv("LM_COMPAT_LEVEL", "5", 1);
fprintf(stdout, "Test GSSAPI conversation (user env file)\n");
- ret = test_gssapi_1(true, false);
+ ret = test_gssapi_1(true, false, false);
+ fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
+
+ fprintf(stdout, "Test GSSAPI conversation (no SEAL)\n");
+ ret = test_gssapi_1(true, false, true);
fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
fprintf(stdout, "Test GSSAPI conversation (with password)\n");
- ret = test_gssapi_1(false, false);
+ ret = test_gssapi_1(false, false, false);
fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
fprintf(stdout, "Test GSSAPI conversation (with CB)\n");
- ret = test_gssapi_1(false, true);
+ ret = test_gssapi_1(false, true, false);
fprintf(stdout, "Test: %s\n", (ret ? "FAIL":"SUCCESS"));
fprintf(stdout, "Test Connectionless exchange\n");