s4:rpc_server: Split dcerpc_generic_session_key for server and client
authorSamuel Cabrero <scabrero@suse.de>
Wed, 23 Jan 2019 19:52:50 +0000 (20:52 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 18 Oct 2019 16:07:36 +0000 (16:07 +0000)
Split the common bits of dcerpc_generic_session_key to librpc and rename
client the specific part to dcecli_generic_session_key.

Signed-off-by: Samuel Cabrero <scabrero@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
librpc/rpc/dcerpc_util.c
librpc/rpc/rpc_common.h
source4/librpc/rpc/dcerpc.c
source4/librpc/rpc/dcerpc_auth.c
source4/librpc/rpc/dcerpc_util.c
source4/rpc_server/dcerpc_server.c

index 6bc97f7e7d82e04a153acfc219a8eb6b29092b79..103a24e92844c7fe2ce35482065c0f5a0dec2422 100644 (file)
@@ -1340,3 +1340,13 @@ struct ndr_syntax_id dcerpc_construct_bind_time_features(uint64_t features)
 
        return s;
 }
+
+NTSTATUS dcerpc_generic_session_key(DATA_BLOB *session_key)
+{
+       *session_key = data_blob_null;
+
+       /* this took quite a few CPU cycles to find ... */
+       session_key->data = discard_const_p(unsigned char, "SystemLibraryDTC");
+       session_key->length = 16;
+       return NT_STATUS_OK;
+}
index f1535d74220dbff3df49490bee84318fd72c9f83..e109dfee4d6d18ad84f3417bbd47abe8609b3eff 100644 (file)
@@ -445,4 +445,6 @@ struct ndr_syntax_id dcerpc_construct_bind_time_features(uint64_t features);
        (DCERPC_AUTH_PAD_ALIGNMENT - (stub_length) % DCERPC_AUTH_PAD_ALIGNMENT):\
        0)
 
+NTSTATUS dcerpc_generic_session_key(DATA_BLOB *session_key);
+
 #endif /* __DEFAULT_LIBRPC_RPCCOMMON_H__ */
index a0b00aff817d4b3215410f5e473158124d10e52b..21ae5bcbd8ddf7e9ebc6af723878caf5383df4b5 100644 (file)
@@ -144,7 +144,7 @@ static struct dcecli_connection *dcerpc_connection_init(TALLOC_CTX *mem_ctx,
        c->security_state.auth_type = DCERPC_AUTH_TYPE_NONE;
        c->security_state.auth_level = DCERPC_AUTH_LEVEL_NONE;
        c->security_state.auth_context_id = 0;
-       c->security_state.session_key = dcerpc_generic_session_key;
+       c->security_state.session_key = dcecli_generic_session_key;
        c->security_state.generic_state = NULL;
        c->flags = 0;
        /*
index ea222c2706f7adecd7d97893f2ba0223788dc30b..52dffec8ae430ae4550885704c24f3b253d49580 100644 (file)
@@ -523,7 +523,7 @@ NTSTATUS dcerpc_bind_auth_recv(struct composite_context *creq)
                  after a successful authenticated bind the session
                  key reverts to the generic session key
                */
-               state->pipe->conn->security_state.session_key = dcerpc_generic_session_key;
+               state->pipe->conn->security_state.session_key = dcecli_generic_session_key;
        }
        
        talloc_free(creq);
index 39f7d87fc8340a590273057750359cc240c3f981..294ccfc174330e144bc1df2a1cb4969295df4c54 100644 (file)
@@ -765,11 +765,9 @@ _PUBLIC_ NTSTATUS dcerpc_pipe_auth(TALLOC_CTX *mem_ctx,
 }
 
 
-NTSTATUS dcerpc_generic_session_key(struct dcecli_connection *c,
+NTSTATUS dcecli_generic_session_key(struct dcecli_connection *c,
                                    DATA_BLOB *session_key)
 {
-       *session_key = data_blob_null;
-
        if (c != NULL) {
                if (c->transport.transport != NCALRPC &&
                    c->transport.transport != NCACN_UNIX_STREAM)
@@ -778,10 +776,7 @@ NTSTATUS dcerpc_generic_session_key(struct dcecli_connection *c,
                }
        }
 
-       /* this took quite a few CPU cycles to find ... */
-       session_key->data = discard_const_p(unsigned char, "SystemLibraryDTC");
-       session_key->length = 16;
-       return NT_STATUS_OK;
+       return dcerpc_generic_session_key(session_key);
 }
 
 /*
index 146558de3b4263919bbd84e27668622de1f87782..c16d76e0436fd6c5b54d5a371e42ce7e1c698388 100644 (file)
@@ -524,7 +524,7 @@ static NTSTATUS dcesrv_remote_session_key(struct dcesrv_auth *auth,
 static NTSTATUS dcesrv_local_fixed_session_key(struct dcesrv_auth *auth,
                                               DATA_BLOB *session_key)
 {
-       return dcerpc_generic_session_key(NULL, session_key);
+       return dcerpc_generic_session_key(session_key);
 }
 
 /*