)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"0428dfe4e6d4304a538283559086c0cabcad9477","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says the"},{"line_number":13,"context_line":"SHA-1 is not suitable for general-purpose digital signature"},{"line_number":14,"context_line":"applications (as specified in FIPS 186-3) that require 112"},{"line_number":15,"context_line":"bits of security. In the case of digital signatures, SHA-1"},{"line_number":16,"context_line":"does not provide the 112 bits of collision resistance needed"},{"line_number":17,"context_line":"to achieve the security strength."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9aa7fdbe_b0daffe5","line":14,"updated":"2014-10-24 04:21:01.000000000","message":"And I think it\u0027s valuable to make operator notice this matters when he setup the configure option: why he need change it and what value need to be prevented from security\u0027s opinion.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"90dd0f4fd067ff27d992e172d97c9fa69d301e71","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says the"},{"line_number":13,"context_line":"SHA-1 is not suitable for general-purpose digital signature"},{"line_number":14,"context_line":"applications (as specified in FIPS 186-3) that require 112"},{"line_number":15,"context_line":"bits of security. In the case of digital signatures, SHA-1"},{"line_number":16,"context_line":"does not provide the 112 bits of collision resistance needed"},{"line_number":17,"context_line":"to achieve the security strength."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a961159_67f07bfd","line":14,"in_reply_to":"3a961159_11f4bc59","updated":"2015-01-09 07:07:05.000000000","message":"Again, and nikhil proposed this point as well.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"1cf739b22bd3ccc96958a6e50af03226782a4230","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says the"},{"line_number":13,"context_line":"SHA-1 is not suitable for general-purpose digital signature"},{"line_number":14,"context_line":"applications (as specified in FIPS 186-3) that require 112"},{"line_number":15,"context_line":"bits of security. In the case of digital signatures, SHA-1"},{"line_number":16,"context_line":"does not provide the 112 bits of collision resistance needed"},{"line_number":17,"context_line":"to achieve the security strength."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9aa7fdbe_f5725010","line":14,"in_reply_to":"9aa7fdbe_b0daffe5","updated":"2014-10-29 02:46:14.000000000","message":"Good point.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"1cf959f0b13f084a4ee6c6c1eacdc79f0837b3e3","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says the"},{"line_number":13,"context_line":"SHA-1 is not suitable for general-purpose digital signature"},{"line_number":14,"context_line":"applications (as specified in FIPS 186-3) that require 112"},{"line_number":15,"context_line":"bits of security. In the case of digital signatures, SHA-1"},{"line_number":16,"context_line":"does not provide the 112 bits of collision resistance needed"},{"line_number":17,"context_line":"to achieve the security strength."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a961159_11f4bc59","line":14,"in_reply_to":"9aa7fdbe_f5725010","updated":"2015-01-06 04:23:15.000000000","message":"So would you mind we update this into in-tree doc? probably doc/source/configuring.rst is a good place, imo, with the new option.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"13a4337856b57c8baf5532f2ee20d92845c05273","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bits of security. In the case of digital signatures, SHA-1"},{"line_number":16,"context_line":"does not provide the 112 bits of collision resistance needed"},{"line_number":17,"context_line":"to achieve the security strength."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1288545"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I9236cc85f4e9881ac1aa35d69bc6761a59c1b6c8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a961159_7102603f","line":18,"updated":"2015-01-06 04:23:53.000000000","message":"Due to the change added a new option, so we\u0027d better add a DocImpact tag here.","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"6ebd70b16bb78300091d135f8b67d4ff9bfdcd2f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bits of security. In the case of digital signatures, SHA-1"},{"line_number":16,"context_line":"does not provide the 112 bits of collision resistance needed"},{"line_number":17,"context_line":"to achieve the security strength."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1288545"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I9236cc85f4e9881ac1aa35d69bc6761a59c1b6c8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a961159_4c082d2d","line":18,"in_reply_to":"3a961159_7102603f","updated":"2015-01-08 21:52:09.000000000","message":"Done","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"}],"doc/source/configuring.rst":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"87cd89d43aa9d93ccc8cdbcf2f795a16da2d358a","unresolved":false,"context_lines":[{"line_number":1406,"context_line":""},{"line_number":1407,"context_line":"* ``digest_algorithm\u003d\u003calgorithm\u003e``"},{"line_number":1408,"context_line":""},{"line_number":1409,"context_line":"Optional. Default: ``sha256``"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a961159_4feb74dc","line":1409,"updated":"2015-01-12 02:57:48.000000000","message":"So base on what we talked at https://review.openstack.org/#/c/80178/7/glance/common/utils.py , I would like to add a sort message here to help operator debug issue when improper value was configured, like: When an improper digest algorithm was configure, all digital signature operation will be failed by a ValueError exception with \"No such digest method\" error.","commit_id":"2bba25f4627bd641336692e4ce6e85d103bc8381"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"66efca56a92e5a93a131109c237b7794a6626d89","unresolved":false,"context_lines":[{"line_number":1394,"context_line":"Optional. Default: ``None``"},{"line_number":1395,"context_line":""},{"line_number":1396,"context_line":"Configuring Glance digest algorithm"},{"line_number":1397,"context_line":"----------------------------------"},{"line_number":1398,"context_line":""},{"line_number":1399,"context_line":"Digest algorithm which will be used for digital signature; the default is"},{"line_number":1400,"context_line":"sha256. Use the command::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_582d0a45","line":1397,"updated":"2015-01-19 17:23:40.000000000","message":"Nit, add one more - to make it match the length of the title.","commit_id":"20217685e640b2d94a304b48bbfeea2303e37a71"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"e1eae0478be041212d4eaea28c02c47da0e32769","unresolved":false,"context_lines":[{"line_number":1397,"context_line":"-----------------------------------"},{"line_number":1398,"context_line":""},{"line_number":1399,"context_line":"Digest algorithm which will be used for digital signature; the default is"},{"line_number":1400,"context_line":"sha256. Use the command::"},{"line_number":1401,"context_line":""},{"line_number":1402,"context_line":"  openssl list-message-digest-algorithms"},{"line_number":1403,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a961159_b7733415","line":1400,"updated":"2015-01-20 17:17:00.000000000","message":"Elsewhere it says the default is sha1 -- why is this different?","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"f308941b58d39543d26140e5667c0cb0b8f6d746","unresolved":false,"context_lines":[{"line_number":1397,"context_line":"-----------------------------------"},{"line_number":1398,"context_line":""},{"line_number":1399,"context_line":"Digest algorithm which will be used for digital signature; the default is"},{"line_number":1400,"context_line":"sha256. Use the command::"},{"line_number":1401,"context_line":""},{"line_number":1402,"context_line":"  openssl list-message-digest-algorithms"},{"line_number":1403,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"1a930d6b_2ecc8735","line":1400,"in_reply_to":"3a961159_b7733415","updated":"2015-01-20 20:34:29.000000000","message":"Good catch.","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"e1eae0478be041212d4eaea28c02c47da0e32769","unresolved":false,"context_lines":[{"line_number":1408,"context_line":""},{"line_number":1409,"context_line":"* ``digest_algorithm\u003d\u003calgorithm\u003e``"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"Optional. Default: ``sha256``"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3a961159_f75cdc82","line":1411,"updated":"2015-01-20 17:17:00.000000000","message":"Same","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":11864,"name":"Ben Roble","email":"ben.roble@rackspace.com","username":"broble"},"change_message_id":"1f358019c5c078449b761753b0fabedeb5029e47","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"to get the available algorithms supported by the version of OpenSSL on the"},{"line_number":1409,"context_line":"platform. Examples are \"sha1\", \"sha256\", \"sha512\", etc. If an invalid"},{"line_number":1410,"context_line":"digest algorithm is configured, all digital signature operations will be"},{"line_number":1411,"context_line":"failed and got an ValueError exception with \"No such digest method\" error."},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"* ``digest_algorithm\u003d\u003calgorithm\u003e``"},{"line_number":1414,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"1a930d6b_1b89a2ca","line":1411,"updated":"2015-01-21 19:53:24.000000000","message":"reword as \"all digital signature operations will fail and return a ValueError exception\"","commit_id":"e8822691ef8ece3c579e7224d399fd5579977cb2"},{"author":{"_account_id":11864,"name":"Ben Roble","email":"ben.roble@rackspace.com","username":"broble"},"change_message_id":"c9ab5e506e933c2a6b3374828bf804daece833c1","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"to get the available algorithms supported by the version of OpenSSL on the"},{"line_number":1409,"context_line":"platform. Examples are \"sha1\", \"sha256\", \"sha512\", etc. If an invalid"},{"line_number":1410,"context_line":"digest algorithm is configured, all digital signature operations will be"},{"line_number":1411,"context_line":"failed and got an ValueError exception with \"No such digest method\" error."},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"* ``digest_algorithm\u003d\u003calgorithm\u003e``"},{"line_number":1414,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"1a930d6b_9b63d219","line":1411,"in_reply_to":"1a930d6b_1b89a2ca","updated":"2015-01-21 19:55:52.000000000","message":"or possibly \"all digital signature operations will fail and receive a ValueError exception\" depending on how you look at it","commit_id":"e8822691ef8ece3c579e7224d399fd5579977cb2"},{"author":{"_account_id":11864,"name":"Ben Roble","email":"ben.roble@rackspace.com","username":"broble"},"change_message_id":"3d22ba5000d3dbaccef9d06ce52a416607a52bee","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"to get the available algorithms supported by the version of OpenSSL on the"},{"line_number":1409,"context_line":"platform. Examples are \"sha1\", \"sha256\", \"sha512\", etc. If an invalid"},{"line_number":1410,"context_line":"digest algorithm is configured, all digital signature operations will be"},{"line_number":1411,"context_line":"failed and got an ValueError exception with \"No such digest method\" error."},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"* ``digest_algorithm\u003d\u003calgorithm\u003e``"},{"line_number":1414,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"1a930d6b_45d7a9ed","line":1411,"updated":"2015-01-22 15:47:44.000000000","message":"Nit: This should probably say \"get a ValueError\" instead of \"got an ValueError\" at the very least (more comments on PS 15).","commit_id":"d220c61e944262d251180902eee48abf6fbe696c"}],"etc/glance-api.conf":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"0428dfe4e6d4304a538283559086c0cabcad9477","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"# Hash algorithm which will be used for digital signature, the default is"},{"line_number":148,"context_line":"# sha256."},{"line_number":149,"context_line":"#hash_algorithm \u003d sha256"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Registry Options \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/plain","patch_set":5,"id":"9aa7fdbe_d04ce3ca","line":148,"updated":"2014-10-24 04:21:01.000000000","message":"IMO we\u0027d better tell user, he can use \"openssl list-message-digest-algorithms\" to get available values for this option on his particular environment/deployment at here as a part of help text.\n\nbtw, what do you think renaming this to \"digest_algorithm\"? IMHO it\u0027s more pertinent for Glance and operator.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"1cf739b22bd3ccc96958a6e50af03226782a4230","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"# Hash algorithm which will be used for digital signature, the default is"},{"line_number":148,"context_line":"# sha256."},{"line_number":149,"context_line":"#hash_algorithm \u003d sha256"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Registry Options \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/plain","patch_set":5,"id":"9aa7fdbe_b925435d","line":148,"in_reply_to":"9aa7fdbe_d04ce3ca","updated":"2014-10-29 02:46:14.000000000","message":"Good point.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"904ed21cd2e68fea074e66288a84c054b001ac7d","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"# Digest algorithm which will be used for digital signature, the default is"},{"line_number":137,"context_line":"# sha1 in Kilo for smooth upgrade and will be updated with sha256 in next"},{"line_number":138,"context_line":"# release(L). Using command \"openssl list-message-digest-algorithms\" to get"},{"line_number":139,"context_line":"# the available algorithms supported by the version of OpenSSL on the platform."},{"line_number":140,"context_line":"# Examples are \u0027sha1\u0027, \u0027sha256\u0027, \u0027sha512\u0027, etc."},{"line_number":141,"context_line":"#digest_algorithm \u003d sha1"}],"source_content_type":"text/plain","patch_set":12,"id":"3a961159_95fd863f","line":138,"updated":"2015-01-19 11:45:16.000000000","message":"Nit: Update this for parity with the help text defined in glance/common/config.py (Using -\u003e Use).","commit_id":"20217685e640b2d94a304b48bbfeea2303e37a71"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3dcfdc45d9093847c324ca40c9b7bba7ce362c76","unresolved":false,"context_lines":[{"line_number":136,"context_line":"# Digest algorithm which will be used for digital signature, the default is"},{"line_number":137,"context_line":"# sha1 in Kilo for a smooth upgrade process, and it will be updated with"},{"line_number":138,"context_line":"# sha256 in next release(L). Use command"},{"line_number":139,"context_line":"\"openssl list-message-digest-algorithms\" to get the available algorithms"},{"line_number":140,"context_line":"# supported by the version of OpenSSL on the platform. Examples are \u0027sha1\u0027,"},{"line_number":141,"context_line":"\u0027sha256\u0027, \u0027sha512\u0027, etc."},{"line_number":142,"context_line":"#digest_algorithm \u003d sha1"}],"source_content_type":"text/plain","patch_set":18,"id":"1a930d6b_81d4c5bd","line":139,"updated":"2015-01-26 14:07:54.000000000","message":"This needs to be commented","commit_id":"f64363fa94a4d30b5160863b153fc05a17ae7424"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3dcfdc45d9093847c324ca40c9b7bba7ce362c76","unresolved":false,"context_lines":[{"line_number":138,"context_line":"# sha256 in next release(L). Use command"},{"line_number":139,"context_line":"\"openssl list-message-digest-algorithms\" to get the available algorithms"},{"line_number":140,"context_line":"# supported by the version of OpenSSL on the platform. Examples are \u0027sha1\u0027,"},{"line_number":141,"context_line":"\u0027sha256\u0027, \u0027sha512\u0027, etc."},{"line_number":142,"context_line":"#digest_algorithm \u003d sha1"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Registry Options \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/plain","patch_set":18,"id":"1a930d6b_c1d96df4","line":141,"updated":"2015-01-26 14:07:54.000000000","message":"So does this","commit_id":"f64363fa94a4d30b5160863b153fc05a17ae7424"}],"glance/common/config.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"13a4337856b57c8baf5532f2ee20d92845c05273","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                      \u0027talking to the registry or database.\u0027)),"},{"line_number":153,"context_line":"    cfg.StrOpt(\u0027digest_algorithm\u0027, default\u003d\u0027sha256\u0027,"},{"line_number":154,"context_line":"               help\u003d_(\u0027Digest algorithm which will be used for digital \u0027"},{"line_number":155,"context_line":"                      \u0027signature, the default is sha256.\u0027)),"},{"line_number":156,"context_line":"]"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_b173e814","line":155,"updated":"2015-01-06 04:23:53.000000000","message":"We\u0027d better make this help string be consistent with what you wrote in glance-api.conf template, which is more complete. This could help us when we using auto-generation way to maintain configure template files, the help string will be collected from code/here directly.","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"6ebd70b16bb78300091d135f8b67d4ff9bfdcd2f","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                      \u0027talking to the registry or database.\u0027)),"},{"line_number":153,"context_line":"    cfg.StrOpt(\u0027digest_algorithm\u0027, default\u003d\u0027sha256\u0027,"},{"line_number":154,"context_line":"               help\u003d_(\u0027Digest algorithm which will be used for digital \u0027"},{"line_number":155,"context_line":"                      \u0027signature, the default is sha256.\u0027)),"},{"line_number":156,"context_line":"]"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_ad57afff","line":155,"in_reply_to":"3a961159_b173e814","updated":"2015-01-08 21:52:09.000000000","message":"Done","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"2835bb943f33153c2f1c2cae325ffdc58dc02897","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                      \u0027talking to the registry or database.\u0027)),"},{"line_number":153,"context_line":"    cfg.StrOpt(\u0027digest_algorithm\u0027, default\u003d\u0027sha256\u0027,"},{"line_number":154,"context_line":"               help\u003d_(\u0027Digest algorithm which will be used for digital \u0027"},{"line_number":155,"context_line":"                      \u0027signature, the default is sha256. Using command \u0027"},{"line_number":156,"context_line":"                      \u0027\"openssl list-message-digest-algorithms\" to get the \u0027"},{"line_number":157,"context_line":"                      \u0027available algorithms supported by the version of \u0027"},{"line_number":158,"context_line":"                      \u0027OpenSSL on the platform. Examples are \"sha1\", \"md5\", \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_eca54703","line":155,"updated":"2015-01-08 14:53:06.000000000","message":"Nit: signature, the default -\u003e signature; the default (semicolon replaces comma)\n\nNit: Using command -\u003e Use the command","commit_id":"451268aa3230c20a87265c92f52b1c530d65ec83"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"66efca56a92e5a93a131109c237b7794a6626d89","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    cfg.StrOpt(\u0027metadata_encryption_key\u0027, secret\u003dTrue,"},{"line_number":151,"context_line":"               help\u003d_(\u0027Key used for encrypting sensitive metadata while \u0027"},{"line_number":152,"context_line":"                      \u0027talking to the registry or database.\u0027)),"},{"line_number":153,"context_line":"    cfg.StrOpt(\u0027digest_algorithm\u0027, default\u003d\u0027sha1\u0027,"},{"line_number":154,"context_line":"               help\u003d_(\u0027Digest algorithm which will be used for digital \u0027"},{"line_number":155,"context_line":"                      \u0027signature; the default is sha1. Use the command \u0027"},{"line_number":156,"context_line":"                      \u0027\"openssl list-message-digest-algorithms\" to get the \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_5890aa42","line":153,"updated":"2015-01-19 17:23:40.000000000","message":"Is sha1 the only one guaranteed to be supported on every possible version of openssl? If not, why not use a better default?","commit_id":"20217685e640b2d94a304b48bbfeea2303e37a71"}],"glance/common/utils.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"0428dfe4e6d4304a538283559086c0cabcad9477","unresolved":false,"context_lines":[{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    try:"},{"line_number":544,"context_line":"        data \u003d str(uuid.uuid4())"},{"line_number":545,"context_line":"        digest \u003d CONF.hash_algorithm"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":548,"context_line":"        crypto.verify(cert, out, data, digest)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa7fdbe_70a3374f","line":545,"updated":"2014-10-24 04:21:01.000000000","message":"Is there a method to make sure configured digest algorithm comply with FIPS 186-3 standard? I consider we probably need a LOG.warn here to tell operator something when a bad digest algorithms was configured.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"1cf739b22bd3ccc96958a6e50af03226782a4230","unresolved":false,"context_lines":[{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    try:"},{"line_number":544,"context_line":"        data \u003d str(uuid.uuid4())"},{"line_number":545,"context_line":"        digest \u003d CONF.hash_algorithm"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":548,"context_line":"        crypto.verify(cert, out, data, digest)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa7fdbe_98adb9ed","line":545,"in_reply_to":"9aa7fdbe_70a3374f","updated":"2014-10-29 02:46:14.000000000","message":"Hmm... It makes some sense for me. But I\u0027m thinking how. IMHO, the default value, SHA256 is safe enough, and if the admin/operator is looking for more safer digest algorithm, then they should be aware of the difference and the importance from the security perspective.","commit_id":"bad7b7fe87c3cce7f836c86c14488ac2f4dabf93"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"13a4337856b57c8baf5532f2ee20d92845c05273","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":515,"context_line":"        crypto.verify(cert, out, data, digest)"},{"line_number":516,"context_line":"    except crypto.Error as ce:"},{"line_number":517,"context_line":"        raise RuntimeError(_(\"There is a problem with your key pair.  \""},{"line_number":518,"context_line":"                             \"Please verify that cert %(cert_file)s and \""},{"line_number":519,"context_line":"                             \"key %(key_file)s belong together.  OpenSSL \""},{"line_number":520,"context_line":"                             \"error %(ce)s\") % {\u0027cert_file\u0027: cert_file,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_d14794a1","line":517,"updated":"2015-01-06 04:23:53.000000000","message":"I\u0027m thinking if operator provided a improper \u0027digest_algorithm\u0027 config, which means the value didn\u0027t in the \"openssl list-message-digest-algorithms\" list, then message operator saw this runtime error provided will be improper, so what about to update this message be a little helpful to reflect that case?","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"ddfbbf7d3dc236b9d4b4ea860eb9c75ea4bd24ae","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":515,"context_line":"        crypto.verify(cert, out, data, digest)"},{"line_number":516,"context_line":"    except crypto.Error as ce:"},{"line_number":517,"context_line":"        raise RuntimeError(_(\"There is a problem with your key pair.  \""},{"line_number":518,"context_line":"                             \"Please verify that cert %(cert_file)s and \""},{"line_number":519,"context_line":"                             \"key %(key_file)s belong together.  OpenSSL \""},{"line_number":520,"context_line":"                             \"error %(ce)s\") % {\u0027cert_file\u0027: cert_file,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_e7b54b32","line":517,"in_reply_to":"3a961159_6f1a3b70","updated":"2015-01-09 07:06:52.000000000","message":"Good to know, it works for me.","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"6ebd70b16bb78300091d135f8b67d4ff9bfdcd2f","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":515,"context_line":"        crypto.verify(cert, out, data, digest)"},{"line_number":516,"context_line":"    except crypto.Error as ce:"},{"line_number":517,"context_line":"        raise RuntimeError(_(\"There is a problem with your key pair.  \""},{"line_number":518,"context_line":"                             \"Please verify that cert %(cert_file)s and \""},{"line_number":519,"context_line":"                             \"key %(key_file)s belong together.  OpenSSL \""},{"line_number":520,"context_line":"                             \"error %(ce)s\") % {\u0027cert_file\u0027: cert_file,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_6f1a3b70","line":517,"in_reply_to":"3a961159_d14794a1","updated":"2015-01-08 21:52:09.000000000","message":"Good point. Actually, it will be handled by crypto lib, so if there is a wrong digest algorithm, user will see an error like below:\n\n  File \"glance/common/utils.py\", line 514, in validate_key_cert\n    out \u003d crypto.sign(key, data, digest)\n  File \"/home/feilong/MyWorkspace/workspace_community/glance/.venv/local/lib/python2.7/site-packages/OpenSSL/crypto.py\", line 2086, in sign\n    raise ValueError(\"No such digest method\")\nValueError: No such digest method","commit_id":"39cbe135206a41863a0e741f83f04ce6be56ce5c"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"e1eae0478be041212d4eaea28c02c47da0e32769","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        data \u003d str(uuid.uuid4())"},{"line_number":512,"context_line":"        digest \u003d CONF.digest_algorithm"},{"line_number":513,"context_line":"        if digest \u003d\u003d \u0027sha1\u0027:"},{"line_number":514,"context_line":"            LOG.warn(\u0027In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says\u0027"},{"line_number":515,"context_line":"                     \u0027 the SHA-1 is not suitable for general-purpose digital\u0027"},{"line_number":516,"context_line":"                     \u0027 signature applications (as specified in FIPS 186-3)\u0027"},{"line_number":517,"context_line":"                     \u0027 that require 112 bits of security. the default value\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_f7d93c29","line":514,"updated":"2015-01-20 17:17:00.000000000","message":"The FIPS (FEDERAL INFORMATION PROCESSING STANDARDS) state that the SHA-1...","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"f308941b58d39543d26140e5667c0cb0b8f6d746","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        data \u003d str(uuid.uuid4())"},{"line_number":512,"context_line":"        digest \u003d CONF.digest_algorithm"},{"line_number":513,"context_line":"        if digest \u003d\u003d \u0027sha1\u0027:"},{"line_number":514,"context_line":"            LOG.warn(\u0027In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says\u0027"},{"line_number":515,"context_line":"                     \u0027 the SHA-1 is not suitable for general-purpose digital\u0027"},{"line_number":516,"context_line":"                     \u0027 signature applications (as specified in FIPS 186-3)\u0027"},{"line_number":517,"context_line":"                     \u0027 that require 112 bits of security. the default value\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a930d6b_3104e814","line":514,"in_reply_to":"3a961159_f7d93c29","updated":"2015-01-20 20:34:29.000000000","message":"Done","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"e1eae0478be041212d4eaea28c02c47da0e32769","unresolved":false,"context_lines":[{"line_number":514,"context_line":"            LOG.warn(\u0027In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says\u0027"},{"line_number":515,"context_line":"                     \u0027 the SHA-1 is not suitable for general-purpose digital\u0027"},{"line_number":516,"context_line":"                     \u0027 signature applications (as specified in FIPS 186-3)\u0027"},{"line_number":517,"context_line":"                     \u0027 that require 112 bits of security. the default value\u0027"},{"line_number":518,"context_line":"                     \u0027 is sha1 in Kilo for smooth upgrade and will be updated\u0027"},{"line_number":519,"context_line":"                     \u0027 with sha256 in next release(L).\u0027)"},{"line_number":520,"context_line":"        out \u003d crypto.sign(key, data, digest)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_57593034","line":517,"updated":"2015-01-20 17:17:00.000000000","message":"\"the\" should be capitalized since it is the beginning of a sentence.","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"f308941b58d39543d26140e5667c0cb0b8f6d746","unresolved":false,"context_lines":[{"line_number":514,"context_line":"            LOG.warn(\u0027In FIPS(FEDERAL INFORMATION PROCESSING STANDARDS) says\u0027"},{"line_number":515,"context_line":"                     \u0027 the SHA-1 is not suitable for general-purpose digital\u0027"},{"line_number":516,"context_line":"                     \u0027 signature applications (as specified in FIPS 186-3)\u0027"},{"line_number":517,"context_line":"                     \u0027 that require 112 bits of security. the default value\u0027"},{"line_number":518,"context_line":"                     \u0027 is sha1 in Kilo for smooth upgrade and will be updated\u0027"},{"line_number":519,"context_line":"                     \u0027 with sha256 in next release(L).\u0027)"},{"line_number":520,"context_line":"        out \u003d crypto.sign(key, data, digest)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a930d6b_5109742b","line":517,"in_reply_to":"3a961159_57593034","updated":"2015-01-20 20:34:29.000000000","message":"Done","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"e1eae0478be041212d4eaea28c02c47da0e32769","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                     \u0027 the SHA-1 is not suitable for general-purpose digital\u0027"},{"line_number":516,"context_line":"                     \u0027 signature applications (as specified in FIPS 186-3)\u0027"},{"line_number":517,"context_line":"                     \u0027 that require 112 bits of security. the default value\u0027"},{"line_number":518,"context_line":"                     \u0027 is sha1 in Kilo for smooth upgrade and will be updated\u0027"},{"line_number":519,"context_line":"                     \u0027 with sha256 in next release(L).\u0027)"},{"line_number":520,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":521,"context_line":"        crypto.verify(cert, out, data, digest)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_173968a3","line":518,"updated":"2015-01-20 17:17:00.000000000","message":"...in Kilo for a smooth upgrade process, and it will be updated...","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"f308941b58d39543d26140e5667c0cb0b8f6d746","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                     \u0027 the SHA-1 is not suitable for general-purpose digital\u0027"},{"line_number":516,"context_line":"                     \u0027 signature applications (as specified in FIPS 186-3)\u0027"},{"line_number":517,"context_line":"                     \u0027 that require 112 bits of security. the default value\u0027"},{"line_number":518,"context_line":"                     \u0027 is sha1 in Kilo for smooth upgrade and will be updated\u0027"},{"line_number":519,"context_line":"                     \u0027 with sha256 in next release(L).\u0027)"},{"line_number":520,"context_line":"        out \u003d crypto.sign(key, data, digest)"},{"line_number":521,"context_line":"        crypto.verify(cert, out, data, digest)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a930d6b_710e7036","line":518,"in_reply_to":"3a961159_173968a3","updated":"2015-01-20 20:34:29.000000000","message":"Done","commit_id":"f1e3f98db495dd9dc0fffa935db0078e7e7fdeed"}],"glance/tests/unit/test_opts.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"2835bb943f33153c2f1c2cae325ffdc58dc02897","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            \u0027flavor\u0027,"},{"line_number":146,"context_line":"            \u0027config_file\u0027,"},{"line_number":147,"context_line":"            \u0027public_endpoint\u0027,"},{"line_number":148,"context_line":"            \u0027digest_algorithm\u0027"},{"line_number":149,"context_line":"        ]"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        self._check_opt_groups(opt_list, expected_opt_groups)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_8cea030d","line":148,"updated":"2015-01-08 14:53:06.000000000","message":"Preferable to have comma on last line so it need not be added when additional options are appended later.","commit_id":"451268aa3230c20a87265c92f52b1c530d65ec83"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"2835bb943f33153c2f1c2cae325ffdc58dc02897","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            \u0027max_header_line\u0027,"},{"line_number":207,"context_line":"            \u0027flavor\u0027,"},{"line_number":208,"context_line":"            \u0027config_file\u0027,"},{"line_number":209,"context_line":"            \u0027digest_algorithm\u0027"},{"line_number":210,"context_line":"        ]"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self._check_opt_groups(opt_list, expected_opt_groups)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_acedff26","line":209,"updated":"2015-01-08 14:53:06.000000000","message":"Ditto","commit_id":"451268aa3230c20a87265c92f52b1c530d65ec83"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"2835bb943f33153c2f1c2cae325ffdc58dc02897","unresolved":false,"context_lines":[{"line_number":268,"context_line":"            \u0027auth_region\u0027,"},{"line_number":269,"context_line":"            \u0027registry_host\u0027,"},{"line_number":270,"context_line":"            \u0027registry_port\u0027,"},{"line_number":271,"context_line":"            \u0027digest_algorithm\u0027"},{"line_number":272,"context_line":"        ]"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        self._check_opt_groups(opt_list, expected_opt_groups)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_ccf08bff","line":271,"updated":"2015-01-08 14:53:06.000000000","message":"Ditto","commit_id":"451268aa3230c20a87265c92f52b1c530d65ec83"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"2835bb943f33153c2f1c2cae325ffdc58dc02897","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            \u0027auth_url\u0027,"},{"line_number":329,"context_line":"            \u0027auth_strategy\u0027,"},{"line_number":330,"context_line":"            \u0027auth_region\u0027,"},{"line_number":331,"context_line":"            \u0027digest_algorithm\u0027"},{"line_number":332,"context_line":"        ]"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        self._check_opt_groups(opt_list, expected_opt_groups)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_6cdf9766","line":331,"updated":"2015-01-08 14:53:06.000000000","message":"Ditto","commit_id":"451268aa3230c20a87265c92f52b1c530d65ec83"}],"glance/tests/var/certificate.crt":[{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"b58f6ee3eecaba66e1a6508e56fa0acac8d16d1c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"-----BEGIN CERTIFICATE-----"},{"line_number":2,"context_line":"MIIFlTCCA32gAwIBAgIJAPstaPIRBPlgMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV"},{"line_number":3,"context_line":"BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMRUwEwYDVQQKDAxPcGVuc3RhY2sg"},{"line_number":4,"context_line":"Q0ExEjAQBgNVBAsMCUdsYW5jZSBDQTESMBAGA1UEAwwJR2xhbmNlIENBMB4XDTE0"}],"source_content_type":"application/pkix-cert","patch_set":1,"id":"AAAAWH%2F%2FViI%3D","line":1,"updated":"2014-03-18 14:52:35.000000000","message":"In the client we dump the cert info in the equivalent to this file. I think that would also\nbe helpful here.\n\nNote that the cert expiration date should be set to far in the future.\n\npython-glanceclient$ head -n 40 ./tests/var/certificate.crt\n# Certificate:\n#    Data:\n#        Version: 3 (0x2)\n#        Serial Number: 1 (0x1)\n#        Signature Algorithm: sha1WithRSAEncryption\n#        Issuer: O\u003dOpenstack CA Org, OU\u003dOpenstack Test CA/emailAddress\u003dadmin@ca.example.com,\n#                L\u003dState CA, ST\u003dCA, C\u003dAU, CN\u003dOpenstack Test Certificate Authority\n#        Validity\n#            Not Before: Nov 16 12:50:19 2012 GMT\n#            Not After : Apr  3 12:50:19 2040 GMT\n#        Subject: O\u003dOpenstack Test Org, OU\u003dOpenstack Test Unit/emailAddress\u003dadmin@example.com,\n#                 L\u003dState1, ST\u003dCA, C\u003dUS, CN\u003d0.0.0.0\n#        Subject Public Key Info:\n#            Public Key Algorithm: rsaEncryption\n#            RSA Public Key: (4096 bit)\n#                Modulus (4096 bit):\n#                    00:d4:bb:3a:c4:a0:06:54:31:23:5d:b0:78:5a:be:\n#                    45:44:ae:a1:89:86:11:d8:ca:a8:33:b0:4f:f3:e1:\n#                    .\n#                    .\n#                    .\n#                Exponent: 65537 (0x10001)\n#        X509v3 extensions:\n#            X509v3 Subject Alternative Name:\n#                DNS:alt1.example.com, DNS:alt2.example.com\n#    Signature Algorithm: sha1WithRSAEncryption\n#        2c:fc:5c:87:24:bd:4a:fa:40:d2:2e:35:a4:2a:f3:1c:b3:67:\n#        b0:e4:8a:cd:67:6b:55:50:d4:cb:dd:2d:26:a5:15:62:90:a3:\n#        .\n#        .\n#        .\n-----BEGIN CERTIFICATE-----\nMIIGADCCA+igAwIBAgIBATANBgkqhkiG9w0BAQUFADCBuDEZMBcGA1UEChMQT3Bl\nbnN0YWNrIENBIE9yZzEaMBgGA1UECxMRT3BlbnN0YWNrIFRlc3QgQ0ExIzAhBgkq","commit_id":"91d072da48c008e07408b3d55de859ef8924b5ce"}]}
