SwiftNIO SSL is a Swift package that contains an implementation of TLS based on BoringSSL. This package allows users of SwiftNIO to write protocol clients and servers that use TLS to secure data in flight.
The name is inspired primarily by the names of the library this package uses (BoringSSL), and not because we don’t know the name of the protocol. We know the protocol is TLS!
SwiftNIO SSL provides two
ChannelHandlers to use to secure a data stream: the
NIOSSLClientHandler and the
NIOSSLServerHandler. Each of these can be added to a Channel to secure the communications on that channel.
Additionally, we provide a number of low-level primitives for configuring your TLS connections. These will be shown below.
To secure a server connection, you will need a X.509 certificate chain in a file (either PEM or DER, but PEM is far easier), and the associated private key for the leaf certificate. These objects can then be wrapped up in a
TLSConfiguration object that is used to initialize the
For the API documentation of the other repositories in the SwiftNIO family check: