hw_4758_cca.h revision 296465
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 */
50typedef 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 */
60typedef 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 */
68typedef 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 */
83typedef 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 */
103typedef 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 */
119typedef 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 */
135typedef 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