Updated x509 plugin to the new builder API
[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 * Copyright (C) 2009 Martin Willi
6 *
7 * Hochschule fuer Technik Rapperswil
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
13 *
14 * This program is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 * for more details.
18 */
19
20 /**
21 * @defgroup x509_ac x509_ac
22 * @{ @ingroup x509_p
23 */
24
25 #ifndef X509_AC_H_
26 #define X509_AC_H_
27
28 #include <credentials/builder.h>
29 #include <credentials/certificates/ac.h>
30
31 typedef struct x509_ac_t x509_ac_t;
32
33 /**
34 * Implementation of ac_t using own ASN1 parser.
35 */
36 struct x509_ac_t {
37
38 /**
39 * Implements the ac_t interface
40 */
41 ac_t interface;
42 };
43
44 /**
45 * Load a X.509 attribute certificate.
46 *
47 * @param type certificate type, CERT_X509_AC only
48 * @param args builder_part_t argument list
49 * @return X.509 Attribute certificate, NULL on failure
50 */
51 x509_ac_t *x509_ac_load(certificate_type_t type, va_list args);
52
53 /**
54 * Generate a X.509 attribute certificate.
55 *
56 * Accepted build parts:
57 * BUILD_USER_CERT: user certificate
58 * BUILD_SIGNER_CERT: signer certificate
59 * BUILD_SIGNER_KEY: signer private key
60 * BUILD_SERIAL: serial number
61 * BUILD_GROUP_ATTR: group attribute, several possible
62 *
63 * @param type certificate type, CERT_X509_AC only
64 * @param args builder_part_t argument list
65 * @return X.509 Attribute certificate, NULL on failure
66 */
67 x509_ac_t *x509_ac_gen(certificate_type_t type, va_list args);
68
69 #endif /** X509_AC_H_ @}*/