/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_CRYPTO_IOCTL_H
#define _SYS_CRYPTO_IOCTL_H
#ifdef __cplusplus
extern "C" {
#endif
/* the PKCS11 Mechanisms */
/*
* General Purpose Ioctls
*/
typedef struct fl_mechs_threshold {
int mech_type;
typedef struct crypto_function_list {
typedef struct crypto_get_function_list {
typedef struct crypto_get_mechanism_number {
#ifdef _KERNEL
#ifdef _SYSCALL32
#pragma pack(4)
#endif
typedef struct crypto_get_mechanism_number32 {
#pragma pack()
#endif
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* Session Ioctls
*/
typedef struct crypto_open_session {
typedef struct crypto_close_session {
typedef struct crypto_close_all_sessions {
/*
* Login Ioctls
*/
typedef struct crypto_login {
typedef struct crypto_logout {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_login32 {
typedef struct crypto_logout32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/* flag for encrypt and decrypt operations */
/*
* Cryptographic Ioctls
*/
typedef struct crypto_encrypt {
typedef struct crypto_encrypt_init {
typedef struct crypto_encrypt_update {
typedef struct crypto_encrypt_final {
typedef struct crypto_decrypt {
typedef struct crypto_decrypt_init {
typedef struct crypto_decrypt_update {
typedef struct crypto_decrypt_final {
typedef struct crypto_digest {
typedef struct crypto_digest_init {
typedef struct crypto_digest_update {
typedef struct crypto_digest_key {
typedef struct crypto_digest_final {
typedef struct crypto_mac {
} crypto_mac_t;
typedef struct crypto_mac_init {
typedef struct crypto_mac_update {
typedef struct crypto_mac_final {
typedef struct crypto_sign {
typedef struct crypto_sign_init {
typedef struct crypto_sign_update {
typedef struct crypto_sign_final {
typedef struct crypto_sign_recover_init {
typedef struct crypto_sign_recover {
typedef struct crypto_verify {
typedef struct crypto_verify_init {
typedef struct crypto_verify_update {
typedef struct crypto_verify_final {
typedef struct crypto_verify_recover_init {
typedef struct crypto_verify_recover {
typedef struct crypto_digest_encrypt_update {
typedef struct crypto_decrypt_digest_update {
typedef struct crypto_sign_encrypt_update {
typedef struct crypto_decrypt_verify_update {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_encrypt32 {
#pragma pack(4)
#endif
typedef struct crypto_encrypt_init32 {
#pragma pack()
#endif
typedef struct crypto_encrypt_update32 {
typedef struct crypto_encrypt_final32 {
typedef struct crypto_decrypt32 {
#pragma pack(4)
#endif
typedef struct crypto_decrypt_init32 {
#pragma pack()
#endif
typedef struct crypto_decrypt_update32 {
typedef struct crypto_decrypt_final32 {
typedef struct crypto_digest32 {
typedef struct crypto_digest_init32 {
typedef struct crypto_digest_update32 {
typedef struct crypto_digest_key32 {
typedef struct crypto_digest_final32 {
typedef struct crypto_mac32 {
#pragma pack(4)
#endif
typedef struct crypto_mac_init32 {
#pragma pack()
#endif
typedef struct crypto_mac_update32 {
typedef struct crypto_mac_final32 {
typedef struct crypto_sign32 {
#pragma pack(4)
#endif
typedef struct crypto_sign_init32 {
#pragma pack()
#endif
typedef struct crypto_sign_update32 {
typedef struct crypto_sign_final32 {
#pragma pack(4)
#endif
typedef struct crypto_sign_recover_init32 {
#pragma pack()
#endif
typedef struct crypto_sign_recover32 {
typedef struct crypto_verify32 {
#pragma pack(4)
#endif
typedef struct crypto_verify_init32 {
#pragma pack()
#endif
typedef struct crypto_verify_update32 {
typedef struct crypto_verify_final32 {
#pragma pack(4)
#endif
typedef struct crypto_verify_recover_init32 {
#pragma pack()
#endif
typedef struct crypto_verify_recover32 {
typedef struct crypto_digest_encrypt_update32 {
typedef struct crypto_decrypt_digest_update32 {
typedef struct crypto_sign_encrypt_update32 {
typedef struct crypto_decrypt_verify_update32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* Random Number Ioctls
*/
typedef struct crypto_seed_random {
typedef struct crypto_generate_random {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_seed_random32 {
typedef struct crypto_generate_random32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* Object Management Ioctls
*/
typedef struct crypto_object_create {
typedef struct crypto_object_copy {
typedef struct crypto_object_destroy {
typedef struct crypto_object_get_attribute_value {
typedef struct crypto_object_get_size {
typedef struct crypto_object_set_attribute_value {
typedef struct crypto_object_find_init {
typedef struct crypto_object_find_update {
typedef struct crypto_object_find_final {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_object_create32 {
typedef struct crypto_object_copy32 {
typedef struct crypto_object_destroy32 {
typedef struct crypto_object_get_attribute_value32 {
typedef struct crypto_object_get_size32 {
typedef struct crypto_object_set_attribute_value32 {
typedef struct crypto_object_find_init32 {
typedef struct crypto_object_find_update32 {
typedef struct crypto_object_find_final32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* Key Generation Ioctls
*/
typedef struct crypto_object_generate_key {
typedef struct crypto_object_generate_key_pair {
typedef struct crypto_object_wrap_key {
typedef struct crypto_object_unwrap_key {
typedef struct crypto_derive_key {
#ifdef _KERNEL
#ifdef _SYSCALL32
#pragma pack(4)
#endif
typedef struct crypto_object_generate_key32 {
#pragma pack()
#endif
typedef struct crypto_object_generate_key_pair32 {
typedef struct crypto_object_wrap_key32 {
typedef struct crypto_object_unwrap_key32 {
typedef struct crypto_derive_key32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* Provider Management Ioctls
*/
typedef struct crypto_get_provider_list {
typedef struct crypto_provider_data {
typedef struct crypto_get_provider_info {
typedef struct crypto_get_provider_mechanisms {
typedef struct crypto_get_provider_mechanism_info {
typedef struct crypto_init_token {
typedef struct crypto_init_pin {
typedef struct crypto_set_pin {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_get_provider_list32 {
typedef struct crypto_version32 {
typedef struct crypto_provider_data32 {
typedef struct crypto_get_provider_info32 {
typedef struct crypto_get_provider_mechanisms32 {
typedef struct crypto_init_token32 {
typedef struct crypto_init_pin32 {
typedef struct crypto_set_pin32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* No (Key) Store Key Generation Ioctls
*/
typedef struct crypto_nostore_generate_key {
typedef struct crypto_nostore_generate_key_pair {
typedef struct crypto_nostore_derive_key {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_nostore_generate_key32 {
typedef struct crypto_nostore_generate_key_pair32 {
#pragma pack(4)
#endif
typedef struct crypto_nostore_derive_key32 {
#pragma pack()
#endif
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
/*
* Mechanism Ioctls
*/
typedef struct crypto_get_mechanism_list {
typedef struct crypto_get_all_mechanism_info {
#ifdef _KERNEL
#ifdef _SYSCALL32
typedef struct crypto_get_mechanism_list32 {
typedef struct crypto_get_all_mechanism_info32 {
#endif /* _SYSCALL32 */
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_CRYPTO_IOCTL_H */