diff options
author | Andrew Bartlett <abartlet@samba.org> | 2004-05-25 14:06:28 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:56:14 -0500 |
commit | 5b0ab386cb0fb74d78e6c68abe1b047ab515b7b3 (patch) | |
tree | 78f843cb6a9ff745f9ac5ef35de53bccbf1ccbd8 /source4/librpc/rpc/dcerpc_schannel.c | |
parent | 579c13da43d5b40ac6d6c1436399fbc1d8dfd054 (diff) | |
download | samba-5b0ab386cb0fb74d78e6c68abe1b047ab515b7b3.tar.gz samba-5b0ab386cb0fb74d78e6c68abe1b047ab515b7b3.tar.bz2 samba-5b0ab386cb0fb74d78e6c68abe1b047ab515b7b3.zip |
r874: This patch is a pile of work on NTLMSSP:
Samba's NTLMSSP code is now fully talloc based, which should go a long
way to cleaning up the memory leaks in this code. This also avoids a
lot of extra copies of data, as we now allocate the 'return' blobs on
a caller-supplied context.
I have also been doing a lot of work towards NTLM2 signing and
sealing. I have this working for sealing, but not for the verifier
(MD5 integrity check on the stream) which is still incorrect.
(I can aim a rpcecho sinkdata from a Win2k3 box to my server, and the
data arrives intact, but the signature check fails. It does however
match the test values I have...).
The new torture test is cludged in - when we get a unit test suite
back, I'll happliy put it in the 'right' place....
Andrew Bartlett
(This used to be commit 399e2e2b1149b8d1c070aa7f0d5131c0b577d2b9)
Diffstat (limited to 'source4/librpc/rpc/dcerpc_schannel.c')
-rw-r--r-- | source4/librpc/rpc/dcerpc_schannel.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/source4/librpc/rpc/dcerpc_schannel.c b/source4/librpc/rpc/dcerpc_schannel.c index a88d3c1b3e..f368ce30b3 100644 --- a/source4/librpc/rpc/dcerpc_schannel.c +++ b/source4/librpc/rpc/dcerpc_schannel.c @@ -26,34 +26,38 @@ wrappers for the schannel_*() functions */ static NTSTATUS schan_unseal_packet(struct dcerpc_security *dcerpc_security, - uchar *data, size_t length, DATA_BLOB *sig) + TALLOC_CTX *mem_ctx, + uchar *data, size_t length, DATA_BLOB *sig) { struct schannel_state *schannel_state = dcerpc_security->private; - return schannel_unseal_packet(schannel_state, data, length, sig); + return schannel_unseal_packet(schannel_state, mem_ctx, data, length, sig); } static NTSTATUS schan_check_packet(struct dcerpc_security *dcerpc_security, - const uchar *data, size_t length, - const DATA_BLOB *sig) + TALLOC_CTX *mem_ctx, + const uchar *data, size_t length, + const DATA_BLOB *sig) { struct schannel_state *schannel_state = dcerpc_security->private; return schannel_check_packet(schannel_state, data, length, sig); } static NTSTATUS schan_seal_packet(struct dcerpc_security *dcerpc_security, - uchar *data, size_t length, - DATA_BLOB *sig) + TALLOC_CTX *mem_ctx, + uchar *data, size_t length, + DATA_BLOB *sig) { struct schannel_state *schannel_state = dcerpc_security->private; - return schannel_seal_packet(schannel_state, data, length, sig); + return schannel_seal_packet(schannel_state, mem_ctx, data, length, sig); } static NTSTATUS schan_sign_packet(struct dcerpc_security *dcerpc_security, + TALLOC_CTX *mem_ctx, const uchar *data, size_t length, DATA_BLOB *sig) { struct schannel_state *schannel_state = dcerpc_security->private; - return schannel_sign_packet(schannel_state, data, length, sig); + return schannel_sign_packet(schannel_state, mem_ctx, data, length, sig); } static NTSTATUS schan_session_key(struct dcerpc_security *dcerpc_security, |