<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: arial,helvetica,sans-serif; font-size: 12pt; color: #000000'><div><font face="arial, helvetica, sans-serif">Support for TLS 1.1 and 1.2 appears to be new in .Net 4.5. </font><span style="font-family: arial, helvetica, sans-serif;">It looks like Mono 3.0.3's SslStream doesn't yet support the newer protocols.</span></div><div><br></div><div><font face="arial, helvetica, sans-serif">I'm using SslStream's AuthenticateAsServerAsync to handle HTTPS connections, and getting exceptions when Google Chrome 24.0.1312.52 beta connects:</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">IOException ("The authentication or decryption has failed.")</font></div><div><font face="arial, helvetica, sans-serif">------------------------------------------------------------</font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00044] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslStreamBase.cs:106 </font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">The inner exception of which is:</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">NotSupportedException ("Unsupported security protocol type")</font></div><div><font face="arial, helvetica, sans-serif">------------------------------------------------------------</font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.Context.DecodeProtocolCode (Int16 code) [0x0001f] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/Context.cs:419 </font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.Handshake.Server.TlsClientHello.processProtocol (Int16 protocol) [0x00007] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:109 </font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.Handshake.Server.TlsClientHello.ProcessAsTls1 () [0x00000] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:76 </font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00037] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs:105 </font></div><div><font face="arial, helvetica, sans-serif">  at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()</font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.ServerRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x0002a] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:74 </font></div><div><font face="arial, helvetica, sans-serif">  at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00123] in /mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs:397 </font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">I guess Chrome falls back through protocol versions until it reaches one SslStream understands, creating a new TCP connection for each request. Annoyingly, it repeats this process for every connection.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Is anyone working on implementing TLS 1.1 and 1.2? I couldn't find it in the Xamarin bug-tracker.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">By the way, I found AaltoTLS ( https://github.com/juhovh/AaltoTLS ) which implements 1.1 and 1.2, but BeginAuthenticateAsServer is stubbed.</font></div><div style="color: rgb(0, 0, 0); font-family: arial, helvetica, sans-serif; font-size: 12pt;"><br></div><div style="color: rgb(0, 0, 0); font-family: arial, helvetica, sans-serif; font-size: 12pt;"><font face="arial, helvetica, sans-serif" style="font-size: 12pt; color: rgb(0, 0, 0);"><font size="3" style="font-size: 12pt; color: rgb(0, 0, 0); ">Kind regards,</font><br><font size="3" style="font-size: 12pt; color: rgb(0, 0, 0); ">Duncan Pierce</font></font><div><div><div style="font-size: 12pt;"><br></div></div></div></div></div></body></html>