This section covers extensions to Windows Sockets 2 that are specific to the Secure Sockets Layer security protocol (SSL). It also describes aspects of base Windows Sockets 2 functions that require special consideration or which may exhibit unique behavior when using SSL.
Network security has become a major consideration in recent times as the scope of networks and their uses continues to grow and expand into the commercial world. Application users and developers want to be assured that their data is private and that they are communicating with the party they intended to. The Secure Sockets Layer (SSL) protocol is intended to address these needs.
Windows Sockets 2's WOSA architecture allows any number of underlying transport protocols to be accessed by applications. While SSL is not itself a complete transport protocol, it is designed to work in conjunction with existing transports that offer reliable, connection-oriented services. From an application's perspective, the addition of SSL causes additional entries to be returned in the WSAEnumProtocols function. These additional entries are identical to the underlying transport protocol entries (e.g. TCP or SPX), but are distinguished by having SSL indicated in the iSecurityScheme field of the WSAPROTOCOL_INFO struct. Having discovered and selected a transport that offers SSL security, the application creates sockets and sends data over them in exactly the same manner as is done for the underlying transport without security. Through this mechanism application developers are able to take advantage of security provisions without having to make extensive modifications to their applications.