tcheck_ssl_config: verify pubkey - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit aadffa0c8f438ace747489e77978c247c9cb2602 DIR parent a9e74da11c8db7e19f69128fde0d15de426c7696 HTML Author: ThomasV <thomasv@gitorious> Date: Wed, 5 Aug 2015 20:59:51 +0200 check_ssl_config: verify pubkey Diffstat: M lib/paymentrequest.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) --- DIR diff --git a/lib/paymentrequest.py b/lib/paymentrequest.py t@@ -337,14 +337,21 @@ def check_ssl_config(config): cert_path = config.get('ssl_chain') with open(key_path, 'r') as f: params = pem.parse_private_key(f.read()) - privkey = rsakey.RSAKey(*params) with open(cert_path, 'r') as f: s = f.read() - bList = pem.dePemList(s, "CERTIFICATE") + bList = pem.dePemList(s, "CERTIFICATE") # verify chain x, ca = verify_cert_chain(bList) - # verify pubkey - return x.get_common_name() + # verify that privkey and pubkey match + privkey = rsakey.RSAKey(*params) + pubkey = rsakey.RSAKey(x.modulus, x.exponent) + assert x.modulus == params[0] + assert x.exponent == params[1] + # return requestor + requestor = x.get_common_name() + if requestor.startswith('*.'): + requestor = requestor[2:] + return requestor def sign_request_with_x509(pr, key_path, cert_path): import pem