Lines Matching refs:dck
535 dsl_crypto_key_free(dsl_crypto_key_t *dck) in dsl_crypto_key_free() argument
537 ASSERT(zfs_refcount_count(&dck->dck_holds) == 0); in dsl_crypto_key_free()
540 zio_crypt_key_destroy(&dck->dck_key); in dsl_crypto_key_free()
543 zfs_refcount_destroy(&dck->dck_holds); in dsl_crypto_key_free()
544 if (dck->dck_wkey) in dsl_crypto_key_free()
545 dsl_wrapping_key_rele(dck->dck_wkey, dck); in dsl_crypto_key_free()
548 kmem_free(dck, sizeof (dsl_crypto_key_t)); in dsl_crypto_key_free()
552 dsl_crypto_key_rele(dsl_crypto_key_t *dck, const void *tag) in dsl_crypto_key_rele() argument
554 if (zfs_refcount_remove(&dck->dck_holds, tag) == 0) in dsl_crypto_key_rele()
555 dsl_crypto_key_free(dck); in dsl_crypto_key_rele()
568 dsl_crypto_key_t *dck; in dsl_crypto_key_open() local
571 dck = kmem_zalloc(sizeof (dsl_crypto_key_t), KM_SLEEP); in dsl_crypto_key_open()
617 raw_keydata, raw_hmac_keydata, iv, mac, &dck->dck_key); in dsl_crypto_key_open()
624 zfs_refcount_create(&dck->dck_holds); 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()
627 dck->dck_obj = dckobj; in dsl_crypto_key_open()
628 zfs_refcount_add(&dck->dck_holds, tag); in dsl_crypto_key_open()
630 *dck_out = dck; in dsl_crypto_key_open()
634 if (dck != NULL) { in dsl_crypto_key_open()
635 memset(dck, 0, sizeof (dsl_crypto_key_t)); in dsl_crypto_key_open()
636 kmem_free(dck, sizeof (dsl_crypto_key_t)); in dsl_crypto_key_open()
733 spa_keystore_dsl_key_rele(spa_t *spa, dsl_crypto_key_t *dck, const void *tag) in spa_keystore_dsl_key_rele() argument
737 if (zfs_refcount_remove(&dck->dck_holds, tag) == 0) { in spa_keystore_dsl_key_rele()
738 avl_remove(&spa->spa_keystore.sk_dsl_keys, dck); in spa_keystore_dsl_key_rele()
739 dsl_crypto_key_free(dck); in spa_keystore_dsl_key_rele()
777 dsl_crypto_key_t *dck = NULL; in spa_keystore_load_wkey() local
820 dd->dd_crypto_obj, FTAG, &dck); in spa_keystore_load_wkey()
864 dsl_crypto_key_rele(dck, FTAG); in spa_keystore_load_wkey()
874 if (dck != NULL) in spa_keystore_load_wkey()
875 dsl_crypto_key_rele(dck, FTAG); in spa_keystore_load_wkey()
1233 dsl_crypto_key_sync(dsl_crypto_key_t *dck, dmu_tx_t *tx) in dsl_crypto_key_sync() argument
1235 zio_crypt_key_t *key = &dck->dck_key; in dsl_crypto_key_sync()
1236 dsl_wrapping_key_t *wkey = dck->dck_wkey; in dsl_crypto_key_sync()
1246 VERIFY0(zio_crypt_key_wrap(&dck->dck_wkey->wk_key, key, iv, mac, in dsl_crypto_key_sync()
1250 dsl_crypto_key_sync_impl(tx->tx_pool->dp_meta_objset, dck->dck_obj, in dsl_crypto_key_sync()
1451 dsl_crypto_key_t *dck = NULL; in spa_keystore_change_key_sync_impl() local
1491 FTAG, &dck)); in spa_keystore_change_key_sync_impl()
1492 dsl_wrapping_key_hold(wkey, dck); in spa_keystore_change_key_sync_impl()
1493 dsl_wrapping_key_rele(dck->dck_wkey, dck); in spa_keystore_change_key_sync_impl()
1494 dck->dck_wkey = wkey; in spa_keystore_change_key_sync_impl()
1495 dsl_crypto_key_sync(dck, tx); in spa_keystore_change_key_sync_impl()
1496 spa_keystore_dsl_key_rele(dp->dp_spa, dck, FTAG); in spa_keystore_change_key_sync_impl()
2571 dsl_crypto_key_t dck; in dsl_crypto_key_create_sync() local
2580 dck.dck_obj = zap_create(tx->tx_pool->dp_meta_objset, in dsl_crypto_key_create_sync()
2584 dck.dck_wkey = wkey; in dsl_crypto_key_create_sync()
2585 VERIFY0(zio_crypt_key_init(crypt, &dck.dck_key)); in dsl_crypto_key_create_sync()
2587 dsl_crypto_key_sync(&dck, tx); in dsl_crypto_key_create_sync()
2588 VERIFY0(zap_update(tx->tx_pool->dp_meta_objset, dck.dck_obj, in dsl_crypto_key_create_sync()
2590 VERIFY0(zap_update(tx->tx_pool->dp_meta_objset, dck.dck_obj, in dsl_crypto_key_create_sync()
2593 zio_crypt_key_destroy(&dck.dck_key); in dsl_crypto_key_create_sync()
2594 memset(&dck.dck_key, 0, sizeof (zio_crypt_key_t)); in dsl_crypto_key_create_sync()
2596 return (dck.dck_obj); in dsl_crypto_key_create_sync()
2682 dsl_crypto_key_t *dck = NULL; in spa_crypt_get_salt() local
2685 ret = spa_keystore_lookup_key(spa, dsobj, FTAG, &dck); in spa_crypt_get_salt()
2689 ret = zio_crypt_key_get_salt(&dck->dck_key, salt); in spa_crypt_get_salt()
2693 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_crypt_get_salt()
2697 if (dck != NULL) in spa_crypt_get_salt()
2698 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_crypt_get_salt()
2713 dsl_crypto_key_t *dck = NULL; in spa_do_crypt_objset_mac_abd() local
2721 ret = spa_keystore_lookup_key(spa, dsobj, FTAG, &dck); in spa_do_crypt_objset_mac_abd()
2726 ret = zio_crypt_do_objset_hmacs(&dck->dck_key, buf, datalen, in spa_do_crypt_objset_mac_abd()
2731 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_do_crypt_objset_mac_abd()
2769 if (dck != NULL) in spa_do_crypt_objset_mac_abd()
2770 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_do_crypt_objset_mac_abd()
2780 dsl_crypto_key_t *dck = NULL; in spa_do_crypt_mac_abd() local
2785 ret = spa_keystore_lookup_key(spa, dsobj, FTAG, &dck); in spa_do_crypt_mac_abd()
2790 ret = zio_crypt_do_hmac(&dck->dck_key, buf, datalen, in spa_do_crypt_mac_abd()
2796 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_do_crypt_mac_abd()
2813 if (dck != NULL) in spa_do_crypt_mac_abd()
2814 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_do_crypt_mac_abd()
2832 dsl_crypto_key_t *dck = NULL; in spa_do_crypt_abd() local
2838 ret = spa_keystore_lookup_key(spa, zb->zb_objset, FTAG, &dck); in spa_do_crypt_abd()
2862 ret = zio_crypt_key_get_salt(&dck->dck_key, salt); in spa_do_crypt_abd()
2870 ret = zio_crypt_generate_iv_salt_dedup(&dck->dck_key, in spa_do_crypt_abd()
2877 ret = zio_do_crypt_data(encrypt, &dck->dck_key, ot, bswap, salt, iv, in spa_do_crypt_abd()
2899 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_do_crypt_abd()
2916 spa_keystore_dsl_key_rele(spa, dck, FTAG); in spa_do_crypt_abd()