hw_4758_cca.h 5.44 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/**********************************************************************/
/*                                                                    */
/*  Prototypes of the CCA verbs used by the 4758 CCA openssl driver   */
/*                                                                    */
/*  Maurice Gittens <maurice@gittens.nl>                              */
/*                                                                    */
/**********************************************************************/

#ifndef __HW_4758_CCA__
#define __HW_4758_CCA__

/*
 *  Only WIN32 support for now
 */
#if defined(WIN32)

  #define CCA_LIB_NAME "CSUNSAPI"

  #define CSNDPKX   "CSNDPKX_32"
  #define CSNDKRR   "CSNDKRR_32"
  #define CSNDPKE   "CSNDPKE_32"
  #define CSNDPKD   "CSNDPKD_32"
  #define CSNDDSV   "CSNDDSV_32"
  #define CSNDDSG   "CSNDDSG_32"
  #define CSNBRNG   "CSNBRNG_32"

  #define SECURITYAPI __stdcall
#else
    /* Fixme!!         
      Find out the values of these constants for other platforms.
    */
  #define CCA_LIB_NAME "CSUNSAPI"

  #define CSNDPKX   "CSNDPKX"
  #define CSNDKRR   "CSNDKRR"
  #define CSNDPKE   "CSNDPKE"
  #define CSNDPKD   "CSNDPKD"
  #define CSNDDSV   "CSNDDSV"
  #define CSNDDSG   "CSNDDSG"
  #define CSNBRNG   "CSNBRNG"

  #define SECURITYAPI
#endif

/*
 * security API prototypes
 */

/* PKA Key Record Read */
typedef void (SECURITYAPI *F_KEYRECORDREAD)
             (long          * return_code,
              long          * reason_code,
              long          * exit_data_length,
              unsigned char * exit_data,
              long          * rule_array_count,
              unsigned char * rule_array,
              unsigned char * key_label,
              long          * key_token_length,
              unsigned char * key_token);

/* Random Number Generate */
typedef void (SECURITYAPI *F_RANDOMNUMBERGENERATE)
             (long          * return_code,
              long          * reason_code,
              long          * exit_data_length,
              unsigned char * exit_data,
              unsigned char * form,
              unsigned char * random_number);

/* Digital Signature Generate */
typedef void (SECURITYAPI *F_DIGITALSIGNATUREGENERATE)
             (long          * return_code,
              long          * reason_code,
              long          * exit_data_length,
              unsigned char * exit_data,
              long          * rule_array_count,
              unsigned char * rule_array,
              long          * PKA_private_key_id_length,
              unsigned char * PKA_private_key_id,
              long          * hash_length,
              unsigned char * hash,
              long          * signature_field_length,
              long          * signature_bit_length,
              unsigned char * signature_field);

/* Digital Signature Verify */
typedef void (SECURITYAPI *F_DIGITALSIGNATUREVERIFY)(
              long          * return_code,
              long          * reason_code,
              long          * exit_data_length,
              unsigned char * exit_data,
              long          * rule_array_count,
              unsigned char * rule_array,
              long          * PKA_public_key_id_length,
              unsigned char * PKA_public_key_id,
              long          * hash_length,
              unsigned char * hash,
              long          * signature_field_length,
              unsigned char * signature_field);

/* PKA Public Key Extract */
typedef void (SECURITYAPI *F_PUBLICKEYEXTRACT)(
              long          * return_code,
              long          * reason_code,
              long          * exit_data_length,
              unsigned char * exit_data,
              long          * rule_array_count,
              unsigned char * rule_array,
              long          * source_key_identifier_length,
              unsigned char * source_key_identifier,
              long          * target_key_token_length,
              unsigned char * target_key_token);

/* PKA Encrypt */
typedef void   (SECURITYAPI *F_PKAENCRYPT)
               (long          *  return_code,
                 long          *  reason_code,
                 long          *  exit_data_length,
                 unsigned char *  exit_data,
                 long          *  rule_array_count,
                 unsigned char *  rule_array,
                 long          *  key_value_length,
                 unsigned char *  key_value,
                 long          *  data_struct_length,
                 unsigned char *  data_struct,
                 long          *  RSA_public_key_length,
                 unsigned char *  RSA_public_key,
                 long          *  RSA_encipher_length,
                 unsigned char *  RSA_encipher );

/* PKA Decrypt */
typedef void    (SECURITYAPI *F_PKADECRYPT)
                (long          *  return_code,
                 long          *  reason_code,
                 long          *  exit_data_length,
                 unsigned char *  exit_data,
                 long          *  rule_array_count,
                 unsigned char *  rule_array,
                 long          *  enciphered_key_length,
                 unsigned char *  enciphered_key,
                 long          *  data_struct_length,
                 unsigned char *  data_struct,
                 long          *  RSA_private_key_length,
                 unsigned char *  RSA_private_key,
                 long          *  key_value_length,
                 unsigned char *  key_value    );


#endif