]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
netlogon.idl: add netr_ServerAuthenticateKerberos() and related stuff
authorStefan Metzmacher <metze@samba.org>
Tue, 30 Apr 2024 13:14:47 +0000 (15:14 +0200)
committerJule Anger <janger@samba.org>
Wed, 13 Nov 2024 10:39:12 +0000 (10:39 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15425

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
(cherry picked from commit de8de55a5fee573d0718fa8dd13168a4f0a14614)

librpc/idl/netlogon.idl
source3/rpc_server/netlogon/srv_netlog_nt.c
source4/rpc_server/netlogon/dcerpc_netlogon.c

index ed75fe3797af38cae303f1d5ad3e0f3c58ec0670..f9672b1bf547650bdb02d6e2bbe362f17214f186 100644 (file)
@@ -1036,7 +1036,8 @@ interface netlogon
                NETLOGON_NEG_SUPPORTS_AES_SHA2          = 0x00400000,
                NETLOGON_NEG_SUPPORTS_AES               = 0x01000000,
                NETLOGON_NEG_AUTHENTICATED_RPC_LSASS    = 0x20000000,
-               NETLOGON_NEG_AUTHENTICATED_RPC          = 0x40000000
+               NETLOGON_NEG_AUTHENTICATED_RPC          = 0x40000000,
+               NETLOGON_NEG_SUPPORTS_KERBEROS_AUTH     = 0x80000000
        } netr_NegotiateFlags;
 
        const uint32 NETLOGON_NEG_128BIT = NETLOGON_NEG_STRONG_KEYS;
@@ -1885,4 +1886,32 @@ interface netlogon
                [in] uint32 dns_ttl,
                [in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
                );
+
+       [todo] void netr_Opnum49NotUsedOnWire(void);
+       [todo] void netr_Opnum50NotUsedOnWire(void);
+       [todo] void netr_Opnum51NotUsedOnWire(void);
+       [todo] void netr_Opnum52NotUsedOnWire(void);
+       [todo] void netr_Opnum53NotUsedOnWire(void);
+
+       /**********************/
+       /* Function 0x36 (54) */
+       /* from wireshark:    */
+       /* This is documented as 49 (0x31) but it's 54) */
+       [todo] NTSTATUS netr_ChainSetClientAttributes();
+
+       [todo] void netr_Opnum55NotUsedOnWire(void);
+       [todo] void netr_Opnum56NotUsedOnWire(void);
+       [todo] void netr_Opnum57NotUsedOnWire(void);
+       [todo] void netr_Opnum58NotUsedOnWire(void);
+
+       /*****************/
+       /* Function 0x3b (59) */
+       [public] NTSTATUS netr_ServerAuthenticateKerberos(
+               [in,unique]  [string,charset(UTF16)] uint16 *server_name,
+               [in]         [string,charset(UTF16)] uint16 *account_name,
+               [in]         netr_SchannelType account_type,
+               [in]         [string,charset(UTF16)] uint16 *computer_name,
+               [in,out,ref] netr_NegotiateFlags *negotiate_flags,
+               [out,ref]    uint32 *rid
+               );
 }
index fb5894ffefb240a0c373187dfe6398f9cdd98137..4900742c6bf7d363580b1745b40b875b2a2cd68c 100644 (file)
@@ -2906,6 +2906,31 @@ NTSTATUS _netr_DsrUpdateReadOnlyServerDnsRecords(struct pipes_struct *p,
        return NT_STATUS_NOT_IMPLEMENTED;
 }
 
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum49NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum50NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum51NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum52NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum53NotUsedOnWire)
+
+NTSTATUS _netr_ChainSetClientAttributes(struct pipes_struct *p,
+                                       struct netr_ChainSetClientAttributes *r)
+{
+       p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
+       return NT_STATUS_NOT_IMPLEMENTED;
+}
+
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum55NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum56NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum57NotUsedOnWire)
+DCESRV_COMPAT_NOT_USED_ON_WIRE(netr_Opnum58NotUsedOnWire)
+
+NTSTATUS _netr_ServerAuthenticateKerberos(struct pipes_struct *p,
+                                         struct netr_ServerAuthenticateKerberos *r)
+{
+       p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
+       return NT_STATUS_NOT_IMPLEMENTED;
+}
+
 /*
  * Define the bind function that will be used by ndr_netlogon_scompat.c,
  * included at the bottom of this file.
index a2c4dbd5292abe74616478fa5e00dd38bdb1340b..be7c56656557aabafd5444adc6eb7118bf024833 100644 (file)
@@ -4776,6 +4776,36 @@ static NTSTATUS dcesrv_netr_DsrUpdateReadOnlyServerDnsRecords(struct dcesrv_call
        return NT_STATUS_OK;
 }
 
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum49NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum50NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum51NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum52NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum53NotUsedOnWire)
+
+/*
+  netr_ChainSetClientAttributes
+ */
+static NTSTATUS dcesrv_netr_ChainSetClientAttributes(struct dcesrv_call_state *dce_call,
+                                                    TALLOC_CTX *mem_ctx,
+                                                    struct netr_ChainSetClientAttributes *r)
+{
+       DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum55NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum56NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum57NotUsedOnWire)
+DCESRV_NOT_USED_ON_WIRE(netr_Opnum58NotUsedOnWire)
+
+/*
+  netr_ServerAuthenticateKerberos
+ */
+static NTSTATUS dcesrv_netr_ServerAuthenticateKerberos(struct dcesrv_call_state *dce_call,
+                                                      TALLOC_CTX *mem_ctx,
+                                                      struct netr_ServerAuthenticateKerberos *r)
+{
+       DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+}
 
 /* include the generated boilerplate */
 #include "librpc/gen_ndr/ndr_netlogon_s.c"