From 30bd90381cb6dc11e0f7880389b5391aafb45151 Mon Sep 17 00:00:00 2001 From: TLINDEN Date: Wed, 1 Apr 2015 20:47:35 +0200 Subject: [PATCH] fix #9: enable verifying own signature for normal sigs as well --- libpcp/ed.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libpcp/ed.c b/libpcp/ed.c index 9f2dffc..883e78d 100644 --- a/libpcp/ed.c +++ b/libpcp/ed.c @@ -277,6 +277,21 @@ pcp_pubkey_t *pcp_ed_verify_buffered(PCPCTX *ptx, Pcpstream *in, pcp_pubkey_t *p verifiedhash = pcp_ed_verify(ptx, sighash, mlen, p); if(verifiedhash != NULL) break; + } + + /* no pubkey found yet, try our own */ + pcp_key_t *k; + pcp_pubkey_t *pub; + pcphash_iterate(ptx, k) { + if(k->type == PCP_KEY_TYPE_MAINSECRET) { + pub = pcpkey_pub_from_secret(k); + verifiedhash = pcp_ed_verify(ptx, sighash, mlen, pub); + if(verifiedhash != NULL) { + /* good, self-signed */ + p = pub; + break; + } + } } } else {