--- /dev/null
+#include "idl_types.h"
+/*
+ plug and play services
+*/
+
+import "misc.idl", "security.idl";
+[
+ uuid("3dde7c30-165d-11d1-ab8f-00805f14db40"),
+ version(1.0),
+ endpoint("ncacn_np:[\\pipe\\protected_storage]","ncacn_np:[\\pipe\\ntsvcs]" ,"ncacn_ip_tcp:"),
+ helpstring("Remote Backup Key Storage"),
+ helper("../librpc/ndr/ndr_backupkey.h"),
+ helper("../librpc/ndr/ndr_backupkey_print.h"),
+ pointer_default(unique)
+]
+interface backupkey
+{
+ const string BACKUPKEY_RESTORE_GUID = "47270C64-2FC7-499B-AC5B-0E37CDCE899A";
+ const string BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID = "018FF48A-EABA-40C6-8F6D-72370240E967";
+
+ const string BACKUPKEY_RESTORE_GUID_WIN2K = "7FE94D50-178E-11D1-AB8F-00805F14DB40";
+ const string BACKUPKEY_BACKUP_GUID = "7F752B10-178E-11D1-AB8F-00805F14DB40";
+
+ [public] typedef struct {
+ [value(0x00000002)] uint32 header1;
+ [value(0x00000494)] uint32 header2;
+ uint32 certificate_len;
+ [value(0x00000207)] uint32 magic1;
+ [value(0x0000A400)] uint32 magic2;
+ [value(0x32415352)] uint32 magic3;
+ [value(0x00000800)] uint32 magic4;
+ [subcontext(0),subcontext_size(4),flag(NDR_REMAINING)] DATA_BLOB public_exponent;
+
+ [subcontext(0),subcontext_size(256),flag(NDR_REMAINING)] DATA_BLOB modulus;
+ [subcontext(0),subcontext_size(128),flag(NDR_REMAINING)] DATA_BLOB prime1;
+ [subcontext(0),subcontext_size(128),flag(NDR_REMAINING)] DATA_BLOB prime2;
+ [subcontext(0),subcontext_size(128),flag(NDR_REMAINING)] DATA_BLOB exponent1;
+ [subcontext(0),subcontext_size(128),flag(NDR_REMAINING)] DATA_BLOB exponent2;
+ [subcontext(0),subcontext_size(128),flag(NDR_REMAINING)] DATA_BLOB coefficient;
+ [subcontext(0),subcontext_size(256),flag(NDR_REMAINING)] DATA_BLOB private_exponent;
+ [subcontext(0),subcontext_size(certificate_len),flag(NDR_REMAINING)] DATA_BLOB cert;
+ } bkrp_exported_RSA_key_pair;
+
+ [public,gensize] typedef struct {
+ uint32 version;
+ uint32 encrypted_secret_len;
+ uint32 access_check_len;
+ GUID guid;
+ uint8 encrypted_secret[encrypted_secret_len];
+ uint8 access_check[access_check_len];
+ } bkrp_client_side_wrapped;
+
+ [public] typedef struct {
+ [value(0x00000000)] uint32 magic;
+ [subcontext(0),flag(NDR_REMAINING)] DATA_BLOB secret;
+ } bkrp_client_side_unwrapped;
+
+ [public] typedef struct {
+ uint32 secret_len;
+ [value(0x00000020)] uint32 magic;
+ uint8 secret[secret_len];
+ uint8 payload_key[32];
+ } bkrp_encrypted_secret_v2;
+
+ [public] typedef struct {
+ uint32 secret_len;
+ [value(0x00000030)] uint32 magic1;
+ [value(0x00006610)] uint32 magic2;
+ [value(0x0000800e)] uint32 magic3;
+ uint8 secret[secret_len];
+ uint8 payload_key[48];
+ } bkrp_encrypted_secret_v3;
+
+ [public, nopush, nopull] typedef struct {
+ [value(0x00000001)] uint32 magic;
+ uint32 nonce_len;
+ uint8 nonce[nonce_len];
+ dom_sid sid;
+ //[flag(NDR_REMAINING)] DATA_BLOB remaining;
+ //DATA_BLOB pad;,
+ uint8 hash[20];
+ } bkrp_access_check_v2;
+
+ [public,nopush,nopull] typedef struct {
+ [value(0x00000001)] uint32 magic;
+ uint32 nonce_len;
+ uint8 nonce[nonce_len];
+ dom_sid sid;
+ //[flag(NDR_REMAINING)] DATA_BLOB remaining;
+ //DATA_BLOB pad;,
+ uint8 hash[64];
+ } bkrp_access_check_v3;
+
+
+ /******************/
+ /* Function: 0x00
+ PI_STATUS BackuprKey(
+ [in] handle_t h,
+ [in] GUID* pguidActionAgent,
+ [in, size_is(cbDataIn)] byte* pDataIn,
+ [in] DWORD cbDataIn,
+ [out, size_is(,*pcbDataOut)] byte** ppDataOut,
+ [out] DWORD* pcbDataOut,
+ [in] DWORD dwParam
+ );
+ */
+typedef enum {
+ BACKUPKEY_RESTORE_GUID_INTEGER = 0x0000,
+ BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER = 0x0001
+ } bkrp_guid_to_integer;
+
+typedef [nodiscriminant] union {
+ [case(BACKUPKEY_RESTORE_GUID_INTEGER)] bkrp_client_side_wrapped cert_req;
+ [case(BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER)] bkrp_client_side_wrapped sec_req;
+ } bkrp_data_in_blob;
+
+ [public] WERROR bkrp_BackupKey (
+ [in,ref] GUID *guidActionAgent,
+ [in,ref] [size_is(data_in_len)] uint8 *data_in,
+ [in] uint32 data_in_len,
+ [out,ref] [size_is(,*data_out_len)] uint8 **data_out,
+ [out,ref] uint32 *data_out_len,
+ [in] uint32 param
+ );
+
+ [public,noprint,nopush,nopull] WERROR bkrp_BackupKey_debug (
+ [in,ref] GUID *guidActionAgent,
+ [in,ref] [size_is(data_in_len)] uint8 *data_in,
+ [in] uint32 data_in_len,
+ [in] uint32 param,
+ [out,unique] [size_is(data_out_len)] uint8 *data_out,
+ [out] uint32 data_out_len
+ );
+}
+++ /dev/null
-/*
- protected_storage interface definitions
- Also seen with UUID:
-*/
-
-[ uuid("c9378ff1-16f7-11d0-a0b2-00aa0061426a"),
- version(1.0),
- pointer_default(unique)
-] interface protected_storage
-{
- /*****************************/
- /* Function 0x00 */
- WERROR ps_XXX ();
-}
bld.SAMBA_PIDL_LIST('PIDL',
'''atsvc.idl drsuapi.idl epmapper.idl initshutdown.idl
- misc.idl ntlmssp.idl protected_storage.idl schannel.idl trkwks.idl
+ misc.idl ntlmssp.idl schannel.idl trkwks.idl
audiosrv.idl dfsblobs.idl dsbackup.idl eventlog.idl keysvc.idl
msgsvc.idl ntsvcs.idl remact.idl security.idl unixinfo.idl wzcsvc.idl
browser.idl dfs.idl dssetup.idl frsapi.idl krb5pac.idl
dbgidl.idl dnsserver.idl echo.idl frsrpc.idl lsa.idl nbt.idl
oxidresolver.idl samr.idl srvsvc.idl winreg.idl dcerpc.idl
drsblobs.idl efs.idl frstrans.idl mgmt.idl netlogon.idl
- policyagent.idl scerpc.idl svcctl.idl wkssvc.idl eventlog6.idl''',
+ policyagent.idl scerpc.idl svcctl.idl wkssvc.idl eventlog6.idl backupkey.idl''',
options='--header --ndr-parser --samba3-ndr-server --samba3-ndr-client --server --client --python',
output_dir='../gen_ndr')
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+
+ routines for top backup key protocol marshalling/unmarshalling
+
+ Copyright (C) Matthieu Patou 2010
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_misc.h"
+#include "librpc/gen_ndr/ndr_backupkey.h"
+#include "librpc/gen_ndr/backupkey.h"
+#include "librpc/gen_ndr/ndr_security.h"
+#if (_SAMBA_BUILD_ >= 4)
+#include "param/param.h"
+#endif
+
+_PUBLIC_ enum ndr_err_code ndr_push_bkrp_access_check_v2(struct ndr_push *ndr, int ndr_flags, const struct bkrp_access_check_v2 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ size_t ofs;
+ size_t pad;
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonce_len));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nonce, r->nonce_len));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
+ ofs = ndr->offset + 20;
+ pad = ndr_align_size(ofs, 8);
+ NDR_CHECK(ndr_push_zero(ndr, pad));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 20));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 4));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_bkrp_access_check_v2(struct ndr_pull *ndr, int ndr_flags, struct bkrp_access_check_v2 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ size_t ofs;
+ size_t pad;
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->magic));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonce_len));
+ NDR_PULL_ALLOC_N(ndr, r->nonce, r->nonce_len);
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nonce, r->nonce_len));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
+ ofs = ndr->offset + 20;
+ pad = ndr_align_size(ofs, 8);
+ NDR_CHECK(ndr_pull_advance(ndr, pad));
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, 20));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+_PUBLIC_ enum ndr_err_code ndr_push_bkrp_access_check_v3(struct ndr_push *ndr, int ndr_flags, const struct bkrp_access_check_v3 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ size_t ofs;
+ size_t pad;
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonce_len));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nonce, r->nonce_len));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
+ ofs = ndr->offset + 64;
+ pad = ndr_align_size(ofs, 16);
+ NDR_CHECK(ndr_push_zero(ndr, pad));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 64));
+ NDR_CHECK(ndr_push_trailer_align(ndr, 4));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_bkrp_access_check_v3(struct ndr_pull *ndr, int ndr_flags, struct bkrp_access_check_v3 *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ size_t ofs;
+ size_t pad;
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->magic));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonce_len));
+ NDR_PULL_ALLOC_N(ndr, r->nonce, r->nonce_len);
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nonce, r->nonce_len));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
+ ofs = ndr->offset + 64;
+ pad = ndr_align_size(ofs, 16);
+ NDR_CHECK(ndr_pull_advance(ndr, pad));
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, 64));
+ NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
--- /dev/null
+_PUBLIC_ enum ndr_err_code ndr_push_bkrp_access_check_v2(struct ndr_push *ndr, int ndr_flags, const struct bkrp_access_check_v2 *r);
+_PUBLIC_ enum ndr_err_code ndr_pull_bkrp_access_check_v2(struct ndr_pull *ndr, int ndr_flags, struct bkrp_access_check_v2 *r);
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+
+ routines for top backup key protocol marshalling/unmarshalling
+
+ Copyright (C) Matthieu Patou 2010
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_misc.h"
+#include "librpc/gen_ndr/ndr_backupkey.h"
+#include "librpc/gen_ndr/backupkey.h"
+#include "librpc/gen_ndr/ndr_security.h"
+#if (_SAMBA_BUILD_ >= 4)
+#include "param/param.h"
+#endif
+
+_PUBLIC_ void ndr_print_bkrp_BackupKey_debug(struct ndr_print *ndr, const char *name, int flags, const struct bkrp_BackupKey_debug *r)
+{
+ ndr_print_struct(ndr, name, "bkrp_BackupKey");
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "bkrp_BackupKey");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "guidActionAgent", r->in.guidActionAgent);
+ ndr->depth++;
+ ndr_print_GUID(ndr, "guidActionAgent", r->in.guidActionAgent);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "data_in", r->in.data_in);
+ ndr->depth++;
+ if((strncasecmp(GUID_string(ndr, r->in.guidActionAgent),
+ BACKUPKEY_RESTORE_GUID, strlen(BACKUPKEY_RESTORE_GUID)) == 0) ||
+ (strncasecmp(GUID_string(ndr, r->in.guidActionAgent),
+ BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID, strlen(BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID)) == 0)) {
+
+ if (r->in.data_in)
+ ndr_print_bkrp_client_side_wrapped(ndr, "data_in", (const struct bkrp_client_side_wrapped *) r->in.data_in);
+ }
+ ndr->depth--;
+ ndr_print_uint32(ndr, "data_in_len", r->in.data_in_len);
+ ndr_print_uint32(ndr, "param", r->in.param);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "bkrp_BackupKey");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "data_out", r->out.data_out);
+ ndr->depth++;
+ if (r->out.data_out) {
+ ndr_print_array_uint8(ndr, "data_out", r->out.data_out, r->out.data_out_len);
+ }
+ ndr->depth--;
+ ndr_print_uint32(ndr, "data_out_len", r->out.data_out_len);
+ ndr_print_WERROR(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_bkrp_BackupKey_debug(struct ndr_push *ndr, int flags, const struct bkrp_BackupKey_debug *r)
+{
+ if (flags & NDR_IN) {
+ if (r->in.guidActionAgent == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.guidActionAgent));
+ if (r->in.data_in == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_in_len));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data_in, r->in.data_in_len));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_in_len));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.param));
+ }
+ if (flags & NDR_OUT) {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.data_out));
+ if (r->out.data_out) {
+ NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->out.data_out_len));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data_out, r->out.data_out_len));
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.data_out_len));
+ NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_bkrp_BackupKey_debug(struct ndr_pull *ndr, int flags, struct bkrp_BackupKey_debug *r)
+{
+ uint32_t _ptr_data_out;
+ TALLOC_CTX *_mem_save_guidActionAgent_0;
+ TALLOC_CTX *_mem_save_data_out_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.guidActionAgent);
+ }
+ _mem_save_guidActionAgent_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.guidActionAgent, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.guidActionAgent));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guidActionAgent_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_in));
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC_N(ndr, r->in.data_in, ndr_get_array_size(ndr, &r->in.data_in));
+ }
+ if((strncasecmp(GUID_string(ndr, r->in.guidActionAgent),
+ BACKUPKEY_RESTORE_GUID, strlen(BACKUPKEY_RESTORE_GUID)) == 0) ||
+ (strncasecmp(GUID_string(ndr, r->in.guidActionAgent),
+ BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID, strlen(BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID)) == 0)) {
+
+ /*
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data_in, ndr_get_array_size(ndr, &r->in.data_in)));
+ */
+ if (ndr_get_array_size(ndr, &r->in.data_in))
+ ndr_pull_bkrp_client_side_wrapped(ndr, NDR_SCALARS, (const struct bkrp_client_side_wrapped *) r->in.data_in);
+ else
+ r->in.data_in = NULL;
+ }
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_in_len));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.param));
+ if (r->in.data_in) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data_in, r->in.data_in_len));
+ }
+ }
+ if (flags & NDR_OUT) {
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_out));
+ if (_ptr_data_out) {
+ NDR_PULL_ALLOC(ndr, r->out.data_out);
+ } else {
+ r->out.data_out = NULL;
+ }
+ if (r->out.data_out) {
+ _mem_save_data_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.data_out, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data_out));
+ NDR_PULL_ALLOC_N(ndr, r->out.data_out, ndr_get_array_size(ndr, &r->out.data_out));
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data_out, ndr_get_array_size(ndr, &r->out.data_out)));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_out_0, 0);
+ }
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.data_out_len));
+ NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+ if (r->out.data_out) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data_out, r->out.data_out_len));
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
--- /dev/null
+#ifndef _PROTO_H_NDR_BACKUPKEY_PRINT_H
+#define _PROTO_H_NDR_BACKUPKEY_PRINT_H
+
+#undef _PRINTF_ATTRIBUTE
+#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
+/* This file was automatically generated by mkproto.pl. DO NOT EDIT */
+
+#ifndef _PUBLIC_
+#define _PUBLIC_
+#endif
+
+
+/* The following definitions come from ../librpc/ndr/ndr_backupkey_print.c */
+
+//_PUBLIC_ void _ndr_print_bkrp_BackupKey(struct ndr_print *ndr, const char *name, int flags, const struct bkrp_BackupKey *r);
+_PUBLIC_ enum ndr_err_code ndr_push_bkrp_BackupKey_debug(struct ndr_push *ndr, int flags, const struct bkrp_BackupKey_debug *r);
+_PUBLIC_ enum ndr_err_code ndr_pull_bkrp_BackupKey_debug(struct ndr_pull *ndr, int flags, struct bkrp_BackupKey_debug *r);
+_PUBLIC_ void ndr_print_bkrp_BackupKey_debug(struct ndr_print *ndr, const char *name, int flags, const struct bkrp_BackupKey_debug *r);
+
+#undef _PRINTF_ATTRIBUTE
+#define _PRINTF_ATTRIBUTE(a1, a2)
+
+#endif /* _PROTO_H_ */
public_deps='LIBNDR'
)
-bld.SAMBA_SUBSYSTEM('NDR_PROTECTED_STORAGE',
- source='../librpc/gen_ndr/ndr_protected_storage.c',
- public_deps='LIBNDR'
- )
-
bld.SAMBA_SUBSYSTEM('NDR_ORPC',
source='../librpc/ndr/ndr_orpc.c ../librpc/gen_ndr/ndr_orpc.c',
public_deps='LIBNDR'
deps='tevent NDR_MGMT'
)
-bld.SAMBA_SUBSYSTEM('RPC_NDR_PROTECTED_STORAGE',
- source='../librpc/gen_ndr/ndr_protected_storage_c.c',
- public_deps='dcerpc NDR_PROTECTED_STORAGE'
- )
-
bld.SAMBA_SUBSYSTEM('RPC_NDR_OXIDRESOLVER',
source='../librpc/gen_ndr/ndr_oxidresolver_c.c',
public_deps='dcerpc NDR_OXIDRESOLVER'
bld.SAMBA_SUBSYSTEM('NDR_TABLE',
source='../../librpc/ndr/ndr_table.c gen_ndr/tables.c',
- public_deps='NDR_STANDARD NDR_AUDIOSRV NDR_DSBACKUP NDR_EFS NDR_DRSUAPI NDR_POLICYAGENT NDR_UNIXINFO NDR_SPOOLSS NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINSIF NDR_MGMT NDR_PROTECTED_STORAGE NDR_OXIDRESOLVER NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL NDR_ROT NDR_DRSBLOBS NDR_NBT NDR_WINSREPL NDR_SECURITY NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_OPENDB NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_FRSTRANS NDR_NFS4ACL NDR_NTP_SIGND NDR_DCOM NDR_WMI NDR_NAMED_PIPE_AUTH NDR_NTLMSSP NDR_DFSBLOBS NDR_DNSP NDR_NTPRINTING',
+ public_deps='NDR_STANDARD NDR_AUDIOSRV NDR_DSBACKUP NDR_EFS NDR_DRSUAPI NDR_POLICYAGENT NDR_UNIXINFO NDR_SPOOLSS NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINSIF NDR_MGMT NDR_OXIDRESOLVER NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL NDR_ROT NDR_DRSBLOBS NDR_NBT NDR_WINSREPL NDR_SECURITY NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_OPENDB NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_FRSTRANS NDR_NFS4ACL NDR_NTP_SIGND NDR_DCOM NDR_WMI NDR_NAMED_PIPE_AUTH NDR_NTLMSSP NDR_DFSBLOBS NDR_DNSP NDR_NTPRINTING NDR_BACKUPKEY',
depends_on='GEN_NDR_TABLES'
)
header_path= [ ('*gen_ndr*', 'gen_ndr') ],
)
+bld.SAMBA_SUBSYSTEM('NDR_BACKUPKEY',
+ source='../../librpc/ndr/ndr_backupkey.c ../../librpc/gen_ndr/ndr_backupkey.c',
+ public_deps='LIBNDR NDR_BACKUPKEY_PRINT'
+ )
+
+bld.SAMBA_SUBSYSTEM('NDR_BACKUPKEY_PRINT',
+ source='../../librpc/ndr/ndr_backupkey_print.c',
+ deps='talloc'
+ )
+
+
+bld.SAMBA_SUBSYSTEM('RPC_NDR_BACKUPKEY',
+ source='../../librpc/gen_ndr/ndr_backupkey_c.c',
+ public_deps='dcerpc NDR_BACKUPKEY'
+ )
+
+
+
bld.SAMBA_LIBRARY('dcerpc',
source='''rpc/dcerpc.c rpc/dcerpc_auth.c rpc/dcerpc_schannel.c
rpc/dcerpc_util.c rpc/dcerpc_smb.c rpc/dcerpc_smb2.c rpc/dcerpc_sock.c