Very simple and very fast HTTPS downloader.


Console utility that uses TlsStream API to asynchronously download files from HTTPS servers. Supports TLS 1.3 and 1.2 on all .NET Core 3.1 platforms and all Windows platforms with .NET 4.6 or newer.

> HttpsGet


// Create an instance of Rebex TlsStream to secure the connection with TLS.
// TlsStream expects a connected socket as constructor argument and becomes the owner of the socket.
using (var tlsStream = new TlsStream(socket))
    // Only allow TLS 1.3 and TLS 1.2.
    tlsStream.Parameters.Version = TlsVersion.TLS12 | TlsVersion.TLS13;

    // Our instance is the 'client' side of the connection, so call the AuthenticateAsClientAsync method and
    // add the host name as the argument to the method.
    // Host name is needed for TLS SNI (Server Name Indication) extension and for server certificate validation.
    Write("Negotiation TLS session... ");
    await tlsStream.AuthenticateAsClientAsync(url.Host);
    // Connection is now secured with TLS
    WriteLine($"Cipher: {tlsStream.Cipher}");

    // Do the rest here