958d5c57a564844e6259cbba14a4d960a3e50e3b
[strongswan.git] / src / libstrongswan / plugins / x509 / x509_ac.h
1 /*
2 * Copyright (C) 2002 Ueli Galizzi, Ariane Seiler
3 * Copyright (C) 2003 Martin Berner, Lukas Suter
4 * Copyright (C) 2002-2008 Andreas Steffen
5 *
6 * Hochschule fuer Technik Rapperswil
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 */
18
19 /**
20 * @defgroup x509_ac x509_ac
21 * @{ @ingroup x509_p
22 */
23
24 #ifndef X509_AC_H_
25 #define X509_AC_H_
26
27 #include <credentials/certificates/ac.h>
28
29 typedef struct x509_ac_t x509_ac_t;
30
31 /**
32 * Implementation of ac_t using own ASN1 parser.
33 */
34 struct x509_ac_t {
35
36 /**
37 * Implements the ac_t interface
38 */
39 ac_t interface;
40 };
41
42 /**
43 * Create the building facility for X.509 attribute certificates.
44 *
45 * The resulting builder accepts:
46 * BUILD_USER_CERT: user certificate, exactly one
47 * BUILD_SIGNER_CERT: signer certificate, exactly one
48 * BUILD_SIGNER_KEY: signer private key, exactly one
49 * BUILD_SERIAL: serial number, exactly one
50 * BUILD_GROUP_ATTR: group attribute, optional, several possible
51 *
52 * @param type certificate type, CERT_X509_AC only
53 * @return builder instance to build X.509 attribute certificates
54 */
55 builder_t *x509_ac_builder(certificate_type_t type);
56
57 #endif /** X509_AC_H_ @}*/