diff options
author | drebs <drebs@leap.se> | 2013-04-23 20:50:02 -0300 |
---|---|---|
committer | drebs <drebs@leap.se> | 2013-04-23 20:50:02 -0300 |
commit | 62b5a7798924188ba915a1c095917d8709e20ae7 (patch) | |
tree | 8a9357f100da498cdcdc4152aa35626bdef585c5 /src/leap/common/keymanager/util.py | |
parent | b3ad976ec8aa64a00cc824dc57aa2135ab41deb6 (diff) |
Refactor, fixes, add api, tests.
* Change KeyTypeWrapper to EncryptionScheme
* Change OpenPGPWrapper to OpenPGPScheme
* Add missing and standardized crypto API.
* Add delete_key()
* Fix put_key raw so it puts either public or private keys.
* Fix gpg's is_encrypted()
* Fix openpgp's safe callbacks so they return correctly.
* Remove binascii because it generates invalid doc ids.
* Add tests.
Diffstat (limited to 'src/leap/common/keymanager/util.py')
-rw-r--r-- | src/leap/common/keymanager/util.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/leap/common/keymanager/util.py b/src/leap/common/keymanager/util.py index 42168c8..667d2b2 100644 --- a/src/leap/common/keymanager/util.py +++ b/src/leap/common/keymanager/util.py @@ -25,6 +25,9 @@ import re from hashlib import sha256 +from binascii import b2a_base64 + + from leap.common.check import leap_assert @@ -79,11 +82,13 @@ def _build_key_from_doc(kClass, address, doc): return _build_key_from_dict(kClass, address, doc.content) -def _keymanager_doc_id(address, private=False): +def _keymanager_doc_id(ktype, address, private=False): """ Return the document id for the document containing a key for C{address}. + @param address: The type of the key. + @type address: KeyType @param address: The address bound to the key. @type address: str @param private: Whether the key is private or not. @@ -93,5 +98,6 @@ def _keymanager_doc_id(address, private=False): @rtype: str """ leap_assert(_is_address(address), "Wrong address format: %s" % address) - ktype = 'private' if private else 'public' - return sha256('key-manager-'+address+'-'+ktype).hexdigest() + ktype = str(ktype) + visibility = 'private' if private else 'public' + return sha256('key-manager-'+address+'-'+ktype+'-'+visibility).hexdigest() |