| /**********************************************************************/ |
| /* */ |
| /* 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 |