summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-08-12 23:18:52 +0200
committerGünther Deschner <gd@samba.org>2009-08-28 10:05:19 +0200
commitb4a860ba81441e6e5be5eb82031151c09796f898 (patch)
treea9b730ce6bca5f424000f420279c22ab045daab0
parente65a3cb0db7ac079c4667d3bc7b56bfb19a89f7a (diff)
downloadsamba-b4a860ba81441e6e5be5eb82031151c09796f898.tar.gz
samba-b4a860ba81441e6e5be5eb82031151c09796f898.tar.bz2
samba-b4a860ba81441e6e5be5eb82031151c09796f898.zip
ntlmssp: add AUTHENTICATE_MESSAGE to idl.
Guenther
-rw-r--r--librpc/idl/ntlmssp.idl75
1 files changed, 75 insertions, 0 deletions
diff --git a/librpc/idl/ntlmssp.idl b/librpc/idl/ntlmssp.idl
index 53e2639fe4..2015a300be 100644
--- a/librpc/idl/ntlmssp.idl
+++ b/librpc/idl/ntlmssp.idl
@@ -177,4 +177,79 @@ interface ntlmssp
[relative] [subcontext(0),subcontext_size(TargetInfoLen)] AV_PAIR_LIST *TargetInfo;
[switch_is(NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version;
} CHALLENGE_MESSAGE;
+
+ typedef [public,flag(NDR_PAHEX)] struct {
+ uint8 Response[24];
+ } LM_RESPONSE;
+
+ typedef [public,flag(NDR_PAHEX)] struct {
+ uint8 Response[16];
+ uint8 ChallengeFromClient[8];
+ } LMv2_RESPONSE;
+
+ typedef [nodiscriminant] union {
+ [case(24)] LM_RESPONSE v1;
+ [default];
+ } ntlmssp_LM_RESPONSE;
+
+ typedef [public,flag(NDR_PAHEX)] struct {
+ uint8 Response[24];
+ } NTLM_RESPONSE;
+
+ typedef [flag(NDR_PAHEX)] struct {
+ [value(1)] uint8 RespType;
+ [value(1)] uint8 HiRespType;
+ uint16 Reserved1;
+ uint32 Reserved2;
+ NTTIME TimeStamp;
+ uint8 ChallengeFromClient[8];
+ uint32 Reserved3;
+ [subcontext(0)] [flag(NDR_REMAINING)] AV_PAIR_LIST AvPairs;
+ } NTLMv2_CLIENT_CHALLENGE;
+
+ typedef [public,flag(NDR_PAHEX)] struct {
+ uint8 Response[16];
+ NTLMv2_CLIENT_CHALLENGE Challenge;
+ } NTLMv2_RESPONSE;
+
+ typedef [public,nodiscriminant] union {
+ [case(0)] ;
+ [case(0x18)] NTLM_RESPONSE v1;
+ [default] NTLMv2_RESPONSE v2;
+ } ntlmssp_NTLM_RESPONSE;
+
+ typedef [flag(NDR_PAHEX)] struct {
+ uint8 MIC[16];
+ } MIC;
+
+ /* NTLMSSP authenticate message */
+
+ typedef [public,flag(NDR_REMAINING)] struct {
+ [charset(DOS),value("NTLMSSP")] uint8 Signature[8];
+ [value(NtLmAuthenticate)] ntlmssp_MessageType MessageType;
+ uint16 LmChallengeResponseLen;
+ [value(LmChallengeResponseLen)] uint16 LmChallengeResponseMaxLen;
+ [relative] [subcontext(0),subcontext_size(LmChallengeResponseLen),switch_is(LmChallengeResponseLen)] ntlmssp_LM_RESPONSE *LmChallengeResponse;
+ uint16 NtChallengeResponseLen;
+ [value(NtChallengeResponseLen)] uint16 NtChallengeResponseMaxLen;
+ [relative] [subcontext(0),subcontext_size(NtChallengeResponseMaxLen),switch_is(NtChallengeResponseLen)] ntlmssp_NTLM_RESPONSE *NtChallengeResponse;
+ [value(ndr_ntlmssp_string_length(NegotiateFlags, DomainName))] uint16 DomainNameLen;
+ [value(DomainNameLen)] uint16 DomainNameMaxLen;
+ [relative] [subcontext(0),subcontext_size(DomainNameLen)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *DomainName;
+ [value(ndr_ntlmssp_string_length(NegotiateFlags, UserName))] uint16 UserNameLen;
+ [value(UserNameLen)] uint16 UserNameMaxLen;
+ [relative] [subcontext(0),subcontext_size(UserNameLen)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *UserName;
+ [value(ndr_ntlmssp_string_length(NegotiateFlags, Workstation))] uint16 WorkstationLen;
+ [value(WorkstationLen)] uint16 WorkstationMaxLen;
+ [relative] [subcontext(0),subcontext_size(WorkstationLen)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *Workstation;
+ [value(EncryptedRandomSessionKey->length)] uint16 EncryptedRandomSessionKeyLen;
+ [value(EncryptedRandomSessionKeyLen)] uint16 EncryptedRandomSessionKeyMaxLen;
+ [relative] [subcontext(0),subcontext_size(EncryptedRandomSessionKeyLen)] DATA_BLOB *EncryptedRandomSessionKey;
+ NEGOTIATE NegotiateFlags;
+ [switch_is(NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version;
+ /* MIC (Message Integrity) is only included when the client has
+ * sent a timestap Av struct in the CHALLENGE_MESSAGE AvPair */
+ /* [flag(NDR_REMAINING)] MIC mic; */
+ } AUTHENTICATE_MESSAGE;
+
}