summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
authorArvid Requate <requate@univention.de>2014-07-07 18:48:41 +0200
committerAndrew Bartlett <abartlet@samba.org>2015-02-25 01:08:11 +0100
commit879b65710b266fecaca01b9dd40474b2cc35d417 (patch)
treef4566b75cf4b10a074a6139da440bad52170598b /librpc
parent3bc3bec6d702ef62bf026ff64855edc8fb900088 (diff)
downloadsamba-879b65710b266fecaca01b9dd40474b2cc35d417.tar.gz
s4-backupkey: IDL for ServerWrap subprotocol
This adds some IDL structs for the ServerWrap subprotocol, allowing parsing of the incoming RPC calls and returning WERR_NOT_SUPPORTED instead of WERR_INVALID_PARAM. Signed-off-by: Arvid Requate <requate@univention.de> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/backupkey.idl26
1 files changed, 25 insertions, 1 deletions
diff --git a/librpc/idl/backupkey.idl b/librpc/idl/backupkey.idl
index b504ca578e9..18098cd0a6a 100644
--- a/librpc/idl/backupkey.idl
+++ b/librpc/idl/backupkey.idl
@@ -98,15 +98,39 @@ interface backupkey
uint8 hash[64];
} bkrp_access_check_v3;
+ [public] typedef struct {
+ [subcontext(0),subcontext_size(32),flag(NDR_REMAINING)] DATA_BLOB r3;
+ [subcontext(0),subcontext_size(20),flag(NDR_REMAINING)] DATA_BLOB mac;
+ dom_sid sid;
+ [subcontext(0),flag(NDR_REMAINING)] DATA_BLOB secret;
+ } bkrp_rc4encryptedpayload;
+
+ [public] typedef struct {
+ [value(0x00000001)] uint32 magic;
+ uint32 payload_length;
+ uint32 cyphertext_length;
+ [subcontext(0),subcontext_size(16),flag(NDR_REMAINING)] DATA_BLOB guid_of_wrapping_key;
+ [subcontext(0),subcontext_size(68),flag(NDR_REMAINING)] DATA_BLOB r2;
+ [subcontext(0),flag(NDR_REMAINING)] DATA_BLOB rc4encryptedpayload;
+ } bkrp_server_side_wrapped;
+
+ [public] typedef struct {
+ [flag(NDR_REMAINING)] DATA_BLOB opaque;
+ } bkrp_opaque_blob;
+
typedef enum {
BACKUPKEY_INVALID_GUID_INTEGER = 0xFFFF,
BACKUPKEY_RESTORE_GUID_INTEGER = 0x0000,
- BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER = 0x0001
+ BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER = 0x0001,
+ BACKUPKEY_RESTORE_GUID_WIN2K_INTEGER = 0x0002,
+ BACKUPKEY_BACKUP_GUID_INTEGER = 0x0003
} bkrp_guid_to_integer;
[public] typedef [nodiscriminant] union {
[case(BACKUPKEY_RESTORE_GUID_INTEGER)] bkrp_client_side_wrapped restore_req;
[case(BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER)] bkrp_empty empty;
+ [case(BACKUPKEY_RESTORE_GUID_WIN2K_INTEGER)] bkrp_server_side_wrapped unsign_req;
+ [case(BACKUPKEY_BACKUP_GUID_INTEGER)] bkrp_opaque_blob sign_req;
} bkrp_data_in_blob;
/******************/