1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-14 19:24:43 +03:00

51 Commits

Author SHA1 Message Date
Stefan Metzmacher
9e59dc7031 r25433: - dcerpc_AuthType is a 8bit enum not 32bit
- also add dcerpc_AuthLevel enum

metze
(This used to be commit efb2416939d5def030e56b0497bab5345426840f)
2007-10-10 15:07:32 -05:00
Ronnie Sahlberg
19e417aefd r25374: create an enum for the authentication types instead of defining them as
constants
(This used to be commit 0c3d38b0d9c2a335c6449955a137627ba16623a4)
2007-10-10 15:07:21 -05:00
Ronnie Sahlberg
ca8f2fbe2e r25373: add three more authentication types
(This used to be commit 9c38c61c337da911d56df33f1b72be8cf7d0d4c6)
2007-10-10 15:07:20 -05:00
Stefan Metzmacher
ce84ab9a83 r24532: rename struct dcerpc_syntax_id into struct ndr_syntax_id
and move it into misc.idl

The goal is to get rid a all dcerpc specific stuff in the
generated ndr layer.

metze
(This used to be commit 2ed014cfb894cccab1654e3f7d5876393e2b52d7)
2007-10-10 15:02:11 -05:00
Stefan Metzmacher
1b17d9a587 r21515: add some more PFC_FLAGS from the DCERPC spec, and fix some names
also make it possible to pass and get the assoc_group_id for
a pipe.

also make it possible to pass the DCERPC_PFC_FLAG_CONC_MPX flag
in bind requests. From the spec it triggers support for
concurrent multiplexing on a single connection.

w2k3 uses the assoc_group_id feature when it becomes a domain controller
of an existing domain. Know the ugly part, with this it's possible to
use a policy handle from one connection on a different one...

typically the DsBind() call is on the 1st connection while DsGetNCChanges()
call using the first connections bind handle are on the 2nd connection.

The second connection also has the DCERPC_PFC_FLAG_CONC_MPX flag attached,
but that doesn't seem to be related to the cross connection handle usage

Can anyone think of a nice way to implement the assoc_group_id stuff in our server?

metze
(This used to be commit 2d8c85397d9027485ed6dbdcca87cc1ec84c7b76)
2007-10-10 14:48:48 -05:00
Jelmer Vernooij
9f420a6c6d r21477: Remove unnecessary properties.
(This used to be commit 17d1da19474de3c501b532aec74b1fb93ed3ae3f)
2007-10-10 14:48:41 -05:00
Stefan Metzmacher
cc0edee3f6 r20096: now I'm 100% sure:-)
metze
(This used to be commit 3daa68e1c4212f1dad98b196a096ded3204b03ba)
2007-10-10 14:29:05 -05:00
Jelmer Vernooij
863dcbfa06 r19588: Use include and import statements rather than depends() and helper().
(This used to be commit 347ae9628202ca4de4318ef8156999239aad9192)
2007-10-10 14:24:58 -05:00
Tim Potter
69c5cd509b r14836: Keep constants in the right order, and line things up nicely.
(This used to be commit 9c11c1ac2a9d5a6cae490fa7a2005700271d53f3)
2007-10-10 13:59:24 -05:00
Andrew Bartlett
ff57359761 r14715: Correct the definition of the DCE/RPC bind_nak, per the OpenGroup spec.
This allows us to correctly parse the bind_nak from NT4, when we use
an invalid auth type (the unsupported SPNEGO)..

Andrew Bartlett
(This used to be commit ce0c7f86fd5eeeacad885d732b66c65ac9103ace)
2007-10-10 13:59:12 -05:00
Jelmer Vernooij
83d8fd3dcf r14484: Install more headers
(This used to be commit 430c6516d383bfd7f27287394bf8eef9f174b3e6)
2007-10-10 13:57:31 -05:00
Andrew Tridgell
4354bebda7 r8053: requests from mmc show that the auth info for a bind should be 4 byte aligned, not
8 byte aligned
(This used to be commit c112a2b23e6cd2c55fbb7e8096a7c523a91d6814)
2007-10-10 13:19:03 -05:00
Stefan Metzmacher
9ef145424a r7546: fix comment
metze
(This used to be commit de69d87ded11ef0954e931885761e9ecd9ce4e1b)
2007-10-10 13:18:07 -05:00
Jelmer Vernooij
c8b8212a83 r7314: the various ncacn and ncadg PDU's share the same namespace
(This used to be commit 58fee22e0b5054de631cc5929498d490db31f348)
2007-10-10 13:17:41 -05:00
Jelmer Vernooij
430dc36c1a r7312: Add IDL for ncadg packets.
(This used to be commit 2009a430b03c685dd65bd573e70d3618f2e0dd0f)
2007-10-10 13:17:40 -05:00
Andrew Bartlett
6b6bb89c91 r6526: Rename this RPC fault. Everybody else calls this ACCESS_DENIED, and
it certainly doesn't make sense as LOGON_FAILURE.

