12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include <assert.h>
- #include <errno.h>
- #include <stdio.h>
- #include <string.h>
- #include <openssl/bio.h>
- #include <openssl/ssl.h>
- #include <openssl/x509.h>
- #include "qa/qa.h"
- #include "qa/qa_sock.h"
- FILE* ferr;
- void set_up(void)
- {
- ferr = fopen("/dev/null", "w");
- /* Initialize SSL Library by registering algorithms. */
- SSL_library_init();
- /* trash directly network informative messages */
- if (ferr) bio_err = BIO_new_fp(ferr, BIO_NOCLOSE);
- else errno = 0;
- }
- void tear_down(void)
- {
- fclose(ferr);
- }
- void test_host_port(void)
- {
- char uri[100];
- char *host, *port;
- /* uris of the form host:port shall be recognized */
- strcpy(uri, "host:port");
- host_port(uri, &host, &port);
- assert(!strcmp(host, "host") &&
- !strcmp(port, "port"));
- /* uris given as urls shall be recognized */
- strcpy(uri, "https://cheese");
- host_port(uri, &host, &port);
- assert(!strcmp(host, "cheese") &&
- !strcmp(port, "https"));
- /* uris containing just a hostname shall be recognized */
- strcpy(uri, "queer");
- host_port(uri, &host, &port);
- assert(!strcmp(host, "queer") &&
- !port);
- }
- void test_get_remote_cert(void)
- {
- X509 *crt;
- char url[100];
- /* NULL shall be returned if the host does not exists. */
- strcpy(url, "space_oddity");
- crt = get_remote_cert(url);
- assert(!crt);
- #ifdef NETWORK_TESTS
- /* Google™ shall support https, and accept tcp connections on https default port. */
- strcpy(url, "google.com:443");
- crt = get_remote_cert(url);
- assert(crt);
- #else
- printf("Skipping %s..\n", __func__);
- #endif /* NETWORK_TESTS */
- }
- int main(int argc, char **argv)
- {
- set_up();
- test_host_port();
- test_get_remote_cert();
- return 0;
- }
|