Home | History | Annotate | Download | only in include
      1 /*	$OpenBSD: dh.h,v 1.7 2001/06/26 17:27:23 markus Exp $	*/
      2 
      3 #ifndef	_DH_H
      4 #define	_DH_H
      5 
      6 #pragma ident	"%Z%%M%	%I%	%E% SMI"
      7 
      8 #ifdef __cplusplus
      9 extern "C" {
     10 #endif
     11 
     12 
     13 /*
     14  * Copyright (c) 2000 Niels Provos.  All rights reserved.
     15  *
     16  * Redistribution and use in source and binary forms, with or without
     17  * modification, are permitted provided that the following conditions
     18  * are met:
     19  * 1. Redistributions of source code must retain the above copyright
     20  *    notice, this list of conditions and the following disclaimer.
     21  * 2. Redistributions in binary form must reproduce the above copyright
     22  *    notice, this list of conditions and the following disclaimer in the
     23  *    documentation and/or other materials provided with the distribution.
     24  *
     25  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     26  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     27  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     28  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     29  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     30  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     31  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     32  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     33  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     34  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     35  */
     36 
     37 struct dhgroup {
     38 	int size;
     39 	BIGNUM *g;
     40 	BIGNUM *p;
     41 };
     42 
     43 DH	*choose_dh(int, int, int);
     44 DH	*dh_new_group_asc(const char *, const char *);
     45 DH	*dh_new_group(BIGNUM *, BIGNUM *);
     46 DH	*dh_new_group1(void);
     47 
     48 void	 dh_gen_key(DH *, int);
     49 int	 dh_pub_is_valid(DH *, BIGNUM *);
     50 
     51 int	 dh_estimate(int);
     52 
     53 #define DH_GRP_MIN	1024
     54 #define DH_GRP_MAX	8192
     55 
     56 #ifdef __cplusplus
     57 }
     58 #endif
     59 
     60 #endif /* _DH_H */
     61