blob: 296636e81a8bb1375e0a03fb7f106c9561875ba7 [file] [log] [blame]
/**********************************************************************/
/* */
/* 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