Skip to content

Commit 8796448

Browse files
committed
Added option to specify ClientCertificateContext in .NET 8+
1 parent 8698fd6 commit 8796448

File tree

5 files changed

+47
-0
lines changed

5 files changed

+47
-0
lines changed

projects/RabbitMQ.Client/Impl/SslHelper.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ Task TryAuthenticating(SslOption opts)
8282
EnabledSslProtocols = opts.Version,
8383
TargetHost = opts.ServerName,
8484
};
85+
86+
#if NET8_0_OR_GREATER
87+
if (opts.ClientCertificateContext != null)
88+
{
89+
o.ClientCertificateContext = opts.ClientCertificateContext;
90+
}
91+
#endif
8592
return sslStream.AuthenticateAsClientAsync(o, cancellationToken);
8693
#else
8794
return sslStream.AuthenticateAsClientAsync(opts.ServerName, opts.Certs, opts.Version, opts.CheckCertificateRevocation);
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
RabbitMQ.Client.Exceptions.PublishException.PublishException(ulong publishSequenceNumber, bool isReturn, string! message) -> void
2+
RabbitMQ.Client.Exceptions.PublishReturnException
3+
RabbitMQ.Client.Exceptions.PublishReturnException.Exchange.get -> string!
4+
RabbitMQ.Client.Exceptions.PublishReturnException.PublishReturnException(ulong publishSequenceNumber, string! message, string? exchange = null, string? routingKey = null, ushort? replyCode = null, string? replyText = null) -> void
5+
RabbitMQ.Client.Exceptions.PublishReturnException.ReplyCode.get -> ushort
6+
RabbitMQ.Client.Exceptions.PublishReturnException.ReplyText.get -> string!
7+
RabbitMQ.Client.Exceptions.PublishReturnException.RoutingKey.get -> string!
8+
RabbitMQ.Client.RabbitMQTracingOptions
9+
RabbitMQ.Client.RabbitMQTracingOptions.RabbitMQTracingOptions() -> void
10+
RabbitMQ.Client.RabbitMQTracingOptions.UsePublisherAsParent.get -> bool
11+
RabbitMQ.Client.RabbitMQTracingOptions.UsePublisherAsParent.set -> void
12+
RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.get -> bool
13+
RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.set -> void
14+
static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.get -> RabbitMQ.Client.RabbitMQTracingOptions!
15+
static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.set -> void
16+
RabbitMQ.Client.SslOption.ClientCertificateContext.get -> System.Net.Security.SslStreamCertificateContext
17+
RabbitMQ.Client.SslOption.ClientCertificateContext.set -> void
18+

projects/RabbitMQ.Client/PublicAPI.Unshipped.txt renamed to projects/RabbitMQ.Client/PublicAPI/PublicAPI.Unshipped.netstandard2.0.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.get -> bool
1313
RabbitMQ.Client.RabbitMQTracingOptions.UseRoutingKeyAsOperationName.set -> void
1414
static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.get -> RabbitMQ.Client.RabbitMQTracingOptions!
1515
static RabbitMQ.Client.RabbitMQActivitySource.TracingOptions.set -> void
16+

projects/RabbitMQ.Client/RabbitMQ.Client.csproj

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,17 @@
8181
<PackageReference Include="System.Threading.Channels" />
8282
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
8383
</ItemGroup>
84+
85+
<!-- Public API files per target framework -->
86+
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
87+
<AdditionalFiles Include="PublicAPI/PublicAPI.Unshipped.net8.0.txt" Link="PublicAPI.Unshipped.txt" />
88+
<!-- Shipped surface is currently identical across TFMs; reuse common file -->
89+
<AdditionalFiles Include="PublicAPI.Shipped.txt" Link="PublicAPI.Shipped.txt" />
90+
</ItemGroup>
91+
92+
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
93+
<AdditionalFiles Include="PublicAPI/PublicAPI.Unshipped.netstandard2.0.txt" Link="PublicAPI.Unshipped.txt" />
94+
<!-- Shipped surface is currently identical across TFMs; reuse common file -->
95+
<AdditionalFiles Include="PublicAPI.Shipped.txt" Link="PublicAPI.Shipped.txt" />
96+
</ItemGroup>
8497
</Project>

projects/RabbitMQ.Client/SslOption.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,5 +166,13 @@ internal SslProtocols UseFallbackTlsVersions()
166166
Version = SslProtocols.Tls12;
167167
return Version;
168168
}
169+
170+
#if NET8_0_OR_GREATER
171+
/// <summary>
172+
/// Retrieve or set the <see cref="System.Net.Security.SslStreamCertificateContext"/> to supply
173+
/// a set of certificates used for building a certificate chain.
174+
/// </summary>
175+
public SslStreamCertificateContext? ClientCertificateContext { get; set; }
176+
#endif
169177
}
170178
}

0 commit comments

Comments
 (0)