<p style="outline:0px none;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
Status Update - Refactoring<br></p><p style="outline:none 0px;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
There was a slight change in the schedule in that I moved refactoring up in front of testing and debugging.</p><p style="outline:none 0px;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
The major refactoring effort was in splitting the project into two parts. The library for implementing the pluggable transport specification, with environment variable parsing and printing of pluggable transport protocol lines to stdout is now all that is included in pyptlib. The framework and obfsproxy command line program replacement have been split off into py-obfsproxy.</p>
<p style="outline:none 0px;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
A high-level API has also been added to pyptlib which requires less knowledge of the spec. It automatically parses environment variables and generates protocol lines. The transport implementation just needs to get the list of supported transports and then report success or failure for the launch of each transport as well as the end of the transport launching phase. Examples have been included in pyptlib for how to use the high-level library and py-obfsproxy has been ported to the high-level library as well.</p>
<p style="outline:none 0px;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
All of the code has also been reformatted according to PEP 8 guidelines. Private methods have also been renamed to use the __foo syntax as specified in the python style guidelines.</p><p style="outline:none 0px;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
This week the focus is going to be on testing the framework and obfsproxy command line replacement to get the dummy protocol working. One everything is working the focus will shift to documenting the now hopefully stable pyptlib API.</p>
<p style="outline:none 0px;margin:10px 0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
pyptlib:<span class="Apple-converted-space"> </span><a href="http://github.com/blanu/pyptlib" style="outline:none 0px;color:rgb(68,68,68);margin-top:0px!important;margin-bottom:0px!important">http://github.com/blanu/pyptlib</a></p>
<p style="outline:0px none;margin-top:10px;margin-bottom:0px!important;margin-right:0px;margin-left:0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
py-obfsproxy:<span class="Apple-converted-space"> </span><a href="http://github.com/blanu/py-obfsproxy" style="outline:0px none;color:rgb(68,68,68);margin-top:0px!important;margin-bottom:0px!important">http://github.com/blanu/py-obfsproxy</a></p>
<p style="outline:0px none;margin-top:10px;margin-bottom:0px!important;margin-right:0px;margin-left:0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
More posts on the blog: <a href="http://stepthreeprivacy.org/">http://stepthreeprivacy.org/</a></p><p style="outline:0px none;margin-top:10px;margin-bottom:0px!important;margin-right:0px;margin-left:0px;color:rgb(68,68,68);font-family:'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:19px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">
<br></p>