dh_groups.h revision a54fa5fb807eaeff45464139b5a7759f060cec68
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Diffie-Hellman groups 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 2007, Jouni Malinen <j@w1.fi> 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This software may be distributed under the terms of the BSD license. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * See README for more details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef DH_GROUPS_H 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define DH_GROUPS_H 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct dh_group { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *generator; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t generator_len; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *prime; 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t prime_len; 18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const u8 *order; 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) size_t order_len; 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) unsigned int safe_prime:1; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const struct dh_group * dh_groups_get(int id); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct wpabuf * dh_derive_shared(const struct wpabuf *peer_public, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const struct wpabuf *own_private, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const struct dh_group *dh); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* DH_GROUPS_H */ 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)