1 package jcifs.dcerpc.msrpc; 2 3 import jcifs.dcerpc.*; 4 import jcifs.dcerpc.ndr.*; 5 6 public class samr { 7 8 public static String getSyntax() { 9 return "12345778-1234-abcd-ef00-0123456789ac:1.0"; 10 } 11 12 public static class SamrCloseHandle extends DcerpcMessage { 13 14 public int getOpnum() { return 0x01; } 15 16 public int retval; 17 public rpc.policy_handle handle; 18 19 public SamrCloseHandle(rpc.policy_handle handle) { 20 this.handle = handle; 21 } 22 23 public void encode_in(NdrBuffer _dst) throws NdrException { 24 handle.encode(_dst); 25 } 26 public void decode_out(NdrBuffer _src) throws NdrException { 27 retval = (int)_src.dec_ndr_long(); 28 } 29 } 30 public static class SamrConnect2 extends DcerpcMessage { 31 32 public int getOpnum() { return 0x39; } 33 34 public int retval; 35 public String system_name; 36 public int access_mask; 37 public rpc.policy_handle handle; 38 39 public SamrConnect2(String system_name, int access_mask, rpc.policy_handle handle) { 40 this.system_name = system_name; 41 this.access_mask = access_mask; 42 this.handle = handle; 43 } 44 45 public void encode_in(NdrBuffer _dst) throws NdrException { 46 _dst.enc_ndr_referent(system_name, 1); 47 if (system_name != null) { 48 _dst.enc_ndr_string(system_name); 49 50 } 51 _dst.enc_ndr_long(access_mask); 52 } 53 public void decode_out(NdrBuffer _src) throws NdrException { 54 handle.decode(_src); 55 retval = (int)_src.dec_ndr_long(); 56 } 57 } 58 public static class SamrConnect4 extends DcerpcMessage { 59 60 public int getOpnum() { return 0x3e; } 61 62 public int retval; 63 public String system_name; 64 public int unknown; 65 public int access_mask; 66 public rpc.policy_handle handle; 67 68 public SamrConnect4(String system_name, 69 int unknown, 70 int access_mask, 71 rpc.policy_handle handle) { 72 this.system_name = system_name; 73 this.unknown = unknown; 74 this.access_mask = access_mask; 75 this.handle = handle; 76 } 77 78 public void encode_in(NdrBuffer _dst) throws NdrException { 79 _dst.enc_ndr_referent(system_name, 1); 80 if (system_name != null) { 81 _dst.enc_ndr_string(system_name); 82 83 } 84 _dst.enc_ndr_long(unknown); 85 _dst.enc_ndr_long(access_mask); 86 } 87 public void decode_out(NdrBuffer _src) throws NdrException { 88 handle.decode(_src); 89 retval = (int)_src.dec_ndr_long(); 90 } 91 } 92 public static class SamrOpenDomain extends DcerpcMessage { 93 94 public int getOpnum() { return 0x07; } 95 96 public int retval; 97 public rpc.policy_handle handle; 98 public int access_mask; 99 public rpc.sid_t sid; 100 public rpc.policy_handle domain_handle; 101 102 public SamrOpenDomain(rpc.policy_handle handle, 103 int access_mask, 104 rpc.sid_t sid, 105 rpc.policy_handle domain_handle) { 106 this.handle = handle; 107 this.access_mask = access_mask; 108 this.sid = sid; 109 this.domain_handle = domain_handle; 110 } 111 112 public void encode_in(NdrBuffer _dst) throws NdrException { 113 handle.encode(_dst); 114 _dst.enc_ndr_long(access_mask); 115 sid.encode(_dst); 116 } 117 public void decode_out(NdrBuffer _src) throws NdrException { 118 domain_handle.decode(_src); 119 retval = (int)_src.dec_ndr_long(); 120 } 121 } 122 public static class SamrSamEntry extends NdrObject { 123 124 public int idx; 125 public rpc.unicode_string name; 126 127 public void encode(NdrBuffer _dst) throws NdrException { 128 _dst.align(4); 129 _dst.enc_ndr_long(idx); 130 _dst.enc_ndr_short(name.length); 131 _dst.enc_ndr_short(name.maximum_length); 132 _dst.enc_ndr_referent(name.buffer, 1); 133 134 if (name.buffer != null) { 135 _dst = _dst.deferred; 136 int _name_bufferl = name.length / 2; 137 int _name_buffers = name.maximum_length / 2; 138 _dst.enc_ndr_long(_name_buffers); 139 _dst.enc_ndr_long(0); 140 _dst.enc_ndr_long(_name_bufferl); 141 int _name_bufferi = _dst.index; 142 _dst.advance(2 * _name_bufferl); 143 144 _dst = _dst.derive(_name_bufferi); 145 for (int _i = 0; _i < _name_bufferl; _i++) { 146 _dst.enc_ndr_short(name.buffer[_i]); 147 } 148 } 149 } 150 public void decode(NdrBuffer _src) throws NdrException { 151 _src.align(4); 152 idx = (int)_src.dec_ndr_long(); 153 _src.align(4); 154 if (name == null) { 155 name = new rpc.unicode_string(); 156 } 157 name.length = (short)_src.dec_ndr_short(); 158 name.maximum_length = (short)_src.dec_ndr_short(); 159 int _name_bufferp = _src.dec_ndr_long(); 160 161 if (_name_bufferp != 0) { 162 _src = _src.deferred; 163 int _name_buffers = _src.dec_ndr_long(); 164 _src.dec_ndr_long(); 165 int _name_bufferl = _src.dec_ndr_long(); 166 int _name_bufferi = _src.index; 167 _src.advance(2 * _name_bufferl); 168 169 if (name.buffer == null) { 170 if (_name_buffers < 0 || _name_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE ); 171 name.buffer = new short[_name_buffers]; 172 } 173 _src = _src.derive(_name_bufferi); 174 for (int _i = 0; _i < _name_bufferl; _i++) { 175 name.buffer[_i] = (short)_src.dec_ndr_short(); 176 } 177 } 178 } 179 } 180 public static class SamrSamArray extends NdrObject { 181 182 public int count; 183 public SamrSamEntry[] entries; 184 185 public void encode(NdrBuffer _dst) throws NdrException { 186 _dst.align(4); 187 _dst.enc_ndr_long(count); 188 _dst.enc_ndr_referent(entries, 1); 189 190 if (entries != null) { 191 _dst = _dst.deferred; 192 int _entriess = count; 193 _dst.enc_ndr_long(_entriess); 194 int _entriesi = _dst.index; 195 _dst.advance(12 * _entriess); 196 197 _dst = _dst.derive(_entriesi); 198 for (int _i = 0; _i < _entriess; _i++) { 199 entries[_i].encode(_dst); 200 } 201 } 202 } 203 public void decode(NdrBuffer _src) throws NdrException { 204 _src.align(4); 205 count = (int)_src.dec_ndr_long(); 206 int _entriesp = _src.dec_ndr_long(); 207 208 if (_entriesp != 0) { 209 _src = _src.deferred; 210 int _entriess = _src.dec_ndr_long(); 211 int _entriesi = _src.index; 212 _src.advance(12 * _entriess); 213 214 if (entries == null) { 215 if (_entriess < 0 || _entriess > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE ); 216 entries = new SamrSamEntry[_entriess]; 217 } 218 _src = _src.derive(_entriesi); 219 for (int _i = 0; _i < _entriess; _i++) { 220 if (entries[_i] == null) { 221 entries[_i] = new SamrSamEntry(); 222 } 223 entries[_i].decode(_src); 224 } 225 } 226 } 227 } 228 public static class SamrEnumerateAliasesInDomain extends DcerpcMessage { 229 230 public int getOpnum() { return 0x0f; } 231 232 public int retval; 233 public rpc.policy_handle domain_handle; 234 public int resume_handle; 235 public int acct_flags; 236 public SamrSamArray sam; 237 public int num_entries; 238 239 public SamrEnumerateAliasesInDomain(rpc.policy_handle domain_handle, 240 int resume_handle, 241 int acct_flags, 242 SamrSamArray sam, 243 int num_entries) { 244 this.domain_handle = domain_handle; 245 this.resume_handle = resume_handle; 246 this.acct_flags = acct_flags; 247 this.sam = sam; 248 this.num_entries = num_entries; 249 } 250 251 public void encode_in(NdrBuffer _dst) throws NdrException { 252 domain_handle.encode(_dst); 253 _dst.enc_ndr_long(resume_handle); 254 _dst.enc_ndr_long(acct_flags); 255 } 256 public void decode_out(NdrBuffer _src) throws NdrException { 257 resume_handle = (int)_src.dec_ndr_long(); 258 int _samp = _src.dec_ndr_long(); 259 if (_samp != 0) { 260 if (sam == null) { 261 sam = new SamrSamArray(); 262 } 263 sam.decode(_src); 264 265 } 266 num_entries = (int)_src.dec_ndr_long(); 267 retval = (int)_src.dec_ndr_long(); 268 } 269 } 270 public static class SamrOpenAlias extends DcerpcMessage { 271 272 public int getOpnum() { return 0x1b; } 273 274 public int retval; 275 public rpc.policy_handle domain_handle; 276 public int access_mask; 277 public int rid; 278 public rpc.policy_handle alias_handle; 279 280 public SamrOpenAlias(rpc.policy_handle domain_handle, 281 int access_mask, 282 int rid, 283 rpc.policy_handle alias_handle) { 284 this.domain_handle = domain_handle; 285 this.access_mask = access_mask; 286 this.rid = rid; 287 this.alias_handle = alias_handle; 288 } 289 290 public void encode_in(NdrBuffer _dst) throws NdrException { 291 domain_handle.encode(_dst); 292 _dst.enc_ndr_long(access_mask); 293 _dst.enc_ndr_long(rid); 294 } 295 public void decode_out(NdrBuffer _src) throws NdrException { 296 alias_handle.decode(_src); 297 retval = (int)_src.dec_ndr_long(); 298 } 299 } 300 public static class SamrGetMembersInAlias extends DcerpcMessage { 301 302 public int getOpnum() { return 0x21; } 303 304 public int retval; 305 public rpc.policy_handle alias_handle; 306 public lsarpc.LsarSidArray sids; 307 308 public SamrGetMembersInAlias(rpc.policy_handle alias_handle, lsarpc.LsarSidArray sids) { 309 this.alias_handle = alias_handle; 310 this.sids = sids; 311 } 312 313 public void encode_in(NdrBuffer _dst) throws NdrException { 314 alias_handle.encode(_dst); 315 } 316 public void decode_out(NdrBuffer _src) throws NdrException { 317 sids.decode(_src); 318 retval = (int)_src.dec_ndr_long(); 319 } 320 } 321 } 322 | Popular Tags |