discard cert if CA basic constraints flag is not set and warn if cert is not valide
This commit is contained in:
@@ -263,11 +263,22 @@ static void load_ca_certificates(private_local_credential_store_t *this, const c
|
|||||||
cert = x509_create_from_file(file, "ca certificate");
|
cert = x509_create_from_file(file, "ca certificate");
|
||||||
if (cert)
|
if (cert)
|
||||||
{
|
{
|
||||||
this->ca_certs->insert_last(this->ca_certs, (void*)cert);
|
err_t ugh = cert->is_valid(cert, NULL);
|
||||||
}
|
|
||||||
else
|
if (ugh != NULL)
|
||||||
{
|
{
|
||||||
this->logger->log(this->logger, ERROR, "certificate \"%s\" invalid, skipped", file);
|
this->logger->log(this->logger, ERROR, "warning: ca certificate %s", ugh);
|
||||||
|
}
|
||||||
|
if (cert->is_ca(cert))
|
||||||
|
{
|
||||||
|
this->ca_certs->insert_last(this->ca_certs, (void*)cert);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->logger->log(this->logger, ERROR,
|
||||||
|
" CA basic constraints flag not set, cert discarded");
|
||||||
|
cert->destroy(cert);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user