)]}'
{"keystone/contrib/s3/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"7f5efe800b58d884ff65b9f2a1e215a93891953b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        def _sign(key, msg):"},{"line_number":117,"context_line":"            return hmac.new(key, msg, hashlib.sha256).digest()"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        signed \u003d _sign((\u0027AWS4\u0027 + secret_key).encode(\u0027utf-8\u0027), scope[0])"},{"line_number":120,"context_line":"        signed \u003d _sign(signed, scope[1])"},{"line_number":121,"context_line":"        signed \u003d _sign(signed, scope[2])"},{"line_number":122,"context_line":"        signed \u003d _sign(signed, b\u0027aws4_request\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_bf792784","line":119,"updated":"2015-11-18 19:20:07.000000000","message":"awesome, this was what the AWS spec said to do anyway","commit_id":"bce8575c2027fc9f9cd2c2a7ad0cfc286df83c58"}]}
