source: trunk/server/librpc/idl/schannel.idl@ 1010

Last change on this file since 1010 was 745, checked in by Silvan Scherrer, 13 years ago

Samba Server: updated trunk to 3.6.0

File size: 3.3 KB
Line 
1#include "idl_types.h"
2
3/*
4 schannel structures
5*/
6
7import "netlogon.idl", "nbt.idl";
8
9[
10 pointer_default(unique),
11 helper("../librpc/ndr/ndr_schannel.h")
12]
13interface schannel
14{
15 /* this structure is used internally in the NETLOGON server */
16
17 typedef [public,flag(NDR_PAHEX)] struct {
18 netr_NegotiateFlags negotiate_flags;
19 uint8 session_key[16];
20 uint32 sequence;
21 netr_Credential seed;
22 netr_Credential client;
23 netr_Credential server;
24 netr_SchannelType secure_channel_type;
25 [string,charset(UTF8)] uint8 computer_name[];
26 [string,charset(UTF8)] uint8 account_name[];
27 dom_sid *sid;
28 } netlogon_creds_CredentialState;
29
30 /* MS-NRPC 2.2.1.3.1 NL_AUTH_MESSAGE */
31
32 typedef [v1_enum] enum {
33 NL_NEGOTIATE_REQUEST = 0x00000000,
34 NL_NEGOTIATE_RESPONSE = 0x00000001
35 } NL_AUTH_MESSAGE_TYPE;
36
37 typedef [bitmap32bit] bitmap {
38 NL_FLAG_OEM_NETBIOS_DOMAIN_NAME = 0x00000001,
39 NL_FLAG_OEM_NETBIOS_COMPUTER_NAME = 0x00000002,
40 NL_FLAG_UTF8_DNS_DOMAIN_NAME = 0x00000004,
41 NL_FLAG_UTF8_DNS_HOST_NAME = 0x00000008,
42 NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME = 0x00000010
43 } NL_AUTH_MESSAGE_FLAGS;
44
45 typedef [public,nodiscriminant,noprint] union {
46 [case (NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] astring a;
47 [case (NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] astring a;
48 [case (NL_FLAG_UTF8_DNS_DOMAIN_NAME)] nbt_string u;
49 [case (NL_FLAG_UTF8_DNS_HOST_NAME)] nbt_string u;
50 [case (NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] nbt_string u;
51 [default] ;
52 } NL_AUTH_MESSAGE_BUFFER;
53
54 typedef [public,nodiscriminant,noprint] union {
55 [case (NL_NEGOTIATE_RESPONSE)] uint32 dummy;
56 [default] ;
57 } NL_AUTH_MESSAGE_BUFFER_REPLY;
58
59 typedef [public,flag(NDR_PAHEX)] struct {
60 NL_AUTH_MESSAGE_TYPE MessageType;
61 NL_AUTH_MESSAGE_FLAGS Flags;
62 [switch_is(Flags & NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER oem_netbios_domain;
63 [switch_is(Flags & NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER oem_netbios_computer;
64 [switch_is(Flags & NL_FLAG_UTF8_DNS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_domain;
65 [switch_is(Flags & NL_FLAG_UTF8_DNS_HOST_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_host;
66 [switch_is(Flags & NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_netbios_computer;
67 [switch_is(MessageType & NL_NEGOTIATE_RESPONSE)] NL_AUTH_MESSAGE_BUFFER_REPLY Buffer;
68 } NL_AUTH_MESSAGE;
69
70 /* MS-NRPC 2.2.1.3.2 NL_AUTH_SIGNATURE */
71
72 typedef enum {
73 NL_SIGN_HMAC_SHA256 = 0x0013,
74 NL_SIGN_HMAC_MD5 = 0x0077
75 } NL_SIGNATURE_ALGORITHM;
76
77 typedef enum {
78 NL_SEAL_AES128 = 0x001A,
79 NL_SEAL_RC4 = 0x007A,
80 NL_SEAL_NONE = 0xFFFF
81 } NL_SEAL_ALGORITHM;
82
83 typedef [public,flag(NDR_PAHEX)] struct {
84 [value(NL_SIGN_HMAC_MD5)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm;
85 NL_SEAL_ALGORITHM SealAlgorithm;
86 uint16 Pad;
87 uint16 Flags;
88 uint8 SequenceNumber[8];
89 uint8 Checksum[8];
90 uint8 Confounder[8];
91 } NL_AUTH_SIGNATURE;
92
93 const int NL_AUTH_SIGNATURE_SIZE = 0x20;
94
95 /* MS-NRPC 2.2.1.3.3 NL_AUTH_SHA2_SIGNATURE */
96
97 typedef [public,flag(NDR_PAHEX)] struct {
98 [value(NL_SIGN_HMAC_SHA256)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm;
99 NL_SEAL_ALGORITHM SealAlgorithm;
100 uint16 Pad;
101 uint16 Flags;
102 uint8 SequenceNumber[8];
103 uint8 Checksum[32];
104 uint8 Confounder[8];
105 } NL_AUTH_SHA2_SIGNATURE;
106}
Note: See TracBrowser for help on using the repository browser.