aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-08-25 15:37:33 +0200
committerMartin Willi <martin@strongswan.org>2009-08-26 11:23:55 +0200
commit9c3d2b3d60a1616813ccc88bbc036c983d0733b4 (patch)
tree059c00945314807eee1bb80bdf4064d7dedc9245
parent1cd0d7969ab8a1b4bfff70d4b4deeaa514995a76 (diff)
downloadstrongswan-9c3d2b3d60a1616813ccc88bbc036c983d0733b4.tar.bz2
strongswan-9c3d2b3d60a1616813ccc88bbc036c983d0733b4.tar.xz
updated medsrv and test to new fingerprint/encoding API
-rw-r--r--src/charon/plugins/unit_tester/tests/test_med_db.c11
-rwxr-xr-xsrc/medsrv/controller/peer_controller.c14
2 files changed, 16 insertions, 9 deletions
diff --git a/src/charon/plugins/unit_tester/tests/test_med_db.c b/src/charon/plugins/unit_tester/tests/test_med_db.c
index 7b4603bd7..da517958e 100644
--- a/src/charon/plugins/unit_tester/tests/test_med_db.c
+++ b/src/charon/plugins/unit_tester/tests/test_med_db.c
@@ -30,8 +30,8 @@ bool test_med_db()
0x68,0x97,0x99,0x24,0x22,0xe0,0xde,0x21,
0xb9,0xd6,0x26,0x29
};
- chunk_t keyid = chunk_from_buf(keyid_buf);
- identification_t *id, *found;
+ chunk_t found, keyid = chunk_from_buf(keyid_buf);
+ identification_t *id;
enumerator_t *enumerator;
public_key_t *public;
auth_cfg_t *auth;
@@ -42,8 +42,11 @@ bool test_med_db()
charon->credentials, KEY_ANY, id, NULL);
while (enumerator->enumerate(enumerator, &public, &auth))
{
- found = public->get_id(public, ID_PUBKEY_SHA1);
- good = chunk_equals(id->get_encoding(id), found->get_encoding(found));
+ good = public->get_fingerprint(public, KEY_ID_PUBKEY_SHA1, &found);
+ if (good)
+ {
+ good = chunk_equals(id->get_encoding(id), found);
+ }
}
enumerator->destroy(enumerator);
id->destroy(id);
diff --git a/src/medsrv/controller/peer_controller.c b/src/medsrv/controller/peer_controller.c
index 5166a420c..9b472a903 100755
--- a/src/medsrv/controller/peer_controller.c
+++ b/src/medsrv/controller/peer_controller.c
@@ -121,8 +121,7 @@ static bool parse_public_key(private_peer_controller_t *this,
chunk_t *encoding, chunk_t *keyid)
{
public_key_t *public;
- identification_t *id;
- chunk_t blob;
+ chunk_t blob, id;
if (!public_key || *public_key == '\0')
{
@@ -140,11 +139,16 @@ static bool parse_public_key(private_peer_controller_t *this,
return FALSE;
}
/* TODO: use get_encoding() with an encoding type */
+ if (!public->get_fingerprint(public, KEY_ID_PUBKEY_SHA1, &id) ||
+ !public->get_encoding(public, KEY_PUB_ASN1_DER, &blob))
+ {
+ request->setf(request, "error=Encoding public key failed.");
+ return FALSE;
+ }
+ *keyid = chunk_clone(id);
*encoding = asn1_wrap(ASN1_SEQUENCE, "cm",
asn1_algorithmIdentifier(OID_RSA_ENCRYPTION),
- asn1_bitstring("m", public->get_encoding(public)));
- id = public->get_id(public, ID_PUBKEY_SHA1);
- *keyid = chunk_clone(id->get_encoding(id));
+ asn1_bitstring("m", blob));
public->destroy(public);
return TRUE;
}