Quantcast
Viewing all articles
Browse latest Browse all 1543

GnuTLS library produces TLS fatal alert on handshake for HTTPS connection

When I type gnutls-cli -p 443 stackoverflow.com on the Linux command line, the HTTPS connection is established successfully.

But my C program to establish the same type of connection does not work. What am I missing?

int main (){    int Result_d, SocketFileDescriptor;    gnutls_session_t GnutlsSession;    struct sockaddr_in SockAddr;    SocketFileDescriptor = socket (AF_INET, SOCK_STREAM, 0);    if (SocketFileDescriptor == -1)        return 0;    SockAddr.sin_family = AF_INET;    SockAddr.sin_port = htons (443u);    SockAddr.sin_addr.s_addr = (7u << 24u) | (32u << 16u) | (18u << 8u) | 104u; // `host -t a stackoverflow.com` outputs 104.18.32.7    Result_d = connect (SocketFileDescriptor, (struct sockaddr *) & SockAddr, sizeof (SockAddr));    if (Result_d != 0)        return 0;    Result_d = gnutls_init (& GnutlsSession, GNUTLS_CLIENT);    if (Result_d != GNUTLS_E_SUCCESS)        return 0;    Result_d = gnutls_set_default_priority (GnutlsSession);    if (Result_d != GNUTLS_E_SUCCESS)        return 0;    gnutls_transport_set_int (GnutlsSession, SocketFileDescriptor);    Result_d = gnutls_server_name_set (GnutlsSession, GNUTLS_NAME_DNS, "stackoverflow.com", 17u);    if (Result_d != GNUTLS_E_SUCCESS)        return 0;    Result_d = gnutls_handshake (GnutlsSession);    if (Result_d != GNUTLS_E_SUCCESS)    {        fprintf (stderr, "gnutls_handshake() returned: %s\n", gnutls_strerror (Result_d));        return 0;    }    return 0;}

The output is:gnutls_handshake() returned: A TLS fatal alert has been received.


Viewing all articles
Browse latest Browse all 1543

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>