xref: /dflybsd-src/contrib/wpa_supplicant/src/crypto/dh_groups.h (revision bcf9aa4feb4a2fdf8ceac276d271a57f4b27e13d)
16d49e1aeSJan Lentfer /*
26d49e1aeSJan Lentfer  * Diffie-Hellman groups
36d49e1aeSJan Lentfer  * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
46d49e1aeSJan Lentfer  *
5*3ff40c12SJohn Marino  * This software may be distributed under the terms of the BSD license.
6*3ff40c12SJohn Marino  * See README for more details.
76d49e1aeSJan Lentfer  */
86d49e1aeSJan Lentfer 
96d49e1aeSJan Lentfer #ifndef DH_GROUPS_H
106d49e1aeSJan Lentfer #define DH_GROUPS_H
116d49e1aeSJan Lentfer 
126d49e1aeSJan Lentfer struct dh_group {
136d49e1aeSJan Lentfer 	int id;
146d49e1aeSJan Lentfer 	const u8 *generator;
156d49e1aeSJan Lentfer 	size_t generator_len;
166d49e1aeSJan Lentfer 	const u8 *prime;
176d49e1aeSJan Lentfer 	size_t prime_len;
18*3ff40c12SJohn Marino 	const u8 *order;
19*3ff40c12SJohn Marino 	size_t order_len;
20*3ff40c12SJohn Marino 	unsigned int safe_prime:1;
216d49e1aeSJan Lentfer };
226d49e1aeSJan Lentfer 
236d49e1aeSJan Lentfer const struct dh_group * dh_groups_get(int id);
246d49e1aeSJan Lentfer struct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv);
256d49e1aeSJan Lentfer struct wpabuf * dh_derive_shared(const struct wpabuf *peer_public,
266d49e1aeSJan Lentfer 				 const struct wpabuf *own_private,
276d49e1aeSJan Lentfer 				 const struct dh_group *dh);
286d49e1aeSJan Lentfer 
296d49e1aeSJan Lentfer #endif /* DH_GROUPS_H */
30