1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 23 */ 24 25 #ifndef _KMSGLOBAL_H 26 #define _KMSGLOBAL_H 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 #include <sys/crypto/common.h> 33 #include <security/cryptoki.h> 34 #include <security/pkcs11t.h> 35 #include "kmsObject.h" 36 37 typedef struct kms_elem { 38 CK_MECHANISM_TYPE type; 39 struct kms_elem *knext; /* Next in hash chain */ 40 } kms_elem_t; 41 42 extern kms_elem_t **kms_mechhash; 43 extern boolean_t kms_initialized; 44 45 #define KMECH_HASHTABLE_SIZE 67 46 47 /* CK_INFO: Information about cryptoki */ 48 #define CRYPTOKI_VERSION_MAJOR 2 49 #define CRYPTOKI_VERSION_MINOR 20 50 #define MANUFACTURER_ID "Oracle Corporation " 51 #define LIBRARY_DESCRIPTION "Oracle Key Management System " 52 #define LIBRARY_VERSION_MAJOR 1 53 #define LIBRARY_VERSION_MINOR 0 54 55 /* CK_SLOT_INFO: Information about our slot */ 56 #define SLOT_DESCRIPTION "Oracle Key Management System " \ 57 " " 58 #define KMS_TOKEN_LABEL "KMS " 59 #define KMS_TOKEN_MODEL " " 60 #define KMS_TOKEN_SERIAL " " 61 #define KMS_TOKEN_FLAGS CKF_LOGIN_REQUIRED 62 #define MAX_PIN_LEN 256 63 #define MIN_PIN_LEN 1 64 #define HARDWARE_VERSION_MAJOR 0 65 #define HARDWARE_VERSION_MINOR 0 66 #define FIRMWARE_VERSION_MAJOR 0 67 #define FIRMWARE_VERSION_MINOR 0 68 69 CK_RV crypto2pkcs11_error_number(uint_t); 70 CK_RV kms_mech(CK_MECHANISM_TYPE); 71 unsigned char *get_symmetric_key_value(kms_object_t *); 72 void free_key_attributes(); 73 74 CK_RV process_object_attributes(CK_ATTRIBUTE_PTR, CK_ULONG, caddr_t *, 75 CK_BBOOL *); 76 CK_RV get_object_attributes(CK_ATTRIBUTE_PTR, CK_ULONG, caddr_t); 77 void free_object_attributes(caddr_t, CK_ULONG); 78 CK_RV process_found_objects(kms_session_t *, CK_OBJECT_HANDLE *, 79 CK_ULONG *); 80 CK_RV get_mechanism_info(kms_slot_t *, CK_MECHANISM_TYPE, 81 CK_MECHANISM_INFO_PTR, uint32_t *); 82 CK_RV kms_add_extra_attr(CK_ATTRIBUTE_PTR, kms_object_t *); 83 84 #ifdef __cplusplus 85 } 86 #endif 87 88 #endif /* _KMSGLOBAL_H */ 89