/**********************************************************************/ /* */ /* Prototypes of the CCA verbs used by the 4758 CCA openssl driver */ /* */ /* Maurice Gittens */ /* */ /**********************************************************************/ #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