From bce1333bb18f19e996de816efea15ab1aeb3bdb2 Mon Sep 17 00:00:00 2001 From: Blockstream Satellite Date: Wed, 18 Nov 2020 10:19:15 -0300 Subject: [PATCH] Add blocksat pubkey statically as package data The importing using recv_keys from a key server does not work with all gpg versions. It was failing, e.g., on gpg 1.4.21. To overcome the problem, add the pubkey statically as package data and import directly from there. --- blocksatcli/api/api.py | 20 ++++++++----- ...D07253F69E4CD8629B0A21A94A007EC9D4458C.gpg | 29 +++++++++++++++++++ setup.py | 2 +- 3 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 blocksatcli/gpg/87D07253F69E4CD8629B0A21A94A007EC9D4458C.gpg diff --git a/blocksatcli/api/api.py b/blocksatcli/api/api.py index 47255788..49b25304 100644 --- a/blocksatcli/api/api.py +++ b/blocksatcli/api/api.py @@ -55,18 +55,24 @@ def config(args): gpg.create_keys(name, email, comment) # Import Blockstream's public key - key_server = 'keys.openpgp.org' - import_result = gpg.gpg.recv_keys(key_server, blocksat_pubkey) + # + # NOTE: the order is important here. Add Blockstream's public key only after + # adding the user key. With that, the user key becomes the first key on the + # keyring, which is used by default. + pkg_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + key_path = os.path.join(pkg_dir, 'gpg', blocksat_pubkey + ".gpg") + + with open(key_path) as fd: + key_data = fd.read() + + import_result = gpg.gpg.import_keys(key_data) if (len(import_result.fingerprints) == 0): logger.warning("Failed to import key {}".format(blocksat_pubkey)) return - # Note: the order is important here. Add Blockstream's public key only after - # adding the user's key. With that, the user's key becomes the first key, - # which is used by default. - logger.info("Imported key {} from {}".format( - import_result.fingerprints[0], key_server + logger.info("Imported key {}".format( + import_result.fingerprints[0] )) gpg.gpg.trust_keys(blocksat_pubkey, 'TRUST_ULTIMATE') diff --git a/blocksatcli/gpg/87D07253F69E4CD8629B0A21A94A007EC9D4458C.gpg b/blocksatcli/gpg/87D07253F69E4CD8629B0A21A94A007EC9D4458C.gpg new file mode 100644 index 00000000..c34dd7a3 --- /dev/null +++ b/blocksatcli/gpg/87D07253F69E4CD8629B0A21A94A007EC9D4458C.gpg @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFwQEqcBCADEM4ieCV98IqiUNpJfhtZC3vGJrhIEjTpYVn6S+efMdodclkvb +QSB3hFr2pkcIBSaa+2ply/OAI1vnG5VFRW76ze+i/qnSRsHUXMPh2diCNQ4otyVq +H2hZbEw4ngjW1imh7HuQmgFzvwnIsUXDGk5/NY2moSwVHKNOAGK2taInXLWEjLSb +6qqz6+rjpHTun9kRZl0w1gAVG0qHCy8VRa4nvuaCsmxDL6DWpylQ+Z8U2IEJOdCW +3SJ6S9wszR7G+E1gfddl21JS8RpHT40Qn8PSLgsgLt4crrjpUcgTgQ0zrcDjx4t0 +d46CL/dbQjxDP+j9BUmftt63Lfdta7ncEdV7ABEBAAG0MUJsb2Nrc3RyZWFtIFNh +dGVsbGl0ZSA8c2F0ZWxsaXRlQGJsb2Nrc3RyZWFtLmNvbT6JATcEEwEIACEFAlwQ +EqcCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQqUoAfsnURYzwtgf/bxWi +p+tgti0PsT75qWr5n4FQF2N5n5gLZGKLKBTMiwJ/DfOR01iwcxD4QM3gpLdV+Zza +PRhIOYpSC/moPrjjz5FHZ/pAEvESB3AXvwAsPzNY+XpIlGwNiXqypzAXzrtqRsqL +MEBVPgRKYYmYjHuMAzQdmFXOOuvSPBejIvNb0l5JAyjdGg3FAcRNsHSwR2Jjur56 +y3BdZ4LxqHvLnqJG2wclZ6Wd02/r7knp2M5qXzdbcLy2vRo/uuCTYc0kk+S0uJSp +AFeWlWQt1lqKiXAj8xhcMbRRT8vnx9cDz9i9dsItZHkZf4+FeUjUvAzPAPACNo9x +JlupJT3CzvhYtjy0c7kBDQRcEBKnAQgA45DFWUI+rGOchjS0Q97ZdKMHbRwipkRy +qSnDAckhDZiuxhK9DaJ2Gyygm7w7KhhT57BX9I7S2K7nBSXb8jHsB36VoisR+F0n +Tl41Bl8JSAOL4pnzim+MDJe5BKAS4/fJL8hfN3rR1m1k6EJlRdFEMqFPAp3X/BeX +K/hpWTmSfS30NgINI8PAc2k2eg7ydt3anor56mEQ8gTClNXyX5NNas2BwA6HM5KR +95YdjhGPgyW37/Xb/BdqLE9rx/dC4+p+afnoW0tMbwQih4UK9Yo92D2VMDXdFCu3 +5K8QgjtqifSpTXqeFz4OadqA0pDVrmnOhb6uMucd5RjPkKkuycUyxwARAQABiQEf +BBgBCAAJBQJcEBKnAhsMAAoJEKlKAH7J1EWM1WAH/iH8/4L2cQHo/z4W98ot/u3b +hVpmzPJtC/njHYjrhAYautppMvDmHye249XMnrGP5urS1E2CaP7L30fkRoFkDp+e +tUjoBrrgJyNIo88NMZ4e4m0ZJb78DORm3jBUX+kuofONgu0j/qAc06KEQLdegUi3 +USuYjcrZJs2nZNnblsjHtrQYOeP8ZXaswL4m5aKcTOn+C2wpA36k1XQ/K8NqZ7/5 +wt3xjIVthfqpqW70HdYMbdldVQ2FfB7dOxSQf1DkKKiz6YAZ1qhOAgrI+rG9Fa4f +My3QNtKgAVMo+b6+T2cVNq3sd5r4WPzJzzCOMm/HSDqTxusJi0iTSGoz9rPRhgg= +=ZlPl +-----END PGP PUBLIC KEY BLOCK----- diff --git a/setup.py b/setup.py index 9434f36e..30fa76fd 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ 'pysnmp' ], package_data={ - 'blocksatcli' : ['mib/*.mib', 'mib/*.txt'] + 'blocksatcli' : ['mib/*.mib', 'mib/*.txt', 'gpg/*.gpg'] }, classifiers=[ 'Programming Language :: Python :: 3',