aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/credentials/credential_factory.c39
-rw-r--r--src/libstrongswan/credentials/credential_factory.h5
2 files changed, 42 insertions, 2 deletions
diff --git a/src/libstrongswan/credentials/credential_factory.c b/src/libstrongswan/credentials/credential_factory.c
index 5a421eed0..de4c2fb43 100644
--- a/src/libstrongswan/credentials/credential_factory.c
+++ b/src/libstrongswan/credentials/credential_factory.c
@@ -22,6 +22,12 @@
#include <utils/mutex.h>
#include <credentials/certificates/x509.h>
+ENUM(credential_type_names, CRED_PRIVATE_KEY, CRED_CERTIFICATE,
+ "CRED_PRIVATE_KEY",
+ "CRED_PUBLIC_KEY",
+ "CRED_CERTIFICATE",
+);
+
typedef struct private_credential_factory_t private_credential_factory_t;
/**
@@ -183,6 +189,11 @@ static void* create(private_credential_factory_t *this, credential_type_t type,
return builder->build(builder);
}
+ else
+ {
+ DBG1("failed to create a builder for credential type %N,"
+ " subtype (%d)", credential_type_names, type, subtype);
+ }
/** shredder all data on failure */
va_start(args, subtype);
@@ -200,6 +211,27 @@ static void* create(private_credential_factory_t *this, credential_type_t type,
free(chunk.ptr);
continue;
}
+ case BUILD_SERIAL:
+ {
+ va_arg(args, chunk_t);
+ continue;
+ }
+ case BUILD_X509_FLAG:
+ {
+ va_arg(args, x509_flag_t);
+ continue;
+ }
+ case BUILD_KEY_SIZE:
+ {
+ va_arg(args, u_int);
+ continue;
+ }
+ case BUILD_NOT_BEFORE_TIME:
+ case BUILD_NOT_AFTER_TIME:
+ {
+ va_arg(args, time_t);
+ continue;
+ }
case BUILD_SIGNING_KEY:
{
private_key_t *private = va_arg(args, private_key_t*);
@@ -229,9 +261,12 @@ static void* create(private_credential_factory_t *this, credential_type_t type,
cert->destroy(cert);
continue;
}
- case BUILD_KEY_SIZE:
- case BUILD_X509_FLAG:
+ case BUILD_FROM_FILE:
+ case BUILD_IETF_GROUP_ATTR:
+ {
+ va_arg(args, void*);
continue;
+ }
default:
DBG1("builder part %N not supported by factory",
builder_part_names, part);
diff --git a/src/libstrongswan/credentials/credential_factory.h b/src/libstrongswan/credentials/credential_factory.h
index 394d0b075..873cf8ab2 100644
--- a/src/libstrongswan/credentials/credential_factory.h
+++ b/src/libstrongswan/credentials/credential_factory.h
@@ -42,6 +42,11 @@ enum credential_type_t {
};
/**
+ * enum names for credential_type_t
+ */
+extern enum_name_t *credential_type_names;
+
+/**
* Manages credential construction functions and creates instances.
*/
struct credential_factory_t {