summaryrefslogtreecommitdiff
path: root/doc/protocols.texi
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2011-02-22 12:02:01 +0200
committerMartin Storsjö <martin@martin.st>2013-09-26 23:13:06 +0300
commit8b09d917e7dc7d7f2ace31419f802d4ff518236c (patch)
treebe032166d7fb810a00c2f44cdce4fe8485d5733a /doc/protocols.texi
parent4370f65be8d714a0bc73047501027464aaa2466c (diff)
tls: Add options for verifying the peer certificate
A file containing the trusted CA certificates needs to be supplied via the ca_file AVOption, unless the TLS library has got a system default file/database set up. This doesn't check the hostname of the peer certificate with openssl, which requires a non-trivial piece of code for manually matching the desired hostname to the string provided by the certificate, not provided as a library function. That is, with openssl, this only validates that the received certificate is signed with the right CA, but not that it is the actual server we think we're talking to. Verification is still disabled by default since we can't count on a proper CA database existing at all times. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'doc/protocols.texi')
-rw-r--r--doc/protocols.texi33
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/protocols.texi b/doc/protocols.texi
index 1c7de475f4..2c618b8e0e 100644
--- a/doc/protocols.texi
+++ b/doc/protocols.texi
@@ -568,6 +568,39 @@ avplay tcp://@var{hostname}:@var{port}
@end table
+@section tls
+
+Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
+
+The required syntax for a TLS url is:
+@example
+tls://@var{hostname}:@var{port}
+@end example
+
+The following parameters can be set via command line options
+(or in code via @code{AVOption}s):
+
+@table @option
+
+@item ca_file
+A file containing certificate authority (CA) root certificates to treat
+as trusted. If the linked TLS library contains a default this might not
+need to be specified for verification to work, but not all libraries and
+setups have defaults built in.
+
+@item tls_verify=@var{1|0}
+If enabled, try to verify the peer that we are communicating with.
+Note, if using OpenSSL, this currently only makes sure that the
+peer certificate is signed by one of the root certificates in the CA
+database, but it does not validate that the certificate actually
+matches the host name we are trying to connect to. (With GnuTLS,
+the host name is validated as well.)
+
+This is disabled by default since it requires a CA database to be
+provided by the caller in many cases.
+
+@end table
+
@section udp
User Datagram Protocol.