preferred_key.data = r_query_secret.out.new_val->buf->data;
        preferred_key.length = r_query_secret.out.new_val->buf->size;
-       torture_assert_ntstatus_ok(tctx, dcerpc_fetch_session_key(lsa_p, &session_key),
-                                  "dcerpc_fetch_session_key failed");
+       torture_assert_ntstatus_ok(tctx,
+               dcerpc_binding_handle_transport_session_key(lsa_b, tctx, &session_key),
+               "transport_session_key failed");
 
        torture_assert_ntstatus_ok(tctx,
                                   sess_decrypt_blob(tctx,
 
                             DATA_BLOB *auth_blob)
 
 {
+       struct dcerpc_binding_handle *b = p->binding_handle;
        DATA_BLOB session_key;
        struct lsa_TrustDomainInfoAuthInfoInternal authinfo;
        NTSTATUS status;
                return false;
        }
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               torture_comment(tctx, "dcerpc_fetch_session_key failed - %s\n",
+               torture_comment(tctx, "transport_session_key failed - %s\n",
                                nt_errstr(status));
                return false;
        }
 
                torture_assert_ntstatus_ok(tctx, r2.out.result,
                                           "OpenSecret failed");
 
-               torture_assert_ntstatus_ok(tctx, dcerpc_fetch_session_key(p, &session_key),
-                                          "dcerpc_fetch_session_key failed");
+               torture_assert_ntstatus_ok(tctx,
+                       dcerpc_binding_handle_transport_session_key(b, tctx, &session_key),
+                       "transport_session_key failed");
 
                enc_key = sess_encrypt_string(secret1, &session_key);
 
        domsid = talloc_array(tctx, struct dom_sid *, num_trusts);
        trustdom_handle = talloc_array(tctx, struct policy_handle, num_trusts);
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               torture_comment(tctx, "dcerpc_fetch_session_key failed - %s\n", nt_errstr(status));
+               torture_comment(tctx, "transport_session_key failed - %s\n", nt_errstr(status));
                return false;
        }
 
 
                encode_pw_buffer(u_info.info23.password.data, password,
                                 STR_UNICODE);
 
-               status = dcerpc_fetch_session_key(samr_pipe, &session_key);
+               status = dcerpc_binding_handle_transport_session_key(samr_handle,
+                                                                    tctx,
+                                                                    &session_key);
                if (!NT_STATUS_IS_OK(status)) {
-                       torture_comment(tctx, "dcerpc_fetch_session_key failed\n");
+                       torture_comment(tctx, "transport_session_key failed\n");
                        goto done;
                }
 
                i21->password_expired = 1;
                */
 
-               status = dcerpc_fetch_session_key(samr_pipe, &session_key);
+               status = dcerpc_binding_handle_transport_session_key(samr_handle,
+                                                                    tctx,
+                                                                    &session_key);
                if (!NT_STATUS_IS_OK(status)) {
-                       torture_comment(tctx, "dcerpc_fetch_session_key failed: %s\n",
+                       torture_comment(tctx, "transport_session_key failed: %s\n",
                                 nt_errstr(status));
                        goto done;
                }
                /* just to make this test pass */
                u_info.info24.password_expired = 1;
 
-               status = dcerpc_fetch_session_key(samr_pipe, &session_key);
+               status = dcerpc_binding_handle_transport_session_key(samr_handle,
+                                                                    tctx,
+                                                                    &session_key);
                if (!NT_STATUS_IS_OK(status)) {
-                       torture_comment(tctx, "dcerpc_fetch_session_key failed\n");
+                       torture_comment(tctx, "transport_session_key failed\n");
                        goto done;
                }
 
 
 
        u.info24.password_expired = 0;
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
        u.info23.info.fields_present = fields_present;
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                *password = newpass;
        }
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
        u.info32.info.fields_present = fields_present;
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx,
                               TORTURE_FAIL,
 
        u.info31.password_expired = 0;
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
        u.info26.password_expired = 0;
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
        u.info25.info.fields_present = fields_present;
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
        E_md4hash(newpass, nt_hash);
        E_deshash(newpass, lm_hash);
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                u.info21.nt_password_set = true;
        }
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                break;
        }
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
        pw_data = data_blob_const(u.info25.password.data, 516);
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
   We would like to do this, but it is NOT_SUPPORTED on win2k3
   TEST_SEC_DESC_EQUAL(secret->sdbuf, lsa, &sec_handle);
 */
-       status = dcerpc_fetch_session_key(samsync_state->p_lsa, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(samsync_state->b_lsa,
+                                                            mem_ctx,
+                                                            &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               torture_comment(tctx, "dcerpc_fetch_session_key failed - %s\n", nt_errstr(status));
+               torture_comment(tctx, "transport_session_key failed - %s\n", nt_errstr(status));
                return false;
        }
 
 
                "CreateSecret failed");
        torture_assert_ntstatus_ok(tctx, r.out.result, "CreateSecret failed");
 
-       status = dcerpc_fetch_session_key(p, &session_key);
-       torture_assert_ntstatus_ok(tctx, status, "dcerpc_fetch_session_key failed");
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
+       torture_assert_ntstatus_ok(tctx, status, "transport_session_key failed");
 
        enc_key = sess_encrypt_string(secret1, &session_key);
 
 
 
        u.info24.password_expired = 0;
 
-       status = dcerpc_fetch_session_key(join->p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                torture_comment(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
 
                return false;
        }
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                return false;
        }
                return false;
        }
 
-       status = dcerpc_fetch_session_key(p, &session_key);
+       status = dcerpc_binding_handle_transport_session_key(b, tctx, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                return false;
        }