diff options
Diffstat (limited to 'openssl/demos/engines/zencod/hw_zencod.h')
-rw-r--r-- | openssl/demos/engines/zencod/hw_zencod.h | 257 |
1 files changed, 128 insertions, 129 deletions
diff --git a/openssl/demos/engines/zencod/hw_zencod.h b/openssl/demos/engines/zencod/hw_zencod.h index 415c9a6be..a2510453a 100644 --- a/openssl/demos/engines/zencod/hw_zencod.h +++ b/openssl/demos/engines/zencod/hw_zencod.h @@ -4,140 +4,139 @@ * for "zencod" ENGINE integration in OpenSSL project. */ +#ifndef _HW_ZENCOD_H_ +# define _HW_ZENCOD_H_ - #ifndef _HW_ZENCOD_H_ -#define _HW_ZENCOD_H_ +# include <stdio.h> -#include <stdio.h> - -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif /* __cplusplus */ +# endif /* __cplusplus */ -#define ZENBRIDGE_MAX_KEYSIZE_RSA 2048 -#define ZENBRIDGE_MAX_KEYSIZE_RSA_CRT 1024 -#define ZENBRIDGE_MAX_KEYSIZE_DSA_SIGN 1024 -#define ZENBRIDGE_MAX_KEYSIZE_DSA_VRFY 1024 +# define ZENBRIDGE_MAX_KEYSIZE_RSA 2048 +# define ZENBRIDGE_MAX_KEYSIZE_RSA_CRT 1024 +# define ZENBRIDGE_MAX_KEYSIZE_DSA_SIGN 1024 +# define ZENBRIDGE_MAX_KEYSIZE_DSA_VRFY 1024 /* Library version computation */ -#define ZENBRIDGE_VERSION_MAJOR(x) (((x) >> 16) | 0xff) -#define ZENBRIDGE_VERSION_MINOR(x) (((x) >> 8) | 0xff) -#define ZENBRIDGE_VERSION_PATCH(x) (((x) >> 0) | 0xff) -#define ZENBRIDGE_VERSION(x, y, z) ((x) << 16 | (y) << 8 | (z)) - -/* - * Memory type - */ -typedef struct zencod_number_s { - unsigned long len; - unsigned char *data; -} zen_nb_t; - -#define KEY zen_nb_t - - -/* - * Misc - */ -typedef int t_zencod_lib_version (void); -typedef int t_zencod_hw_version (void); -typedef int t_zencod_test (void); -typedef int t_zencod_dump_key (FILE *stream, char *msg, KEY *key); - - -/* - * Key management tools - */ -typedef KEY *t_zencod_new_number (unsigned long len, unsigned char *data); -typedef int t_zencod_init_number (KEY *n, unsigned long len, unsigned char *data); -typedef unsigned long t_zencod_bytes2bits (unsigned char *n, unsigned long bytes); -typedef unsigned long t_zencod_bits2bytes (unsigned long bits); - - -/* - * RSA API - */ +# define ZENBRIDGE_VERSION_MAJOR(x) (((x) >> 16) | 0xff) +# define ZENBRIDGE_VERSION_MINOR(x) (((x) >> 8) | 0xff) +# define ZENBRIDGE_VERSION_PATCH(x) (((x) >> 0) | 0xff) +# define ZENBRIDGE_VERSION(x, y, z) ((x) << 16 | (y) << 8 | (z)) + + /* + * Memory type + */ + typedef struct zencod_number_s { + unsigned long len; + unsigned char *data; + } zen_nb_t; + +# define KEY zen_nb_t + + /* + * Misc + */ + typedef int t_zencod_lib_version(void); + typedef int t_zencod_hw_version(void); + typedef int t_zencod_test(void); + typedef int t_zencod_dump_key(FILE *stream, char *msg, KEY * key); + + /* + * Key management tools + */ + typedef KEY *t_zencod_new_number(unsigned long len, unsigned char *data); + typedef int t_zencod_init_number(KEY * n, unsigned long len, + unsigned char *data); + typedef unsigned long t_zencod_bytes2bits(unsigned char *n, + unsigned long bytes); + typedef unsigned long t_zencod_bits2bytes(unsigned long bits); + + /* + * RSA API + */ /* Compute modular exponential : y = x**e | n */ -typedef int t_zencod_rsa_mod_exp (KEY *y, KEY *x, KEY *n, KEY *e); -/* Compute modular exponential : y1 = (x | p)**edp | p, y2 = (x | p)**edp | p, y = y2 + (qinv * (y1 - y2) | p) * q */ -typedef int t_zencod_rsa_mod_exp_crt (KEY *y, KEY *x, KEY *p, KEY *q, - KEY *edp, KEY *edq, KEY *qinv); - - -/* - * DSA API - */ -typedef int t_zencod_dsa_do_sign (unsigned int hash, KEY *data, KEY *random, - KEY *p, KEY *q, KEY *g, KEY *x, KEY *r, KEY *s); -typedef int t_zencod_dsa_do_verify (unsigned int hash, KEY *data, - KEY *p, KEY *q, KEY *g, KEY *y, - KEY *r, KEY *s, KEY *v); - - -/* - * DH API - */ - /* Key generation : compute public value y = g**x | n */ -typedef int t_zencod_dh_generate_key (KEY *y, KEY *x, KEY *g, KEY *n, int gen_x); -typedef int t_zencod_dh_compute_key (KEY *k, KEY *y, KEY *x, KEY *n); - - -/* - * RNG API - */ -#define ZENBRIDGE_RNG_DIRECT 0 -#define ZENBRIDGE_RNG_SHA1 1 -typedef int t_zencod_rand_bytes (KEY *rand, unsigned int flags); - - -/* - * Math API - */ -typedef int t_zencod_math_mod_exp (KEY *r, KEY *a, KEY *e, KEY *n); - - - - -/* - * Symetric API - */ + typedef int t_zencod_rsa_mod_exp(KEY * y, KEY * x, KEY * n, KEY * e); + /* + * Compute modular exponential : y1 = (x | p)**edp | p, y2 = (x | p)**edp + * | p, y = y2 + (qinv * (y1 - y2) | p) * q + */ + typedef int t_zencod_rsa_mod_exp_crt(KEY * y, KEY * x, KEY * p, KEY * q, + KEY * edp, KEY * edq, KEY * qinv); + + /* + * DSA API + */ + typedef int t_zencod_dsa_do_sign(unsigned int hash, KEY * data, + KEY * random, KEY * p, KEY * q, KEY * g, + KEY * x, KEY * r, KEY * s); + typedef int t_zencod_dsa_do_verify(unsigned int hash, KEY * data, KEY * p, + KEY * q, KEY * g, KEY * y, KEY * r, + KEY * s, KEY * v); + + /* + * DH API + */ + /* Key generation : compute public value y = g**x | n */ + typedef int t_zencod_dh_generate_key(KEY * y, KEY * x, KEY * g, KEY * n, + int gen_x); + typedef int t_zencod_dh_compute_key(KEY * k, KEY * y, KEY * x, KEY * n); + + /* + * RNG API + */ +# define ZENBRIDGE_RNG_DIRECT 0 +# define ZENBRIDGE_RNG_SHA1 1 + typedef int t_zencod_rand_bytes(KEY * rand, unsigned int flags); + + /* + * Math API + */ + typedef int t_zencod_math_mod_exp(KEY * r, KEY * a, KEY * e, KEY * n); + + /* + * Symetric API + */ /* Define a data structure for digests operations */ -typedef struct ZEN_data_st -{ - unsigned int HashBufferSize ; - unsigned char *HashBuffer ; -} ZEN_MD_DATA ; - -/* - * Functions for Digest (MD5, SHA1) stuff - */ -/* output : output data buffer */ -/* input : input data buffer */ -/* algo : hash algorithm, MD5 or SHA1 */ -/* typedef int t_zencod_hash ( KEY *output, const KEY *input, int algo ) ; - * typedef int t_zencod_sha_hash ( KEY *output, const KEY *input, int algo ) ; - */ -/* For now separate this stuff that mad it easier to test */ -typedef int t_zencod_md5_init ( ZEN_MD_DATA *data ) ; -typedef int t_zencod_md5_update ( ZEN_MD_DATA *data, const KEY *input ) ; -typedef int t_zencod_md5_do_final ( ZEN_MD_DATA *data, KEY *output ) ; - -typedef int t_zencod_sha1_init ( ZEN_MD_DATA *data ) ; -typedef int t_zencod_sha1_update ( ZEN_MD_DATA *data, const KEY *input ) ; -typedef int t_zencod_sha1_do_final ( ZEN_MD_DATA *data, KEY *output ) ; - - -/* - * Functions for Cipher (RC4, DES, 3DES) stuff - */ + typedef struct ZEN_data_st { + unsigned int HashBufferSize; + unsigned char *HashBuffer; + } ZEN_MD_DATA; + + /* + * Functions for Digest (MD5, SHA1) stuff + */ + /* output : output data buffer */ + /* input : input data buffer */ + /* algo : hash algorithm, MD5 or SHA1 */ + /*- + * typedef int t_zencod_hash ( KEY *output, const KEY *input, int algo ) ; + * typedef int t_zencod_sha_hash ( KEY *output, const KEY *input, int algo ) ; + */ + /* For now separate this stuff that mad it easier to test */ + typedef int t_zencod_md5_init(ZEN_MD_DATA *data); + typedef int t_zencod_md5_update(ZEN_MD_DATA *data, const KEY * input); + typedef int t_zencod_md5_do_final(ZEN_MD_DATA *data, KEY * output); + + typedef int t_zencod_sha1_init(ZEN_MD_DATA *data); + typedef int t_zencod_sha1_update(ZEN_MD_DATA *data, const KEY * input); + typedef int t_zencod_sha1_do_final(ZEN_MD_DATA *data, KEY * output); + + /* + * Functions for Cipher (RC4, DES, 3DES) stuff + */ /* output : output data buffer */ /* input : input data buffer */ /* key : rc4 key data */ /* index_1 : value of index x from RC4 key structure */ /* index_2 : value of index y from RC4 key structure */ -/* Be carefull : RC4 key should be expanded before calling this method (Should we provide an expand function ??) */ -typedef int t_zencod_rc4_cipher ( KEY *output, const KEY *input, const KEY *key, - unsigned char *index_1, unsigned char *index_2, int mode ) ; + /* + * Be carefull : RC4 key should be expanded before calling this method + * (Should we provide an expand function ??) + */ + typedef int t_zencod_rc4_cipher(KEY * output, const KEY * input, + const KEY * key, unsigned char *index_1, + unsigned char *index_2, int mode); /* output : output data buffer */ /* input : input data buffer */ @@ -147,14 +146,14 @@ typedef int t_zencod_rc4_cipher ( KEY *output, const KEY *input, const KEY *key, /* iv : initial vector */ /* mode : xdes mode (encrypt or decrypt) */ /* Be carefull : In DES mode key_1 = key_2 = key_3 (as far as i can see !!) */ -typedef int t_zencod_xdes_cipher ( KEY *output, const KEY *input, const KEY *key_1, - const KEY *key_2, const KEY *key_3, const KEY *iv, int mode ) ; + typedef int t_zencod_xdes_cipher(KEY * output, const KEY * input, + const KEY * key_1, const KEY * key_2, + const KEY * key_3, const KEY * iv, + int mode); +# undef KEY -#undef KEY - -#ifdef __cplusplus +# ifdef __cplusplus } -#endif /* __cplusplus */ - -#endif /* !_HW_ZENCOD_H_ */ +# endif /* __cplusplus */ +#endif /* !_HW_ZENCOD_H_ */ |