Updated x509 plugin to the new builder API
[strongswan.git] / src / libstrongswan / plugins / x509 / x509_ac.h
index 5df9c5f..da0988c 100644 (file)
@@ -2,6 +2,7 @@
  * Copyright (C) 2002 Ueli Galizzi, Ariane Seiler
  * Copyright (C) 2003 Martin Berner, Lukas Suter
  * Copyright (C) 2002-2008 Andreas Steffen
+ * Copyright (C) 2009 Martin Willi
  *
  * Hochschule fuer Technik Rapperswil
  *
@@ -14,8 +15,6 @@
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  * for more details.
- *
- * $Id$
  */
 
 /**
@@ -26,6 +25,7 @@
 #ifndef X509_AC_H_
 #define X509_AC_H_
 
+#include <credentials/builder.h>
 #include <credentials/certificates/ac.h>
 
 typedef struct x509_ac_t x509_ac_t;
@@ -42,18 +42,28 @@ struct x509_ac_t {
 };
 
 /**
- * Create the building facility for X.509 attribute certificates.
+ * Load a X.509 attribute certificate.
+ *
+ * @param type         certificate type, CERT_X509_AC only
+ * @param args         builder_part_t argument list
+ * @return                     X.509 Attribute certificate, NULL on failure
+ */
+x509_ac_t *x509_ac_load(certificate_type_t type, va_list args);
+
+/**
+ * Generate a X.509 attribute certificate.
  *
- * The resulting builder accepts:
- *     BUILD_USER_CERT:        user certificate, exactly one
- *     BUILD_SIGNER_CERT:      signer certificate, exactly one
- *     BUILD_SIGNER_KEY:       signer private key, exactly one
- *  BUILD_SERIAL:              serial number, exactly one
- *  BUILD_GROUP_ATTR:  group attribute, optional, several possible
+ * Accepted build parts:
+ *  BUILD_USER_CERT:   user certificate
+ *  BUILD_SIGNER_CERT: signer certificate
+ *  BUILD_SIGNER_KEY:  signer private key
+ *  BUILD_SERIAL:              serial number
+ *  BUILD_GROUP_ATTR:  group attribute, several possible
  *
  * @param type         certificate type, CERT_X509_AC only
- * @return                     builder instance to build X.509 attribute certificates
+ * @param args         builder_part_t argument list
+ * @return                     X.509 Attribute certificate, NULL on failure
  */
-builder_t *x509_ac_builder(certificate_type_t type);
+x509_ac_t *x509_ac_gen(certificate_type_t type, va_list args);
 
 #endif /** X509_AC_H_ @}*/