added -avoid-version to LDFLAGS, plugins are not versioned
[strongswan.git] / src / charon / plugins / stroke / stroke_ca.h
1 /*
2 * Copyright (C) 2008 Tobias Brunner
3 * Copyright (C) 2008 Martin Willi
4 * Hochschule fuer Technik Rapperswil
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * for more details.
15 */
16
17 /**
18 * @defgroup stroke_ca stroke_ca
19 * @{ @ingroup stroke
20 */
21
22 #ifndef STROKE_CA_H_
23 #define STROKE_CA_H_
24
25 #include <stroke_msg.h>
26
27 #include "stroke_cred.h"
28
29 typedef struct stroke_ca_t stroke_ca_t;
30
31 /**
32 * ipsec.conf ca section handling.
33 */
34 struct stroke_ca_t {
35
36 /**
37 * Implements credential_set_t
38 */
39 credential_set_t set;
40
41 /**
42 * Add a CA to the set using a stroke_msg_t.
43 *
44 * @param msg stroke message containing CA info
45 */
46 void (*add)(stroke_ca_t *this, stroke_msg_t *msg);
47
48 /**
49 * Remove a CA from the set using a stroke_msg_t.
50 *
51 * @param msg stroke message containing CA info
52 */
53 void (*del)(stroke_ca_t *this, stroke_msg_t *msg);
54
55 /**
56 * List CA sections to stroke console.
57 *
58 * @param msg stroke message
59 */
60 void (*list)(stroke_ca_t *this, stroke_msg_t *msg, FILE *out);
61
62 /**
63 * Check if a certificate can be made available through hash and URL.
64 *
65 * @param cert peer certificate
66 */
67 void (*check_for_hash_and_url)(stroke_ca_t *this, certificate_t* cert);
68
69 /**
70 * Destroy a stroke_ca instance.
71 */
72 void (*destroy)(stroke_ca_t *this);
73 };
74
75 /**
76 * Create a stroke_ca instance.
77 */
78 stroke_ca_t *stroke_ca_create(stroke_cred_t *cred);
79
80 #endif /** STROKE_CA_H_ @}*/