allow choice of digest algorithm in certificate generation
[strongswan.git] / src / libstrongswan / credentials / builder.h
index 01ccf2a..650d052 100644 (file)
@@ -38,18 +38,26 @@ typedef builder_t* (*builder_constructor_t)(int subtype);
  * Parts to build credentials from.
  */
 enum builder_part_t {
-       /** path to a file containing an ASN.1 blob, char* */
+       /** path to a file encoded in any format, char* */
        BUILD_FROM_FILE,
+       /** file descriptor to read data, encoded in any format, int */
+       BUILD_FROM_FD,
        /** unix socket of a ssh/pgp agent, char* */
        BUILD_AGENT_SOCKET,
        /** DER encoded ASN.1 blob, chunk_t */
        BUILD_BLOB_ASN1_DER,
-       /** PEM encoded ASN.1 blob, null terminated char* */
-       BUILD_BLOB_ASN1_PEM,
+       /** PEM encoded ASN.1/PGP blob, chunk_t */
+       BUILD_BLOB_PEM,
        /**  OpenPGP key blob, chunk_t */
        BUILD_BLOB_PGP,
-       /** RFC 3110 DNS public key blob, chunk_t */
-       BUILD_BLOB_RFC_3110,
+       /** DNS public key blob (RFC 4034, RSA specifc RFC 3110), chunk_t */
+       BUILD_BLOB_DNSKEY,
+       /** passphrase for e.g. PEM decryption, chunk_t */
+       BUILD_PASSPHRASE,
+       /** passphrase callback, chunk_t(*fn)(void *user, int try), void *user.
+        *  The callback is invoked until the returned passphrase is accepted, or
+        *  a zero-length passphrase is returned. Try starts at 1. */
+       BUILD_PASSPHRASE_CALLBACK,
        /** key size in bits, as used for key generation, u_int */
        BUILD_KEY_SIZE,
        /** private key to use for signing, private_key_t* */
@@ -72,6 +80,8 @@ enum builder_part_t {
        BUILD_NOT_AFTER_TIME,
        /** a serial number in binary form, chunk_t */
        BUILD_SERIAL,
+       /** digest algorithm to be used for signature, int */
+       BUILD_DIGEST_ALG,
        /** a comma-separated list of ietf group attributes, char* */
        BUILD_IETF_GROUP_ATTR,
        /** a ca certificate, certificate_t* */
@@ -84,6 +94,22 @@ enum builder_part_t {
        BUILD_SMARTCARD_KEYID,
        /** pin to access a key on a smartcard, null terminated char* */
        BUILD_SMARTCARD_PIN,
+       /** modulus (n) of a RSA key, chunk_t */
+       BUILD_RSA_MODULUS,
+       /** public exponent (e) of a RSA key, chunk_t */
+       BUILD_RSA_PUB_EXP,
+       /** private exponent (d) of a RSA key, chunk_t */
+       BUILD_RSA_PRIV_EXP,
+       /** prime 1 (p) of a RSA key (p < q), chunk_t */
+       BUILD_RSA_PRIME1,
+       /** prime 2 (q) of a RSA key (p < q), chunk_t */
+       BUILD_RSA_PRIME2,
+       /** exponent 1 (exp1) of a RSA key, chunk_t */
+       BUILD_RSA_EXP1,
+       /** exponent 2 (exp1) of a RSA key, chunk_t */
+       BUILD_RSA_EXP2,
+       /** coefficient (coeff) of a RSA key, chunk_t */
+       BUILD_RSA_COEFF,
        /** end of variable argument builder list */
        BUILD_END,
 };