s4:torture: the backupkey tests need to use ncacn_np: for LSA calls
authorStefan Metzmacher <metze@samba.org>
Mon, 29 Feb 2016 06:47:39 +0000 (07:47 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 Mar 2016 05:52:31 +0000 (06:52 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/torture/rpc/backupkey.c
source4/torture/rpc/backupkey_heimdal.c

index aaff59fd6ad572bee8195459bb0a8eb26a0a6a21..ca981c25943cbda5a7152dc8c67bdafb4ddab39e 100644 (file)
@@ -1770,8 +1770,10 @@ static bool test_ServerWrap_encrypt_decrypt_manual(struct torture_context *tctx,
                                                   struct bkrp_server_side_wrapped *server_side_wrapped,
                                                   enum test_wrong wrong)
 {
-        struct dcerpc_pipe *lsa_p;
-       struct dcerpc_binding_handle *lsa_b;
+       char *lsa_binding_string = NULL;
+       struct dcerpc_binding *lsa_binding = NULL;
+       struct dcerpc_pipe *lsa_p = NULL;
+       struct dcerpc_binding_handle *lsa_b = NULL;
        struct lsa_OpenSecret r_secret;
        struct lsa_QuerySecret r_query_secret;
        struct policy_handle *handle, sec_handle;
@@ -1800,8 +1802,19 @@ static bool test_ServerWrap_encrypt_decrypt_manual(struct torture_context *tctx,
 
        /* Now read BCKUPKEY_P and prove we can do a matching decrypt and encrypt */
 
+       /* lsa_OpenSecret only works with ncacn_np and AUTH_LEVEL_NONE */
+       lsa_binding_string = talloc_asprintf(tctx, "ncacn_np:%s",
+                               torture_setting_string(tctx, "host", NULL));
+       torture_assert(tctx, lsa_binding_string != NULL, "lsa_binding_string");
+
+       torture_assert_ntstatus_ok(tctx,
+               dcerpc_parse_binding(tctx, lsa_binding_string, &lsa_binding),
+               "Failed to parse dcerpc binding");
+
        torture_assert_ntstatus_ok(tctx,
-                                  torture_rpc_connection(tctx, &lsa_p, &ndr_table_lsarpc),
+                                  dcerpc_pipe_connect_b(tctx, &lsa_p,
+                                       lsa_binding, &ndr_table_lsarpc,
+                                       cmdline_credentials, tctx->ev, tctx->lp_ctx),
                                   "Opening LSA pipe");
        lsa_b = lsa_p->binding_handle;
 
index b8f6ea0eeac51aac985d2649a2142aa6fc89feb2..d661956e7794b9dbba4288456d55a50bdf775e48 100644 (file)
@@ -1548,8 +1548,10 @@ static bool test_ServerWrap_encrypt_decrypt_manual(struct torture_context *tctx,
                                                   struct bkrp_server_side_wrapped *server_side_wrapped,
                                                   enum test_wrong wrong)
 {
-        struct dcerpc_pipe *lsa_p;
-       struct dcerpc_binding_handle *lsa_b;
+       char *lsa_binding_string = NULL;
+       struct dcerpc_binding *lsa_binding = NULL;
+       struct dcerpc_pipe *lsa_p = NULL;
+       struct dcerpc_binding_handle *lsa_b = NULL;
        struct lsa_OpenSecret r_secret;
        struct lsa_QuerySecret r_query_secret;
        struct policy_handle *handle, sec_handle;
@@ -1575,8 +1577,19 @@ static bool test_ServerWrap_encrypt_decrypt_manual(struct torture_context *tctx,
 
        /* Now read BCKUPKEY_P and prove we can do a matching decrypt and encrypt */
 
+       /* lsa_OpenSecret only works with ncacn_np and AUTH_LEVEL_NONE */
+       lsa_binding_string = talloc_asprintf(tctx, "ncacn_np:%s",
+                               torture_setting_string(tctx, "host", NULL));
+       torture_assert(tctx, lsa_binding_string != NULL, "lsa_binding_string");
+
+       torture_assert_ntstatus_ok(tctx,
+               dcerpc_parse_binding(tctx, lsa_binding_string, &lsa_binding),
+               "Failed to parse dcerpc binding");
+
        torture_assert_ntstatus_ok(tctx,
-                                  torture_rpc_connection(tctx, &lsa_p, &ndr_table_lsarpc),
+                                  dcerpc_pipe_connect_b(tctx, &lsa_p,
+                                       lsa_binding, &ndr_table_lsarpc,
+                                       cmdline_credentials, tctx->ev, tctx->lp_ctx),
                                   "Opening LSA pipe");
        lsa_b = lsa_p->binding_handle;