diff options
author | Arvid Requate <requate@univention.de> | 2014-07-07 18:48:41 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2015-02-25 01:08:11 +0100 |
commit | 879b65710b266fecaca01b9dd40474b2cc35d417 (patch) | |
tree | f4566b75cf4b10a074a6139da440bad52170598b /librpc | |
parent | 3bc3bec6d702ef62bf026ff64855edc8fb900088 (diff) | |
download | samba-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.idl | 26 |
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; /******************/ |