s3-librpc Remove special case for spnego session key
authorAndrew Bartlett <abartlet@samba.org>
Tue, 3 Jan 2012 11:00:11 +0000 (22:00 +1100)
committerStefan Metzmacher <metze@samba.org>
Wed, 18 Jan 2012 15:23:23 +0000 (16:23 +0100)
SPNEGO is implemented only in terms of gensec mechanisms now.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/librpc/crypto/cli_spnego.c
source3/librpc/crypto/spnego.h
source3/rpc_client/cli_pipe.c

index d6956449e12e4d6cf1b8f992d486290fec17538f..e676703c6b05d3a0858d0f160519a64bb6e739b5 100644 (file)
@@ -283,18 +283,6 @@ NTSTATUS spnego_get_negotiated_mech(struct spnego_context *sp_ctx,
        return NT_STATUS_OK;
 }
 
-DATA_BLOB spnego_get_session_key(TALLOC_CTX *mem_ctx,
-                                struct spnego_context *sp_ctx)
-{
-       DATA_BLOB sk;
-       NTSTATUS status;
-       status = gensec_session_key(sp_ctx->gensec_security, mem_ctx, &sk);
-       if (!NT_STATUS_IS_OK(status)) {
-               return data_blob_null;
-       }
-       return sk;
-}
-
 NTSTATUS spnego_sign(TALLOC_CTX *mem_ctx,
                        struct spnego_context *sp_ctx,
                        DATA_BLOB *data, DATA_BLOB *full_data,
index a054b593b205326cf8f258101720229a2259ac7e..b66ef4d152a820599eb4b31c405a261bb9471b68 100644 (file)
@@ -72,9 +72,6 @@ bool spnego_require_more_processing(struct spnego_context *sp_ctx);
 NTSTATUS spnego_get_negotiated_mech(struct spnego_context *sp_ctx,
                                    struct gensec_security **auth_context);
 
-DATA_BLOB spnego_get_session_key(TALLOC_CTX *mem_ctx,
-                                struct spnego_context *sp_ctx);
-
 NTSTATUS spnego_sign(TALLOC_CTX *mem_ctx,
                        struct spnego_context *sp_ctx,
                        DATA_BLOB *data, DATA_BLOB *full_data,
index f3a334a05247b14e2e2f2869cc1555d856643a81..9091d879b8247bda0519ad92654419cf989a56f1 100644 (file)
@@ -3113,7 +3113,14 @@ NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
        case DCERPC_AUTH_TYPE_SPNEGO:
                spnego_ctx = talloc_get_type_abort(a->auth_ctx,
                                                   struct spnego_context);
-               sk = spnego_get_session_key(mem_ctx, spnego_ctx);
+               status = spnego_get_negotiated_mech(spnego_ctx, &gensec_security);
+               if (!NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
+               status = gensec_session_key(gensec_security, mem_ctx, &sk);
+               if (!NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
                make_dup = false;
                break;
        case DCERPC_AUTH_TYPE_NTLMSSP: