18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Diffie-Hellman groups 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2007, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef DH_GROUPS_H 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DH_GROUPS_H 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct dh_group { 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int id; 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const u8 *generator; 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt size_t generator_len; 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const u8 *prime; 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt size_t prime_len; 18a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt const u8 *order; 19a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt size_t order_len; 20a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt unsigned int safe_prime:1; 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtconst struct dh_group * dh_groups_get(int id); 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv); 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpabuf * dh_derive_shared(const struct wpabuf *peer_public, 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const struct wpabuf *own_private, 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const struct dh_group *dh); 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* DH_GROUPS_H */ 30