summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries/nicknym.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/bitmask_libraries/nicknym.py')
-rw-r--r--service/pixelated/bitmask_libraries/nicknym.py30
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):