From 462f18c7b25fe3e467f837647d07ab0a78aa8d2b Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 22 Feb 2015 21:39:56 +0100 Subject: Merged origin/release (checked in because wanted to merge new stuff) --- openssl/demos/engines/ibmca/ica_openssl_api.h | 248 +++++++++++++------------- 1 file changed, 121 insertions(+), 127 deletions(-) (limited to 'openssl/demos/engines/ibmca/ica_openssl_api.h') diff --git a/openssl/demos/engines/ibmca/ica_openssl_api.h b/openssl/demos/engines/ibmca/ica_openssl_api.h index c77e0fd5c..715bb928b 100644 --- a/openssl/demos/engines/ibmca/ica_openssl_api.h +++ b/openssl/demos/engines/ibmca/ica_openssl_api.h @@ -1,189 +1,183 @@ #ifndef __ICA_OPENSSL_API_H__ -#define __ICA_OPENSSL_API_H__ +# define __ICA_OPENSSL_API_H__ /** ** abstract data types for API **/ -#define ICA_ADAPTER_HANDLE int +# define ICA_ADAPTER_HANDLE int -#if defined(linux) || defined (_AIX) -#define ICA_CALL -#endif +# if defined(linux) || defined (_AIX) +# define ICA_CALL +# endif -#if defined(WIN32) || defined(_WIN32) -#define ICA_CALL __stdcall -#endif +# if defined(WIN32) || defined(_WIN32) +# define ICA_CALL __stdcall +# endif -/*------------------------------------------------* +/* -----------------------------------------------* | RSA defines and typedefs | *------------------------------------------------*/ /* - * All data elements of the RSA key are in big-endian format - * Modulus-Exponent form of key - * - */ - #define MAX_EXP_SIZE 256 - #define MAX_MODULUS_SIZE 256 - #define MAX_MODEXP_SIZE (MAX_EXP_SIZE + MAX_MODULUS_SIZE) + * All data elements of the RSA key are in big-endian format + * Modulus-Exponent form of key + * + */ +# define MAX_EXP_SIZE 256 +# define MAX_MODULUS_SIZE 256 +# define MAX_MODEXP_SIZE (MAX_EXP_SIZE + MAX_MODULUS_SIZE) - #define MAX_OPERAND_SIZE MAX_EXP_SIZE +# define MAX_OPERAND_SIZE MAX_EXP_SIZE - typedef unsigned char ICA_KEY_RSA_MODEXPO_REC[MAX_MODEXP_SIZE]; +typedef unsigned char ICA_KEY_RSA_MODEXPO_REC[MAX_MODEXP_SIZE]; /* - * All data elements of the RSA key are in big-endian format - * Chinese Remainder Thereom(CRT) form of key - * Used only for Decrypt, the encrypt form is typically Modulus-Exponent - * - */ - #define MAX_BP_SIZE 136 - #define MAX_BQ_SIZE 128 - #define MAX_NP_SIZE 136 - #define MAX_NQ_SIZE 128 - #define MAX_QINV_SIZE 136 - #define MAX_RSACRT_SIZE (MAX_BP_SIZE+MAX_BQ_SIZE+MAX_NP_SIZE+MAX_NQ_SIZE+MAX_QINV_SIZE) - -#define RSA_GEN_OPERAND_MAX 256 /* bytes */ + * All data elements of the RSA key are in big-endian format + * Chinese Remainder Thereom(CRT) form of key + * Used only for Decrypt, the encrypt form is typically Modulus-Exponent + * + */ +# define MAX_BP_SIZE 136 +# define MAX_BQ_SIZE 128 +# define MAX_NP_SIZE 136 +# define MAX_NQ_SIZE 128 +# define MAX_QINV_SIZE 136 +# define MAX_RSACRT_SIZE (MAX_BP_SIZE+MAX_BQ_SIZE+MAX_NP_SIZE+MAX_NQ_SIZE+MAX_QINV_SIZE) + +# define RSA_GEN_OPERAND_MAX 256/* bytes */ typedef unsigned char ICA_KEY_RSA_CRT_REC[MAX_RSACRT_SIZE]; -/*------------------------------------------------* +/* -----------------------------------------------* | RSA key token types | *------------------------------------------------*/ -#define RSA_PUBLIC_MODULUS_EXPONENT 3 -#define RSA_PKCS_PRIVATE_CHINESE_REMAINDER 6 +# define RSA_PUBLIC_MODULUS_EXPONENT 3 +# define RSA_PKCS_PRIVATE_CHINESE_REMAINDER 6 -#define KEYTYPE_MODEXPO 1 -#define KEYTYPE_PKCSCRT 2 +# define KEYTYPE_MODEXPO 1 +# define KEYTYPE_PKCSCRT 2 - -/*------------------------------------------------* +/* -----------------------------------------------* | RSA Key Token format | *------------------------------------------------*/ -/* +/*- * NOTE: All the fields in the ICA_KEY_RSA_MODEXPO structure * (lengths, offsets, exponents, modulus, etc.) are * stored in big-endian format */ -typedef struct _ICA_KEY_RSA_MODEXPO -{ unsigned int keyType; /* RSA key type. */ - unsigned int keyLength; /* Total length of the token. */ - unsigned int modulusBitLength; /* Modulus n bit length. */ - /* -- Start of the data length.*/ - unsigned int nLength; /* Modulus n = p * q */ - unsigned int expLength; /* exponent (public or private)*/ - /* e = 1/d * mod(p-1)(q-1) */ - /* -- Start of the data offsets*/ - unsigned int nOffset; /* Modulus n . */ - unsigned int expOffset; /* exponent (public or private)*/ - unsigned char reserved[112]; /* reserved area */ - /* -- Start of the variable -- */ - /* -- length token data. -- */ +typedef struct _ICA_KEY_RSA_MODEXPO { + unsigned int keyType; /* RSA key type. */ + unsigned int keyLength; /* Total length of the token. */ + unsigned int modulusBitLength; /* Modulus n bit length. */ + /* -- Start of the data length. */ + unsigned int nLength; /* Modulus n = p * q */ + unsigned int expLength; /* exponent (public or private) */ + /* e = 1/d * mod(p-1)(q-1) */ + /* -- Start of the data offsets */ + unsigned int nOffset; /* Modulus n . */ + unsigned int expOffset; /* exponent (public or private) */ + unsigned char reserved[112]; /* reserved area */ + /* -- Start of the variable -- */ + /* -- length token data. -- */ ICA_KEY_RSA_MODEXPO_REC keyRecord; } ICA_KEY_RSA_MODEXPO; -#define SZ_HEADER_MODEXPO (sizeof(ICA_KEY_RSA_MODEXPO) - sizeof(ICA_KEY_RSA_MODEXPO_REC)) +# define SZ_HEADER_MODEXPO (sizeof(ICA_KEY_RSA_MODEXPO) - sizeof(ICA_KEY_RSA_MODEXPO_REC)) -/* +/*- * NOTE: All the fields in the ICA_KEY_RSA_CRT structure * (lengths, offsets, exponents, modulus, etc.) are * stored in big-endian format */ -typedef struct _ICA_KEY_RSA_CRT -{ unsigned int keyType; /* RSA key type. */ - unsigned int keyLength; /* Total length of the token. */ - unsigned int modulusBitLength; /* Modulus n bit length. */ - /* -- Start of the data length.*/ -#if _AIX - unsigned int nLength; /* Modulus n = p * q */ -#endif - unsigned int pLength; /* Prime number p . */ - unsigned int qLength; /* Prime number q . */ - unsigned int dpLength; /* dp = d * mod(p-1) . */ - unsigned int dqLength; /* dq = d * mod(q-1) . */ - unsigned int qInvLength; /* PKCS: qInv = Ap/q */ - /* -- Start of the data offsets*/ -#if _AIX - unsigned int nOffset; /* Modulus n . */ -#endif - unsigned int pOffset; /* Prime number p . */ - unsigned int qOffset; /* Prime number q . */ - unsigned int dpOffset; /* dp . */ - unsigned int dqOffset; /* dq . */ - unsigned int qInvOffset; /* qInv for PKCS */ -#if _AIX - unsigned char reserved[80]; /* reserved area */ -#else - unsigned char reserved[88]; /* reserved area */ -#endif - /* -- Start of the variable -- */ - /* -- length token data. -- */ +typedef struct _ICA_KEY_RSA_CRT { + unsigned int keyType; /* RSA key type. */ + unsigned int keyLength; /* Total length of the token. */ + unsigned int modulusBitLength; /* Modulus n bit length. */ + /* -- Start of the data length. */ +# if _AIX + unsigned int nLength; /* Modulus n = p * q */ +# endif + unsigned int pLength; /* Prime number p . */ + unsigned int qLength; /* Prime number q . */ + unsigned int dpLength; /* dp = d * mod(p-1) . */ + unsigned int dqLength; /* dq = d * mod(q-1) . */ + unsigned int qInvLength; /* PKCS: qInv = Ap/q */ + /* -- Start of the data offsets */ +# if _AIX + unsigned int nOffset; /* Modulus n . */ +# endif + unsigned int pOffset; /* Prime number p . */ + unsigned int qOffset; /* Prime number q . */ + unsigned int dpOffset; /* dp . */ + unsigned int dqOffset; /* dq . */ + unsigned int qInvOffset; /* qInv for PKCS */ +# if _AIX + unsigned char reserved[80]; /* reserved area */ +# else + unsigned char reserved[88]; /* reserved area */ +# endif + /* -- Start of the variable -- */ + /* -- length token data. -- */ ICA_KEY_RSA_CRT_REC keyRecord; } ICA_KEY_RSA_CRT; -#define SZ_HEADER_CRT (sizeof(ICA_KEY_RSA_CRT) - sizeof(ICA_KEY_RSA_CRT_REC)) +# define SZ_HEADER_CRT (sizeof(ICA_KEY_RSA_CRT) - sizeof(ICA_KEY_RSA_CRT_REC)) unsigned int -icaOpenAdapter( unsigned int adapterId, - ICA_ADAPTER_HANDLE *pAdapterHandle ); +icaOpenAdapter(unsigned int adapterId, ICA_ADAPTER_HANDLE * pAdapterHandle); -unsigned int -icaCloseAdapter( ICA_ADAPTER_HANDLE adapterHandle ); +unsigned int icaCloseAdapter(ICA_ADAPTER_HANDLE adapterHandle); unsigned int -icaRsaModExpo( ICA_ADAPTER_HANDLE hAdapterHandle, - unsigned int inputDataLength, - unsigned char *pInputData, - ICA_KEY_RSA_MODEXPO *pKeyModExpo, - unsigned int *pOutputDataLength, - unsigned char *pOutputData ); +icaRsaModExpo(ICA_ADAPTER_HANDLE hAdapterHandle, + unsigned int inputDataLength, + unsigned char *pInputData, + ICA_KEY_RSA_MODEXPO *pKeyModExpo, + unsigned int *pOutputDataLength, unsigned char *pOutputData); unsigned int -icaRsaCrt( ICA_ADAPTER_HANDLE hAdapterHandle, - unsigned int inputDataLength, - unsigned char *pInputData, - ICA_KEY_RSA_CRT *pKeyCrt, - unsigned int *pOutputDataLength, - unsigned char *pOutputData ); +icaRsaCrt(ICA_ADAPTER_HANDLE hAdapterHandle, + unsigned int inputDataLength, + unsigned char *pInputData, + ICA_KEY_RSA_CRT *pKeyCrt, + unsigned int *pOutputDataLength, unsigned char *pOutputData); unsigned int -icaRandomNumberGenerate( ICA_ADAPTER_HANDLE hAdapterHandle, - unsigned int outputDataLength, - unsigned char *pOutputData ); +icaRandomNumberGenerate(ICA_ADAPTER_HANDLE hAdapterHandle, + unsigned int outputDataLength, + unsigned char *pOutputData); -/* Specific macros and definitions to not have IFDEF;s all over the - main code */ +/* + * Specific macros and definitions to not have IFDEF;s all over the main code + */ -#if (_AIX) +# if (_AIX) static const char *IBMCA_LIBNAME = "/lib/libica.a(shr.o)"; -#elif (WIN32) +# elif (WIN32) static const char *IBMCA_LIBNAME = "cryptica"; -#else +# else static const char *IBMCA_LIBNAME = "ica"; -#endif +# endif -#if (WIN32) +# if (WIN32) /* - The ICA_KEY_RSA_MODEXPO & ICA_KEY_RSA_CRT lengths and - offsets must be in big-endian format. - -*/ -#define CORRECT_ENDIANNESS(b) ( \ + * The ICA_KEY_RSA_MODEXPO & ICA_KEY_RSA_CRT lengths and offsets must be in + * big-endian format. + * + */ +# define CORRECT_ENDIANNESS(b) ( \ (((unsigned long) (b) & 0x000000ff) << 24) | \ (((unsigned long) (b) & 0x0000ff00) << 8) | \ (((unsigned long) (b) & 0x00ff0000) >> 8) | \ (((unsigned long) (b) & 0xff000000) >> 24) \ ) -#define CRT_KEY_TYPE RSA_PKCS_PRIVATE_CHINESE_REMAINDER -#define ME_KEY_TYPE RSA_PUBLIC_MODULUS_EXPONENT -#else -#define CORRECT_ENDIANNESS(b) (b) -#define CRT_KEY_TYPE KEYTYPE_PKCSCRT -#define ME_KEY_TYPE KEYTYPE_MODEXPO -#endif - - - -#endif /* __ICA_OPENSSL_API_H__ */ +# define CRT_KEY_TYPE RSA_PKCS_PRIVATE_CHINESE_REMAINDER +# define ME_KEY_TYPE RSA_PUBLIC_MODULUS_EXPONENT +# else +# define CORRECT_ENDIANNESS(b) (b) +# define CRT_KEY_TYPE KEYTYPE_PKCSCRT +# define ME_KEY_TYPE KEYTYPE_MODEXPO +# endif + +#endif /* __ICA_OPENSSL_API_H__ */ -- cgit v1.2.3