)]}'
{"swift/common/middleware/encrypter.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"097e0820ddb8d0b20ef811fba03394b4747959cd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                # that were used."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"                # Don\u0027t include version in the iv_base"},{"line_number":101,"context_line":"                path_ver, path_for_base \u003d req.split_path(1, 2, True)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                val, etag_crypto_meta \u003d encrypt_header_val("},{"line_number":104,"context_line":"                    self.crypto, plaintext_etag,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_4cfc133e","line":101,"updated":"2016-06-01 11:32:37.000000000","message":"to be safe, I\u0027d suggest extracting the path_for_base at line 91 *before* the request environ is handed on to next middleware or proxy app, just in case the path gets modified in some way.","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"31cb7d100ebd6f4ec1baedc09d665ffe3a576b7a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                # that were used."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"                # Don\u0027t include version in the iv_base"},{"line_number":101,"context_line":"                path_ver, path_for_base \u003d req.split_path(1, 2, True)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                val, etag_crypto_meta \u003d encrypt_header_val("},{"line_number":104,"context_line":"                    self.crypto, plaintext_etag,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9ea1ef96","line":101,"in_reply_to":"9abb7d3a_4cfc133e","updated":"2016-06-01 14:54:15.000000000","message":"will do","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"097e0820ddb8d0b20ef811fba03394b4747959cd","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                val, etag_crypto_meta \u003d encrypt_header_val("},{"line_number":104,"context_line":"                    self.crypto, plaintext_etag,"},{"line_number":105,"context_line":"                    self.keys[\u0027container\u0027], iv_base\u003dos.path.join(os.sep, path_for_base))"},{"line_number":106,"context_line":"                footers[\u0027X-Object-Sysmeta-Crypto-Etag\u0027] \u003d val"},{"line_number":107,"context_line":"                footers[\u0027X-Object-Sysmeta-Crypto-Meta-Etag\u0027] \u003d \\"},{"line_number":108,"context_line":"                    dump_crypto_meta(etag_crypto_meta)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_c059e736","line":105,"updated":"2016-06-01 11:32:37.000000000","message":"pep8 fails\n\ndo we care about adding the leading \u0027/\u0027? I guess it doesn\u0027t matter either way.","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"31cb7d100ebd6f4ec1baedc09d665ffe3a576b7a","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                val, etag_crypto_meta \u003d encrypt_header_val("},{"line_number":104,"context_line":"                    self.crypto, plaintext_etag,"},{"line_number":105,"context_line":"                    self.keys[\u0027container\u0027], iv_base\u003dos.path.join(os.sep, path_for_base))"},{"line_number":106,"context_line":"                footers[\u0027X-Object-Sysmeta-Crypto-Etag\u0027] \u003d val"},{"line_number":107,"context_line":"                footers[\u0027X-Object-Sysmeta-Crypto-Meta-Etag\u0027] \u003d \\"},{"line_number":108,"context_line":"                    dump_crypto_meta(etag_crypto_meta)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_5e84a709","line":105,"in_reply_to":"9abb7d3a_c059e736","updated":"2016-06-01 14:54:15.000000000","message":"yes, sorry about the pep8 :-/\n\nAbout leading \u0027/\u0027, I thought it wise to be consistent with what we are doing in the keymaster for the key id.","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"097e0820ddb8d0b20ef811fba03394b4747959cd","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                # crypto parameters appended."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"                # Don\u0027t include version in the iv_base"},{"line_number":151,"context_line":"                path_ver, path_for_base \u003d req.split_path(1, 2, True)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"                val \u003d append_crypto_meta(*encrypt_header_val("},{"line_number":154,"context_line":"                    self.crypto, container_listing_etag,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_a09e63b6","line":151,"updated":"2016-06-01 11:32:37.000000000","message":"could just re-use the value from above?","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"31cb7d100ebd6f4ec1baedc09d665ffe3a576b7a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                # crypto parameters appended."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"                # Don\u0027t include version in the iv_base"},{"line_number":151,"context_line":"                path_ver, path_for_base \u003d req.split_path(1, 2, True)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"                val \u003d append_crypto_meta(*encrypt_header_val("},{"line_number":154,"context_line":"                    self.crypto, container_listing_etag,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_becdd367","line":151,"in_reply_to":"9abb7d3a_a09e63b6","updated":"2016-06-01 14:54:15.000000000","message":"will do","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"}],"test/unit/common/middleware/test_encrypter.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"097e0820ddb8d0b20ef811fba03394b4747959cd","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self.assertEqual(ciphertext_etag, req_hdrs[\u0027Etag\u0027])"},{"line_number":260,"context_line":"        actual \u003d base64.b64decode(req_hdrs[\u0027X-Object-Sysmeta-Crypto-Etag\u0027])"},{"line_number":261,"context_line":"        path_ver, path_for_base \u003d req.split_path(1, 2, True)"},{"line_number":262,"context_line":"        etag_iv \u003d Crypto().create_iv(iv_base\u003dos.path.join(os.sep, path_for_base))"},{"line_number":263,"context_line":"        self.assertEqual(encrypt(plaintext_etag, cont_key, etag_iv), actual)"},{"line_number":264,"context_line":"        actual \u003d json.loads(urllib.unquote_plus("},{"line_number":265,"context_line":"            req_hdrs[\u0027X-Object-Sysmeta-Crypto-Meta-Etag\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_e00eabe3","line":262,"updated":"2016-06-01 11:32:37.000000000","message":"nit: just use \u0027/a/c/o\u0027. less code and more explicit about what the expected value is","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"31cb7d100ebd6f4ec1baedc09d665ffe3a576b7a","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self.assertEqual(ciphertext_etag, req_hdrs[\u0027Etag\u0027])"},{"line_number":260,"context_line":"        actual \u003d base64.b64decode(req_hdrs[\u0027X-Object-Sysmeta-Crypto-Etag\u0027])"},{"line_number":261,"context_line":"        path_ver, path_for_base \u003d req.split_path(1, 2, True)"},{"line_number":262,"context_line":"        etag_iv \u003d Crypto().create_iv(iv_base\u003dos.path.join(os.sep, path_for_base))"},{"line_number":263,"context_line":"        self.assertEqual(encrypt(plaintext_etag, cont_key, etag_iv), actual)"},{"line_number":264,"context_line":"        actual \u003d json.loads(urllib.unquote_plus("},{"line_number":265,"context_line":"            req_hdrs[\u0027X-Object-Sysmeta-Crypto-Meta-Etag\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_fedabb15","line":262,"in_reply_to":"9abb7d3a_e00eabe3","updated":"2016-06-01 14:54:15.000000000","message":"will do","commit_id":"518ac2eb317227c0d794e09885b9f8c1595fa49c"}]}
