Annotation of embedaddon/strongswan/src/libcharon/plugins/stroke/stroke_ca.h, revision 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>