linux_dsm_epyc7002/drivers/s390/crypto
Harald Freudenberger 7c4e91c095 s390/zcrypt: new sysfs attributes serialnr and mkvps
This patch extends the sysfs interface with two new attributes for the
CEX4, CEX5 and CEX6 crypto cards/queues in coprocessor ('CCA') mode:
  /sys/devices/ap/cardxx/serialnr
  /sys/devices/ap/cardxx/xx.yyyy/mkvps

The serialnr attribute is card based and shows the 8 character ASCII
serial number string which should unique identify the card.

The mkvps is queue based and displays 3 lines of information about the
new, current and old master key register:
  AES NEW: <new_aes_mk_state> <new_aes_mk_mkvp>
  AES CUR: <cur_aes_mk_state> <cur_aes_mk_mkvp>
  AES OLD: <old_aes_mk_state> <old_aes_mk_mkvp>
with
  <new_aes_mk_state>: 'empty' or 'partial' or 'full'
  <cur_aes_mk_state>: 'valid' or 'invalid'
  <old_aes_mk_state>: 'valid' or 'invalid'
  <new_aes_mk_mkvp>, <cur_aes_mk_mkvp>, <old_aes_mk_mkvp>
    8 byte hex string with leading 0x
MKVP means Master Key Verification Pattern and is a folded hash over
the key value. Only the states 'full' and 'valid' result in displaying
a useful mkvp, otherwise a mkvp of all bytes zero is shown. If for any
reason the FQ fails and the (cached) information is not available, the
state '-' will be shown with the mkvp value also '-'. The values shown
here are the very same as the cca panel tools displays. As of now only
the AES master keys states and verification patterns are shown. A CCA
APQN also has similar master key registers for DES, RSA and ECC. So
the content of this attribute may get extended.

Reading the sysfs attribute automatically triggers an FQ CPRB to be
sent to the queue as long as the queue is (soft-) online. For the
serialnr attribute the queue with the default domain id is addressed
(if available and valid). This is reasonable as it is assumed that
this sysfs interface is not performance critical and on the other side
a master key change should be visiable as soon as possible. When a
queue is (soft-) offline however, the cached values are displayed. If
no cached values are available, the serial number string will be empty
and the mkvp lines will show state '-' and mkvp value '-'.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2019-07-29 18:14:17 +02:00
..
ap_bus.c s390 updates for the 5.3 merge window #2 2019-07-12 15:39:22 -07:00
ap_bus.h s390/zcrypt: Fix wrong dispatching for control domain CPRBs 2019-05-28 14:49:38 +02:00
ap_card.c s390/zcrypt: code beautify 2018-08-20 16:02:11 +02:00
ap_debug.h s390/zcrypt: Make ap init functions static. 2018-04-10 07:39:01 +02:00
ap_queue.c s390/zcrypt: fix possible deadlock situation on ap queue remove 2019-04-10 17:46:24 +02:00
Makefile s390/zcrypt: move cca misc functions to new code file 2019-07-29 18:14:17 +02:00
pkey_api.c s390/zcrypt: move cca misc functions to new code file 2019-07-29 18:14:17 +02:00
vfio_ap_drv.c s390: ap: implement PAPQ AQIC interception in kernel 2019-07-02 16:00:28 +02:00
vfio_ap_ops.c s390 updates for the 5.3 merge window #2 2019-07-12 15:39:22 -07:00
vfio_ap_private.h s390: ap: implement PAPQ AQIC interception in kernel 2019-07-02 16:00:28 +02:00
zcrypt_api.c s390/zcrypt: move cca misc functions to new code file 2019-07-29 18:14:17 +02:00
zcrypt_api.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_card.c s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_cca_key.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_ccamisc.c s390/zcrypt: new sysfs attributes serialnr and mkvps 2019-07-29 18:14:17 +02:00
zcrypt_ccamisc.h s390/zcrypt: new sysfs attributes serialnr and mkvps 2019-07-29 18:14:17 +02:00
zcrypt_cex2a.c s390/zcrypt: reinit ap queue state machine during device probe 2018-11-27 10:43:35 +01:00
zcrypt_cex2a.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_cex2c.c s390/zcrypt: reinit ap queue state machine during device probe 2018-11-27 10:43:35 +01:00
zcrypt_cex2c.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_cex4.c s390/zcrypt: new sysfs attributes serialnr and mkvps 2019-07-29 18:14:17 +02:00
zcrypt_cex4.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zcrypt_debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zcrypt_error.h s390/zcrypt: improve special ap message cmd handling 2018-11-30 07:22:05 +01:00
zcrypt_msgtype6.c s390/zcrypt: support special flagged EP11 cprbs 2019-06-07 10:09:55 +02:00
zcrypt_msgtype6.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_msgtype50.c s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_msgtype50.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_queue.c s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00