Andrew Bartlett
(This used to be commit 4bec3d3f378ed8b988e00441c9bb5718b8548ba6)
2007-10-10 13:16:22 -05:00
Jelmer Vernooij
e90c93402b r5362: Add pointer_default() support to pidl. pointer_default()
is assumed to be "ptr" if not specified (just like midl).

The validator will warn when "ptr" is used at the moment, because
pidl only supports unique, ref and relative at the moment.
(This used to be commit 31bed62a9a6f7830f523d509b67970648d40aaef)
2007-10-10 13:09:46 -05:00
Stefan Metzmacher
c108689bf6 r4962: add infrastructure to use raw krb5 auth in dcerpc client code
Note this doesn't work currently because the gensec_modules are not ready for that yet

metze
(This used to be commit 7b09a3f725baca5d4483b7ec24a9cb6151557bb5)
2007-10-10 13:09:10 -05:00
Andrew Tridgell
e74b3ed6f1 r4618: - tidied up the alter_context client code a bit
- there is no alter_nak or alter_ack packet, its all done in an
  alter_response

- auto-allocated the contex_ids

- tried to fix up the dcom code to work again with
  alter_context. Jelmer, please take a look :)
(This used to be commit dd1c54add8884376601f2f8a56c01bfb8add030c)
2007-10-10 13:08:34 -05:00
Andrew Tridgell
ab9ca55926 r4617: basic alter_context requests now work in our client library. The test
just does a simple LSA/DSSETUP combo, which is what w2k does in the
ACL editor rpc calls that triggered this work
(This used to be commit 0129ec947aa1fa5a7104dc3a666af3cb9bd104f1)
2007-10-10 13:08:34 -05:00
Stefan Metzmacher
37e2570632 r4081: use clearer names
metze
(This used to be commit 5d7d6f02cf1aa731d371c97054480d83d85102cb)
2007-10-10 13:06:24 -05:00
Jelmer Vernooij
8c2e179d47 r3611: DCOM client support works!!
The torture test DCOM-SIMPLE now successfully does an
IStream_Read and a IStream_Write call.

This test can now be run successfully against the "Simple DCOM" Visual
Studio example.

(You have to quote out line 337 in pidl. pidl complains if the variable
 that contains the array size follows the array. I still need to fix this
 properly)

Next goals:
 - Clean up code
 - Server side support
 - Support custom marshalling
 - Support DCOM interfaces in files other then dcom.idl
