diff --git a/Source/MQTTnet/Client/MqttClientOptionsBuilder.cs b/Source/MQTTnet/Client/MqttClientOptionsBuilder.cs index 77c61bd..ed8ae03 100644 --- a/Source/MQTTnet/Client/MqttClientOptionsBuilder.cs +++ b/Source/MQTTnet/Client/MqttClientOptionsBuilder.cs @@ -112,8 +112,49 @@ namespace MQTTnet.Client return this; } + + public MqttClientOptionsBuilder WithTls() + { + return WithTls(null); + } + + public MqttClientOptionsBuilder WithTls(Func certificateValidationCallback) + { + return WithTls(SslProtocols.None, certificateValidationCallback); + } + + public MqttClientOptionsBuilder WithTls(SslProtocols sslProtocol, + Func certificateValidationCallback = null) + { + return WithTls(new byte[][] { }, sslProtocol, certificateValidationCallback); + } + + public MqttClientOptionsBuilder WithTls(byte[][] certificates, + SslProtocols sslProtocol = SslProtocols.Tls12, + Func certificateValidationCallback = null) + { + return WithTls(false, certificates, sslProtocol, certificateValidationCallback); + } + + public MqttClientOptionsBuilder WithTls(bool ignoreCertificateRevocationErrors, + byte[][] certificates = null, + SslProtocols sslProtocol = SslProtocols.Tls12, + Func certificateValidationCallback = null) + { + return WithTls(false, ignoreCertificateRevocationErrors, certificates, sslProtocol, certificateValidationCallback); + } + + public MqttClientOptionsBuilder WithTls(bool ignoreCertificateChainErrors, + bool ignoreCertificateRevocationErrors = false, + byte[][] certificates = null, + SslProtocols sslProtocol = SslProtocols.Tls12, + Func certificateValidationCallback = null) + { + return WithTls(false, ignoreCertificateChainErrors, ignoreCertificateRevocationErrors, certificates, sslProtocol, certificateValidationCallback); + } + public MqttClientOptionsBuilder WithTls( - bool allowUntrustedCertificates = false, + bool allowUntrustedCertificates, bool ignoreCertificateChainErrors = false, bool ignoreCertificateRevocationErrors = false, byte[][] certificates = null, @@ -134,15 +175,6 @@ namespace MQTTnet.Client return this; } - public MqttClientOptionsBuilder WithTls() - { - _tlsOptions = new MqttClientTlsOptions - { - UseTls = true - }; - - return this; - } public IMqttClientOptions Build() {