From abb682094678a65d31f2d03ed171a5fade4476d6 Mon Sep 17 00:00:00 2001 From: dpad85 <5765435+dpad85@users.noreply.github.com> Date: Mon, 18 Nov 2019 14:14:25 +0100 Subject: [PATCH] Check support beforehand when setting tls protocols in ElectrumClient --- .../acinq/eclair/blockchain/electrum/ElectrumClient.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClient.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClient.scala index 2da34e01f0..a154e3519e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClient.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/electrum/ElectrumClient.scala @@ -71,7 +71,12 @@ class ElectrumClient(serverAddress: InetSocketAddress, ssl: SSL)(implicit val ec val sslParameters = handler.engine().getSSLParameters sslParameters.setEndpointIdentificationAlgorithm("HTTPS") handler.engine().setSSLParameters(sslParameters) - handler.engine().setEnabledProtocols(Array[String]("TLSv1.2", "TLSv1.3")) + val enabledProtocols = if (handler.engine().getSupportedProtocols.contains("TLSv1.3")) { + "TLSv1.2" :: "TLSv1.3" :: Nil + } else { + "TLSv1.2" :: Nil + } + handler.engine().setEnabledProtocols(enabledProtocols.toArray) ch.pipeline.addLast(handler) case SSL.LOOSE => // INSECURE VERSION THAT DOESN'T CHECK CERTIFICATE