139beb93cSSam Leffler /* 239beb93cSSam Leffler * Diffie-Hellman groups 339beb93cSSam Leffler * Copyright (c) 2007, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 5f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6f05cddf9SRui Paulo * See README for more details. 739beb93cSSam Leffler */ 839beb93cSSam Leffler 939beb93cSSam Leffler #ifndef DH_GROUPS_H 1039beb93cSSam Leffler #define DH_GROUPS_H 1139beb93cSSam Leffler 1239beb93cSSam Leffler struct dh_group { 1339beb93cSSam Leffler int id; 1439beb93cSSam Leffler const u8 *generator; 1539beb93cSSam Leffler size_t generator_len; 1639beb93cSSam Leffler const u8 *prime; 1739beb93cSSam Leffler size_t prime_len; 18*5b9c547cSRui Paulo const u8 *order; 19*5b9c547cSRui Paulo size_t order_len; 20*5b9c547cSRui Paulo unsigned int safe_prime:1; 2139beb93cSSam Leffler }; 2239beb93cSSam Leffler 2339beb93cSSam Leffler const struct dh_group * dh_groups_get(int id); 2439beb93cSSam Leffler struct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv); 2539beb93cSSam Leffler struct wpabuf * dh_derive_shared(const struct wpabuf *peer_public, 2639beb93cSSam Leffler const struct wpabuf *own_private, 2739beb93cSSam Leffler const struct dh_group *dh); 2839beb93cSSam Leffler 2939beb93cSSam Leffler #endif /* DH_GROUPS_H */ 30