handle certificate parsing error more generous
This commit is contained in:
@@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user