support TLS 1.3 (#300)

This commit is contained in:
Efim Poberezkin
2022-01-18 18:59:02 +04:00
committed by GitHub
parent 6e7089284e
commit ac899a67c4
6 changed files with 22 additions and 11 deletions

View File

@@ -36,13 +36,13 @@ module Simplex.Messaging.Transport
ATransport (..),
TransportPeer (..),
-- * Transport over TLS 1.2
-- * Transport over TLS
runTransportServer,
runTransportClient,
loadTLSServerParams,
loadFingerprint,
-- * TLS 1.2 Transport
-- * TLS Transport
TLS (..),
closeTLS,
withTlsUnique,
@@ -154,7 +154,7 @@ data TProxy c = TProxy
data ATransport = forall c. Transport c => ATransport (TProxy c)
-- * Transport over TLS 1.2
-- * Transport over TLS
-- | Run transport server (plain TCP or WebSockets) on passed TCP port and signal when server started and stopped via passed TMVar.
--
@@ -251,7 +251,7 @@ loadFingerprint certificateFile = do
(cert : _) <- SX.readSignedObject certificateFile
pure $ XV.getFingerprint (cert :: X.SignedExact X.Certificate) X.HashSHA256
-- * TLS 1.2 Transport
-- * TLS Transport
data TLS = TLS
{ tlsContext :: T.Context,
@@ -319,15 +319,18 @@ validateCertificateChain _ _ _ _ = pure [XV.AuthorityTooDeep]
supportedParameters :: T.Supported
supportedParameters =
def
{ T.supportedVersions = [T.TLS12],
T.supportedCiphers = [TE.cipher_ECDHE_ECDSA_CHACHA20POLY1305_SHA256],
{ T.supportedVersions = [T.TLS13, T.TLS12],
T.supportedCiphers =
[ TE.cipher_TLS13_CHACHA20POLY1305_SHA256, -- for TLS13
TE.cipher_ECDHE_ECDSA_CHACHA20POLY1305_SHA256 -- for TLS12
],
T.supportedHashSignatures = [(T.HashIntrinsic, T.SignatureEd448), (T.HashIntrinsic, T.SignatureEd25519)],
T.supportedSecureRenegotiation = False,
T.supportedGroups = [T.X448, T.X25519]
}
instance Transport TLS where
transportName _ = "TLS 1.2"
transportName _ = "TLS"
transportPeer = tlsPeer
getServerConnection = getTLS TServer
getClientConnection = getTLS TClient