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