1 /**********************************************************************/ 2 /* */ 3 /* Prototypes of the CCA verbs used by the 4758 CCA openssl driver */ 4 /* */ 5 /* Maurice Gittens <maurice@gittens.nl> */ 6 /* */ 7 /**********************************************************************/ 8 9 #ifndef __HW_4758_CCA__ 10 # define __HW_4758_CCA__ 11 12 /* 13 * Only WIN32 support for now 14 */ 15 # if defined(WIN32) 16 17 # define CCA_LIB_NAME "CSUNSAPI" 18 19 # define CSNDPKX "CSNDPKX_32" 20 # define CSNDKRR "CSNDKRR_32" 21 # define CSNDPKE "CSNDPKE_32" 22 # define CSNDPKD "CSNDPKD_32" 23 # define CSNDDSV "CSNDDSV_32" 24 # define CSNDDSG "CSNDDSG_32" 25 # define CSNBRNG "CSNBRNG_32" 26 27 # define SECURITYAPI __stdcall 28 # else 29 /* 30 * Fixme!! Find out the values of these constants for other platforms. 31 */ 32 # define CCA_LIB_NAME "CSUNSAPI" 33 34 # define CSNDPKX "CSNDPKX" 35 # define CSNDKRR "CSNDKRR" 36 # define CSNDPKE "CSNDPKE" 37 # define CSNDPKD "CSNDPKD" 38 # define CSNDDSV "CSNDDSV" 39 # define CSNDDSG "CSNDDSG" 40 # define CSNBRNG "CSNBRNG" 41 42 # define SECURITYAPI 43 # endif 44 45 /* 46 * security API prototypes 47 */ 48 49 /* PKA Key Record Read */ 50 typedef void (SECURITYAPI * F_KEYRECORDREAD) 51 (long *return_code, 52 long *reason_code, 53 long *exit_data_length, 54 unsigned char *exit_data, 55 long *rule_array_count, 56 unsigned char *rule_array, 57 unsigned char *key_label, long *key_token_length, unsigned char *key_token); 58 59 /* Random Number Generate */ 60 typedef void (SECURITYAPI * F_RANDOMNUMBERGENERATE) 61 (long *return_code, 62 long *reason_code, 63 long *exit_data_length, 64 unsigned char *exit_data, 65 unsigned char *form, unsigned char *random_number); 66 67 /* Digital Signature Generate */ 68 typedef void (SECURITYAPI * F_DIGITALSIGNATUREGENERATE) 69 (long *return_code, 70 long *reason_code, 71 long *exit_data_length, 72 unsigned char *exit_data, 73 long *rule_array_count, 74 unsigned char *rule_array, 75 long *PKA_private_key_id_length, 76 unsigned char *PKA_private_key_id, 77 long *hash_length, 78 unsigned char *hash, 79 long *signature_field_length, 80 long *signature_bit_length, unsigned char *signature_field); 81 82 /* Digital Signature Verify */ 83 typedef void (SECURITYAPI * F_DIGITALSIGNATUREVERIFY) (long *return_code, 84 long *reason_code, 85 long *exit_data_length, 86 unsigned char 87 *exit_data, 88 long *rule_array_count, 89 unsigned char 90 *rule_array, 91 long 92 *PKA_public_key_id_length, 93 unsigned char 94 *PKA_public_key_id, 95 long *hash_length, 96 unsigned char *hash, 97 long 98 *signature_field_length, 99 unsigned char 100 *signature_field); 101 102 /* PKA Public Key Extract */ 103 typedef void (SECURITYAPI * F_PUBLICKEYEXTRACT) (long *return_code, 104 long *reason_code, 105 long *exit_data_length, 106 unsigned char *exit_data, 107 long *rule_array_count, 108 unsigned char *rule_array, 109 long 110 *source_key_identifier_length, 111 unsigned char 112 *source_key_identifier, 113 long 114 *target_key_token_length, 115 unsigned char 116 *target_key_token); 117 118 /* PKA Encrypt */ 119 typedef void (SECURITYAPI * F_PKAENCRYPT) 120 (long *return_code, 121 long *reason_code, 122 long *exit_data_length, 123 unsigned char *exit_data, 124 long *rule_array_count, 125 unsigned char *rule_array, 126 long *key_value_length, 127 unsigned char *key_value, 128 long *data_struct_length, 129 unsigned char *data_struct, 130 long *RSA_public_key_length, 131 unsigned char *RSA_public_key, 132 long *RSA_encipher_length, unsigned char *RSA_encipher); 133 134 /* PKA Decrypt */ 135 typedef void (SECURITYAPI * F_PKADECRYPT) 136 (long *return_code, 137 long *reason_code, 138 long *exit_data_length, 139 unsigned char *exit_data, 140 long *rule_array_count, 141 unsigned char *rule_array, 142 long *enciphered_key_length, 143 unsigned char *enciphered_key, 144 long *data_struct_length, 145 unsigned char *data_struct, 146 long *RSA_private_key_length, 147 unsigned char *RSA_private_key, 148 long *key_value_length, unsigned char *key_value); 149 150 #endif 151