Lines Matching refs:softc
1617 #define DPROV_SOFTC_FROM_CTX(ctx, softc, instance) { \ argument
1618 (softc) = (dprov_state_t *)(ctx)->cc_provider; \
1619 (instance) = ddi_get_instance((softc)->ds_dip); \
1623 #define DPROV_SOFTC_FROM_REQ(req, softc, instance) { \ argument
1624 (softc) = (req)->dr_softc; \
1625 (instance) = ddi_get_instance((softc)->ds_dip); \
1731 dprov_state_t *softc; in dprov_getinfo() local
1738 softc = ddi_get_soft_state(statep, instance); in dprov_getinfo()
1739 *result = softc->ds_dip; in dprov_getinfo()
1753 dprov_state_t *softc; in dprov_attach() local
1768 softc = ddi_get_soft_state(statep, instance); in dprov_attach()
1769 mutex_init(&softc->ds_lock, NULL, MUTEX_DRIVER, NULL); in dprov_attach()
1770 softc->ds_dip = dip; in dprov_attach()
1771 softc->ds_prov_handle = NULL; in dprov_attach()
1778 mutex_destroy(&softc->ds_lock); in dprov_attach()
1801 softc->ds_taskq = taskq_create(devname, 1, minclsyspri, in dprov_attach()
1805 softc->ds_sessions = kmem_zalloc(DPROV_MIN_SESSIONS * in dprov_attach()
1807 softc->ds_sessions_slots = DPROV_MIN_SESSIONS; in dprov_attach()
1808 softc->ds_sessions_count = 0; in dprov_attach()
1811 softc->ds_token_initialized = B_TRUE; in dprov_attach()
1813 (void) memset(softc->ds_label, ' ', CRYPTO_EXT_SIZE_LABEL); in dprov_attach()
1814 bcopy("Dummy Pseudo HW Provider", softc->ds_label, 24); in dprov_attach()
1816 bcopy("changeme", softc->ds_user_pin, 8); in dprov_attach()
1817 softc->ds_user_pin_len = 8; in dprov_attach()
1818 softc->ds_user_pin_set = B_TRUE; in dprov_attach()
1822 dprov_prov_info.pi_provider_handle = softc; in dprov_attach()
1832 &softc->ds_prov_handle)) != CRYPTO_SUCCESS) { in dprov_attach()
1835 taskq_destroy(softc->ds_taskq); in dprov_attach()
1836 kmem_free(softc->ds_sessions, softc->ds_sessions_slots * in dprov_attach()
1838 mutex_destroy(&softc->ds_lock); in dprov_attach()
1847 crypto_provider_notification(softc->ds_prov_handle, in dprov_attach()
1857 dprov_state_t *softc = ddi_get_soft_state(statep, instance); in dprov_detach() local
1868 if (softc->ds_prov_handle != NULL) in dprov_detach()
1870 softc->ds_prov_handle)) != CRYPTO_SUCCESS) { in dprov_detach()
1878 taskq_destroy(softc->ds_taskq); in dprov_detach()
1880 for (i = 0; i < softc->ds_sessions_slots; i++) { in dprov_detach()
1881 if ((session = softc->ds_sessions[i]) == NULL) in dprov_detach()
1887 softc->ds_sessions_count--; in dprov_detach()
1891 kmem_free(softc->ds_sessions, softc->ds_sessions_slots * in dprov_detach()
1895 if (softc->ds_objects[i] != NULL) in dprov_detach()
1896 dprov_free_object(softc->ds_objects[i]); in dprov_detach()
1898 mutex_destroy(&softc->ds_lock); in dprov_detach()
1926 dprov_state_t *softc; in dprov_digest_init() local
1931 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_digest_init()
1947 error = dprov_digest_submit_req(DPROV_REQ_DIGEST_INIT, softc, req, in dprov_digest_init()
1961 dprov_state_t *softc; in dprov_digest() local
1969 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_digest()
1973 error = dprov_digest_submit_req(DPROV_REQ_DIGEST, softc, req, in dprov_digest()
1987 dprov_state_t *softc; in dprov_digest_update() local
1992 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_digest_update()
1997 error = dprov_digest_submit_req(DPROV_REQ_DIGEST_UPDATE, softc, in dprov_digest_update()
2010 dprov_state_t *softc; in dprov_digest_key() local
2015 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_digest_key()
2019 error = dprov_digest_submit_req(DPROV_REQ_DIGEST_KEY, softc, req, NULL, in dprov_digest_key()
2033 dprov_state_t *softc; in dprov_digest_final() local
2038 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_digest_final()
2042 error = dprov_digest_submit_req(DPROV_REQ_DIGEST_FINAL, softc, req, in dprov_digest_final()
2059 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_digest_atomic() local
2066 instance = ddi_get_instance(softc->ds_dip); in dprov_digest_atomic()
2083 error = dprov_digest_submit_req(DPROV_REQ_DIGEST_ATOMIC, softc, req, in dprov_digest_atomic()
2122 dprov_state_t *softc; in dprov_mac_init() local
2127 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_init()
2141 error = dprov_mac_submit_req(DPROV_REQ_MAC_INIT, softc, req, in dprov_mac_init()
2155 dprov_state_t *softc; in dprov_mac() local
2160 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac()
2164 error = dprov_mac_submit_req(DPROV_REQ_MAC, softc, req, in dprov_mac()
2178 dprov_state_t *softc; in dprov_mac_update() local
2183 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_update()
2187 error = dprov_mac_submit_req(DPROV_REQ_MAC_UPDATE, softc, in dprov_mac_update()
2200 dprov_state_t *softc; in dprov_mac_final() local
2205 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_final()
2209 error = dprov_mac_submit_req(DPROV_REQ_MAC_FINAL, softc, req, in dprov_mac_final()
2225 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_mac_atomic() local
2229 instance = ddi_get_instance(softc->ds_dip); in dprov_mac_atomic()
2243 error = dprov_mac_submit_req(DPROV_REQ_MAC_ATOMIC, softc, req, in dprov_mac_atomic()
2259 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_mac_verify_atomic() local
2263 instance = ddi_get_instance(softc->ds_dip); in dprov_mac_verify_atomic()
2278 error = dprov_mac_submit_req(DPROV_REQ_MAC_VERIFY_ATOMIC, softc, req, in dprov_mac_verify_atomic()
2342 dprov_state_t *softc; in dprov_encrypt_init() local
2347 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_init()
2359 error = dprov_cipher_submit_req(DPROV_REQ_ENCRYPT_INIT, softc, in dprov_encrypt_init()
2374 dprov_state_t *softc; in dprov_encrypt() local
2379 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt()
2383 error = dprov_cipher_submit_req(DPROV_REQ_ENCRYPT, softc, in dprov_encrypt()
2398 dprov_state_t *softc; in dprov_encrypt_update() local
2403 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_update()
2408 error = dprov_cipher_submit_req(DPROV_REQ_ENCRYPT_UPDATE, softc, in dprov_encrypt_update()
2423 dprov_state_t *softc; in dprov_encrypt_final() local
2428 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_final()
2433 error = dprov_cipher_submit_req(DPROV_REQ_ENCRYPT_FINAL, softc, in dprov_encrypt_final()
2449 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_encrypt_atomic() local
2453 instance = ddi_get_instance(softc->ds_dip); in dprov_encrypt_atomic()
2466 error = dprov_cipher_submit_req(DPROV_REQ_ENCRYPT_ATOMIC, softc, in dprov_encrypt_atomic()
2483 dprov_state_t *softc; in dprov_decrypt_init() local
2488 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_decrypt_init()
2500 error = dprov_cipher_submit_req(DPROV_REQ_DECRYPT_INIT, softc, in dprov_decrypt_init()
2516 dprov_state_t *softc; in dprov_decrypt() local
2521 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_decrypt()
2525 error = dprov_cipher_submit_req(DPROV_REQ_DECRYPT, softc, in dprov_decrypt()
2540 dprov_state_t *softc; in dprov_decrypt_update() local
2545 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_decrypt_update()
2550 error = dprov_cipher_submit_req(DPROV_REQ_DECRYPT_UPDATE, softc, in dprov_decrypt_update()
2565 dprov_state_t *softc; in dprov_decrypt_final() local
2570 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_decrypt_final()
2575 error = dprov_cipher_submit_req(DPROV_REQ_DECRYPT_FINAL, softc, in dprov_decrypt_final()
2591 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_decrypt_atomic() local
2595 instance = ddi_get_instance(softc->ds_dip); in dprov_decrypt_atomic()
2608 error = dprov_cipher_submit_req(DPROV_REQ_DECRYPT_ATOMIC, softc, in dprov_decrypt_atomic()
2656 dprov_state_t *softc; in dprov_sign_init() local
2661 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_sign_init()
2675 error = dprov_sign_submit_req(DPROV_REQ_SIGN_INIT, softc, req, in dprov_sign_init()
2689 dprov_state_t *softc; in dprov_sign() local
2694 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_sign()
2698 error = dprov_sign_submit_req(DPROV_REQ_SIGN, softc, req, in dprov_sign()
2712 dprov_state_t *softc; in dprov_sign_update() local
2717 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_sign_update()
2721 error = dprov_sign_submit_req(DPROV_REQ_SIGN_UPDATE, softc, req, in dprov_sign_update()
2735 dprov_state_t *softc; in dprov_sign_final() local
2740 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_sign_final()
2744 error = dprov_sign_submit_req(DPROV_REQ_SIGN_FINAL, softc, req, in dprov_sign_final()
2760 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_sign_atomic() local
2764 instance = ddi_get_instance(softc->ds_dip); in dprov_sign_atomic()
2778 error = dprov_sign_submit_req(DPROV_REQ_SIGN_ATOMIC, softc, req, in dprov_sign_atomic()
2793 dprov_state_t *softc; in dprov_sign_recover_init() local
2798 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_sign_recover_init()
2806 error = dprov_sign_submit_req(DPROV_REQ_SIGN_RECOVER_INIT, softc, req, in dprov_sign_recover_init()
2820 dprov_state_t *softc; in dprov_sign_recover() local
2825 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_sign_recover()
2829 error = dprov_sign_submit_req(DPROV_REQ_SIGN_RECOVER, softc, req, in dprov_sign_recover()
2845 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_sign_recover_atomic() local
2849 instance = ddi_get_instance(softc->ds_dip); in dprov_sign_recover_atomic()
2857 error = dprov_sign_submit_req(DPROV_REQ_SIGN_RECOVER_ATOMIC, softc, req, in dprov_sign_recover_atomic()
2876 dprov_state_t *softc; in dprov_verify_init() local
2881 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_verify_init()
2894 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_INIT, softc, req, in dprov_verify_init()
2908 dprov_state_t *softc; in dprov_verify() local
2913 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_verify()
2917 error = dprov_verify_submit_req(DPROV_REQ_VERIFY, softc, req, in dprov_verify()
2931 dprov_state_t *softc; in dprov_verify_update() local
2936 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_verify_update()
2941 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_UPDATE, softc, req, in dprov_verify_update()
2955 dprov_state_t *softc; in dprov_verify_final() local
2960 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_verify_final()
2964 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_FINAL, softc, req, in dprov_verify_final()
2980 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_verify_atomic() local
2984 instance = ddi_get_instance(softc->ds_dip); in dprov_verify_atomic()
2999 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_ATOMIC, softc, req, in dprov_verify_atomic()
3014 dprov_state_t *softc; in dprov_verify_recover_init() local
3019 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_verify_recover_init()
3027 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_RECOVER_INIT, softc, in dprov_verify_recover_init()
3041 dprov_state_t *softc; in dprov_verify_recover() local
3046 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_verify_recover()
3051 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_RECOVER, softc, req, in dprov_verify_recover()
3067 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_verify_recover_atomic() local
3071 instance = ddi_get_instance(softc->ds_dip); in dprov_verify_recover_atomic()
3079 error = dprov_verify_submit_req(DPROV_REQ_VERIFY_RECOVER_ATOMIC, softc, in dprov_verify_recover_atomic()
3098 dprov_state_t *softc; in dprov_digest_encrypt_update() local
3103 DPROV_SOFTC_FROM_CTX(digest_ctx, softc, instance); in dprov_digest_encrypt_update()
3112 softc, req, digest_ctx, encrypt_ctx, plaintext, ciphertext); in dprov_digest_encrypt_update()
3126 dprov_state_t *softc; in dprov_decrypt_digest_update() local
3131 DPROV_SOFTC_FROM_CTX(decrypt_ctx, softc, instance); in dprov_decrypt_digest_update()
3140 softc, req, digest_ctx, decrypt_ctx, plaintext, ciphertext); in dprov_decrypt_digest_update()
3154 dprov_state_t *softc; in dprov_sign_encrypt_update() local
3159 DPROV_SOFTC_FROM_CTX(sign_ctx, softc, instance); in dprov_sign_encrypt_update()
3168 softc, req, sign_ctx, encrypt_ctx, plaintext, ciphertext); in dprov_sign_encrypt_update()
3182 dprov_state_t *softc; in dprov_decrypt_verify_update() local
3187 DPROV_SOFTC_FROM_CTX(decrypt_ctx, softc, instance); in dprov_decrypt_verify_update()
3196 softc, req, verify_ctx, decrypt_ctx, plaintext, ciphertext); in dprov_decrypt_verify_update()
3216 dprov_state_t *softc; in dprov_encrypt_mac_init() local
3221 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_mac_init()
3244 softc, req, ctx, 0, encrypt_mech, encrypt_key, mac_mech, mac_key, in dprov_encrypt_mac_init()
3258 dprov_state_t *softc; in dprov_encrypt_mac() local
3263 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_mac()
3272 softc, req, ctx, 0, NULL, NULL, NULL, NULL, in dprov_encrypt_mac()
3286 dprov_state_t *softc; in dprov_encrypt_mac_update() local
3291 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_mac_update()
3297 softc, req, ctx, 0, NULL, NULL, NULL, NULL, in dprov_encrypt_mac_update()
3312 dprov_state_t *softc; in dprov_encrypt_mac_final() local
3317 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_encrypt_mac_final()
3323 softc, req, ctx, 0, NULL, NULL, NULL, NULL, in dprov_encrypt_mac_final()
3343 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_encrypt_mac_atomic() local
3347 instance = ddi_get_instance(softc->ds_dip); in dprov_encrypt_mac_atomic()
3370 softc, req, NULL, session_id, encrypt_mech, encrypt_key, mac_mech, in dprov_encrypt_mac_atomic()
3387 dprov_state_t *softc; in dprov_mac_decrypt_init() local
3392 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_decrypt_init()
3415 softc, req, ctx, 0, decrypt_mech, decrypt_key, mac_mech, mac_key, in dprov_mac_decrypt_init()
3429 dprov_state_t *softc; in dprov_mac_decrypt() local
3434 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_decrypt()
3440 softc, req, ctx, 0, NULL, NULL, NULL, NULL, in dprov_mac_decrypt()
3454 dprov_state_t *softc; in dprov_mac_decrypt_update() local
3459 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_decrypt_update()
3465 softc, req, ctx, 0, NULL, NULL, NULL, NULL, in dprov_mac_decrypt_update()
3479 dprov_state_t *softc; in dprov_mac_decrypt_final() local
3484 DPROV_SOFTC_FROM_CTX(ctx, softc, instance); in dprov_mac_decrypt_final()
3490 softc, req, ctx, 0, NULL, NULL, NULL, NULL, in dprov_mac_decrypt_final()
3510 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_mac_decrypt_atomic() local
3514 instance = ddi_get_instance(softc->ds_dip); in dprov_mac_decrypt_atomic()
3537 softc, req, NULL, session_id, decrypt_mech, decrypt_key, mac_mech, in dprov_mac_decrypt_atomic()
3557 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_mac_verify_decrypt_atomic() local
3561 instance = ddi_get_instance(softc->ds_dip); in dprov_mac_verify_decrypt_atomic()
3584 softc, req, NULL, session_id, decrypt_mech, decrypt_key, mac_mech, in dprov_mac_verify_decrypt_atomic()
3603 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_seed_random() local
3607 instance = ddi_get_instance(softc->ds_dip); in dprov_seed_random()
3611 error = dprov_random_submit_req(DPROV_REQ_RANDOM_SEED, softc, in dprov_seed_random()
3625 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_generate_random() local
3629 instance = ddi_get_instance(softc->ds_dip); in dprov_generate_random()
3633 error = dprov_random_submit_req(DPROV_REQ_RANDOM_GENERATE, softc, in dprov_generate_random()
3651 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_session_open() local
3655 instance = ddi_get_instance(softc->ds_dip); in dprov_session_open()
3659 error = dprov_session_submit_req(DPROV_REQ_SESSION_OPEN, softc, in dprov_session_open()
3673 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_session_close() local
3677 instance = ddi_get_instance(softc->ds_dip); in dprov_session_close()
3681 error = dprov_session_submit_req(DPROV_REQ_SESSION_CLOSE, softc, in dprov_session_close()
3696 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_session_login() local
3700 instance = ddi_get_instance(softc->ds_dip); in dprov_session_login()
3704 error = dprov_session_submit_req(DPROV_REQ_SESSION_LOGIN, softc, in dprov_session_login()
3718 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_session_logout() local
3722 instance = ddi_get_instance(softc->ds_dip); in dprov_session_logout()
3726 error = dprov_session_submit_req(DPROV_REQ_SESSION_LOGOUT, softc, in dprov_session_logout()
3746 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_create() local
3750 instance = ddi_get_instance(softc->ds_dip); in dprov_object_create()
3755 error = dprov_object_submit_req(DPROV_REQ_OBJECT_CREATE, softc, req, in dprov_object_create()
3772 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_copy() local
3776 instance = ddi_get_instance(softc->ds_dip); in dprov_object_copy()
3781 error = dprov_object_submit_req(DPROV_REQ_OBJECT_COPY, softc, req, in dprov_object_copy()
3797 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_destroy() local
3801 instance = ddi_get_instance(softc->ds_dip); in dprov_object_destroy()
3806 error = dprov_object_submit_req(DPROV_REQ_OBJECT_DESTROY, softc, req, in dprov_object_destroy()
3822 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_get_size() local
3826 instance = ddi_get_instance(softc->ds_dip); in dprov_object_get_size()
3831 error = dprov_object_submit_req(DPROV_REQ_OBJECT_GET_SIZE, softc, req, in dprov_object_get_size()
3848 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_get_attribute_value() local
3852 instance = ddi_get_instance(softc->ds_dip); in dprov_object_get_attribute_value()
3858 softc, req, session_id, object, template, attribute_count, in dprov_object_get_attribute_value()
3874 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_set_attribute_value() local
3878 instance = ddi_get_instance(softc->ds_dip); in dprov_object_set_attribute_value()
3884 softc, req, session_id, object, template, attribute_count, in dprov_object_set_attribute_value()
3900 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_find_init() local
3904 instance = ddi_get_instance(softc->ds_dip); in dprov_object_find_init()
3909 error = dprov_object_submit_req(DPROV_REQ_OBJECT_FIND_INIT, softc, req, in dprov_object_find_init()
3925 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_find() local
3929 instance = ddi_get_instance(softc->ds_dip); in dprov_object_find()
3934 error = dprov_object_submit_req(DPROV_REQ_OBJECT_FIND, softc, req, in dprov_object_find()
3950 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_object_find_final() local
3954 instance = ddi_get_instance(softc->ds_dip); in dprov_object_find_final()
3959 error = dprov_object_submit_req(DPROV_REQ_OBJECT_FIND_FINAL, softc, req, in dprov_object_find_final()
3980 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_key_generate() local
3984 instance = ddi_get_instance(softc->ds_dip); in dprov_key_generate()
3989 error = dprov_key_submit_req(DPROV_REQ_KEY_GENERATE, softc, req, in dprov_key_generate()
4010 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_key_generate_pair() local
4014 instance = ddi_get_instance(softc->ds_dip); in dprov_key_generate_pair()
4019 error = dprov_key_submit_req(DPROV_REQ_KEY_GENERATE_PAIR, softc, req, in dprov_key_generate_pair()
4038 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_key_wrap() local
4042 instance = ddi_get_instance(softc->ds_dip); in dprov_key_wrap()
4047 error = dprov_key_submit_req(DPROV_REQ_KEY_WRAP, softc, req, in dprov_key_wrap()
4066 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_key_unwrap() local
4070 instance = ddi_get_instance(softc->ds_dip); in dprov_key_unwrap()
4075 error = dprov_key_submit_req(DPROV_REQ_KEY_UNWRAP, softc, req, in dprov_key_unwrap()
4093 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_key_derive() local
4097 instance = ddi_get_instance(softc->ds_dip); in dprov_key_derive()
4102 error = dprov_key_submit_req(DPROV_REQ_KEY_DERIVE, softc, req, in dprov_key_derive()
4121 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_ext_info() local
4125 instance = ddi_get_instance(softc->ds_dip); in dprov_ext_info()
4129 error = dprov_mgmt_submit_req(DPROV_REQ_MGMT_EXTINFO, softc, req, in dprov_ext_info()
4143 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_init_token() local
4147 instance = ddi_get_instance(softc->ds_dip); in dprov_init_token()
4151 error = dprov_mgmt_submit_req(DPROV_REQ_MGMT_INITTOKEN, softc, req, in dprov_init_token()
4166 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_init_pin() local
4170 instance = ddi_get_instance(softc->ds_dip); in dprov_init_pin()
4174 error = dprov_mgmt_submit_req(DPROV_REQ_MGMT_INITPIN, softc, req, in dprov_init_pin()
4189 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_set_pin() local
4193 instance = ddi_get_instance(softc->ds_dip); in dprov_set_pin()
4197 error = dprov_mgmt_submit_req(DPROV_REQ_MGMT_SETPIN, softc, req, in dprov_set_pin()
4915 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_nostore_key_generate() local
4919 instance = ddi_get_instance(softc->ds_dip); in dprov_nostore_key_generate()
4925 softc, req, session_id, mechanism, template, attribute_count, in dprov_nostore_key_generate()
4949 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_nostore_key_generate_pair() local
4953 instance = ddi_get_instance(softc->ds_dip); in dprov_nostore_key_generate_pair()
4959 softc, req, session_id, mechanism, public_key_template, in dprov_nostore_key_generate_pair()
4979 dprov_state_t *softc = (dprov_state_t *)provider; in dprov_nostore_key_derive() local
4983 instance = ddi_get_instance(softc->ds_dip); in dprov_nostore_key_derive()
4988 error = dprov_key_submit_req(DPROV_REQ_NOSTORE_KEY_DERIVE, softc, req, in dprov_nostore_key_derive()
5004 dprov_alloc_req(dprov_req_type_t req_type, dprov_state_t *softc, in dprov_alloc_req() argument
5013 taskq_req->dr_softc = softc; in dprov_alloc_req()
5025 dprov_taskq_dispatch(dprov_state_t *softc, dprov_req_t *taskq_req, in dprov_taskq_dispatch() argument
5028 if (taskq_dispatch(softc->ds_taskq, func, taskq_req, in dprov_taskq_dispatch()
5042 dprov_state_t *softc, crypto_req_handle_t req, in dprov_digest_submit_req() argument
5048 if ((taskq_req = dprov_alloc_req(req_type, softc, req, kmflag)) == NULL) in dprov_digest_submit_req()
5057 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_digest_submit_req()
5067 dprov_state_t *softc, crypto_req_handle_t req, in dprov_mac_submit_req() argument
5073 if ((taskq_req = dprov_alloc_req(req_type, softc, req, kmflag)) == NULL) in dprov_mac_submit_req()
5083 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_mac_submit_req()
5093 dprov_state_t *softc, crypto_req_handle_t req, in dprov_sign_submit_req() argument
5100 if ((taskq_req = dprov_alloc_req(req_type, softc, req, kmflag)) == NULL) in dprov_sign_submit_req()
5110 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_sign_submit_req()
5120 dprov_state_t *softc, crypto_req_handle_t req, in dprov_verify_submit_req() argument
5127 if ((taskq_req = dprov_alloc_req(req_type, softc, req, kmflag)) == NULL) in dprov_verify_submit_req()
5137 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_verify_submit_req()
5146 dprov_dual_submit_req(dprov_req_type_t req_type, dprov_state_t *softc, in dprov_dual_submit_req() argument
5153 if ((taskq_req = dprov_alloc_req(req_type, softc, req, in dprov_dual_submit_req()
5162 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_dual_submit_req()
5172 dprov_state_t *softc, crypto_req_handle_t req, crypto_ctx_t *ctx, in dprov_cipher_mac_submit_req() argument
5180 if ((taskq_req = dprov_alloc_req(req_type, softc, req, kmflag)) == NULL) in dprov_cipher_mac_submit_req()
5193 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_cipher_mac_submit_req()
5203 dprov_state_t *softc, crypto_req_handle_t req, in dprov_cipher_submit_req() argument
5210 if ((taskq_req = dprov_alloc_req(req_type, softc, req, kmflag)) == NULL) in dprov_cipher_submit_req()
5220 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_cipher_submit_req()
5230 dprov_state_t *softc, crypto_req_handle_t req, uchar_t *buf, size_t len, in dprov_random_submit_req() argument
5235 if ((taskq_req = dprov_alloc_req(req_type, softc, req, in dprov_random_submit_req()
5245 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_random_submit_req()
5256 dprov_state_t *softc, crypto_req_handle_t req, in dprov_session_submit_req() argument
5262 if ((taskq_req = dprov_alloc_req(req_type, softc, req, in dprov_session_submit_req()
5272 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_session_submit_req()
5282 dprov_state_t *softc, crypto_req_handle_t req, in dprov_object_submit_req() argument
5291 if ((taskq_req = dprov_alloc_req(req_type, softc, req, in dprov_object_submit_req()
5306 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_object_submit_req()
5316 dprov_state_t *softc, crypto_req_handle_t req, in dprov_key_submit_req() argument
5329 if ((taskq_req = dprov_alloc_req(req_type, softc, req, in dprov_key_submit_req()
5351 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_key_submit_req()
5361 dprov_state_t *softc, crypto_req_handle_t req, in dprov_mgmt_submit_req() argument
5368 if ((taskq_req = dprov_alloc_req(req_type, softc, req, in dprov_mgmt_submit_req()
5380 return (dprov_taskq_dispatch(softc, taskq_req, in dprov_mgmt_submit_req()
5406 dprov_state_t *softc; in dprov_digest_task() local
5413 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_digest_task()
5462 mutex_enter(&softc->ds_lock); in dprov_digest_task()
5463 error = dprov_key_value_secret(softc, ctx->cc_session, in dprov_digest_task()
5465 mutex_exit(&softc->ds_lock); in dprov_digest_task()
5522 dprov_state_t *softc; in dprov_mac_task() local
5530 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_mac_task()
5542 mutex_enter(&softc->ds_lock); in dprov_mac_task()
5543 error = dprov_key_value_secret(softc, ctx->cc_session, in dprov_mac_task()
5545 mutex_exit(&softc->ds_lock); in dprov_mac_task()
5594 mutex_enter(&softc->ds_lock); in dprov_mac_task()
5595 error = dprov_key_value_secret(softc, in dprov_mac_task()
5598 mutex_exit(&softc->ds_lock); in dprov_mac_task()
5638 dprov_state_t *softc; in dprov_sign_task() local
5646 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_sign_task()
5664 mutex_enter(&softc->ds_lock); in dprov_sign_task()
5666 if ((error = dprov_key_attr_asymmetric(softc, in dprov_sign_task()
5670 mutex_exit(&softc->ds_lock); in dprov_sign_task()
5675 if ((error = dprov_key_value_secret(softc, in dprov_sign_task()
5679 mutex_exit(&softc->ds_lock); in dprov_sign_task()
5684 mutex_exit(&softc->ds_lock); in dprov_sign_task()
5765 mutex_enter(&softc->ds_lock); in dprov_sign_task()
5768 if ((error = dprov_key_attr_asymmetric(softc, in dprov_sign_task()
5773 mutex_exit(&softc->ds_lock); in dprov_sign_task()
5778 if ((error = dprov_key_value_secret(softc, in dprov_sign_task()
5783 mutex_exit(&softc->ds_lock); in dprov_sign_task()
5788 mutex_exit(&softc->ds_lock); in dprov_sign_task()
5858 dprov_state_t *softc; in dprov_verify_task() local
5866 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_verify_task()
5884 mutex_enter(&softc->ds_lock); in dprov_verify_task()
5887 if ((error = dprov_key_attr_asymmetric(softc, in dprov_verify_task()
5891 mutex_exit(&softc->ds_lock); in dprov_verify_task()
5896 if ((error = dprov_key_value_secret(softc, in dprov_verify_task()
5900 mutex_exit(&softc->ds_lock); in dprov_verify_task()
5905 mutex_exit(&softc->ds_lock); in dprov_verify_task()
5985 mutex_enter(&softc->ds_lock); in dprov_verify_task()
5988 if ((error = dprov_key_attr_asymmetric(softc, in dprov_verify_task()
5993 mutex_exit(&softc->ds_lock); in dprov_verify_task()
5998 if ((error = dprov_key_value_secret(softc, in dprov_verify_task()
6003 mutex_exit(&softc->ds_lock); in dprov_verify_task()
6008 mutex_exit(&softc->ds_lock); in dprov_verify_task()
6060 dprov_state_t *softc; in dprov_dual_task() local
6067 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_dual_task()
6116 dprov_state_t *softc; in dprov_cipher_task() local
6124 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_cipher_task()
6139 mutex_enter(&softc->ds_lock); in dprov_cipher_task()
6142 if ((error = dprov_key_attr_asymmetric(softc, in dprov_cipher_task()
6146 mutex_exit(&softc->ds_lock); in dprov_cipher_task()
6151 if ((error = dprov_key_value_secret(softc, in dprov_cipher_task()
6155 mutex_exit(&softc->ds_lock); in dprov_cipher_task()
6160 mutex_exit(&softc->ds_lock); in dprov_cipher_task()
6249 mutex_enter(&softc->ds_lock); in dprov_cipher_task()
6252 if ((error = dprov_key_attr_asymmetric(softc, in dprov_cipher_task()
6257 mutex_exit(&softc->ds_lock); in dprov_cipher_task()
6262 if ((error = dprov_key_value_secret(softc, in dprov_cipher_task()
6267 mutex_exit(&softc->ds_lock); in dprov_cipher_task()
6272 mutex_exit(&softc->ds_lock); in dprov_cipher_task()
6308 dprov_cipher_mac_key_pd(dprov_state_t *softc, crypto_session_id_t sid, in dprov_cipher_mac_key_pd() argument
6316 mutex_enter(&softc->ds_lock); in dprov_cipher_mac_key_pd()
6317 error = dprov_key_value_secret(softc, sid, DPROV_REQ_ENCRYPT_ATOMIC, in dprov_cipher_mac_key_pd()
6320 mutex_exit(&softc->ds_lock); in dprov_cipher_mac_key_pd()
6325 error = dprov_key_value_secret(softc, sid, DPROV_REQ_MAC_ATOMIC, in dprov_cipher_mac_key_pd()
6327 mutex_exit(&softc->ds_lock); in dprov_cipher_mac_key_pd()
6350 dprov_state_t *softc; in dprov_cipher_mac_task() local
6366 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_cipher_mac_task()
6378 if ((error = dprov_cipher_mac_key_pd(softc, ctx->cc_session, in dprov_cipher_mac_task()
6577 if ((error = dprov_cipher_mac_key_pd(softc, session_id, in dprov_cipher_mac_task()
6701 if ((error = dprov_cipher_mac_key_pd(softc, session_id, in dprov_cipher_mac_task()
6741 dprov_state_t *softc; in dprov_random_task() local
6746 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_random_task()
6749 mutex_enter(&softc->ds_lock); in dprov_random_task()
6776 mutex_exit(&softc->ds_lock); in dprov_random_task()
6788 dprov_state_t *softc; in dprov_session_task() local
6798 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_session_task()
6802 mutex_enter(&softc->ds_lock); in dprov_session_task()
6806 if ((session = softc->ds_sessions[session_id]) == NULL) { in dprov_session_task()
6807 mutex_exit(&softc->ds_lock); in dprov_session_task()
6817 if (softc->ds_token_initialized == B_FALSE) { in dprov_session_task()
6823 for (i = 0; i < softc->ds_sessions_slots; i++) in dprov_session_task()
6824 if (softc->ds_sessions[i] == NULL) in dprov_session_task()
6827 if (i == softc->ds_sessions_slots) { in dprov_session_task()
6830 2 * softc->ds_sessions_slots * in dprov_session_task()
6836 bcopy(softc->ds_sessions, new_sessions, in dprov_session_task()
6837 softc->ds_sessions_slots * in dprov_session_task()
6839 kmem_free(softc->ds_sessions, softc->ds_sessions_slots * in dprov_session_task()
6841 softc->ds_sessions = new_sessions; in dprov_session_task()
6842 softc->ds_sessions_slots *= 2; in dprov_session_task()
6846 softc->ds_sessions[i] = kmem_zalloc( in dprov_session_task()
6848 if (softc->ds_sessions[i] == NULL) { in dprov_session_task()
6852 softc->ds_sessions_count++; in dprov_session_task()
6855 softc->ds_sessions[i]->ds_state = DPROV_SESSION_STATE_PUBLIC; in dprov_session_task()
6865 softc->ds_sessions[session_id] = NULL; in dprov_session_task()
6867 if (softc->ds_token_initialized == B_FALSE) { in dprov_session_task()
6876 softc->ds_sessions_count--; in dprov_session_task()
6906 if ((user_type == CRYPTO_SO) && !softc->ds_token_initialized || in dprov_session_task()
6907 (user_type == CRYPTO_USER) && !softc->ds_user_pin_set) { in dprov_session_task()
6913 softc->ds_sessions[session_id]->ds_state == in dprov_session_task()
6916 softc->ds_sessions[session_id]->ds_state == in dprov_session_task()
6923 if (softc->ds_sessions[session_id]->ds_state != in dprov_session_task()
6931 softc->ds_sessions[session_id]->ds_state = in dprov_session_task()
6941 if (softc->ds_sessions[session_id]->ds_state == in dprov_session_task()
6952 object = softc->ds_sessions[session_id]->ds_objects[i]; in dprov_session_task()
6957 softc->ds_sessions[session_id]->ds_objects[i] = in dprov_session_task()
6963 softc->ds_sessions[session_id]->ds_state = in dprov_session_task()
6970 mutex_exit(&softc->ds_lock); in dprov_session_task()
7006 dprov_state_t *softc; in dprov_object_task() local
7018 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_object_task()
7021 mutex_enter(&softc->ds_lock); in dprov_object_task()
7024 if ((session = softc->ds_sessions[session_id]) == NULL) { in dprov_object_task()
7025 mutex_exit(&softc->ds_lock); in dprov_object_task()
7034 if ((error = dprov_create_object_from_template(softc, session, in dprov_object_task()
7054 if ((error = dprov_create_object_from_template(softc, session, in dprov_object_task()
7073 error = dprov_destroy_object(softc, session, in dprov_object_task()
7242 if ((object = softc->ds_objects[to_idx]) == NULL) in dprov_object_task()
7326 mutex_exit(&softc->ds_lock); in dprov_object_task()
7403 dprov_state_t *softc; in dprov_key_task() local
7411 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_key_task()
7414 mutex_enter(&softc->ds_lock); in dprov_key_task()
7417 if ((session = softc->ds_sessions[session_id]) == NULL) { in dprov_key_task()
7418 mutex_exit(&softc->ds_lock); in dprov_key_task()
7539 error = dprov_create_object_from_template(softc, session, in dprov_key_task()
7589 (void) dprov_destroy_object(softc, session, *object_id_ptr); in dprov_key_task()
7681 error = dprov_create_object_from_template(softc, session, in dprov_key_task()
7730 error = dprov_create_object_from_template(softc, session, in dprov_key_task()
7781 (void) dprov_destroy_object(softc, session, in dprov_key_task()
7784 (void) dprov_destroy_object(softc, session, in dprov_key_task()
7810 if ((error = dprov_key_attr_asymmetric(softc, in dprov_key_task()
7817 if ((error = dprov_key_value_secret(softc, in dprov_key_task()
7946 if ((error = dprov_key_attr_asymmetric(softc, in dprov_key_task()
7953 if ((error = dprov_key_value_secret(softc, in dprov_key_task()
7995 error = dprov_create_object_from_template(softc, session, in dprov_key_task()
8028 (void) dprov_destroy_object(softc, session, *object_id_ptr); in dprov_key_task()
8155 error = dprov_key_value_secret(softc, session_id, in dprov_key_task()
8183 error = dprov_create_object_from_template(softc, session, in dprov_key_task()
8197 (void) dprov_destroy_object(softc, session, in dprov_key_task()
8485 mutex_exit(&softc->ds_lock); in dprov_key_task()
8496 dprov_state_t *softc; in dprov_mgmt_task() local
8501 DPROV_SOFTC_FROM_REQ(taskq_req, softc, instance); in dprov_mgmt_task()
8504 mutex_enter(&softc->ds_lock); in dprov_mgmt_task()
8512 if (!softc->ds_token_initialized) { in dprov_mgmt_task()
8516 bcopy(softc->ds_label, ext_info->ei_label, in dprov_mgmt_task()
8543 if (softc->ds_user_pin_set) in dprov_mgmt_task()
8545 if (softc->ds_token_initialized) in dprov_mgmt_task()
8559 if (softc->ds_sessions_count > 0) { in dprov_mgmt_task()
8580 if (softc->ds_token_initialized && in dprov_mgmt_task()
8581 (softc->ds_so_pin_len != pin_len || in dprov_mgmt_task()
8582 strncmp(softc->ds_so_pin, pin, pin_len) != 0)) { in dprov_mgmt_task()
8589 bcopy(label, softc->ds_label, CRYPTO_EXT_SIZE_LABEL); in dprov_mgmt_task()
8592 bcopy(pin, softc->ds_so_pin, pin_len); in dprov_mgmt_task()
8593 softc->ds_so_pin_len = pin_len; in dprov_mgmt_task()
8594 softc->ds_token_initialized = B_TRUE; in dprov_mgmt_task()
8595 softc->ds_user_pin_set = B_FALSE; in dprov_mgmt_task()
8607 if (softc->ds_sessions[session_id] == NULL) { in dprov_mgmt_task()
8613 if (softc->ds_sessions[session_id]->ds_state != in dprov_mgmt_task()
8632 bcopy(pin, softc->ds_user_pin, pin_len); in dprov_mgmt_task()
8633 softc->ds_user_pin_len = pin_len; in dprov_mgmt_task()
8634 softc->ds_user_pin_set = B_TRUE; in dprov_mgmt_task()
8648 if (softc->ds_sessions[session_id] == NULL) { in dprov_mgmt_task()
8667 if (!softc->ds_user_pin_set) { in dprov_mgmt_task()
8676 if (softc->ds_user_pin_len != old_pin_len || in dprov_mgmt_task()
8677 strncmp(softc->ds_user_pin, old_pin, old_pin_len) != 0) { in dprov_mgmt_task()
8684 bcopy(new_pin, softc->ds_user_pin, new_pin_len); in dprov_mgmt_task()
8685 softc->ds_user_pin_len = new_pin_len; in dprov_mgmt_task()
8692 mutex_exit(&softc->ds_lock); in dprov_mgmt_task()
8818 dprov_key_value_secret(dprov_state_t *softc, crypto_session_id_t session_id, in dprov_key_value_secret() argument
8869 if (softc->ds_sessions[session_id] == NULL) { in dprov_key_value_secret()
8880 object = softc->ds_sessions[session_id]-> in dprov_key_value_secret()
8930 dprov_key_attr_asymmetric(dprov_state_t *softc, crypto_session_id_t session_id, in dprov_key_attr_asymmetric() argument
8948 if (softc->ds_sessions[session_id] == NULL) { in dprov_key_attr_asymmetric()
8954 object = softc->ds_sessions[session_id]-> in dprov_key_attr_asymmetric()
9110 dprov_create_object_from_template(dprov_state_t *softc, in dprov_create_object_from_template() argument
9151 if (softc->ds_objects[i] == NULL) in dprov_create_object_from_template()
9156 softc->ds_objects[i] = object; in dprov_create_object_from_template()
9294 dprov_destroy_object(dprov_state_t *softc, dprov_session_t *session, in dprov_destroy_object() argument
9309 softc->ds_objects[object->do_token_idx] = NULL; in dprov_destroy_object()