)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"56100d96c9ed5bae453da791579369bd484a4a13","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixing a byte\u003estr conversion bug present in the TOTP"},{"line_number":10,"context_line":"passcode generation function that was only present in python3"},{"line_number":11,"context_line":"which rendered TOTP auth non-functional in python3."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie052d559c4eb2577d35caa9f6e240664cf4cf399"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_24a076f4","line":11,"range":{"start_line":11,"start_character":50,"end_line":11,"end_character":51},"updated":"2016-07-28 02:13:42.000000000","message":"Add Closes-Bug: #1607119","commit_id":"673a4b750e135c7faa5ae555664d5d02a73b4296"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c4bcfa41b9646adf18b954c905aa74a65f61ff6e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Also adding a test to check passcode generation returns the"},{"line_number":14,"context_line":"correct format."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1607119"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ie052d559c4eb2577d35caa9f6e240664cf4cf399"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bacf61ea_6a5cf725","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":20},"updated":"2016-07-28 03:53:27.000000000","message":"++","commit_id":"b2cb4c403f94fdf61100d43b59dedec1547c7364"}],"keystone/auth/plugins/totp.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"4965bd066d641418ee07b3691bb2f7f264a51dba","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \"\"\"Generate TOTP passcode."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    :param bytes secret: A base32 encoded secret for the TOTP authentication"},{"line_number":50,"context_line":"    :returns: totp passcode as bytes"},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    if isinstance(secret, six.text_type):"},{"line_number":53,"context_line":"        # NOTE(dstanek): since this may be coming from the JSON stored in the"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_eb64704a","line":50,"range":{"start_line":50,"start_character":14,"end_line":50,"end_character":36},"updated":"2016-07-28 01:45:48.000000000","message":"this should now return a string, correct?","commit_id":"673a4b750e135c7faa5ae555664d5d02a73b4296"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"4965bd066d641418ee07b3691bb2f7f264a51dba","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    decoded \u003d base64.b32decode(secret)"},{"line_number":63,"context_line":"    totp \u003d crypto_totp.TOTP("},{"line_number":64,"context_line":"        decoded, 6, hashes.SHA1(), 30, backend\u003ddefault_backend())"},{"line_number":65,"context_line":"    return totp.generate(timeutils.utcnow_ts(microsecond\u003dTrue)).decode(\u0027utf-8\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"@dependency.requires(\u0027credential_api\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_060579c1","line":65,"range":{"start_line":65,"start_character":4,"end_line":65,"end_character":79},"updated":"2016-07-28 01:45:48.000000000","message":"When I put it the code from the original return statement, the values match exactly.  Not seeing a difference.","commit_id":"673a4b750e135c7faa5ae555664d5d02a73b4296"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"7faab80f55d6184806cf5af21881caf7fc905aa4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    decoded \u003d base64.b32decode(secret)"},{"line_number":63,"context_line":"    totp \u003d crypto_totp.TOTP("},{"line_number":64,"context_line":"        decoded, 6, hashes.SHA1(), 30, backend\u003ddefault_backend())"},{"line_number":65,"context_line":"    return totp.generate(timeutils.utcnow_ts(microsecond\u003dTrue)).decode(\u0027utf-8\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"@dependency.requires(\u0027credential_api\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_061299b4","line":65,"range":{"start_line":65,"start_character":4,"end_line":65,"end_character":79},"in_reply_to":"bacf61ea_060579c1","updated":"2016-07-28 01:54:03.000000000","message":"*When I put in...","commit_id":"673a4b750e135c7faa5ae555664d5d02a73b4296"}]}
