)]}'
{"bin/keystone-all":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b9b92e812fb3a24bbab2e2bf0522d144133a4ab","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def create_server(conf, name, host, port):"},{"line_number":30,"context_line":"    app \u003d deploy.loadapp(\u0027config:%s\u0027 % conf, name\u003dname)"},{"line_number":31,"context_line":"    server \u003d wsgi.Server(app, host\u003dhost, port\u003dport)"},{"line_number":32,"context_line":"    if (CONF.ssl.enable \u003d\u003d \u0027True\u0027):"},{"line_number":33,"context_line":"        server.set_ssl(CONF.ssl.certfile, CONF.ssl.keyfile,"},{"line_number":34,"context_line":"                       CONF.ssl.ca_certs, CONF.ssl.cert_required)"},{"line_number":35,"context_line":"    return server"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAHX%2F%2F3%2Fw%3D","line":32,"updated":"2012-05-24 16:18:09.000000000","message":"parens are not needed for single-line Python if statements. Also, this really should be a BoolOpt, not a string option.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def create_server(conf, name, host, port):"},{"line_number":30,"context_line":"    app \u003d deploy.loadapp(\u0027config:%s\u0027 % conf, name\u003dname)"},{"line_number":31,"context_line":"    server \u003d wsgi.Server(app, host\u003dhost, port\u003dport)"},{"line_number":32,"context_line":"    if (CONF.ssl.enable \u003d\u003d \u0027True\u0027):"},{"line_number":33,"context_line":"        server.set_ssl(CONF.ssl.certfile, CONF.ssl.keyfile,"},{"line_number":34,"context_line":"                       CONF.ssl.ca_certs, CONF.ssl.cert_required)"},{"line_number":35,"context_line":"    return server"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAHX%2F%2F3%2FE%3D","line":32,"in_reply_to":"AAAAHX%2F%2F3%2Fw%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"}],"doc/source/configuration.rst":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":153,"context_line":"SSL"},{"line_number":154,"context_line":"---"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Keystone may be configured to support 2-way SSL out-of-the-box.  The x509 "},{"line_number":157,"context_line":"certificates used by Keystone must be obtained externally and configured for use"},{"line_number":158,"context_line":"with Keystone as described in this section.  However, a set of sample certficates"},{"line_number":159,"context_line":"is provided in the examples/ssl directory with the Keystone distribution for testing."}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F4SM%3D","line":156,"updated":"2012-05-24 01:15:51.000000000","message":"extra space","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":153,"context_line":"SSL"},{"line_number":154,"context_line":"---"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Keystone may be configured to support 2-way SSL out-of-the-box.  The x509 "},{"line_number":157,"context_line":"certificates used by Keystone must be obtained externally and configured for use"},{"line_number":158,"context_line":"with Keystone as described in this section.  However, a set of sample certficates"},{"line_number":159,"context_line":"is provided in the examples/ssl directory with the Keystone distribution for testing."}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F4AU%3D","line":156,"in_reply_to":"AAAAHX%2F%2F4SM%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Keystone may be configured to support 2-way SSL out-of-the-box.  The x509 "},{"line_number":157,"context_line":"certificates used by Keystone must be obtained externally and configured for use"},{"line_number":158,"context_line":"with Keystone as described in this section.  However, a set of sample certficates"},{"line_number":159,"context_line":"is provided in the examples/ssl directory with the Keystone distribution for testing."},{"line_number":160,"context_line":"Here is the description of each of them and their purpose:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Types of certificates"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F4SI%3D","line":159,"updated":"2012-05-24 01:15:51.000000000","message":"It may be beneficial to explicitly mention that all certificates and keys must be in Privacy Enhanced Mail (PEM) format.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Keystone may be configured to support 2-way SSL out-of-the-box.  The x509 "},{"line_number":157,"context_line":"certificates used by Keystone must be obtained externally and configured for use"},{"line_number":158,"context_line":"with Keystone as described in this section.  However, a set of sample certficates"},{"line_number":159,"context_line":"is provided in the examples/ssl directory with the Keystone distribution for testing."},{"line_number":160,"context_line":"Here is the description of each of them and their purpose:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Types of certificates"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F4AY%3D","line":159,"in_reply_to":"AAAAHX%2F%2F4SI%3D","updated":"2012-05-24 17:07:35.000000000","message":"I would like to leave the implementation details out... For a Keystone implementation written in Java, for example, the certs would in .jks for example.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    Public certificate for Keystone server."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"middleware.pem"},{"line_number":172,"context_line":"    Public and private certificate for Keystone middleware/client."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"cakey.pem"},{"line_number":175,"context_line":"    Private key for the CA."}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F4SQ%3D","line":172,"updated":"2012-05-24 01:15:51.000000000","message":"Public certificate and its corresponding private key for the Keystone middleware/client.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    Public certificate for Keystone server."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"middleware.pem"},{"line_number":172,"context_line":"    Public and private certificate for Keystone middleware/client."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"cakey.pem"},{"line_number":175,"context_line":"    Private key for the CA."}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F4Ag%3D","line":172,"in_reply_to":"AAAAHX%2F%2F4SQ%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"}],"doc/source/middlewarearchitecture.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b9b92e812fb3a24bbab2e2bf0522d144133a4ab","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* ``auth_uri``: (optional, defaults to `auth_protocol`://`auth_host`:`auth_port`)"},{"line_number":159,"context_line":"* ``certfile``: (required, if Keystone server requires client cert) "},{"line_number":160,"context_line":"* ``keyfile``: (required, if Keystone server requires client cert)  This can be"},{"line_number":161,"context_line":"  the same as the certfile if the certfile includes the private key. "},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Caching for improved response"},{"line_number":164,"context_line":"-----------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F3%2Fo%3D","line":161,"updated":"2012-05-24 16:18:09.000000000","message":"Extra whitespace here and above to remove.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* ``auth_uri``: (optional, defaults to `auth_protocol`://`auth_host`:`auth_port`)"},{"line_number":159,"context_line":"* ``certfile``: (required, if Keystone server requires client cert) "},{"line_number":160,"context_line":"* ``keyfile``: (required, if Keystone server requires client cert)  This can be"},{"line_number":161,"context_line":"  the same as the certfile if the certfile includes the private key. "},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Caching for improved response"},{"line_number":164,"context_line":"-----------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAHX%2F%2F3%2FA%3D","line":161,"in_reply_to":"AAAAHX%2F%2F3%2Fo%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"}],"keystone/common/wsgi.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b9b92e812fb3a24bbab2e2bf0522d144133a4ab","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import eventlet.wsgi"},{"line_number":27,"context_line":"eventlet.patcher.monkey_patch(all\u003dFalse, socket\u003dTrue, time\u003dTrue)"},{"line_number":28,"context_line":"import routes.middleware"},{"line_number":29,"context_line":"import ssl"},{"line_number":30,"context_line":"import webob.dec"},{"line_number":31,"context_line":"import webob.exc"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F3%2Fg%3D","line":29,"updated":"2012-05-24 16:18:09.000000000","message":"Ooops. This needs to be eventlet.ssl... Either that, or add ssl\u003dTrue to the monkey_patch call above.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import eventlet.wsgi"},{"line_number":27,"context_line":"eventlet.patcher.monkey_patch(all\u003dFalse, socket\u003dTrue, time\u003dTrue)"},{"line_number":28,"context_line":"import routes.middleware"},{"line_number":29,"context_line":"import ssl"},{"line_number":30,"context_line":"import webob.dec"},{"line_number":31,"context_line":"import webob.exc"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F3%2Bs%3D","line":29,"in_reply_to":"AAAAHX%2F%2F3%2Fg%3D","updated":"2012-05-24 17:07:35.000000000","message":"Thanks, Jay.  The socket patching already patches ssl according to the eventlet documentation:  http://eventlet.net/doc/patching.html","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.certfile \u003d certfile"},{"line_number":92,"context_line":"        self.keyfile \u003d keyfile"},{"line_number":93,"context_line":"        self.ca_certs \u003d ca_certs"},{"line_number":94,"context_line":"        self.cert_required \u003d (cert_required \u003d\u003d \u0027True\u0027)"},{"line_number":95,"context_line":"        self.do_ssl \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def kill(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F4R0%3D","line":94,"updated":"2012-05-24 01:15:51.000000000","message":"may want to do this\n\nself.cert_required \u003d (cert_required.lower() \u003d\u003d \u0027true\u0027)\n\nin case someone fat-fingered the \u0027True\u0027 :)","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.certfile \u003d certfile"},{"line_number":92,"context_line":"        self.keyfile \u003d keyfile"},{"line_number":93,"context_line":"        self.ca_certs \u003d ca_certs"},{"line_number":94,"context_line":"        self.cert_required \u003d (cert_required \u003d\u003d \u0027True\u0027)"},{"line_number":95,"context_line":"        self.do_ssl \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def kill(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F4AQ%3D","line":94,"in_reply_to":"AAAAHX%2F%2F4R0%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b9b92e812fb3a24bbab2e2bf0522d144133a4ab","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.certfile \u003d certfile"},{"line_number":92,"context_line":"        self.keyfile \u003d keyfile"},{"line_number":93,"context_line":"        self.ca_certs \u003d ca_certs"},{"line_number":94,"context_line":"        self.cert_required \u003d (cert_required \u003d\u003d \u0027True\u0027)"},{"line_number":95,"context_line":"        self.do_ssl \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def kill(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F3%2Fc%3D","line":94,"in_reply_to":"AAAAHX%2F%2F4R0%3D","updated":"2012-05-24 16:18:09.000000000","message":"see previous comment about making this a BoolOpt","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"}],"keystone/config.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":146,"context_line":"register_str(\u0027onready\u0027)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"#ssl options"},{"line_number":149,"context_line":"register_str(\u0027enable\u0027, group\u003d\u0027ssl\u0027, default\u003dFalse)"},{"line_number":150,"context_line":"register_str(\u0027certfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":151,"context_line":"register_str(\u0027keyfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":152,"context_line":"register_str(\u0027ca_certs\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F4Rw%3D","line":149,"updated":"2012-05-24 01:15:51.000000000","message":"Would\n\nregister_bool()\n\nbe better since conf can do explicit checking for boolean? For example, what if someone misspell the \u0027True\u0027?","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":146,"context_line":"register_str(\u0027onready\u0027)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"#ssl options"},{"line_number":149,"context_line":"register_str(\u0027enable\u0027, group\u003d\u0027ssl\u0027, default\u003dFalse)"},{"line_number":150,"context_line":"register_str(\u0027certfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":151,"context_line":"register_str(\u0027keyfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":152,"context_line":"register_str(\u0027ca_certs\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F3%2B8%3D","line":149,"in_reply_to":"AAAAHX%2F%2F4Rw%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":150,"context_line":"register_str(\u0027certfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":151,"context_line":"register_str(\u0027keyfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":152,"context_line":"register_str(\u0027ca_certs\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":153,"context_line":"register_str(\u0027cert_required\u0027, group\u003d\u0027ssl\u0027, default\u003dFalse)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# sql options"},{"line_number":156,"context_line":"register_str(\u0027connection\u0027, group\u003d\u0027sql\u0027, default\u003d\u0027sqlite:///keystone.db\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F4Rs%3D","line":153,"updated":"2012-05-24 01:15:51.000000000","message":"register_bool()?","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":150,"context_line":"register_str(\u0027certfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":151,"context_line":"register_str(\u0027keyfile\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":152,"context_line":"register_str(\u0027ca_certs\u0027, group\u003d\u0027ssl\u0027, default\u003dNone)"},{"line_number":153,"context_line":"register_str(\u0027cert_required\u0027, group\u003d\u0027ssl\u0027, default\u003dFalse)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# sql options"},{"line_number":156,"context_line":"register_str(\u0027connection\u0027, group\u003d\u0027sql\u0027, default\u003d\u0027sqlite:///keystone.db\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F3%2B4%3D","line":153,"in_reply_to":"AAAAHX%2F%2F4Rs%3D","updated":"2012-05-24 17:07:35.000000000","message":"Done","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"}],"keystone/test.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"83060f908d96f3a5cf641630f8505e3e1da0e0af","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        server \u003d wsgi.Server(app, host\u003d\"127.0.0.1\", port\u003d0)"},{"line_number":243,"context_line":"        if cert is not None and ca is not None and key is not None:"},{"line_number":244,"context_line":"            server.set_ssl(certfile\u003dcert, keyfile\u003dkey, ca_certs\u003dca,"},{"line_number":245,"context_line":"                cert_required\u003dcert_required)"},{"line_number":246,"context_line":"        server.start(key\u003d\u0027socket\u0027)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        # Service catalog tests need to know the port we ran on."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F4Ro%3D","line":245,"updated":"2012-05-24 01:15:51.000000000","message":"you are implying that \u0027key\u0027 must not be None. Therefore, one can\u0027t have both certificate and key in the \u0027cert\u0027 file instead.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"90d2cc277e693e965de869bfced4c3df26606281","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        server \u003d wsgi.Server(app, host\u003d\"127.0.0.1\", port\u003d0)"},{"line_number":243,"context_line":"        if cert is not None and ca is not None and key is not None:"},{"line_number":244,"context_line":"            server.set_ssl(certfile\u003dcert, keyfile\u003dkey, ca_certs\u003dca,"},{"line_number":245,"context_line":"                cert_required\u003dcert_required)"},{"line_number":246,"context_line":"        server.start(key\u003d\u0027socket\u0027)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        # Service catalog tests need to know the port we ran on."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F3%2BQ%3D","line":245,"in_reply_to":"AAAAHX%2F%2F4Ro%3D","updated":"2012-05-24 17:07:35.000000000","message":"That\u0027s correct.  Server-side private key must be secure and separated from the public key.","commit_id":"9dd68e9fc49dd09954bacee7488a206b035fd1e4"}]}
