diff options
Diffstat (limited to 'crypto/userspace/ncr-key.c')
-rw-r--r-- | crypto/userspace/ncr-key.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/crypto/userspace/ncr-key.c b/crypto/userspace/ncr-key.c index e614f687075..e6f7f025848 100644 --- a/crypto/userspace/ncr-key.c +++ b/crypto/userspace/ncr-key.c @@ -415,6 +415,9 @@ void ncr_key_clear(struct key_item_st* item) NULL, ncr_algorithm_name(item->algorithm), item->desc, item->key_id, item->key_id_size, -1, NULL, 0); + if (item->type == NCR_KEY_TYPE_PRIVATE || + item->type == NCR_KEY_TYPE_PUBLIC) + ncr_pk_audit_values(item); /* clears any previously allocated parameters */ if (item->type == NCR_KEY_TYPE_PRIVATE || @@ -500,6 +503,9 @@ fail: audit_log_crypto_op(AUDIT_CRYPTO_OP_KEY_GEN, lst->id, -1, NULL, ncr_algorithm_name(algo), item->desc, item->key_id, item->key_id_size, -1, NULL, 0); + if (item->type == NCR_KEY_TYPE_PUBLIC + || item->type == NCR_KEY_TYPE_PRIVATE) + ncr_pk_audit_values(item); if (ret < 0) item->type = NCR_KEY_TYPE_INVALID; _ncr_key_item_put(item); @@ -746,6 +752,8 @@ fail: public != NULL ? public->desc : -1, public != NULL ? public->key_id : NULL, public != NULL ? public->key_id_size : 0); + if (public != NULL && ret >= 0) + ncr_pk_audit_values(public); if (public) { if (ret < 0) public->type = NCR_KEY_TYPE_INVALID; |