Concatenative language
Other languages
Computer Science
Meta
= Skills required = - Knowledge of C - Knowledge of the Win32 API - Knowledge of SSL - Secure code development = Level = Intermediate = Technical outline = First, a binding needs to be written to the Windows SSL API, [[http://msdn.microsoft.com/en-us/library/aa380123(VS.85).aspx|Schannel]]. Once the binding is place, some high-level abstractions will need to be built on top, to automate memory management and other such details -- Factor's [[http://docs.factorcode.org/content/article-destructors.html|destructors]] will be useful here. After that, an implementation of the high-level abstraction defined in %io.sockets.secure% will need to be written. All the code should integrate with the overlapped I/O implementation in %io.backend.windows.nt% to ensure that SSL-based clients and servers can handle multiple simultaneous connections. = Validation = The project will be deemed complete when all the unit tests in the %io.sockets.secure.unix% vocabulary are moved to the %io.sockets.secure% vocabulary, and the tests pass Windows. Additionally, there will be code review to ensure the code is of sufficient quality to ensure future maintainability, and a load tester will be run against the HTTP server serving HTTPS pages to ensure stability. = Benefit to the student = The student gains experience working with low-level networking code, and will be better equipped to develop debug server-side applications in the future. = Benefit to the community = Lack of SSL support on Windows is the only stumbling block between compete feature parity in Factor's I/O library on Windows and Unix. Since SSL is widespread today, lack of it makes it hard to develop certain types of applications in Factor on Windows.
Describe this revision:
Save