From 1f4123677e509f4479b87c0a9c20abdc556890b1 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Sun, 13 Sep 2009 18:42:45 +0200 Subject: s4-schannel: first step of decoupling schannel from gensec. Guenther --- source4/auth/gensec/schannel.c | 51 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 4 deletions(-) (limited to 'source4/auth/gensec/schannel.c') diff --git a/source4/auth/gensec/schannel.c b/source4/auth/gensec/schannel.c index 15d64436e3..90b90fca9c 100644 --- a/source4/auth/gensec/schannel.c +++ b/source4/auth/gensec/schannel.c @@ -281,6 +281,49 @@ static bool schannel_have_feature(struct gensec_security *gensec_security, return false; } +static NTSTATUS schannel_seal_packet_wrap(struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx, + uint8_t *data, size_t length, + const uint8_t *whole_pdu, size_t pdu_length, + DATA_BLOB *sig) +{ + struct schannel_state *state = talloc_get_type(gensec_security->private_data, struct schannel_state); + + return schannel_seal_packet(state, mem_ctx, data, length, sig); +} + +static NTSTATUS schannel_sign_packet_wrap(struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx, + const uint8_t *data, size_t length, + const uint8_t *whole_pdu, size_t pdu_length, + DATA_BLOB *sig) +{ + struct schannel_state *state = talloc_get_type(gensec_security->private_data, struct schannel_state); + + return schannel_sign_packet(state, mem_ctx, data, length, sig); +} + +static NTSTATUS schannel_check_packet_wrap(struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx, + const uint8_t *data, size_t length, + const uint8_t *whole_pdu, size_t pdu_length, + const DATA_BLOB *sig) +{ + struct schannel_state *state = talloc_get_type(gensec_security->private_data, struct schannel_state); + + return schannel_check_packet(state, mem_ctx, data, length, sig); +} + +static NTSTATUS schannel_unseal_packet_wrap(struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx, + uint8_t *data, size_t length, + const uint8_t *whole_pdu, size_t pdu_length, + const DATA_BLOB *sig) +{ + struct schannel_state *state = talloc_get_type(gensec_security->private_data, struct schannel_state); + + return schannel_unseal_packet(state, mem_ctx, data, length, sig); +} static const struct gensec_security_ops gensec_schannel_security_ops = { .name = "schannel", @@ -288,10 +331,10 @@ static const struct gensec_security_ops gensec_schannel_security_ops = { .client_start = schannel_client_start, .server_start = schannel_server_start, .update = schannel_update, - .seal_packet = schannel_seal_packet, - .sign_packet = schannel_sign_packet, - .check_packet = schannel_check_packet, - .unseal_packet = schannel_unseal_packet, + .seal_packet = schannel_seal_packet_wrap, + .sign_packet = schannel_sign_packet_wrap, + .check_packet = schannel_check_packet_wrap, + .unseal_packet = schannel_unseal_packet_wrap, .session_key = schannel_session_key, .session_info = schannel_session_info, .sig_size = schannel_sig_size, -- cgit From f3979b50a9b2aacb0497df770f09950b78878fcc Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 15 Sep 2009 18:29:10 +0200 Subject: schannel: move schannel_sign to main directory. Guenther --- source4/auth/gensec/schannel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/auth/gensec/schannel.c') diff --git a/source4/auth/gensec/schannel.c b/source4/auth/gensec/schannel.c index 90b90fca9c..3efaf9bcca 100644 --- a/source4/auth/gensec/schannel.c +++ b/source4/auth/gensec/schannel.c @@ -26,7 +26,8 @@ #include "auth/credentials/credentials.h" #include "auth/gensec/gensec.h" #include "auth/gensec/gensec_proto.h" -#include "auth/gensec/schannel.h" +#include "../libcli/auth/schannel.h" +#include "auth/gensec/schannel_state.h" #include "librpc/rpc/dcerpc.h" #include "param/param.h" #include "auth/session_proto.h" -- cgit