)]}'
{"keystone/common/utils.py":[{"author":{"_account_id":16687,"name":"Shu Shen","email":"shu.shen@gmail.com","username":"shushen"},"change_message_id":"c9145c164d3c1b1231e705a530c053966c6e7258","unresolved":false,"context_lines":[{"line_number":132,"context_line":"def hash_password(password):"},{"line_number":133,"context_line":"    \"\"\"Hash a password. Hard.\"\"\""},{"line_number":134,"context_line":"    password_utf8 \u003d verify_length_and_trunc_password(password).encode(\u0027utf-8\u0027)"},{"line_number":135,"context_line":"    return passlib.hash.sha512_crypt.using("},{"line_number":136,"context_line":"        rounds\u003dCONF.crypt_strength"},{"line_number":137,"context_line":"    ).hash(password_utf8)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def check_password(password, hashed):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_fbaa9e6f","line":137,"range":{"start_line":135,"start_character":0,"end_line":137,"end_character":25},"updated":"2016-11-23 17:25:28.000000000","message":"Simply replacing encrypt() with hash() should do the trick:\n\n    return passlib.hash.sha512_crypt.hash(\n        password_utf8, rounds\u003dCONF.crypt_strength)","commit_id":"77ba845e7a8b183ed177c4a76a4226c9fa70de6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ba8b3e64d34c608d6742466670d6edc39dd61be3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    password_utf8 \u003d verify_length_and_trunc_password(password).encode(\u0027utf-8\u0027)"},{"line_number":135,"context_line":"    return passlib.hash.sha512_crypt.using("},{"line_number":136,"context_line":"        rounds\u003dCONF.crypt_strength"},{"line_number":137,"context_line":"    ).hash(password_utf8)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def check_password(password, hashed):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_d11dc310","line":137,"in_reply_to":"5a74a57a_fbaa9e6f","updated":"2016-11-23 18:05:59.000000000","message":"I tried doing that but I ended up getting the following issues: \n\nhttp://cdn.pasteraw.com/sgub1owivwivycdbvu4925d6qwkzbr9\n\nInstead, I updated it to follow the API docs from passlib - http://pythonhosted.org/passlib/lib/passlib.hash.sha256_crypt.html","commit_id":"77ba845e7a8b183ed177c4a76a4226c9fa70de6e"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"8d1fe1068f6c3831f6ecab27dbedbce4b7f09d3e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"def hash_password(password):"},{"line_number":133,"context_line":"    \"\"\"Hash a password. Hard.\"\"\""},{"line_number":134,"context_line":"    password_utf8 \u003d verify_length_and_trunc_password(password).encode(\u0027utf-8\u0027)"},{"line_number":135,"context_line":"    return passlib.hash.sha512_crypt.using("},{"line_number":136,"context_line":"        rounds\u003dCONF.crypt_strength"},{"line_number":137,"context_line":"    ).hash(password_utf8)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def check_password(password, hashed):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_d1cea359","line":137,"range":{"start_line":135,"start_character":0,"end_line":137,"end_character":25},"updated":"2016-11-23 18:12:42.000000000","message":"there should be a test to make sure it is getting the same result. otherwise existing encrypted passwords could never been validated again","commit_id":"7519b64b337dfde511108478ac6c715c6fdad284"},{"author":{"_account_id":16687,"name":"Shu Shen","email":"shu.shen@gmail.com","username":"shushen"},"change_message_id":"76edf5cad1e57f8570a30dfbf6294db4c5c22094","unresolved":false,"context_lines":[{"line_number":132,"context_line":"def hash_password(password):"},{"line_number":133,"context_line":"    \"\"\"Hash a password. Hard.\"\"\""},{"line_number":134,"context_line":"    password_utf8 \u003d verify_length_and_trunc_password(password).encode(\u0027utf-8\u0027)"},{"line_number":135,"context_line":"    return passlib.hash.sha512_crypt.using("},{"line_number":136,"context_line":"        rounds\u003dCONF.crypt_strength"},{"line_number":137,"context_line":"    ).hash(password_utf8)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def check_password(password, hashed):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_ac02aa3c","line":137,"range":{"start_line":135,"start_character":0,"end_line":137,"end_character":25},"in_reply_to":"5a74a57a_d1cea359","updated":"2016-11-23 18:48:32.000000000","message":"Presumably passlib shall be doing its job to ensure there is no regression to this regard, which would apply to each and every release of passlib and not only when there is an API deprecation.\n\nBut I guess it does no harm for keystone to carry out independent checks of its own.","commit_id":"7519b64b337dfde511108478ac6c715c6fdad284"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e41715285f68eecb93f773eac1b4da175a7a1740","unresolved":false,"context_lines":[{"line_number":132,"context_line":"def hash_password(password):"},{"line_number":133,"context_line":"    \"\"\"Hash a password. Hard.\"\"\""},{"line_number":134,"context_line":"    password_utf8 \u003d verify_length_and_trunc_password(password).encode(\u0027utf-8\u0027)"},{"line_number":135,"context_line":"    return passlib.hash.sha512_crypt.hash(password_utf8,"},{"line_number":136,"context_line":"                                          rounds\u003dCONF.crypt_strength)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"def check_password(password, hashed):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_9096773d","line":136,"range":{"start_line":135,"start_character":4,"end_line":136,"end_character":69},"updated":"2016-11-27 03:57:30.000000000","message":"does hash() work the same as encrypt() as of 1.6.5?\n\notherwise, we could detect the version used and use one or the other","commit_id":"44d3fa3099afda669071648c718066bceffe7300"}]}
