Annotation of embedaddon/strongswan/src/libcharon/plugins/stroke/stroke_cred.h, revision 1.1
1.1 ! misho 1: /*
! 2: * Copyright (C) 2012 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_cred stroke_cred
! 19: * @{ @ingroup stroke
! 20: */
! 21:
! 22: #ifndef STROKE_CRED_H_
! 23: #define STROKE_CRED_H_
! 24:
! 25: #include <stdio.h>
! 26:
! 27: #include <stroke_msg.h>
! 28: #include <credentials/credential_set.h>
! 29: #include <credentials/certificates/certificate.h>
! 30: #include <collections/linked_list.h>
! 31:
! 32: #include "stroke_ca.h"
! 33:
! 34: typedef struct stroke_cred_t stroke_cred_t;
! 35:
! 36: /**
! 37: * Stroke in-memory credential storage.
! 38: */
! 39: struct stroke_cred_t {
! 40:
! 41: /**
! 42: * Implements credential_set_t
! 43: */
! 44: credential_set_t set;
! 45:
! 46: /**
! 47: * Reread secrets from config files.
! 48: *
! 49: * @param msg stroke message
! 50: * @param prompt I/O channel to prompt for private key passphrase
! 51: */
! 52: void (*reread)(stroke_cred_t *this, stroke_msg_t *msg, FILE *prompt);
! 53:
! 54: /**
! 55: * Load a peer certificate and serve it through the credential_set.
! 56: *
! 57: * @param filename file to load peer cert from
! 58: * @return reference to loaded certificate, or NULL
! 59: */
! 60: certificate_t* (*load_peer)(stroke_cred_t *this, char *filename);
! 61:
! 62: /**
! 63: * Load a raw public key and serve it through the credential_set.
! 64: *
! 65: * @param filename encoding or file to load raw public key from
! 66: * @param identity identity of the raw public key owner
! 67: * @return reference to loaded raw public key, or NULL
! 68: */
! 69: certificate_t* (*load_pubkey)(stroke_cred_t *this, char *filename,
! 70: identification_t *identity);
! 71:
! 72: /**
! 73: * Add a shared secret to serve through the credential_set.
! 74: *
! 75: * @param shared shared key to add, gets owned
! 76: * @param owners list of owners (identification_t*), gets owned
! 77: */
! 78: void (*add_shared)(stroke_cred_t *this, shared_key_t *shared,
! 79: linked_list_t *owners);
! 80:
! 81: /**
! 82: * Enable/Disable CRL caching to disk.
! 83: *
! 84: * @param enabled TRUE to enable, FALSE to disable
! 85: */
! 86: void (*cachecrl)(stroke_cred_t *this, bool enabled);
! 87:
! 88: /**
! 89: * Destroy a stroke_cred instance.
! 90: */
! 91: void (*destroy)(stroke_cred_t *this);
! 92: };
! 93:
! 94: /**
! 95: * Create a stroke_cred instance.
! 96: */
! 97: stroke_cred_t *stroke_cred_create(stroke_ca_t *ca);
! 98:
! 99: #endif /** STROKE_CRED_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>