diff options
Diffstat (limited to 'service/pixelated/bitmask_libraries/nicknym.py')
-rw-r--r-- | service/pixelated/bitmask_libraries/nicknym.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/service/pixelated/bitmask_libraries/nicknym.py b/service/pixelated/bitmask_libraries/nicknym.py index 220d75e5..826ecb58 100644 --- a/service/pixelated/bitmask_libraries/nicknym.py +++ b/service/pixelated/bitmask_libraries/nicknym.py @@ -15,6 +15,7 @@ # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. from leap.keymanager import KeyManager, openpgp, KeyNotFound from .certs import LeapCertificate +from twisted.internet import defer class NickNym(object): @@ -23,28 +24,35 @@ class NickNym(object): self._email = email_address self.keymanager = KeyManager(self._email, nicknym_url, soledad_session.soledad, - token, LeapCertificate(provider).provider_api_cert, provider.api_uri, - provider.api_version, - uuid, config.gpg_binary) + token=token, ca_cert_path=LeapCertificate(provider).provider_api_cert, api_uri=provider.api_uri, + api_version=provider.api_version, + uid=uuid, gpgbinary=config.gpg_binary) + @defer.inlineCallbacks def generate_openpgp_key(self): - if not self._key_exists(self._email): + key_present = yield self._key_exists(self._email) + if not key_present: print "Generating keys - this could take a while..." - self._gen_key() - self._send_key_to_leap() + yield self._gen_key() + # Sending it anyway for now. TODO: This can be better with real checking (downloading pubkey from nicknym) + yield self._send_key_to_leap() + @defer.inlineCallbacks def _key_exists(self, email): try: - self.keymanager.get_key(email, openpgp.OpenPGPKey, private=True, fetch_remote=False) - return True + yield self.fetch_key(email, private=True, fetch_remote=False) + defer.returnValue(True) except KeyNotFound: - return False + defer.returnValue(False) + + def fetch_key(self, email, private=False, fetch_remote=True): + return self.keymanager.get_key(email, openpgp.OpenPGPKey, private=private, fetch_remote=fetch_remote) def _gen_key(self): - self.keymanager.gen_key(openpgp.OpenPGPKey) + return self.keymanager.gen_key(openpgp.OpenPGPKey) def _send_key_to_leap(self): - self.keymanager.send_key(openpgp.OpenPGPKey) + return self.keymanager.send_key(openpgp.OpenPGPKey) def _discover_nicknym_server(provider): |