aboutsummaryrefslogtreecommitdiff
path: root/openssl/trunk/doc/crypto/ERR_load_strings.pod
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/trunk/doc/crypto/ERR_load_strings.pod')
0 files changed, 0 insertions, 0 deletions
n46'>46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
/* File : /crypto/engine/vendor_defns/hw_zencod.h */
/* ====================================================================
 * Written by Donnat Frederic (frederic.donnat@zencod.com) from ZENCOD
 * for "zencod" ENGINE integration in OpenSSL project.
 */


 #ifndef	_HW_ZENCOD_H_
#define	_HW_ZENCOD_H_

#include <stdio.h>

#ifdef	__cplusplus
extern "C" {
#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

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

/* output : output data buffer */
/* input : input data buffer */
/* key_1 : des first key data */
/* key_2 : des second key data */
/* key_3 : des third key data */
/* 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 ) ;


#undef KEY

#ifdef	__cplusplus
}
#endif	/* __cplusplus */

#endif	/* !_HW_ZENCOD_H_ */