To bring the concepts of this chapter together, we build a simple HTTPS client. This client can connect to a given HTTPS web server and request the root document /
.
Our program begins by including the needed chapter header, defining main()
, and initializing Winsock as shown here:
/*https_simple.c*/ #include "chap09.h" int main(int argc, char *argv[]) { #if defined(_WIN32) WSADATA d; if (WSAStartup(MAKEWORD(2, 2), &d)) { fprintf(stderr, "Failed to initialize.\n"); return 1; } #endif
We then initialize the OpenSSL library with the following code:
/*https_simple.c continued*/ SSL_library_init(); OpenSSL_add_all_algorithms(); SSL_load_error_strings();
The SSL_load_error_strings()
function call is optional, but it's very useful if we run into problems.
We can also create an OpenSSL context. This is done by calling SSL_CTX_new()
as shown by the following code:
/*https_simple.c continued*/ SSL_CTX *ctx = SSL_CTX_new(TLS_client_method...