]>
Commit | Line | Data |
---|---|---|
ae7e837c TB |
1 | /* |
2 | * Copyright (C) 2008 Tobias Brunner | |
3 | * Hochschule fuer Technik Rapperswil | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms of the GNU General Public License as published by the | |
7 | * Free Software Foundation; either version 2 of the License, or (at your | |
8 | * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, but | |
11 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
12 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 | * for more details. | |
14 | */ | |
15 | ||
16 | /** | |
17 | * @defgroup openssl_diffie_hellman openssl_diffie_hellman | |
18 | * @{ @ingroup openssl_p | |
19 | */ | |
20 | ||
21 | #ifndef OPENSSL_DIFFIE_HELLMAN_H_ | |
22 | #define OPENSSL_DIFFIE_HELLMAN_H_ | |
23 | ||
24 | typedef struct openssl_diffie_hellman_t openssl_diffie_hellman_t; | |
25 | ||
26 | #include <library.h> | |
27 | ||
28 | /** | |
29 | * Implementation of the Diffie-Hellman algorithm using OpenSSL. | |
30 | */ | |
31 | struct openssl_diffie_hellman_t { | |
7daf5226 | 32 | |
ae7e837c TB |
33 | /** |
34 | * Implements diffie_hellman_t interface. | |
35 | */ | |
36 | diffie_hellman_t dh; | |
37 | }; | |
38 | ||
39 | /** | |
40 | * Creates a new openssl_diffie_hellman_t object. | |
7daf5226 | 41 | * |
ae7e837c | 42 | * @param group Diffie Hellman group number to use |
42b1ac91 MW |
43 | * @param g custom generator, if MODP_CUSTOM |
44 | * @param p custom prime, if MODP_CUSTOM | |
ae7e837c TB |
45 | * @return openssl_diffie_hellman_t object, NULL if not supported |
46 | */ | |
42b1ac91 MW |
47 | openssl_diffie_hellman_t *openssl_diffie_hellman_create( |
48 | diffie_hellman_group_t group, chunk_t g, chunk_t p); | |
ae7e837c | 49 | |
1490ff4d | 50 | #endif /** OPENSSL_DIFFIE_HELLMAN_H_ @}*/ |
ae7e837c | 51 |