aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/x509/x509_cert.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstrongswan/plugins/x509/x509_cert.c')
-rw-r--r--src/libstrongswan/plugins/x509/x509_cert.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libstrongswan/plugins/x509/x509_cert.c b/src/libstrongswan/plugins/x509/x509_cert.c
index 17681823d..c215c7ad7 100644
--- a/src/libstrongswan/plugins/x509/x509_cert.c
+++ b/src/libstrongswan/plugins/x509/x509_cert.c
@@ -1414,6 +1414,7 @@ static bool generate(private_x509_cert_t *cert, certificate_t *sign_cert,
*/
x509_cert_t *x509_cert_load(certificate_type_t type, va_list args)
{
+ x509_flag_t flags = 0;
chunk_t blob = chunk_empty;
while (TRUE)
@@ -1423,6 +1424,9 @@ x509_cert_t *x509_cert_load(certificate_type_t type, va_list args)
case BUILD_BLOB_ASN1_DER:
blob = va_arg(args, chunk_t);
continue;
+ case BUILD_X509_FLAG:
+ flags |= va_arg(args, x509_flag_t);
+ continue;
case BUILD_END:
break;
default:
@@ -1439,6 +1443,7 @@ x509_cert_t *x509_cert_load(certificate_type_t type, va_list args)
cert->parsed = TRUE;
if (parse_certificate(cert))
{
+ cert->flags |= flags;
return &cert->public;
}
destroy(cert);