use only KEY_ID_PUBKEY_SHA1 fingerprint charon internally

This commit is contained in:
Martin Willi
2009-08-26 11:23:53 +02:00
parent 87d2026341
commit 8eefe4617f
2 changed files with 10 additions and 18 deletions
+1 -1
View File
@@ -1432,7 +1432,7 @@ static private_key_t *get_private_by_cert(private_credential_manager_t *this,
public = cert->get_public_key(cert); public = cert->get_public_key(cert);
if (public) if (public)
{ {
if (public->get_fingerprint(public, KEY_ID_PUBKEY_INFO_SHA1, &chunk)) if (public->get_fingerprint(public, KEY_ID_PUBKEY_SHA1, &chunk))
{ {
keyid = identification_create_from_encoding(ID_KEY_ID, chunk); keyid = identification_create_from_encoding(ID_KEY_ID, chunk);
private = get_private_by_keyid(this, type, keyid); private = get_private_by_keyid(this, type, keyid);
+9 -17
View File
@@ -105,7 +105,6 @@ static void id_data_destroy(id_data_t *data)
static bool private_filter(id_data_t *data, static bool private_filter(id_data_t *data,
private_key_t **in, private_key_t **out) private_key_t **in, private_key_t **out)
{ {
key_encoding_type_t type;
private_key_t *key; private_key_t *key;
chunk_t keyid; chunk_t keyid;
@@ -115,14 +114,11 @@ static bool private_filter(id_data_t *data,
*out = key; *out = key;
return TRUE; return TRUE;
} }
for (type = KEY_ID_PUBKEY_INFO_SHA1; type < KEY_ID_PUBKEY_SHA1; type++) if (key->get_fingerprint(key, KEY_ID_PUBKEY_SHA1, &keyid) &&
chunk_equals(keyid, data->id->get_encoding(data->id)))
{ {
if (key->get_fingerprint(key, type, &keyid) && *out = key;
chunk_equals(keyid, data->id->get_encoding(data->id))) return TRUE;
{
*out = key;
return TRUE;
}
} }
return FALSE; return FALSE;
} }
@@ -150,7 +146,6 @@ static enumerator_t* create_private_enumerator(private_stroke_cred_t *this,
*/ */
static bool certs_filter(id_data_t *data, certificate_t **in, certificate_t **out) static bool certs_filter(id_data_t *data, certificate_t **in, certificate_t **out)
{ {
key_encoding_type_t type;
public_key_t *public; public_key_t *public;
certificate_t *cert = *in; certificate_t *cert = *in;
chunk_t keyid; chunk_t keyid;
@@ -169,15 +164,12 @@ static bool certs_filter(id_data_t *data, certificate_t **in, certificate_t **ou
public = cert->get_public_key(cert); public = cert->get_public_key(cert);
if (public) if (public)
{ {
for (type = KEY_ID_PUBKEY_INFO_SHA1; type < KEY_ID_PUBKEY_SHA1; type++) if (public->get_fingerprint(public, KEY_ID_PUBKEY_SHA1, &keyid) &&
chunk_equals(keyid, data->id->get_encoding(data->id)))
{ {
if (public->get_fingerprint(public, type, &keyid) && public->destroy(public);
chunk_equals(keyid, data->id->get_encoding(data->id))) *out = *in;
{ return TRUE;
public->destroy(public);
*out = *in;
return TRUE;
}
} }
public->destroy(public); public->destroy(public);
} }