Stefan Seyfried <seife+obs@b1-systems.com>
[vpnc.git] / supp.h
blob5ff8c5f794c95a0f126e5d0f3515e2034ee65509
1 /* Algorithm support checks
2 Copyright (C) 2005 Maurice Massar
3 Reorganised 2006 by Dan Villiom Podlaski Christiansen
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 $Id$
22 #ifndef __SUPP_H__
23 #define __SUPP_H__
25 enum supp_algo_key {
26 SUPP_ALGO_NAME,
27 SUPP_ALGO_MY_ID,
28 SUPP_ALGO_IKE_SA,
29 SUPP_ALGO_IPSEC_SA
32 enum algo_group {
33 SUPP_ALGO_DH_GROUP,
34 SUPP_ALGO_HASH,
35 SUPP_ALGO_CRYPT,
36 SUPP_ALGO_AUTH
39 typedef struct {
40 const char *name;
41 int my_id, ike_sa_id, ipsec_sa_id;
42 int keylen;
43 } supported_algo_t;
45 extern const supported_algo_t supp_dh_group[];
46 extern const supported_algo_t supp_hash[];
47 extern const supported_algo_t supp_crypt[];
48 extern const supported_algo_t supp_auth[];
50 extern const supported_algo_t *get_algo(enum algo_group what, enum supp_algo_key key, int id, const char *name, int keylen);
51 extern const supported_algo_t *get_dh_group_ike(void);
52 extern const supported_algo_t *get_dh_group_ipsec(int server_setting);
54 #endif