Lines Matching refs:wkey
84 dsl_wrapping_key_hold(dsl_wrapping_key_t *wkey, const void *tag) in dsl_wrapping_key_hold() argument
86 (void) zfs_refcount_add(&wkey->wk_refcnt, tag); in dsl_wrapping_key_hold()
90 dsl_wrapping_key_rele(dsl_wrapping_key_t *wkey, const void *tag) in dsl_wrapping_key_rele() argument
92 (void) zfs_refcount_remove(&wkey->wk_refcnt, tag); in dsl_wrapping_key_rele()
96 dsl_wrapping_key_free(dsl_wrapping_key_t *wkey) in dsl_wrapping_key_free() argument
98 ASSERT0(zfs_refcount_count(&wkey->wk_refcnt)); in dsl_wrapping_key_free()
100 if (wkey->wk_key.ck_data) { in dsl_wrapping_key_free()
101 memset(wkey->wk_key.ck_data, 0, in dsl_wrapping_key_free()
102 CRYPTO_BITS2BYTES(wkey->wk_key.ck_length)); in dsl_wrapping_key_free()
103 kmem_free(wkey->wk_key.ck_data, in dsl_wrapping_key_free()
104 CRYPTO_BITS2BYTES(wkey->wk_key.ck_length)); in dsl_wrapping_key_free()
107 zfs_refcount_destroy(&wkey->wk_refcnt); in dsl_wrapping_key_free()
108 kmem_free(wkey, sizeof (dsl_wrapping_key_t)); in dsl_wrapping_key_free()
115 dsl_wrapping_key_t *wkey; in dsl_wrapping_key_create() local
118 wkey = kmem_alloc(sizeof (dsl_wrapping_key_t), KM_SLEEP); in dsl_wrapping_key_create()
121 wkey->wk_key.ck_data = kmem_alloc(WRAPPING_KEY_LEN, KM_SLEEP); in dsl_wrapping_key_create()
123 wkey->wk_key.ck_length = CRYPTO_BYTES2BITS(WRAPPING_KEY_LEN); in dsl_wrapping_key_create()
124 memcpy(wkey->wk_key.ck_data, wkeydata, WRAPPING_KEY_LEN); in dsl_wrapping_key_create()
127 zfs_refcount_create(&wkey->wk_refcnt); in dsl_wrapping_key_create()
128 wkey->wk_keyformat = keyformat; in dsl_wrapping_key_create()
129 wkey->wk_salt = salt; in dsl_wrapping_key_create()
130 wkey->wk_iters = iters; in dsl_wrapping_key_create()
132 *wkey_out = wkey; in dsl_wrapping_key_create()
144 dsl_wrapping_key_t *wkey = NULL; in dsl_crypto_params_create_nvlist() local
219 iters, &wkey); in dsl_crypto_params_create_nvlist()
220 dcp->cp_wkey = wkey; in dsl_crypto_params_create_nvlist()
349 dsl_wrapping_key_t *wkey; in spa_keystore_fini() local
355 while ((wkey = avl_destroy_nodes(&sk->sk_wkeys, &cookie)) != NULL) in spa_keystore_fini()
356 dsl_wrapping_key_free(wkey); in spa_keystore_fini()
440 dsl_wrapping_key_t *wkey; in spa_keystore_wkey_hold_dd() local
455 ret = spa_keystore_wkey_hold_ddobj_impl(spa, rddobj, tag, &wkey); in spa_keystore_wkey_hold_dd()
463 *wkey_out = wkey; in spa_keystore_wkey_hold_dd()
559 dsl_crypto_key_open(objset_t *mos, dsl_wrapping_key_t *wkey, in dsl_crypto_key_open() argument
616 ret = zio_crypt_key_unwrap(&wkey->wk_key, crypt, version, guid, in dsl_crypto_key_open()
625 dsl_wrapping_key_hold(wkey, dck); in dsl_crypto_key_open()
626 dck->dck_wkey = wkey; in dsl_crypto_key_open()
681 dsl_wrapping_key_t *wkey = NULL; in spa_keystore_dsl_key_hold_dd() local
694 ret = spa_keystore_wkey_hold_dd(spa, dd, FTAG, &wkey); in spa_keystore_dsl_key_hold_dd()
701 ret = dsl_crypto_key_open(spa->spa_meta_objset, wkey, dckobj, in spa_keystore_dsl_key_hold_dd()
704 dsl_wrapping_key_rele(wkey, FTAG); in spa_keystore_dsl_key_hold_dd()
726 dsl_wrapping_key_rele(wkey, FTAG); in spa_keystore_dsl_key_hold_dd()
746 spa_keystore_load_wkey_impl(spa_t *spa, dsl_wrapping_key_t *wkey) in spa_keystore_load_wkey_impl() argument
755 found_wkey = avl_find(&spa->spa_keystore.sk_wkeys, wkey, &where); in spa_keystore_load_wkey_impl()
760 avl_insert(&spa->spa_keystore.sk_wkeys, wkey, where); in spa_keystore_load_wkey_impl()
778 dsl_wrapping_key_t *wkey = dcp->cp_wkey; in spa_keystore_load_wkey() local
816 wkey->wk_ddobj = dd->dd_object; in spa_keystore_load_wkey()
819 ret = dsl_crypto_key_open(dp->dp_meta_objset, wkey, in spa_keystore_load_wkey()
847 wkey->wk_keyformat = keyformat; in spa_keystore_load_wkey()
848 wkey->wk_salt = salt; in spa_keystore_load_wkey()
849 wkey->wk_iters = iters; in spa_keystore_load_wkey()
860 ret = spa_keystore_load_wkey_impl(dp->dp_spa, wkey); in spa_keystore_load_wkey()
1169 dsl_wrapping_key_t *wkey = NULL; in dmu_objset_check_wkey_loaded() local
1172 &wkey); in dmu_objset_check_wkey_loaded()
1176 dsl_wrapping_key_rele(wkey, FTAG); in dmu_objset_check_wkey_loaded()
1236 dsl_wrapping_key_t *wkey = dck->dck_wkey; in dsl_crypto_key_sync() local
1251 key->zk_crypt, wkey->wk_ddobj, key->zk_guid, iv, mac, keydata, in dsl_crypto_key_sync()
1252 hmac_keydata, wkey->wk_keyformat, wkey->wk_salt, wkey->wk_iters, in dsl_crypto_key_sync()
1443 uint64_t new_rddobj, dsl_wrapping_key_t *wkey, boolean_t skip, in spa_keystore_change_key_sync_impl() argument
1484 if (wkey == NULL) { in spa_keystore_change_key_sync_impl()
1492 dsl_wrapping_key_hold(wkey, dck); in spa_keystore_change_key_sync_impl()
1494 dck->dck_wkey = wkey; in spa_keystore_change_key_sync_impl()
1509 za->za_first_integer, new_rddobj, wkey, B_FALSE, tx); in spa_keystore_change_key_sync_impl()
1528 clone->ds_dir->dd_object, new_rddobj, wkey, B_TRUE, tx); in spa_keystore_change_key_sync_impl()
1548 dsl_wrapping_key_t *wkey = NULL, *found_wkey; in spa_keystore_change_key_sync() local
1566 wkey = dcp->cp_wkey; in spa_keystore_change_key_sync()
1567 wkey->wk_ddobj = ds->ds_dir->dd_object; in spa_keystore_change_key_sync()
1588 ds->ds_dir->dd_parent, FTAG, &wkey)); in spa_keystore_change_key_sync()
1600 if (wkey == NULL) { in spa_keystore_change_key_sync()
1609 new_rddobj, wkey, B_FALSE, tx); in spa_keystore_change_key_sync()
1624 avl_find(&spa->spa_keystore.sk_wkeys, wkey, &where); in spa_keystore_change_key_sync()
1625 avl_insert(&spa->spa_keystore.sk_wkeys, wkey, where); in spa_keystore_change_key_sync()
1626 } else if (wkey != NULL) { in spa_keystore_change_key_sync()
1627 dsl_wrapping_key_rele(wkey, FTAG); in spa_keystore_change_key_sync()
1911 dsl_wrapping_key_t *wkey; in dsl_dataset_create_crypt_sync() local
1944 wkey = dcp->cp_wkey; in dsl_dataset_create_crypt_sync()
1959 if (wkey == NULL) { in dsl_dataset_create_crypt_sync()
1961 dd->dd_parent, FTAG, &wkey)); in dsl_dataset_create_crypt_sync()
1963 wkey->wk_ddobj = dd->dd_object; in dsl_dataset_create_crypt_sync()
1966 ASSERT3P(wkey, !=, NULL); in dsl_dataset_create_crypt_sync()
1969 dd->dd_crypto_obj = dsl_crypto_key_create_sync(crypt, wkey, tx); in dsl_dataset_create_crypt_sync()
1982 dsl_wrapping_key_rele(wkey, FTAG); in dsl_dataset_create_crypt_sync()
1984 VERIFY0(spa_keystore_load_wkey_impl(dp->dp_spa, wkey)); in dsl_dataset_create_crypt_sync()
2568 dsl_crypto_key_create_sync(uint64_t crypt, dsl_wrapping_key_t *wkey, in dsl_crypto_key_create_sync() argument
2584 dck.dck_wkey = wkey; in dsl_crypto_key_create_sync()