diff options
author | Martin Willi <martin@strongswan.org> | 2009-08-25 15:37:33 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-08-26 11:23:55 +0200 |
commit | 9c3d2b3d60a1616813ccc88bbc036c983d0733b4 (patch) | |
tree | 059c00945314807eee1bb80bdf4064d7dedc9245 | |
parent | 1cd0d7969ab8a1b4bfff70d4b4deeaa514995a76 (diff) | |
download | strongswan-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.c | 11 | ||||
-rwxr-xr-x | src/medsrv/controller/peer_controller.c | 14 |
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; } |