diff --git a/projects/RabbitMQ.Client/Impl/SslHelper.cs b/projects/RabbitMQ.Client/Impl/SslHelper.cs index ebe309d03..3bdd74805 100644 --- a/projects/RabbitMQ.Client/Impl/SslHelper.cs +++ b/projects/RabbitMQ.Client/Impl/SslHelper.cs @@ -82,6 +82,13 @@ Task TryAuthenticating(SslOption opts) EnabledSslProtocols = opts.Version, TargetHost = opts.ServerName, }; + +#if NET8_0_OR_GREATER + if (opts.ClientCertificateContext != null) + { + o.ClientCertificateContext = opts.ClientCertificateContext; + } +#endif return sslStream.AuthenticateAsClientAsync(o, cancellationToken); #else return sslStream.AuthenticateAsClientAsync(opts.ServerName, opts.Certs, opts.Version, opts.CheckCertificateRevocation); diff --git a/projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.net8.0.txt b/projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.net8.0.txt new file mode 100644 index 000000000..0ad2bc143 --- /dev/null +++ b/projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.net8.0.txt @@ -0,0 +1,18 @@ +RabbitMQ.Client.Exceptions.PublishException.PublishException(ulong publishSequenceNumber, bool isReturn, string! message) -> void +RabbitMQ.Client.Exceptions.PublishReturnException +RabbitMQ.Client.Exceptions.PublishReturnException.Exchange.get -> string! +RabbitMQ.Client.Exceptions.PublishReturnException.PublishReturnException(ulong publishSequenceNumber, string! message, string? exchange = null, string? routingKey = null, ushort? replyCode = null, string? replyText = null) -> void +RabbitMQ.Client.Exceptions.PublishReturnException.ReplyCode.get -> ushort +RabbitMQ.Client.Exceptions.PublishReturnException.ReplyText.get -> string! +RabbitMQ.Client.Exceptions.PublishReturnException.RoutingKey.get -> string! +RabbitMQ.Client.RabbitMQTracingOptions +RabbitMQ.Client.RabbitMQTracingOptions.RabbitMQTracingOptions() -> void +RabbitMQ.Client.RabbitMQTracingOptions.UsePublisherAsParent.get -> bool +RabbitMQ.Client.RabbitMQTracingOptions.UsePublisherAsParent.set -> void +RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.get -> bool +RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.set -> void +static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.get -> RabbitMQ.Client.RabbitMQTracingOptions! +static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.set -> void +RabbitMQ.Client.SslOption.ClientCertificateContext.get -> System.Net.Security.SslStreamCertificateContext +RabbitMQ.Client.SslOption.ClientCertificateContext.set -> void + diff --git a/projects/RabbitMQ.Client/PublicAPI.Unshipped.txt b/projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.netstandard2.0.txt similarity index 99% rename from projects/RabbitMQ.Client/PublicAPI.Unshipped.txt rename to projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.netstandard2.0.txt index b78bae4b2..80f7e8fab 100644 --- a/projects/RabbitMQ.Client/PublicAPI.Unshipped.txt +++ b/projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.netstandard2.0.txt @@ -13,3 +13,4 @@ RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.get -> bool RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.set -> void static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.get -> RabbitMQ.Client.RabbitMQTracingOptions! static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.set -> void + diff --git a/projects/RabbitMQ.Client/RabbitMQ.Client.csproj b/projects/RabbitMQ.Client/RabbitMQ.Client.csproj index d552e6324..acdc9e963 100644 --- a/projects/RabbitMQ.Client/RabbitMQ.Client.csproj +++ b/projects/RabbitMQ.Client/RabbitMQ.Client.csproj @@ -81,4 +81,17 @@ + + + + + + + + + + + + + diff --git a/projects/RabbitMQ.Client/SslOption.cs b/projects/RabbitMQ.Client/SslOption.cs index cb067cccb..b7cf352a7 100644 --- a/projects/RabbitMQ.Client/SslOption.cs +++ b/projects/RabbitMQ.Client/SslOption.cs @@ -166,5 +166,13 @@ internal SslProtocols UseFallbackTlsVersions() Version = SslProtocols.Tls12; return Version; } + +#if NET8_0_OR_GREATER + /// + /// Retrieve or set the to supply + /// a set of certificates used for building a certificate chain. + /// + public SslStreamCertificateContext? ClientCertificateContext { get; set; } +#endif } }