pubkey: Improve comparison of raw public key certificate objects
This commit is contained in:
parent
888dbac50e
commit
c0d0391a51
|
@ -110,15 +110,25 @@ METHOD(certificate_t, has_issuer, id_match_t,
|
||||||
METHOD(certificate_t, equals, bool,
|
METHOD(certificate_t, equals, bool,
|
||||||
private_pubkey_cert_t *this, certificate_t *other)
|
private_pubkey_cert_t *this, certificate_t *other)
|
||||||
{
|
{
|
||||||
|
identification_t *other_subject;
|
||||||
public_key_t *other_key;
|
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);
|
other_key = other->get_public_key(other);
|
||||||
if (other_key)
|
if (other_key)
|
||||||
{
|
{
|
||||||
if (public_key_equals(this->key, other_key))
|
if (public_key_equals(this->key, other_key))
|
||||||
{
|
{
|
||||||
other_key->destroy(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);
|
other_key->destroy(other_key);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue