1 /**********************************************************************/
3 /* Prototypes of the CCA verbs used by the 4758 CCA openssl driver */
5 /* Maurice Gittens <maurice@gittens.nl> */
7 /**********************************************************************/
9 #ifndef __HW_4758_CCA__
10 # define __HW_4758_CCA__
13 * Only WIN32 support for now
17 # define CCA_LIB_NAME "CSUNSAPI"
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"
27 # define SECURITYAPI __stdcall
30 * Fixme!! Find out the values of these constants for other platforms.
32 # define CCA_LIB_NAME "CSUNSAPI"
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"
46 * security API prototypes
49 /* PKA Key Record Read */
50 typedef void (SECURITYAPI * F_KEYRECORDREAD)
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);
59 /* Random Number Generate */
60 typedef void (SECURITYAPI * F_RANDOMNUMBERGENERATE)
63 long *exit_data_length,
64 unsigned char *exit_data,
65 unsigned char *form, unsigned char *random_number);
67 /* Digital Signature Generate */
68 typedef void (SECURITYAPI * F_DIGITALSIGNATUREGENERATE)
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,
79 long *signature_field_length,
80 long *signature_bit_length, unsigned char *signature_field);
82 /* Digital Signature Verify */
83 typedef void (SECURITYAPI * F_DIGITALSIGNATUREVERIFY) (long *return_code,
85 long *exit_data_length,
88 long *rule_array_count,
92 *PKA_public_key_id_length,
98 *signature_field_length,
102 /* PKA Public Key Extract */
103 typedef void (SECURITYAPI * F_PUBLICKEYEXTRACT) (long *return_code,
105 long *exit_data_length,
106 unsigned char *exit_data,
107 long *rule_array_count,
108 unsigned char *rule_array,
110 *source_key_identifier_length,
112 *source_key_identifier,
114 *target_key_token_length,
119 typedef void (SECURITYAPI * F_PKAENCRYPT)
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);
135 typedef void (SECURITYAPI * F_PKADECRYPT)
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);