handle certificate parsing error more generous

This commit is contained in:
Martin Willi
2006-09-14 13:14:58 +00:00
parent 8a95c322c5
commit b9024ee058
+16 -9
View File
@@ -459,25 +459,32 @@ static void import_certificate(private_ike_auth_t *this, cert_payload_t *cert_pa
return; return;
} }
cert = x509_create_from_chunk(cert_payload->get_data_clone(cert_payload)); cert = x509_create_from_chunk(cert_payload->get_data_clone(cert_payload));
if (cert)
if (charon->credentials->verify(charon->credentials, cert, &found))
{ {
this->logger->log(this->logger, CONTROL|LEVEL1, if (charon->credentials->verify(charon->credentials, cert, &found))
"received end entity certificate is trusted, added to store");
if (found)
{ {
cert->destroy(cert); this->logger->log(this->logger, CONTROL|LEVEL1,
"received end entity certificate is trusted, added to store");
if (!found)
{
charon->credentials->add_end_certificate(charon->credentials, cert);
}
else
{
cert->destroy(cert);
}
} }
else else
{ {
cert = charon->credentials->add_end_certificate(charon->credentials, cert); this->logger->log(this->logger, CONTROL,
"received end entity certificate is not trusted, discarded");
cert->destroy(cert);
} }
} }
else else
{ {
cert->destroy(cert);
this->logger->log(this->logger, CONTROL, this->logger->log(this->logger, CONTROL,
"received end entity certificate is not trusted, discarded"); "parsing of received certificate failed, discarded");
} }
} }