Lines Matching refs:pk

87 int evp_keymgmt_util_export(const EVP_PKEY *pk, int selection,  in evp_keymgmt_util_export()  argument
90 if (pk == NULL || export_cb == NULL) in evp_keymgmt_util_export()
92 return evp_keymgmt_export(pk->keymgmt, pk->keydata, selection, in evp_keymgmt_util_export()
96 void *evp_keymgmt_util_export_to_provider(EVP_PKEY *pk, EVP_KEYMGMT *keymgmt) in evp_keymgmt_util_export_to_provider() argument
106 if (pk->keydata == NULL) in evp_keymgmt_util_export_to_provider()
116 if (pk->keymgmt == keymgmt in evp_keymgmt_util_export_to_provider()
117 || (pk->keymgmt->name_id == keymgmt->name_id in evp_keymgmt_util_export_to_provider()
118 && pk->keymgmt->prov == keymgmt->prov)) in evp_keymgmt_util_export_to_provider()
119 return pk->keydata; in evp_keymgmt_util_export_to_provider()
121 if (!CRYPTO_THREAD_read_lock(pk->lock)) in evp_keymgmt_util_export_to_provider()
128 if (pk->dirty_cnt == pk->dirty_cnt_copy) { in evp_keymgmt_util_export_to_provider()
130 op = evp_keymgmt_util_find_operation_cache(pk, keymgmt); in evp_keymgmt_util_export_to_provider()
134 CRYPTO_THREAD_unlock(pk->lock); in evp_keymgmt_util_export_to_provider()
138 CRYPTO_THREAD_unlock(pk->lock); in evp_keymgmt_util_export_to_provider()
141 if (pk->keymgmt->export == NULL) in evp_keymgmt_util_export_to_provider()
148 if (!ossl_assert(match_type(pk->keymgmt, keymgmt))) in evp_keymgmt_util_export_to_provider()
166 if (!evp_keymgmt_util_export(pk, OSSL_KEYMGMT_SELECT_ALL, in evp_keymgmt_util_export_to_provider()
171 if (!CRYPTO_THREAD_write_lock(pk->lock)) { in evp_keymgmt_util_export_to_provider()
176 op = evp_keymgmt_util_find_operation_cache(pk, keymgmt); in evp_keymgmt_util_export_to_provider()
180 CRYPTO_THREAD_unlock(pk->lock); in evp_keymgmt_util_export_to_provider()
195 if (pk->dirty_cnt != pk->dirty_cnt_copy) in evp_keymgmt_util_export_to_provider()
196 evp_keymgmt_util_clear_operation_cache(pk, 0); in evp_keymgmt_util_export_to_provider()
199 if (!evp_keymgmt_util_cache_keydata(pk, keymgmt, import_data.keydata)) { in evp_keymgmt_util_export_to_provider()
200 CRYPTO_THREAD_unlock(pk->lock); in evp_keymgmt_util_export_to_provider()
206 pk->dirty_cnt_copy = pk->dirty_cnt; in evp_keymgmt_util_export_to_provider()
208 CRYPTO_THREAD_unlock(pk->lock); in evp_keymgmt_util_export_to_provider()
220 int evp_keymgmt_util_clear_operation_cache(EVP_PKEY *pk, int locking) in evp_keymgmt_util_clear_operation_cache() argument
222 if (pk != NULL) { in evp_keymgmt_util_clear_operation_cache()
223 if (locking && pk->lock != NULL && !CRYPTO_THREAD_write_lock(pk->lock)) in evp_keymgmt_util_clear_operation_cache()
225 sk_OP_CACHE_ELEM_pop_free(pk->operation_cache, op_cache_free); in evp_keymgmt_util_clear_operation_cache()
226 pk->operation_cache = NULL; in evp_keymgmt_util_clear_operation_cache()
227 if (locking && pk->lock != NULL) in evp_keymgmt_util_clear_operation_cache()
228 CRYPTO_THREAD_unlock(pk->lock); in evp_keymgmt_util_clear_operation_cache()
234 OP_CACHE_ELEM *evp_keymgmt_util_find_operation_cache(EVP_PKEY *pk, in evp_keymgmt_util_find_operation_cache() argument
237 int i, end = sk_OP_CACHE_ELEM_num(pk->operation_cache); in evp_keymgmt_util_find_operation_cache()
245 p = sk_OP_CACHE_ELEM_value(pk->operation_cache, i); in evp_keymgmt_util_find_operation_cache()
252 int evp_keymgmt_util_cache_keydata(EVP_PKEY *pk, in evp_keymgmt_util_cache_keydata() argument
258 if (pk->operation_cache == NULL) { in evp_keymgmt_util_cache_keydata()
259 pk->operation_cache = sk_OP_CACHE_ELEM_new_null(); in evp_keymgmt_util_cache_keydata()
260 if (pk->operation_cache == NULL) in evp_keymgmt_util_cache_keydata()
275 if (!sk_OP_CACHE_ELEM_push(pk->operation_cache, p)) { in evp_keymgmt_util_cache_keydata()
284 void evp_keymgmt_util_cache_keyinfo(EVP_PKEY *pk) in evp_keymgmt_util_cache_keyinfo() argument
291 if (pk->keydata != NULL) { in evp_keymgmt_util_cache_keyinfo()
302 if (evp_keymgmt_get_params(pk->keymgmt, pk->keydata, params)) { in evp_keymgmt_util_cache_keyinfo()
303 pk->cache.size = size; in evp_keymgmt_util_cache_keyinfo()
304 pk->cache.bits = bits; in evp_keymgmt_util_cache_keyinfo()
305 pk->cache.security_bits = security_bits; in evp_keymgmt_util_cache_keyinfo()
324 int evp_keymgmt_util_has(EVP_PKEY *pk, int selection) in evp_keymgmt_util_has() argument
327 if (pk->keymgmt == NULL) in evp_keymgmt_util_has()
330 return evp_keymgmt_has(pk->keymgmt, pk->keydata, selection); in evp_keymgmt_util_has()