User zech <[email protected]> sends the following message to the 
owners of Package 'Apache.NMS.ActiveMQ 1.7.2 
(https://www.nuget.org/packages/Apache.NMS.ActiveMQ/1.7.2)'.

Hello,
I have found a problem using this library with TLS1.2 to connect to ActiveMQ 
(our server only supports TLS 1.2).
The current library implementation only supports  Tls or Ssl3 because of  (see 
file SslTransport.cs)

       private SslProtocols GetAllowedProtocol()
        {
            if (!String.IsNullOrEmpty(SslProtocol))
            {
                return (SslProtocols)Enum.Parse(typeof(SslProtocols), 
SslProtocol, true);
            }
    
            return SslProtocols.Default; 
        }

Return should be SslProtocols.None ! (see remark in decompiled 
System.Security.Authentication.SslProtocols)

/ Decompiled with JetBrains decompiler
// Type: System.Security.Authentication.SslProtocols
// Assembly: System, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089
// MVID: 862B9365-843C-4BF1-BA93-210C124BB523
// Assembly location: C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.dll

namespace System.Security.Authentication
{
/// <summary>Defines the possible versions of <see 
cref="T:System.Security.Authentication.SslProtocols" 
/>.</summary>
[Flags]
[__DynamicallyInvokable]
public enum SslProtocols
{
/// <summary>Allows the operating system to choose the best protocol to 
use, and to block protocols that are not secure. Unless your app has a specific 
reason not to, you should use this field.</summary>
[__DynamicallyInvokable] None = 0,
/// <summary>Specifies the SSL 2.0 protocol. SSL 2.0 has been superseded 
by the TLS protocol and is provided for backward compatibility 
only.</summary>
[__DynamicallyInvokable] Ssl2 = 12, // 0x0000000C
/// <summary>Specifies the SSL 3.0 protocol. SSL 3.0 has been superseded 
by the TLS protocol and is provided for backward compatibility 
only.</summary>
[__DynamicallyInvokable] Ssl3 = 48, // 0x00000030
/// <summary>Specifies the TLS 1.0 security protocol. The TLS protocol is 
defined in IETF RFC 2246.</summary>
[__DynamicallyInvokable] Tls = 192, // 0x000000C0
/// <summary>Specifies the TLS 1.1 security protocol. The TLS protocol is 
defined in IETF RFC 4346.</summary>
[__DynamicallyInvokable] Tls11 = 768, // 0x00000300
/// <summary>Specifies the TLS 1.2 security protocol. The TLS protocol is 
defined in IETF RFC 5246.</summary>
[__DynamicallyInvokable] Tls12 = 3072, // 0x00000C00
/// <summary>Specifies the TLS 1.3 security protocol. The TLS protocol is 
defined in IETF RFC 8446.</summary>
Tls13 = 12288, // 0x00003000
/// <summary>Use None instead of Default. Default permits only the Secure 
Sockets Layer (SSL) 3.0 or Transport Layer Security (TLS) 1.0 protocols to be 
negotiated, and those options are now considered obsolete. Consequently, 
Default is not allowed in many organizations. Despite the name of this field, 
<see cref="T:System.Net.Security.SslStream" /> does not use it 
as a default except under special circumstances.</summary>
Default = Tls | Ssl3, // 0x000000F0
}

Best regards
Hansjoerg

-----------------------------------------------
    To stop receiving contact emails as an owner of this package, sign in to 
the NuGet Gallery and
    change your email notification settings (https://www.nuget.org/account).

Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839)
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052 USA

Reply via email to