From a8a0f842a39f82b994a88d2416cab2b0179ca880 Mon Sep 17 00:00:00 2001 From: Simone Margaritelli Date: Mon, 14 Oct 2019 11:36:42 +0200 Subject: [PATCH] new: saving unit's fingerprint to /etc/pwnagotchi/fingerprint for easy access --- bin/pwnagotchi | 2 +- pwnagotchi/identity.py | 4 ++++ pwnagotchi/mesh/utils.py | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/pwnagotchi b/bin/pwnagotchi index ce02bbc..a5412f3 100755 --- a/bin/pwnagotchi +++ b/bin/pwnagotchi @@ -37,7 +37,7 @@ if __name__ == '__main__': keypair = KeyPair(view=display) agent = Agent(view=display, config=config, keypair=keypair) - logging.info("%s@%s (v%s)" % (pwnagotchi.name(), agent._keypair.fingerprint, pwnagotchi.version)) + logging.info("%s@%s (v%s)" % (pwnagotchi.name(), agent.fingerprint(), pwnagotchi.version)) for _, plugin in plugins.loaded.items(): logging.debug("plugin '%s' v%s loaded from %s" % (plugin.__name__, plugin.__version__, plugin.__file__)) diff --git a/pwnagotchi/identity.py b/pwnagotchi/identity.py index 9be375b..d53f5b2 100644 --- a/pwnagotchi/identity.py +++ b/pwnagotchi/identity.py @@ -16,6 +16,7 @@ class KeyPair(object): self.priv_key = None self.pub_path = "%s.pub" % self.priv_path self.pub_key = None + self.fingerprint_path = os.path.join(path, "fingerprint") self._view = view if not os.path.exists(self.path): @@ -46,6 +47,9 @@ class KeyPair(object): self.pub_key_pem_b64 = base64.b64encode(pem_ascii).decode("ascii") self.fingerprint = hashlib.sha256(pem_ascii).hexdigest() + with open(self.fingerprint_path, 'w+t') as fp: + fp.write(self.fingerprint) + # no exception, keys loaded correctly. self._view.on_starting() return diff --git a/pwnagotchi/mesh/utils.py b/pwnagotchi/mesh/utils.py index 6129e82..3849acc 100644 --- a/pwnagotchi/mesh/utils.py +++ b/pwnagotchi/mesh/utils.py @@ -29,6 +29,9 @@ class AsyncAdvertiser(object): self._peers = {} self._closest_peer = None + def fingerprint(self): + return self._keypair.fingerprint + def _update_advertisement(self, s): self._advertisement['pwnd_run'] = len(self._handshakes) self._advertisement['pwnd_tot'] = utils.total_unique_handshakes(self._config['bettercap']['handshakes'])