)]}'
{"nova/crypto.py":[{"author":{"_account_id":4992,"name":"malini-k-bhandaru","email":"malini.k.bhandaru@intel.com","username":"malini-k-bhandaru"},"change_message_id":"844889c93a4a2cd2b7ca9e722ad37db98a69359a","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"_RSA_OID \u003d univ.ObjectIdentifier(\u00271.2.840.113549.1.1.1\u0027)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def _to_bitstring(num):"},{"line_number":193,"context_line":"    buf \u003d \u0027\u0027"},{"line_number":194,"context_line":"    while num \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKiw%3D","line":191,"updated":"2013-02-05 04:52:18.000000000","message":"Could use python build in function bin\nbin(num)[2:]\nbin(10) \u003d \u00270b1010\u0027, and get rid of the 0b prefix","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e41bd4a9f43032c8ff845b7d3cb22e669f9f6ad0","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"_RSA_OID \u003d univ.ObjectIdentifier(\u00271.2.840.113549.1.1.1\u0027)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def _to_bitstring(num):"},{"line_number":193,"context_line":"    buf \u003d \u0027\u0027"},{"line_number":194,"context_line":"    while num \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJyE%3D","line":191,"in_reply_to":"AAAAM3%2F%2FKiw%3D","updated":"2013-02-05 14:19:29.000000000","message":"Done","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"43bed82b88a70b52dc81c5270b845f82f1c78787","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"def _convert_from_sshrsa_to_pkcs8(pubkey):"},{"line_number":209,"context_line":"    # get the second field from the public key file."},{"line_number":210,"context_line":"    try:"},{"line_number":211,"context_line":"        keydata \u003d base64.b64decode(pubkey.split(None)[1])"},{"line_number":212,"context_line":"    except IndexError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJ%2Fk%3D","line":209,"updated":"2013-02-05 10:58:29.000000000","message":"I\u0027d add a comment that this is equivalent to `ssh-keygen -m ...` but that command option is not generally available","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e41bd4a9f43032c8ff845b7d3cb22e669f9f6ad0","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"def _convert_from_sshrsa_to_pkcs8(pubkey):"},{"line_number":209,"context_line":"    # get the second field from the public key file."},{"line_number":210,"context_line":"    try:"},{"line_number":211,"context_line":"        keydata \u003d base64.b64decode(pubkey.split(None)[1])"},{"line_number":212,"context_line":"    except IndexError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJyA%3D","line":209,"in_reply_to":"AAAAM3%2F%2FJ%2Fk%3D","updated":"2013-02-05 14:19:29.000000000","message":"Done","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"43bed82b88a70b52dc81c5270b845f82f1c78787","unresolved":false,"context_lines":[{"line_number":257,"context_line":"def ssh_encrypt_text(ssh_public_key, text):"},{"line_number":258,"context_line":"    \"\"\"Encrypt text with an ssh public key."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    Requires recent ssh-keygen binary in addition to openssl binary."},{"line_number":261,"context_line":"    \"\"\""},{"line_number":262,"context_line":"    with utils.tempdir() as tmpdir:"},{"line_number":263,"context_line":"        sshkey \u003d os.path.abspath(os.path.join(tmpdir, \u0027ssh.key\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKG0%3D","line":260,"updated":"2013-02-05 10:58:29.000000000","message":"stale comment","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e41bd4a9f43032c8ff845b7d3cb22e669f9f6ad0","unresolved":false,"context_lines":[{"line_number":257,"context_line":"def ssh_encrypt_text(ssh_public_key, text):"},{"line_number":258,"context_line":"    \"\"\"Encrypt text with an ssh public key."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    Requires recent ssh-keygen binary in addition to openssl binary."},{"line_number":261,"context_line":"    \"\"\""},{"line_number":262,"context_line":"    with utils.tempdir() as tmpdir:"},{"line_number":263,"context_line":"        sshkey \u003d os.path.abspath(os.path.join(tmpdir, \u0027ssh.key\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJx8%3D","line":260,"in_reply_to":"AAAAM3%2F%2FKG0%3D","updated":"2013-02-05 14:19:29.000000000","message":"Done","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"43bed82b88a70b52dc81c5270b845f82f1c78787","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    with utils.tempdir() as tmpdir:"},{"line_number":263,"context_line":"        sshkey \u003d os.path.abspath(os.path.join(tmpdir, \u0027ssh.key\u0027))"},{"line_number":264,"context_line":"        with open(sshkey, \u0027w\u0027) as f:"},{"line_number":265,"context_line":"            f.write(ssh_public_key)"},{"line_number":266,"context_line":"        sslkey \u003d os.path.abspath(os.path.join(tmpdir, \u0027ssl.key\u0027))"},{"line_number":267,"context_line":"        try:"},{"line_number":268,"context_line":"            out \u003d _convert_from_sshrsa_to_pkcs8(ssh_public_key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FKGQ%3D","line":265,"updated":"2013-02-05 10:58:29.000000000","message":"you no longer need to write to sshkey","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e41bd4a9f43032c8ff845b7d3cb22e669f9f6ad0","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    with utils.tempdir() as tmpdir:"},{"line_number":263,"context_line":"        sshkey \u003d os.path.abspath(os.path.join(tmpdir, \u0027ssh.key\u0027))"},{"line_number":264,"context_line":"        with open(sshkey, \u0027w\u0027) as f:"},{"line_number":265,"context_line":"            f.write(ssh_public_key)"},{"line_number":266,"context_line":"        sslkey \u003d os.path.abspath(os.path.join(tmpdir, \u0027ssl.key\u0027))"},{"line_number":267,"context_line":"        try:"},{"line_number":268,"context_line":"            out \u003d _convert_from_sshrsa_to_pkcs8(ssh_public_key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJx4%3D","line":265,"in_reply_to":"AAAAM3%2F%2FKGQ%3D","updated":"2013-02-05 14:19:29.000000000","message":"Done","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"}],"tools/pip-requires":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"43bed82b88a70b52dc81c5270b845f82f1c78787","unresolved":false,"context_lines":[{"line_number":16,"context_line":"netaddr"},{"line_number":17,"context_line":"suds\u003d\u003d0.4"},{"line_number":18,"context_line":"paramiko"},{"line_number":19,"context_line":"pyasn1"},{"line_number":20,"context_line":"Babel\u003e\u003d0.9.6"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.4"},{"line_number":22,"context_line":"httplib2"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FKEg%3D","line":19,"updated":"2013-02-05 10:58:29.000000000","message":"This would need a heads up on the dev list.\nIt shouldn\u0027t be a problem as it seems widely available.","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e41bd4a9f43032c8ff845b7d3cb22e669f9f6ad0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"netaddr"},{"line_number":17,"context_line":"suds\u003d\u003d0.4"},{"line_number":18,"context_line":"paramiko"},{"line_number":19,"context_line":"pyasn1"},{"line_number":20,"context_line":"Babel\u003e\u003d0.9.6"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.4"},{"line_number":22,"context_line":"httplib2"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FJzM%3D","line":19,"in_reply_to":"AAAAM3%2F%2FKEg%3D","updated":"2013-02-05 14:19:29.000000000","message":"Done","commit_id":"23cf1ed7536427997a156a9a9f8439e51ca93dba"}]}
