module: icp: use original description
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12901
This commit is contained in:
parent
b0502ab097
commit
bcee18d4e0
|
@ -206,24 +206,6 @@ kcf_alloc_provider_desc(const crypto_provider_info_t *info)
|
||||||
kcf_provider_desc_t *desc =
|
kcf_provider_desc_t *desc =
|
||||||
kmem_zalloc(sizeof (kcf_provider_desc_t), KM_SLEEP);
|
kmem_zalloc(sizeof (kcf_provider_desc_t), KM_SLEEP);
|
||||||
|
|
||||||
/*
|
|
||||||
* pd_description serves two purposes
|
|
||||||
* - Appears as a blank padded PKCS#11 style string, that will be
|
|
||||||
* returned to applications in CK_SLOT_INFO.slotDescription.
|
|
||||||
* This means that we should not have a null character in the
|
|
||||||
* first CRYPTO_PROVIDER_DESCR_MAX_LEN bytes.
|
|
||||||
* - Appears as a null-terminated string that can be used by
|
|
||||||
* other kcf routines.
|
|
||||||
*
|
|
||||||
* So, we allocate enough room for one extra null terminator
|
|
||||||
* which keeps every one happy.
|
|
||||||
*/
|
|
||||||
desc->pd_description = kmem_alloc(CRYPTO_PROVIDER_DESCR_MAX_LEN + 1,
|
|
||||||
KM_SLEEP);
|
|
||||||
(void) memset(desc->pd_description, ' ',
|
|
||||||
CRYPTO_PROVIDER_DESCR_MAX_LEN);
|
|
||||||
desc->pd_description[CRYPTO_PROVIDER_DESCR_MAX_LEN] = '\0';
|
|
||||||
|
|
||||||
desc->pd_mech_list_count = info->pi_mech_list_count;
|
desc->pd_mech_list_count = info->pi_mech_list_count;
|
||||||
desc->pd_mechanisms = kmem_zalloc(sizeof (crypto_mech_info_t) *
|
desc->pd_mechanisms = kmem_zalloc(sizeof (crypto_mech_info_t) *
|
||||||
info->pi_mech_list_count, KM_SLEEP);
|
info->pi_mech_list_count, KM_SLEEP);
|
||||||
|
@ -290,10 +272,6 @@ kcf_free_provider_desc(kcf_provider_desc_t *desc)
|
||||||
|
|
||||||
/* free the kernel memory associated with the provider descriptor */
|
/* free the kernel memory associated with the provider descriptor */
|
||||||
|
|
||||||
if (desc->pd_description != NULL)
|
|
||||||
kmem_free(desc->pd_description,
|
|
||||||
CRYPTO_PROVIDER_DESCR_MAX_LEN + 1);
|
|
||||||
|
|
||||||
if (desc->pd_mechanisms != NULL)
|
if (desc->pd_mechanisms != NULL)
|
||||||
/* free the memory associated with the mechanism info's */
|
/* free the memory associated with the mechanism info's */
|
||||||
kmem_free(desc->pd_mechanisms, sizeof (crypto_mech_info_t) *
|
kmem_free(desc->pd_mechanisms, sizeof (crypto_mech_info_t) *
|
||||||
|
|
|
@ -221,7 +221,7 @@ typedef struct kcf_provider_desc {
|
||||||
// int pd_module_id;
|
// int pd_module_id;
|
||||||
// struct modctl *pd_mctlp;
|
// struct modctl *pd_mctlp;
|
||||||
kcondvar_t pd_remove_cv;
|
kcondvar_t pd_remove_cv;
|
||||||
char *pd_description;
|
const char *pd_description;
|
||||||
uint_t pd_flags;
|
uint_t pd_flags;
|
||||||
uint_t pd_hash_limit;
|
uint_t pd_hash_limit;
|
||||||
crypto_kcf_provider_handle_t pd_kcf_prov_handle;
|
crypto_kcf_provider_handle_t pd_kcf_prov_handle;
|
||||||
|
|
|
@ -267,7 +267,7 @@ typedef uint_t crypto_kcf_provider_handle_t;
|
||||||
* pi_provider_dev must be specified with a different pi_provider_handle.
|
* pi_provider_dev must be specified with a different pi_provider_handle.
|
||||||
*/
|
*/
|
||||||
typedef struct crypto_provider_info {
|
typedef struct crypto_provider_info {
|
||||||
char *pi_provider_description;
|
const char *pi_provider_description;
|
||||||
crypto_provider_type_t pi_provider_type;
|
crypto_provider_type_t pi_provider_type;
|
||||||
crypto_provider_handle_t pi_provider_handle;
|
crypto_provider_handle_t pi_provider_handle;
|
||||||
const crypto_ops_t *pi_ops_vector;
|
const crypto_ops_t *pi_ops_vector;
|
||||||
|
|
|
@ -96,19 +96,7 @@ crypto_register_provider(const crypto_provider_info_t *info,
|
||||||
prov_desc->pd_prov_handle = info->pi_provider_handle;
|
prov_desc->pd_prov_handle = info->pi_provider_handle;
|
||||||
|
|
||||||
/* copy provider description string */
|
/* copy provider description string */
|
||||||
if (info->pi_provider_description != NULL) {
|
prov_desc->pd_description = info->pi_provider_description;
|
||||||
/*
|
|
||||||
* pi_provider_descriptor is a string that can contain
|
|
||||||
* up to CRYPTO_PROVIDER_DESCR_MAX_LEN + 1 characters
|
|
||||||
* INCLUDING the terminating null character. A bcopy()
|
|
||||||
* is necessary here as pd_description should not have
|
|
||||||
* a null character. See comments in kcf_alloc_provider_desc()
|
|
||||||
* for details on pd_description field.
|
|
||||||
*/
|
|
||||||
bcopy(info->pi_provider_description, prov_desc->pd_description,
|
|
||||||
MIN(strlen(info->pi_provider_description),
|
|
||||||
(size_t)CRYPTO_PROVIDER_DESCR_MAX_LEN));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Change from Illumos: the ops vector is persistent. */
|
/* Change from Illumos: the ops vector is persistent. */
|
||||||
if (info->pi_provider_type != CRYPTO_LOGICAL_PROVIDER) {
|
if (info->pi_provider_type != CRYPTO_LOGICAL_PROVIDER) {
|
||||||
|
|
Loading…
Reference in New Issue