mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zkey: Support validation of key of type PVSECRET-AES
Keys of type PVSECRET-AES can also be verified via the pkey IOCTL PKEY_VERIFYKEY2, but the card and domain fields must be zero, because such a key does not use a crypto card. Also XTS keys of type PVSRCRET-AES are not represented by 2 concatenated keys but by just one key of type PVSECRET-AES. Thus, special handling is required for XTS keys. Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Jorg Schmidbauer <jschmidb@de.ibm.com> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
This commit is contained in:
committed by
Steffen Eiden
parent
a8eb2bd4e7
commit
833a8e7309
@@ -3055,19 +3055,25 @@ static void _keystore_print_record(struct util_rec *rec,
|
||||
util_rec_set(rec, REC_XTS, is_xts ? "Yes" : "No");
|
||||
util_rec_set(rec, REC_KEY_TYPE, key_type);
|
||||
if (validation) {
|
||||
if (valid)
|
||||
util_rec_set(rec, REC_MASTERKEY,
|
||||
"%s master key (MKVP: %s)",
|
||||
is_old_mk ? "OLD" : "CURRENT",
|
||||
printable_mkvp(
|
||||
get_card_type_for_keytype(key_type),
|
||||
mkvp));
|
||||
else
|
||||
util_rec_set(rec, REC_MASTERKEY,
|
||||
"(unknown, MKVP: %s)",
|
||||
printable_mkvp(
|
||||
get_card_type_for_keytype(key_type),
|
||||
mkvp));
|
||||
if (mkvp != NULL) {
|
||||
if (valid)
|
||||
util_rec_set(rec, REC_MASTERKEY,
|
||||
"%s master key (MKVP: %s)",
|
||||
is_old_mk ? "OLD" : "CURRENT",
|
||||
printable_mkvp(
|
||||
get_card_type_for_keytype(
|
||||
key_type),
|
||||
mkvp));
|
||||
else
|
||||
util_rec_set(rec, REC_MASTERKEY,
|
||||
"(unknown, MKVP: %s)",
|
||||
printable_mkvp(
|
||||
get_card_type_for_keytype(
|
||||
key_type),
|
||||
mkvp));
|
||||
} else {
|
||||
util_rec_set(rec, REC_MASTERKEY, "(none)");
|
||||
}
|
||||
}
|
||||
if (volumes_argz != NULL)
|
||||
util_rec_set_argz(rec, REC_VOLUMES, volumes_argz,
|
||||
@@ -3294,17 +3300,22 @@ static int _keystore_process_validate(struct keystore *keystore,
|
||||
valid = 1;
|
||||
}
|
||||
|
||||
rc = get_master_key_verification_pattern(secure_key, secure_key_size,
|
||||
mkvp, keystore->verbose);
|
||||
if (rc != 0)
|
||||
goto out;
|
||||
if (is_secure_key(secure_key, secure_key_size)) {
|
||||
rc = get_master_key_verification_pattern(secure_key,
|
||||
secure_key_size,
|
||||
mkvp,
|
||||
keystore->verbose);
|
||||
if (rc != 0)
|
||||
goto out;
|
||||
}
|
||||
|
||||
_keystore_print_record(info->rec, name, properties, 1,
|
||||
file_names->skey_filename, secure_key_size,
|
||||
is_xts_key(secure_key, secure_key_size),
|
||||
clear_key_bitsize, valid, is_old_mk,
|
||||
_keystore_reencipher_key_exists(file_names),
|
||||
mkvp,
|
||||
is_secure_key(secure_key, secure_key_size) ?
|
||||
mkvp : NULL,
|
||||
_keystore_passphrase_file_exists(file_names) ?
|
||||
file_names->pass_filename : NULL);
|
||||
|
||||
@@ -3316,7 +3327,8 @@ static int _keystore_process_validate(struct keystore *keystore,
|
||||
"master key\n", 0);
|
||||
info->num_warnings++;
|
||||
}
|
||||
if (info->noapqncheck == 0)
|
||||
if (info->noapqncheck == 0 &&
|
||||
is_secure_key(secure_key, secure_key_size))
|
||||
if (_keystore_display_apqn_status(keystore, properties,
|
||||
mkvp) != 0)
|
||||
info->num_warnings++;
|
||||
|
||||
Reference in New Issue
Block a user