Greenbone Vulnerability Management Libraries 22.32.0
serverutils_tests.c File Reference
#include "serverutils.c"
#include <cgreen/assertions.h>
#include <cgreen/cgreen.h>
#include <cgreen/constraint_syntax_helpers.h>
#include <cgreen/internal/c_assertions.h>
#include <cgreen/mocks.h>
Include dependency graph for serverutils_tests.c:

Go to the source code of this file.

Functions

 Describe (serverutils)
 BeforeEach (serverutils)
 AfterEach (serverutils)
static void chk (int ret)
 Ensure (serverutils, server_new_gnutls_set)
int main (int argc, char **argv)

Function Documentation

◆ AfterEach()

AfterEach ( serverutils )

Definition at line 19 of file serverutils_tests.c.

20{
21}

◆ BeforeEach()

BeforeEach ( serverutils )

Definition at line 15 of file serverutils_tests.c.

16{
17}

◆ chk()

void chk ( int ret)
static

Definition at line 24 of file serverutils_tests.c.

25{
26 assert_that (ret, is_equal_to (GNUTLS_E_SUCCESS));
27}

Referenced by Ensure().

Here is the caller graph for this function:

◆ Describe()

Describe ( serverutils )

◆ Ensure()

Ensure ( serverutils ,
server_new_gnutls_set  )

Definition at line 31 of file serverutils_tests.c.

32{
33 int ret;
34 unsigned len;
35 gnutls_session_t session;
36 gnutls_certificate_credentials_t cred;
37 gnutls_x509_privkey_t pkey;
38 gnutls_x509_crt_t cert, *certs;
39 gnutls_datum_t pkey_data, cert_data;
40 unsigned char serial[] = {0x99, 0x99, 0x99, 0x99};
41
42 // Setup credential.
43
44 chk (gnutls_certificate_allocate_credentials (&cred));
45
46 chk (gnutls_x509_privkey_init (&pkey));
47 chk (gnutls_x509_privkey_generate (pkey, GNUTLS_PK_RSA, 2048, 0));
48
49 chk (gnutls_x509_crt_init (&cert));
50 chk (gnutls_x509_crt_set_key (cert, pkey));
51
52 chk (gnutls_x509_crt_set_version (cert, 3));
53 chk (gnutls_x509_crt_set_serial (cert, serial, sizeof (serial)));
54 chk (gnutls_x509_crt_set_dn_by_oid (cert, GNUTLS_OID_X520_COMMON_NAME, 0,
55 "Eg", strlen ("Eg")));
56 chk (gnutls_x509_crt_set_issuer_dn (cert, "CN=Self-Signed Certificate", 0));
57
58 chk (gnutls_x509_crt_set_activation_time (cert, time (NULL)));
59 chk (gnutls_x509_crt_set_expiration_time (cert,
60 time (NULL) + 365 * 24 * 60 * 60));
61
62 chk (gnutls_x509_crt_sign2 (cert, cert, pkey, GNUTLS_DIG_SHA256, 0));
63
64 chk (gnutls_x509_privkey_export2 (pkey, GNUTLS_X509_FMT_PEM, &pkey_data));
65 chk (gnutls_x509_crt_export2 (cert, GNUTLS_X509_FMT_PEM, &cert_data));
66
67 chk (gnutls_certificate_set_x509_key_mem (cred, &cert_data, &pkey_data,
68 GNUTLS_X509_FMT_PEM));
69
70 // Setup session with credential.
71
72 ret = server_new_gnutls_set (GNUTLS_CLIENT, "NORMAL", &session, &cred);
73 assert_that (ret, is_equal_to (0));
74
75 // Confirm that credential was set.
76
77 chk (gnutls_certificate_get_x509_crt (cred, 0, &certs, &len));
78 assert_that (len, is_equal_to (1));
79 assert_that (gnutls_x509_crt_equals (cert, certs[0]), is_true);
80
81 // Clean up.
82
83 gnutls_free (pkey_data.data);
84 gnutls_free (cert_data.data);
85 gnutls_x509_crt_deinit (cert);
86 for (unsigned i = 0; i < len; i++)
87 gnutls_x509_crt_deinit (certs[i]);
88 gnutls_deinit (session);
89 gnutls_free (certs);
90 gnutls_x509_privkey_deinit (pkey);
91 gnutls_certificate_free_credentials (cred);
92}
static int server_new_gnutls_set(unsigned int end_type, const char *priority, gnutls_session_t *server_session, gnutls_certificate_credentials_t *server_credentials)
Set the server credentials.
static void chk(int ret)

References chk(), and server_new_gnutls_set().

Here is the call graph for this function:

◆ main()

int main ( int argc,
char ** argv )

Definition at line 96 of file serverutils_tests.c.

97{
98 int ret;
99 TestSuite *suite;
100
101 suite = create_test_suite ();
102
103 add_test_with_context (suite, serverutils, server_new_gnutls_set);
104
105 if (argc > 1)
106 ret = run_single_test (suite, argv[1], create_text_reporter ());
107 else
108 ret = run_test_suite (suite, create_text_reporter ());
109
110 destroy_test_suite (suite);
111
112 return ret;
113}

References server_new_gnutls_set().

Here is the call graph for this function: