Merge "TOTP auth not functional in python3"

This commit is contained in:
Jenkins 2016-07-29 03:30:45 +00:00 committed by Gerrit Code Review
commit 108edda14a
2 changed files with 8 additions and 1 deletions

View File

@ -62,7 +62,7 @@ def _generate_totp_passcode(secret):
decoded = base64.b32decode(secret)
totp = crypto_totp.TOTP(
decoded, 6, hashes.SHA1(), 30, backend=default_backend())
return six.text_type(totp.generate(timeutils.utcnow_ts(microsecond=True)))
return totp.generate(timeutils.utcnow_ts(microsecond=True)).decode('utf-8')
@dependency.requires('credential_api')

View File

@ -16,6 +16,7 @@ import copy
import datetime
import itertools
import operator
import re
import uuid
from keystoneclient.common import cms
@ -5070,6 +5071,12 @@ class TestAuthTOTP(test_v3.RestfulTestCase):
self.v3_create_token(auth_data, expected_status=http_client.CREATED)
def test_generated_passcode_is_correct_format(self):
secret = self._make_credentials('totp')[-1]['blob']
passcode = totp._generate_totp_passcode(secret)
reg = re.compile(r'^-?[0-9]+$')
self.assertTrue(reg.match(passcode))
class TestFetchRevocationList(object):
"""Test fetch token revocation list on the v3 Identity API."""