diff options
-rw-r--r-- | src/libstrongswan/plugins/x509/x509_cert.c | 5 |
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); |