@@ -183,17 +183,29 @@ int katja_import(const unsigned char *in, unsigned long inlen, katja_key *key);
183183/* ---- DH Routines ---- */
184184#ifdef LTC_MDH
185185
186- typedef struct Dh_key {
187- int idx , type ;
186+ #ifndef DH_BUF_SIZE
187+ #define DH_BUF_SIZE 2100
188+ #endif
189+
190+ typedef struct {
191+ int size ;
192+ char * name , * base , * prime ;
193+ } ltc_dh_set_type ;
194+
195+ extern const ltc_dh_set_type ltc_dh_sets [];
196+
197+ typedef struct {
198+ int type ;
188199 void * x ;
189200 void * y ;
201+ void * base ;
202+ void * prime ;
190203} dh_key ;
191204
192- int dh_compat_test (void );
193- void dh_sizes (int * low , int * high );
194- int dh_get_size (dh_key * key );
205+ int dh_get_groupsize (dh_key * key );
195206
196- int dh_make_key (prng_state * prng , int wprng , int keysize , dh_key * key );
207+ int dh_make_key (prng_state * prng , int wprng , int groupsize , dh_key * key );
208+ int dh_make_key_dhparam (prng_state * prng , int wprng , unsigned char * dhparam , unsigned long dhparamlen , dh_key * key );
197209void dh_free (dh_key * key );
198210
199211int dh_export (unsigned char * out , unsigned long * outlen , int type , dh_key * key );
@@ -202,26 +214,13 @@ int dh_import(const unsigned char *in, unsigned long inlen, dh_key *key);
202214int dh_shared_secret (dh_key * private_key , dh_key * public_key ,
203215 unsigned char * out , unsigned long * outlen );
204216
205- int dh_encrypt_key (const unsigned char * in , unsigned long keylen ,
206- unsigned char * out , unsigned long * outlen ,
207- prng_state * prng , int wprng , int hash ,
208- dh_key * key );
209-
210- int dh_decrypt_key (const unsigned char * in , unsigned long inlen ,
211- unsigned char * out , unsigned long * outlen ,
212- dh_key * key );
213-
214- int dh_sign_hash (const unsigned char * in , unsigned long inlen ,
215- unsigned char * out , unsigned long * outlen ,
216- prng_state * prng , int wprng , dh_key * key );
217-
218- int dh_verify_hash (const unsigned char * sig , unsigned long siglen ,
219- const unsigned char * hash , unsigned long hashlen ,
220- int * stat , dh_key * key );
221-
222-
217+ #ifdef LTC_SOURCE
218+ /* INTERNAL ONLY - it should be later moved to src/headers/tomcrypt_internal.h */
219+ int dh_check_pubkey (dh_key * key );
223220#endif
224221
222+ #endif /* LTC_MDH */
223+
225224
226225/* ---- ECC Routines ---- */
227226#ifdef LTC_MECC
0 commit comments