From 61f7e7b78358434e6ff5a9f3d0d0448412f80755 Mon Sep 17 00:00:00 2001 From: Ademar Gonzalez Date: Thu, 24 Sep 2026 18:09:45 -0400 Subject: [PATCH] Let the OS choose the TLS version in Connect() instead of forcing TLS 1.0 Service.Connect and ITransport.Connect defaulted to SslProtocols.Tls, which TcpTransport passes to AuthenticateAsClient whenever a client certificate is set, the path most registries require. Servers that only accept TLS 1.2+ reset the connection. Default to SslProtocols.None so the OS negotiates the best version; bump to 1.4.1. Co-Authored-By: Claude Opus 5.5 --- EppLib/EppLib.csproj | 4 ++-- EppLib/ITransport.cs | 2 +- EppLib/Service.cs | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/EppLib/EppLib.csproj b/EppLib/EppLib.csproj index bb767e7..87f2441 100644 --- a/EppLib/EppLib.csproj +++ b/EppLib/EppLib.csproj @@ -4,7 +4,7 @@ netstandard2.0;net10.0 EppLib EppLib - 1.4.0 + 1.4.1 Code Maker Inc. and Contributors EppLib.NET provides a library that makes easy for registrars to interact with registries implementing the Extensible Provisioning Protocol (EPP). Includes extensions for CIRA (.CA), Nominet (.UK), IIS (.SE), Verisign Namestore, LaunchPhase and SecDNS. epp;registrar;registry;domain;rfc5730 @@ -13,7 +13,7 @@ https://github.com/CodeMakerInc/EppLib.NET.git git README.md - Adds a net10.0 target alongside netstandard2.0. Fixes an infinite loop at 100% CPU in TcpTransport.Read when the server closes the connection (#46). + Connect() now lets the operating system choose the TLS version (SslProtocols.None) instead of forcing TLS 1.0 when a client certificate is used. Recompile against this version to pick up the new default. true false false diff --git a/EppLib/ITransport.cs b/EppLib/ITransport.cs index 098cd27..efa6497 100644 --- a/EppLib/ITransport.cs +++ b/EppLib/ITransport.cs @@ -27,7 +27,7 @@ namespace EppLib { public interface ITransport : IDisposable { - void Connect(SslProtocols sslProtocols = SslProtocols.Tls); + void Connect(SslProtocols sslProtocols = SslProtocols.None); void Disconnect(); void Write(XmlDocument xmlDocument); byte[] Read(); diff --git a/EppLib/Service.cs b/EppLib/Service.cs index 45e980c..a1a7d80 100755 --- a/EppLib/Service.cs +++ b/EppLib/Service.cs @@ -34,7 +34,8 @@ public Service(ITransport transport) /// /// Connects to the registry end point /// - public void Connect(SslProtocols sslProtocols = SslProtocols.Tls) + /// TLS versions to allow; the default lets the operating system choose. + public void Connect(SslProtocols sslProtocols = SslProtocols.None) { transport.Connect(sslProtocols); transport.Read();