Mentalis.org Security Library documentation

SSL and TLS

Supported and unsupported Socket features

The Mentalis.org SecureSocket class is designed to look and work like the .NET Socket class, but there are some features that are still missing. This page lists the features that are implemented and the features that are not implemented in the SecureSocket class.

Features that are supported:
 - synchronous socket operations [Connect, Accept, Send, Receive]
 - asynchronous socket operations [BeginConnect, BeginAccept, BeginSend, BeginReceive, and their End* counterparts]
 - Bind, Listen, Shutdown, Close methods
 - AddressFamily, Available, Connected, Handle, LocalEndPoint, ProtocolType, RemoteEndPoint, SocketType properties
 - SocketFlags.None

Features that are unsupported:
 - non-blocking sockets [Socket.Blocking = false]
 - UDP socket operations [SendTo, ReceiveFrom, BeginSendTo, BeginReceiveFrom and their End* counterparts]
 - Poll, Select methods
 - SocketFlags values other than SocketFlags.None

The above features are only unsupported if the SecureSocket uses the SSL or TLS protocol. If SecureProtocol.None is selected, the SecureSocket will behave like an ordinary Socket instance.
If SecureProtocol.Tls1 or SecureProtocol.Ssl3 is selected, using one of the unsupported methods will result in unpredictable behavior.