This was done by the following
        find . -name '*.[ch]' | /tmp/pl
where /tmp/pl is the following three-line script:
        print unless $. == 1 && m@/\* .*\.[ch] \*/@;
        close ARGV if eof; # Close file to reset $.
And then some hand-editing of other files.
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
		
	
		
			
				
	
	
		
			159 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* ====================================================================
 | 
						|
 * 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 careful : 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 careful : 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_ */
 |