kcf_session.c revision 9b009fc1b553084f6003dcd46b171890049de0ff
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * CDDL HEADER START
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * The contents of this file are subject to the terms of the
9b009fc1b553084f6003dcd46b171890049de0ffValerie Bubb Fenwick * Common Development and Distribution License (the "License").
9b009fc1b553084f6003dcd46b171890049de0ffValerie Bubb Fenwick * You may not use this file except in compliance with the License.
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * See the License for the specific language governing permissions
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * and limitations under the License.
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * When distributing Covered Code, include this CDDL HEADER in each
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * If applicable, add the following below this CDDL HEADER, with the
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * fields enclosed by brackets "[]" replaced with your own identifying
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * information: Portions Copyright [yyyy] [name of copyright owner]
894b27768c68091df4918b3219c91ed77d2d4054mcpowers * CDDL HEADER END
9b009fc1b553084f6003dcd46b171890049de0ffValerie Bubb Fenwick * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
894b27768c68091df4918b3219c91ed77d2d4054mcpowers#define CRYPTO_OPS_OFFSET(f) offsetof(crypto_ops_t, co_##f)
894b27768c68091df4918b3219c91ed77d2d4054mcpowers#define CRYPTO_OBJECT_OFFSET(f) offsetof(crypto_object_ops_t, f)
894b27768c68091df4918b3219c91ed77d2d4054mcpowers#define CRYPTO_SESSION_OFFSET(f) offsetof(crypto_session_ops_t, f)
894b27768c68091df4918b3219c91ed77d2d4054mcpowerscrypto_session_open(crypto_provider_t provider, crypto_session_id_t *sidp,
894b27768c68091df4918b3219c91ed77d2d4054mcpowers /* find a provider that supports session ops */
894b27768c68091df4918b3219c91ed77d2d4054mcpowers (void) kcf_get_hardware_provider_nomech(CRYPTO_OPS_OFFSET(session_ops),
9b009fc1b553084f6003dcd46b171890049de0ffValerie Bubb Fenwick CRYPTO_SESSION_OFFSET(session_open), pd, &real_provider);
894b27768c68091df4918b3219c91ed77d2d4054mcpowerscrypto_session_close(crypto_provider_t provider, crypto_session_id_t sid,
894b27768c68091df4918b3219c91ed77d2d4054mcpowers /* find a provider that supports session ops */
894b27768c68091df4918b3219c91ed77d2d4054mcpowers (void) kcf_get_hardware_provider_nomech(CRYPTO_OPS_OFFSET(session_ops),
9b009fc1b553084f6003dcd46b171890049de0ffValerie Bubb Fenwick CRYPTO_SESSION_OFFSET(session_close), pd, &real_provider);
894b27768c68091df4918b3219c91ed77d2d4054mcpowers /* edge case is where the logical provider has no members */
894b27768c68091df4918b3219c91ed77d2d4054mcpowers /* The fast path for SW providers. */
894b27768c68091df4918b3219c91ed77d2d4054mcpowerscrypto_session_login(crypto_provider_t provider, crypto_session_id_t sid,
894b27768c68091df4918b3219c91ed77d2d4054mcpowers crypto_user_type_t type, char *pin, ulong_t len, crypto_call_req_t *crq)
894b27768c68091df4918b3219c91ed77d2d4054mcpowers rv = kcf_get_hardware_provider_nomech(CRYPTO_OPS_OFFSET(
894b27768c68091df4918b3219c91ed77d2d4054mcpowers session_ops), CRYPTO_SESSION_OFFSET(session_login),
894b27768c68091df4918b3219c91ed77d2d4054mcpowers KCF_WRAP_SESSION_OPS_PARAMS(¶ms, KCF_OP_SESSION_LOGIN,
894b27768c68091df4918b3219c91ed77d2d4054mcpowerscrypto_session_logout(crypto_provider_t provider, crypto_session_id_t sid,
894b27768c68091df4918b3219c91ed77d2d4054mcpowers rv = kcf_get_hardware_provider_nomech(CRYPTO_OPS_OFFSET(
894b27768c68091df4918b3219c91ed77d2d4054mcpowers session_ops), CRYPTO_SESSION_OFFSET(session_logout),