]> 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)
committerDouglas Bagnall <dbagnall@samba.org>
Wed, 30 Oct 2024 23:08:36 +0000 (23:08 +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>
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 06ea1c0b756cedb6ac53e8703763755cf62e0b6a..f473af2dce143fb4bf4c6965ad2f94982f939a6c 100644 (file)
@@ -2916,6 +2916,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 61c214af7e264ebf9a2c52d671e91031351fd624..2223bb7cace74bcc011c37681d55fe2f06a845d3 100644 (file)
@@ -4806,6 +4806,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"