(This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
2007-10-10 13:05:39 -05:00
Jelmer Vernooij
96ffc6d945 r3536: Some minor IDL updates/fixes/additions
(This used to be commit 6fab01df000a126d2d01c41ead952d027f755309)
2007-10-10 13:05:29 -05:00
Jelmer Vernooij
6d3c74a67b r3513: Add (the infrastructure for) DCOM support. Contents:
- Support for sending over the object UUID in DCERPC calls
 - Simple torture test for the DCOM "Simple" object
 - Generate extra argument for "object" interfaces in pidl
 - Some stubs for common DCOM functions
(This used to be commit c052f2e1edd816206d8974af3140cec7ef97a70c)
2007-10-10 13:05:23 -05:00
Andrew Tridgell
08edfb3283 r2925: added the definition for a new rpc fault code I am seeing on epmapper from lhorn
(This used to be commit 9ef399a769805ecfc78fc32e066b20e8efe34290)
2007-10-10 12:59:48 -05:00
Jelmer Vernooij
e2d27b9d23 r2921: Add a few more protocols and fix the numbers associated with some of
the current ones. It took me three hours to realise that the DCOM standard
contains false protocol numbers (apparently someone converted the protocol
numbers to hex twice, i.e. 13 -> 0c and 14 to 0d). There are no longer
duplicates in the list with protocol numbers now.
(This used to be commit f355cd426462a72575ef3c3b769f676334976986)
2007-10-10 12:59:48 -05:00
Jelmer Vernooij
f64b8cf9cd r2687: Add ORPC flag (used by DCOM)
(This used to be commit b7ac0cb692ea373f754d7a40b44a7b0756459287)
2007-10-10 12:59:22 -05:00
Stefan Metzmacher
c7088e5e3c r1842: add fault code that happens with wrong password
or when signing or sealing fails

DCERPC_FAULT_LOGON_FAILURE      = 0x00000005;

metze
(This used to be commit 6ed2ce4edca9dbdb30e52e83d62227656d671a29)
2007-10-10 12:58:00 -05:00
Jelmer Vernooij
1d3b81e6c0 r1736: - Pidl updates:
- Support for "object oriented" interfaces in pidl
 - Support for inherited interfaces in pidl
 - Simplification of the support for properties on an interface
- Start on dcom rpc torture tests
(This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
2007-10-10 12:57:51 -05:00
Stefan Metzmacher
6b9d521cf0 r1482: today I saw DCERPC_AUTH_TYPE 16(0x10)
and it seems to be raw krb5, but I need to do some tests

metze
(This used to be commit 01612927902ed5e4d0109fec453307cdcb95336f)
2007-10-10 12:57:34 -05:00
Andrew Tridgell
42eadaf3d9 r1048: - moved the schannel definitions into a separate schannel.idl
- added server side support for schannel type 23. This allows WinXP to establish a schannel connection
  to Samba4 as an ADS DC

- added client side support for schannel type 23, but disabled it as currently the client
  code has now way of getting the fully qualified domain name (which is needed)

- report dcerpc faults in the server code in the log
(This used to be commit 55e0b014fe14ca8811b55887208a1c3147ddb0d2)
2007-10-10 12:56:34 -05:00
Andrew Tridgell
5341ad20e1 r1030: added server side schannel support
(This used to be commit 2ac79dfba0e64056a680f21d7dd0c007f79d4a70)
2007-10-10 12:56:30 -05:00
Stefan Metzmacher
b5edc0fc05 r649: return unknown interface when the client not yet
binds succesful to an interface

metze
(This used to be commit c39e450702cfa2b577c64e14ba1428fd95db7ade)
2007-10-10 12:51:56 -05:00
Stefan Metzmacher
968bf581f6 r644: add SPNEGO auth type
metze
(This used to be commit 75bca5dcfa68de0d18a144a221260d2f728e0bfc)
2007-10-10 12:51:56 -05:00
Andrew Tridgell
55a19a7fc0 r306: added another define for a DCERPC fault code
(This used to be commit 3c8d580d2c2ae528c5725145d81761296b8be04d)
2007-10-10 12:51:19 -05:00
Andrew Tridgell
078cced5ec - modified the dcerpc client security code to be generic, so ntlmssp
and schannel are both instances of possible security modules

- added schannel sign and sign/seal support to the dcerpc client
  code. You select it with binding options of "schannel,sign" or
  "schannel,seal".
(This used to be commit 05db0b9d942cad8f1dd574dc35b759e5e79d4195)
2004-02-10 10:22:12 +00:00
Andrew Tridgell
b3b10bce33 added a define for the DCERPC little-endian data representation flag
(This used to be commit 691f9c1c4448fb54846fcfffeca43601bcd44138)
2003-12-16 11:24:28 +00:00
Andrew Tridgell
24c22aef90 a fairly large commit!
This adds support for bigendian rpc in the client. I have installed
SUN pcnetlink locally and am using it to test the samba4 rpc
code. This allows us to easily find places where we have stuffed up
the types (such as 2 uint16 versus a uint32), as testing both
big-endian and little-endian easily shows which is correct. I have now
used this to fix several bugs like that in the samba4 IDL.

In order to make this work I also had to redefine a GUID as a true
structure, not a blob. From the pcnetlink wire it is clear that it is
indeed defined as a structure (the byte order changes). This required
changing lots of Samba code to use a GUID as a structure.

I also had to fix the if_version code in dcerpc syntax IDs, as it
turns out they are a single uint32 not two uint16s.

The big-endian support is a bit ugly at the moment, and breaks the
layering in some places. More work is needed, especially on the server
side.
(This used to be commit bb1af644a5a7b188290ce36232f255da0e5d66d2)
2003-12-16 09:02:58 +00:00
Andrew Tridgell
a05882b34b fixed fragmented signed connections to our rpc server over SMB
(This used to be commit f5df126c254bcb96dfb42096d7247215c7e7a89a)
2003-12-14 12:21:21 +00:00
Andrew Tridgell
340d9b71f9 added a basic dcerpc endpoint mapper to Samba4. Currently only
implements the epm_Lookup() call, I'll add the other important calls
soon. I was rather pleased to find that epm_Lookup() worked first
time, which is particularly surprising given its complexity.

This required quite a bit of new infrastructure:

  * a generic way of handling dcerpc policy handles in the rpc server

  * added type checked varients of talloc. These are much less error
    prone. I'd like to move to using these for nearly all uses of
    talloc.

  * added more dcerpc fault handling code, and translation from
    NTSTATUS to a dcerpc fault code

  * added data_blob_talloc_zero() for allocating an initially zero
    blob

  * added a endpoint enumeration hook in the dcerpc endpoint server
    operations
(This used to be commit 3f85f9b782dc17417baf1ca557fcae22f5b6a83a)
2003-12-13 02:20:40 +00:00
Andrew Tridgell
fece5b7aba added support for sending bind_nak replies in the rpc server
(This used to be commit 6e7c50bcd9929b6b1400b3155f55e6c9a4a730b3)
2003-12-12 06:12:41 +00:00
Andrew Tridgell
16309de71d * the RPC-ECHO pipe now works in smbd, as long as the data sizes
don't cause fragmented pdus (I'll add fragments shortly)

 * change data_blob_talloc() to not zero memory when the 2nd argument
   is NULL. The zeroing just masks bugs, and can't even allow a DOS
   attack

 * modified pidl to ensure that [ref] arguments to the out side of
   functions are allocated when parsing the in side. This allows rpc
   backends to assume that [ref] variables are all setup. Doesn't work
   correctly for [ref] arrays yet

 * changed DLIST_ADD_END() to take the type instead of a tmp
   variable. This means you don't need to declare a silly tmp variable in
   the caller
(This used to be commit 46e0a358198eeb9af1907ee2a29025d3ab23b6d1)
2003-12-12 03:59:09 +00:00
Andrew Tridgell
07fdc2c73e * support multiple interfaces in one IDL file in pidl
* make far more generated functions static

 * get rid of gen_rpc, and include the client calls in ndr_*.c

 * added placeholder IDL for a number of intefaces (dcom, wzcsvc, browser etc)
(This used to be commit a2bdf0be0119023df3c2b9ea515ed355020f2625)
2003-11-28 03:47:45 +00:00
Andrew Tridgell
ab3d728b7e added an rpc scanner. This prints messages like this:
uuid 82273fdc-e32a-18c3-3f78-827929dc23ea  version 0x0000:0x0000  'eventlog'
        24 calls available
        WARNING: local IDL defines 4 calls

when all the WARNINGs are gone then we know we have all the calls :)
(This used to be commit f5821b2468a0c46d0e5590de59562926d746c349)
2003-11-27 05:34:28 +00:00
Andrew Tridgell
2edb73fbe9 added a link to opengroup PDU definitions
(This used to be commit 939d832e5eb49abf392cfee39631a157fc2168a4)
2003-11-26 04:32:39 +00:00
Tim Potter
33844ade40 Add bind nak to dcerpc_payload.
(This used to be commit 0deb9179f07dead11e2fff247efe9e3d0879da58)
2003-11-26 04:23:24 +00:00
Andrew Tridgell
fffd741a7a added auto-determination of the DCERPC over TCP port number by asking
the servers endpoint mapper
(This used to be commit 4abf5376b00f580eb69196e55a792cc7eb4c9880)
2003-11-26 03:36:17 +00:00
Andrew Tridgell
e0ac659917 signed DCERPC over TCP now works !
* moved ntlmssp code into libcli/auth/, and updated to latest ntlmssp
   code from samba3 (thanks Andrew! the new interface is great)

 * added signing/ntlmssp support in the dcerpc code

 * added a dcerpc_auth.c module for the various dcerpc auth mechanisms
(This used to be commit c18c9b5585a3e5f7868562820c14f7cb529cdbcd)
2003-11-26 01:16:41 +00:00
Andrew Tridgell
c7fd83d0b2 added the dcerpc remote management interfaces as mgmt.idl, and wrote a
test suite. The test suite dumps all of the interfaces available on
all pipes. There sure are a lot more interfaces on w2k3 than w2k !
(This used to be commit f94bc079902d725b63155d8d2de5bf408c6e7335)
2003-11-24 01:24:29 +00:00
Andrew Tridgell
1b9452ffc5 fixed the handling of value() attributes on scalars in IDL that
reference other elements of the same structure
(This used to be commit d8d17be290730670bad0fea91188d394160cb879)
2003-11-23 07:14:17 +00:00