summaryrefslogtreecommitdiff
path: root/keystone/identity/id_generators/sha256.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone/identity/id_generators/sha256.py')
-rw-r--r--keystone/identity/id_generators/sha256.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/keystone/identity/id_generators/sha256.py b/keystone/identity/id_generators/sha256.py
index d0f4a57ad..dde9c2dd0 100644
--- a/keystone/identity/id_generators/sha256.py
+++ b/keystone/identity/id_generators/sha256.py
@@ -13,7 +13,6 @@
# under the License.
import hashlib
-
from keystone.identity import generator
@@ -22,5 +21,12 @@ class Generator(generator.IDGenerator):
def generate_public_ID(self, mapping):
m = hashlib.sha256()
for key in sorted(mapping.keys()):
- m.update(mapping[key].encode('utf-8'))
+ # python-ldap >3.0 returns bytes data type for attribute values
+ # except distinguished names, relative distinguished names,
+ # attribute names, queries on python3.
+ # Please see Bytes/text management in python-ldap module.
+ if isinstance(mapping[key], bytes):
+ m.update(mapping[key])
+ else:
+ m.update(mapping[key].encode('utf-8'))
return m.hexdigest()