Annotation of embedaddon/strongswan/src/charon-nm/nm/nm_creds.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2008 Martin Willi
3: * HSR Hochschule fuer Technik Rapperswil
4: *
5: * This program is free software; you can redistribute it and/or modify it
6: * under the terms of the GNU General Public License as published by the
7: * Free Software Foundation; either version 2 of the License, or (at your
8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13: * for more details.
14: */
15:
16: /**
17: * @defgroup nm_creds nm_creds
18: * @{ @ingroup nm
19: */
20:
21: #ifndef NM_CREDS_H_
22: #define NM_CREDS_H_
23:
24: #include <credentials/keys/private_key.h>
25: #include <credentials/credential_set.h>
26:
27: typedef struct nm_creds_t nm_creds_t;
28:
29: /**
30: * NetworkManager credentials helper.
31: */
32: struct nm_creds_t {
33:
34: /**
35: * Implements credential_set_t
36: */
37: credential_set_t set;
38:
39: /**
40: * Add a trusted gateway certificate to serve by this set.
41: *
42: * @param cert certificate to serve
43: */
44: void (*add_certificate)(nm_creds_t *this, certificate_t *cert);
45:
46: /**
47: * Load CA certificates recursively from a directory.
48: *
49: * @param dir directory to PEM encoded CA certificates
50: */
51: void (*load_ca_dir)(nm_creds_t *this, char *dir);
52:
53: /**
54: * Set the username/password for authentication.
55: *
56: * @param id ID of the user
57: * @param password password to use for authentication
58: */
59: void (*set_username_password)(nm_creds_t *this, identification_t *id,
60: char *password);
61:
62: /**
63: * Set the passphrase to use for private key decryption.
64: *
65: * @param password password to use
66: */
67: void (*set_key_password)(nm_creds_t *this, char *password);
68:
69: /**
70: * Set the PIN to unlock a smartcard.
71: *
72: * @param keyid keyid of the smartcard key
73: * @param pin PIN
74: */
75: void (*set_pin)(nm_creds_t *this, chunk_t keyid, char *pin);
76:
77: /**
78: * Set the certificate and private key to use for client authentication.
79: *
80: * @param cert client certificate
81: * @param key associated private key
82: */
83: void (*set_cert_and_key)(nm_creds_t *this, certificate_t *cert,
84: private_key_t *key);
85:
86: /**
87: * Clear the stored credentials.
88: */
89: void (*clear)(nm_creds_t *this);
90:
91: /**
92: * Destroy a nm_creds instance.
93: */
94: void (*destroy)(nm_creds_t *this);
95: };
96:
97: /**
98: * Create a nm_creds instance.
99: */
100: nm_creds_t *nm_creds_create();
101:
102: #endif /** NM_CREDS_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>