The branch, master has been updated via 9831e7675c2f393bd02167f435b202e818d4d50b (commit) via ed03edc2e49c686d582abe0506f9422bfb795201 (commit) from fdf3bd6203b35fc82bda1fd07cc91b76de3f9edd (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 9831e7675c2f393bd02167f435b202e818d4d50b Author: Günther Deschner <g...@samba.org> Date: Tue Sep 15 00:26:31 2009 +0200 ntlmssp: pretty print a VERSION structure. Guenther commit ed03edc2e49c686d582abe0506f9422bfb795201 Author: Günther Deschner <g...@samba.org> Date: Mon Sep 14 23:25:33 2009 +0200 ntlmssp: better document to what structures we are reffering to. Guenther ----------------------------------------------------------------------- Summary of changes: librpc/gen_ndr/ndr_ntlmssp.c | 16 ---------------- librpc/gen_ndr/ndr_ntlmssp.h | 1 - librpc/gen_ndr/ntlmssp.h | 2 +- librpc/idl/ntlmssp.idl | 30 ++++++++++++++++++++++++++---- librpc/ndr/ndr_ntlmssp.c | 17 +++++++++++++++++ librpc/ndr/ndr_ntlmssp.h | 2 ++ 6 files changed, 46 insertions(+), 22 deletions(-) Changeset truncated at 500 lines: diff --git a/librpc/gen_ndr/ndr_ntlmssp.c b/librpc/gen_ndr/ndr_ntlmssp.c index b593d9e..2b4e70e 100644 --- a/librpc/gen_ndr/ndr_ntlmssp.c +++ b/librpc/gen_ndr/ndr_ntlmssp.c @@ -250,22 +250,6 @@ static enum ndr_err_code ndr_pull_ntlmssp_Version(struct ndr_pull *ndr, int ndr_ return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_ntlmssp_Version(struct ndr_print *ndr, const char *name, const union ntlmssp_Version *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "ntlmssp_Version"); - switch (level) { - case NTLMSSP_NEGOTIATE_VERSION: - ndr_print_VERSION(ndr, "version", &r->version); - break; - - default: - break; - - } -} - _PUBLIC_ enum ndr_err_code ndr_push_NEGOTIATE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct NEGOTIATE_MESSAGE *r) { if (ndr_flags & NDR_SCALARS) { diff --git a/librpc/gen_ndr/ndr_ntlmssp.h b/librpc/gen_ndr/ndr_ntlmssp.h index ab095d1..de31c6c 100644 --- a/librpc/gen_ndr/ndr_ntlmssp.h +++ b/librpc/gen_ndr/ndr_ntlmssp.h @@ -50,7 +50,6 @@ void ndr_print_LM_RESPONSE(struct ndr_print *ndr, const char *name, const struct enum ndr_err_code ndr_push_LMv2_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct LMv2_RESPONSE *r); enum ndr_err_code ndr_pull_LMv2_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct LMv2_RESPONSE *r); void ndr_print_LMv2_RESPONSE(struct ndr_print *ndr, const char *name, const struct LMv2_RESPONSE *r); -void ndr_print_ntlmssp_LM_RESPONSE(struct ndr_print *ndr, const char *name, const union ntlmssp_LM_RESPONSE *r); enum ndr_err_code ndr_push_NTLM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NTLM_RESPONSE *r); enum ndr_err_code ndr_pull_NTLM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NTLM_RESPONSE *r); void ndr_print_NTLM_RESPONSE(struct ndr_print *ndr, const char *name, const struct NTLM_RESPONSE *r); diff --git a/librpc/gen_ndr/ntlmssp.h b/librpc/gen_ndr/ntlmssp.h index 4509915..5205dce 100644 --- a/librpc/gen_ndr/ntlmssp.h +++ b/librpc/gen_ndr/ntlmssp.h @@ -104,7 +104,7 @@ struct VERSION { union ntlmssp_Version { struct VERSION version;/* [case(NTLMSSP_NEGOTIATE_VERSION)] */ -}/* [nodiscriminant] */; +}/* [noprint,nodiscriminant] */; struct NEGOTIATE_MESSAGE { const char *Signature;/* [value("NTLMSSP"),charset(DOS)] */ diff --git a/librpc/idl/ntlmssp.idl b/librpc/idl/ntlmssp.idl index 0bb30bb..8cabec3 100644 --- a/librpc/idl/ntlmssp.idl +++ b/librpc/idl/ntlmssp.idl @@ -18,6 +18,8 @@ interface ntlmssp NtLmAuthenticate = 0x00000003 } ntlmssp_MessageType; + /* [MS-NLMP] 2.2.2.5 NEGOTIATE */ + typedef [bitmap32bit] bitmap { NTLMSSP_NEGOTIATE_UNICODE = 0x00000001, NTLMSSP_NEGOTIATE_OEM = 0x00000002, /* NTLM_NEGOTIATE_OEM in MS-NLMP */ @@ -82,6 +84,8 @@ interface ntlmssp NTLMSSP_REVISION_W2K3 = 0x0F } ntlmssp_NTLMRevisionCurrent; + /* [MS-NLMP] 2.2.2.10 VERSION */ + typedef struct { ntlmssp_WindowsMajorVersion ProductMajorVersion; ntlmssp_WindowsMinorVersion ProductMinorVersion; @@ -90,12 +94,12 @@ interface ntlmssp ntlmssp_NTLMRevisionCurrent NTLMRevisionCurrent; } VERSION; - typedef [nodiscriminant] union { + typedef [noprint,nodiscriminant] union { [case(NTLMSSP_NEGOTIATE_VERSION)] VERSION version; [default]; } ntlmssp_Version; - /* NTLMSSP negotiate message */ + /* [MS-NLMP] 2.2.1.1 NEGOTIATE_MESSAGE */ typedef [public] struct { [charset(DOS),value("NTLMSSP")] uint8 Signature[8]; @@ -124,6 +128,8 @@ interface ntlmssp MsvChannelBindings = 10 } ntlmssp_AvId; + /* [MS-NLMP] 2.2.2.2 Restriction_Encoding */ + typedef struct { uint32 Size; [value(0)] uint32 Z4; @@ -152,6 +158,8 @@ interface ntlmssp [default] [flag(NDR_REMAINING)] DATA_BLOB blob; } ntlmssp_AvValue; + /* [MS-NLMP] 2.2.2.1 AV_PAIR */ + typedef [public,flag(NDR_NOALIGN)] struct { ntlmssp_AvId AvId; [value(ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, ndr->iconv_convenience, 0))] uint16 AvLen; @@ -163,7 +171,7 @@ interface ntlmssp AV_PAIR pair[count]; } AV_PAIR_LIST; - /* NTLMSSP challenge message */ + /* [MS-NLMP] 2.2.1.2 CHALLENGE_MESSAGE */ typedef [public,flag(NDR_PAHEX)] struct { [charset(DOS),value("NTLMSSP")] uint8 Signature[8]; @@ -180,10 +188,14 @@ interface ntlmssp [switch_is(NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; } CHALLENGE_MESSAGE; + /* [MS-NLMP] 2.2.2.3 LM_RESPONSE */ + typedef [public,flag(NDR_PAHEX)] struct { uint8 Response[24]; } LM_RESPONSE; + /* [MS-NLMP] 2.2.2.4 LMv2_RESPONSE */ + typedef [public,flag(NDR_PAHEX)] struct { uint8 Response[16]; uint8 ChallengeFromClient[8]; @@ -194,10 +206,14 @@ interface ntlmssp [default]; } ntlmssp_LM_RESPONSE; + /* [MS-NLMP] 2.2.2.6 NTLM_RESPONSE */ + typedef [public,flag(NDR_PAHEX)] struct { uint8 Response[24]; } NTLM_RESPONSE; + /* [MS-NLMP] 2.2.2.7 NTLMv2_CLIENT_CHALLENGE */ + typedef [flag(NDR_PAHEX)] struct { [value(1)] uint8 RespType; [value(1)] uint8 HiRespType; @@ -209,6 +225,8 @@ interface ntlmssp [subcontext(0)] [flag(NDR_REMAINING)] AV_PAIR_LIST AvPairs; } NTLMv2_CLIENT_CHALLENGE; + /* [MS-NLMP] 2.2.2.8 NTLMv2_RESPONSE */ + typedef [public,flag(NDR_PAHEX)] struct { uint8 Response[16]; NTLMv2_CLIENT_CHALLENGE Challenge; @@ -224,7 +242,7 @@ interface ntlmssp uint8 MIC[16]; } MIC; - /* NTLMSSP authenticate message */ + /* [MS-NLMP] 2.2.1.3 AUTHENTICATE_MESSAGE */ typedef [public,flag(NDR_REMAINING)] struct { [charset(DOS),value("NTLMSSP")] uint8 Signature[8]; @@ -260,6 +278,8 @@ interface ntlmssp /* NTLMSSP signature size */ const int NTLMSSP_SIG_SIZE = 16; + /* [MS-NLMP] 2.2.2.9.1 NTLMSSP_MESSAGE_SIGNATURE */ + typedef [public] struct { [value(NTLMSSP_SIGN_VERSION)] uint32 Version; uint32 RandomPad; @@ -267,6 +287,8 @@ interface ntlmssp uint32 SeqNum; } NTLMSSP_MESSAGE_SIGNATURE; + /* [MS-NLMP] 2.2.2.9.2 NTLMSSP_MESSAGE_SIGNATURE for Extended Session Security */ + typedef [public,flag(NDR_PAHEX)] struct { [value(NTLMSSP_SIGN_VERSION)] uint32 Version; uint8 Checksum[8]; diff --git a/librpc/ndr/ndr_ntlmssp.c b/librpc/ndr/ndr_ntlmssp.c index 5c28726..4808aa5 100644 --- a/librpc/ndr/ndr_ntlmssp.c +++ b/librpc/ndr/ndr_ntlmssp.c @@ -162,3 +162,20 @@ _PUBLIC_ void ndr_print_ntlmssp_lm_response(TALLOC_CTX *mem_ctx, } } } + +_PUBLIC_ void ndr_print_ntlmssp_Version(struct ndr_print *ndr, const char *name, const union ntlmssp_Version *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + switch (level) { + case NTLMSSP_NEGOTIATE_VERSION: + ndr_print_VERSION(ndr, name, &r->version); + break; + + default: + break; + + } +} + + diff --git a/librpc/ndr/ndr_ntlmssp.h b/librpc/ndr/ndr_ntlmssp.h index 6d76be2..b574f15 100644 --- a/librpc/ndr/ndr_ntlmssp.h +++ b/librpc/ndr/ndr_ntlmssp.h @@ -31,3 +31,5 @@ _PUBLIC_ void ndr_print_ntlmssp_lm_response(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic, const DATA_BLOB *lm_response, bool ntlmv2); +_PUBLIC_ void ndr_print_ntlmssp_Version(struct ndr_print *ndr, const char *name, const union ntlmssp_Version *r); + -- Samba Shared Repository