Annotation of embedaddon/strongswan/src/libcharon/plugins/stroke/stroke_ca.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Copyright (C) 2008-2015 Tobias Brunner
                      3:  * Copyright (C) 2008 Martin Willi
                      4:  * HSR 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: #include <credentials/sets/mem_cred.h>
                     27: 
                     28: typedef struct stroke_ca_t stroke_ca_t;
                     29: 
                     30: /**
                     31:  * ipsec.conf ca section handling.
                     32:  */
                     33: struct stroke_ca_t {
                     34: 
                     35:        /**
                     36:         * Implements credential_set_t
                     37:         */
                     38:        credential_set_t set;
                     39: 
                     40:        /**
                     41:         * Add a CA to the set using a stroke_msg_t.
                     42:         *
                     43:         * @param msg           stroke message containing CA info
                     44:         */
                     45:        void (*add)(stroke_ca_t *this, stroke_msg_t *msg);
                     46: 
                     47:        /**
                     48:         * Remove a CA from the set using a stroke_msg_t.
                     49:         *
                     50:         * @param msg           stroke message containing CA info
                     51:         */
                     52:        void (*del)(stroke_ca_t *this, stroke_msg_t *msg);
                     53: 
                     54:        /**
                     55:         * List CA sections to stroke console.
                     56:         *
                     57:         * @param msg           stroke message
                     58:         */
                     59:        void (*list)(stroke_ca_t *this, stroke_msg_t *msg, FILE *out);
                     60: 
                     61:        /**
                     62:         * Get a reference to a CA certificate if it is already stored,
                     63:         * otherwise returns the same certificate.
                     64:         *
                     65:         * @param cert          certificate to check
                     66:         * @return                      reference to stored CA certificate, or original
                     67:         */
                     68:        certificate_t *(*get_cert_ref)(stroke_ca_t *this, certificate_t *cert);
                     69: 
                     70:        /**
                     71:         * Reload CA certificates referenced in CA sections. Flushes the certificate
                     72:         * cache.
                     73:         */
                     74:        void (*reload_certs)(stroke_ca_t *this);
                     75: 
                     76:        /**
                     77:         * Replace automatically loaded CA certificates.  Flushes the certificate
                     78:         * cache.
                     79:         *
                     80:         * @param certs         credential set to take certificates from (not modified)
                     81:         */
                     82:        void (*replace_certs)(stroke_ca_t *this, mem_cred_t *certs);
                     83: 
                     84:        /**
                     85:         * Destroy a stroke_ca instance.
                     86:         */
                     87:        void (*destroy)(stroke_ca_t *this);
                     88: };
                     89: 
                     90: /**
                     91:  * Create a stroke_ca instance.
                     92:  */
                     93: stroke_ca_t *stroke_ca_create();
                     94: 
                     95: #endif /** STROKE_CA_H_ @}*/

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>