Commit 6acb086d authored by Harald Freudenberger's avatar Harald Freudenberger Committed by Heiko Carstens

s390/zcrypt: cleanup CPRB struct definitions

This patch does a little cleanup on the CPRBX struct
in zcrypt.h and the redundant CPRB struct definition in
zcrypt_msgtype6.c. Especially some of the misleading
fields from the CPRBX struct have been removed.

There is no semantic change coming with this patch.
The field names changed in the XCRB struct are only related
to reserved fields which should never been used.
Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
Reviewed-by: default avatarJürgen Christ <jchrist@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent d9b38e9d
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* zcrypt 2.2.1 (user-visible header) * zcrypt 2.2.1 (user-visible header)
* *
* Copyright IBM Corp. 2001, 2019 * Copyright IBM Corp. 2001, 2022
* Author(s): Robert Burroughs * Author(s): Robert Burroughs
* Eric Rossman (edrossma@us.ibm.com) * Eric Rossman (edrossma@us.ibm.com)
* *
...@@ -85,7 +85,7 @@ struct ica_rsa_modexpo_crt { ...@@ -85,7 +85,7 @@ struct ica_rsa_modexpo_crt {
struct CPRBX { struct CPRBX {
__u16 cprb_len; /* CPRB length 220 */ __u16 cprb_len; /* CPRB length 220 */
__u8 cprb_ver_id; /* CPRB version id. 0x02 */ __u8 cprb_ver_id; /* CPRB version id. 0x02 */
__u8 pad_000[3]; /* Alignment pad bytes */ __u8 _pad_000[3]; /* Alignment pad bytes */
__u8 func_id[2]; /* function id 0x5432 */ __u8 func_id[2]; /* function id 0x5432 */
__u8 cprb_flags[4]; /* Flags */ __u8 cprb_flags[4]; /* Flags */
__u32 req_parml; /* request parameter buffer len */ __u32 req_parml; /* request parameter buffer len */
...@@ -95,19 +95,19 @@ struct CPRBX { ...@@ -95,19 +95,19 @@ struct CPRBX {
__u32 rpl_datal; /* reply data block len */ __u32 rpl_datal; /* reply data block len */
__u32 rpld_datal; /* replied data block len */ __u32 rpld_datal; /* replied data block len */
__u32 req_extbl; /* request extension block len */ __u32 req_extbl; /* request extension block len */
__u8 pad_001[4]; /* reserved */ __u8 _pad_001[4]; /* reserved */
__u32 rpld_extbl; /* replied extension block len */ __u32 rpld_extbl; /* replied extension block len */
__u8 padx000[16 - sizeof(__u8 *)]; __u8 _pad_002[16 - sizeof(__u8 *)];
__u8 __user *req_parmb; /* request parm block 'address' */ __u8 __user *req_parmb; /* request parm block 'address' */
__u8 padx001[16 - sizeof(__u8 *)]; __u8 _pad_003[16 - sizeof(__u8 *)];
__u8 __user *req_datab; /* request data block 'address' */ __u8 __user *req_datab; /* request data block 'address' */
__u8 padx002[16 - sizeof(__u8 *)]; __u8 _pad_004[16 - sizeof(__u8 *)];
__u8 __user *rpl_parmb; /* reply parm block 'address' */ __u8 __user *rpl_parmb; /* reply parm block 'address' */
__u8 padx003[16 - sizeof(__u8 *)]; __u8 _pad_005[16 - sizeof(__u8 *)];
__u8 __user *rpl_datab; /* reply data block 'address' */ __u8 __user *rpl_datab; /* reply data block 'address' */
__u8 padx004[16 - sizeof(__u8 *)]; __u8 _pad_006[16 - sizeof(__u8 *)];
__u8 __user *req_extb; /* request extension block 'addr'*/ __u8 __user *req_extb; /* request extension block 'addr'*/
__u8 padx005[16 - sizeof(__u8 *)]; __u8 _pad_007[16 - sizeof(__u8 *)];
__u8 __user *rpl_extb; /* reply extension block 'address'*/ __u8 __user *rpl_extb; /* reply extension block 'address'*/
__u16 ccp_rtcode; /* server return code */ __u16 ccp_rtcode; /* server return code */
__u16 ccp_rscode; /* server reason code */ __u16 ccp_rscode; /* server reason code */
...@@ -115,12 +115,10 @@ struct CPRBX { ...@@ -115,12 +115,10 @@ struct CPRBX {
__u8 logon_id[8]; /* Logon Identifier */ __u8 logon_id[8]; /* Logon Identifier */
__u8 mac_value[8]; /* Mac Value */ __u8 mac_value[8]; /* Mac Value */
__u8 mac_content_flgs; /* Mac content flag byte */ __u8 mac_content_flgs; /* Mac content flag byte */
__u8 pad_002; /* Alignment */ __u8 _pad_008; /* Alignment */
__u16 domain; /* Domain */ __u16 domain; /* Domain */
__u8 usage_domain[4]; /* Usage domain */ __u8 _pad_009[12]; /* reserved, checked for zeros */
__u8 cntrl_domain[4]; /* Control domain */ __u8 _pad_010[36]; /* reserved */
__u8 S390enf_mask[4]; /* S/390 enforcement mask */
__u8 pad_004[36]; /* reserved */
} __attribute__((packed)); } __attribute__((packed));
/** /**
......
// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: GPL-2.0+
/* /*
* Copyright IBM Corp. 2001, 2012 * Copyright IBM Corp. 2001, 2022
* Author(s): Robert Burroughs * Author(s): Robert Burroughs
* Eric Rossman (edrossma@us.ibm.com) * Eric Rossman (edrossma@us.ibm.com)
* *
...@@ -44,63 +44,6 @@ MODULE_DESCRIPTION("Cryptographic Coprocessor (message type 6), " \ ...@@ -44,63 +44,6 @@ MODULE_DESCRIPTION("Cryptographic Coprocessor (message type 6), " \
"Copyright IBM Corp. 2001, 2012"); "Copyright IBM Corp. 2001, 2012");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
/*
* CPRB
* Note that all shorts, ints and longs are little-endian.
* All pointer fields are 32-bits long, and mean nothing
*
* A request CPRB is followed by a request_parameter_block.
*
* The request (or reply) parameter block is organized thus:
* function code
* VUD block
* key block
*/
struct CPRB {
unsigned short cprb_len; /* CPRB length */
unsigned char cprb_ver_id; /* CPRB version id. */
unsigned char pad_000; /* Alignment pad byte. */
unsigned char srpi_rtcode[4]; /* SRPI return code LELONG */
unsigned char srpi_verb; /* SRPI verb type */
unsigned char flags; /* flags */
unsigned char func_id[2]; /* function id */
unsigned char checkpoint_flag; /* */
unsigned char resv2; /* reserved */
unsigned short req_parml; /* request parameter buffer */
/* length 16-bit little endian */
unsigned char req_parmp[4]; /* request parameter buffer *
* pointer (means nothing: the *
* parameter buffer follows *
* the CPRB). */
unsigned char req_datal[4]; /* request data buffer */
/* length ULELONG */
unsigned char req_datap[4]; /* request data buffer */
/* pointer */
unsigned short rpl_parml; /* reply parameter buffer */
/* length 16-bit little endian */
unsigned char pad_001[2]; /* Alignment pad bytes. ULESHORT */
unsigned char rpl_parmp[4]; /* reply parameter buffer *
* pointer (means nothing: the *
* parameter buffer follows *
* the CPRB). */
unsigned char rpl_datal[4]; /* reply data buffer len ULELONG */
unsigned char rpl_datap[4]; /* reply data buffer */
/* pointer */
unsigned short ccp_rscode; /* server reason code ULESHORT */
unsigned short ccp_rtcode; /* server return code ULESHORT */
unsigned char repd_parml[2]; /* replied parameter len ULESHORT*/
unsigned char mac_data_len[2]; /* Mac Data Length ULESHORT */
unsigned char repd_datal[4]; /* replied data length ULELONG */
unsigned char req_pc[2]; /* PC identifier */
unsigned char res_origin[8]; /* resource origin */
unsigned char mac_value[8]; /* Mac Value */
unsigned char logon_id[8]; /* Logon Identifier */
unsigned char usage_domain[2]; /* cdx */
unsigned char resv3[18]; /* reserved for requestor */
unsigned short svr_namel; /* server name length ULESHORT */
unsigned char svr_name[8]; /* server name */
} __packed;
struct function_and_rules_block { struct function_and_rules_block {
unsigned char function_code[2]; unsigned char function_code[2];
unsigned short ulen; unsigned short ulen;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment