pubkey: Improve comparison of raw public key certificate objects

This commit is contained in:
Tobias Brunner 2013-06-05 11:30:05 +02:00
parent 888dbac50e
commit c0d0391a51
1 changed files with 11 additions and 1 deletions

View File

@ -110,15 +110,25 @@ METHOD(certificate_t, has_issuer, id_match_t,
METHOD(certificate_t, equals, bool,
private_pubkey_cert_t *this, certificate_t *other)
{
identification_t *other_subject;
public_key_t *other_key;
if (this == (private_pubkey_cert_t*)other)
{
return TRUE;
}
if (other->get_type(other) != CERT_TRUSTED_PUBKEY)
{
return FALSE;
}
other_key = other->get_public_key(other);
if (other_key)
{
if (public_key_equals(this->key, other_key))
{
other_key->destroy(other_key);
return TRUE;
other_subject = other->get_subject(other);
return other_subject->equals(other_subject, this->subject);
}
other_key->destroy(other_key);
}