digest_key
crypto_digest_key_t digest_key;
digest_key.dk_session = session_p->k_session;
digest_key.dk_key.ck_format = CRYPTO_KEY_REFERENCE;
digest_key.dk_key.ck_obj_id = key_p->k_handle;
&digest_key)) < 0) {
digest_key.dk_return_value);
STRUCT_DECL(crypto_digest_key, digest_key);
STRUCT_INIT(digest_key, mode);
if (copyin(arg, STRUCT_BUF(digest_key), STRUCT_SIZE(digest_key)) != 0) {
session_id = STRUCT_FGET(digest_key, dk_session);
if (!copyin_key(mode, sp, STRUCT_FADDR(digest_key, dk_key), &key,
STRUCT_FSET(digest_key, dk_return_value, rv);
if (copyout(STRUCT_BUF(digest_key), arg,
STRUCT_SIZE(digest_key)) != 0) {
return (digest_key(dev, ARG, mode, rval));
if (digest_ops->digest_key != NULL)
dprov_digest_ops.digest_key = NULL;
(KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest_key) ? \
KCF_PROV_DIGEST_OPS(pd)->digest_key(ctx, key, req) : \
int (*digest_key)(crypto_ctx_t *, crypto_key_t *, crypto_req_handle_t);