1
2 #define TEST_NAME "misuse"
3 #include "cmptest.h"
4
5 #ifdef HAVE_CATCHABLE_ABRT
6 # include <signal.h>
7
8 static void
sigabrt_handler_15(int sig)9 sigabrt_handler_15(int sig)
10 {
11 (void) sig;
12 exit(0);
13 }
14
15 # ifndef SODIUM_LIBRARY_MINIMAL
16 static void
sigabrt_handler_14(int sig)17 sigabrt_handler_14(int sig)
18 {
19 (void) sig;
20 signal(SIGABRT, sigabrt_handler_15);
21 assert(crypto_box_curve25519xchacha20poly1305_easy
22 (NULL, NULL, crypto_stream_xchacha20_MESSAGEBYTES_MAX - 1,
23 NULL, NULL, NULL) == -1);
24 exit(1);
25 }
26
27 static void
sigabrt_handler_13(int sig)28 sigabrt_handler_13(int sig)
29 {
30 (void) sig;
31 signal(SIGABRT, sigabrt_handler_14);
32 assert(crypto_box_curve25519xchacha20poly1305_easy_afternm
33 (NULL, NULL, crypto_stream_xchacha20_MESSAGEBYTES_MAX - 1,
34 NULL, NULL) == -1);
35 exit(1);
36 }
37 # endif
38
39 static void
sigabrt_handler_12(int sig)40 sigabrt_handler_12(int sig)
41 {
42 (void) sig;
43 # ifdef SODIUM_LIBRARY_MINIMAL
44 signal(SIGABRT, sigabrt_handler_15);
45 # else
46 signal(SIGABRT, sigabrt_handler_13);
47 # endif
48 assert(crypto_pwhash_str_alg(NULL, "", 0U, 1U, 1U, -1) == -1);
49 exit(1);
50 }
51
52 static void
sigabrt_handler_11(int sig)53 sigabrt_handler_11(int sig)
54 {
55 (void) sig;
56 signal(SIGABRT, sigabrt_handler_12);
57 assert(crypto_box_easy(NULL, NULL, crypto_stream_xsalsa20_MESSAGEBYTES_MAX,
58 NULL, NULL, NULL) == -1);
59 exit(1);
60 }
61
62 static void
sigabrt_handler_10(int sig)63 sigabrt_handler_10(int sig)
64 {
65 (void) sig;
66 signal(SIGABRT, sigabrt_handler_11);
67 assert(crypto_box_easy_afternm(NULL, NULL, crypto_stream_xsalsa20_MESSAGEBYTES_MAX,
68 NULL, NULL) == -1);
69 exit(1);
70 }
71
72 static void
sigabrt_handler_9(int sig)73 sigabrt_handler_9(int sig)
74 {
75 (void) sig;
76 signal(SIGABRT, sigabrt_handler_10);
77 assert(sodium_base642bin(NULL, 1, NULL, 1, NULL, NULL, NULL, -1) == -1);
78 exit(1);
79 }
80
81 static void
sigabrt_handler_8(int sig)82 sigabrt_handler_8(int sig)
83 {
84 (void) sig;
85 signal(SIGABRT, sigabrt_handler_9);
86 assert(sodium_bin2base64(NULL, 1, NULL, 1, sodium_base64_VARIANT_ORIGINAL) == NULL);
87 exit(1);
88 }
89
90 static void
sigabrt_handler_7(int sig)91 sigabrt_handler_7(int sig)
92 {
93 (void) sig;
94 signal(SIGABRT, sigabrt_handler_8);
95 assert(sodium_bin2base64(NULL, 1, NULL, 1, -1) == NULL);
96 exit(1);
97 }
98
99 static void
sigabrt_handler_6(int sig)100 sigabrt_handler_6(int sig)
101 {
102 (void) sig;
103 signal(SIGABRT, sigabrt_handler_7);
104 assert(sodium_pad(NULL, NULL, SIZE_MAX, 16, 1) == -1);
105 exit(1);
106 }
107
108 static void
sigabrt_handler_5(int sig)109 sigabrt_handler_5(int sig)
110 {
111 (void) sig;
112 signal(SIGABRT, sigabrt_handler_6);
113 assert(crypto_aead_xchacha20poly1305_ietf_encrypt(NULL, NULL, NULL, UINT64_MAX,
114 NULL, 0, NULL, NULL, NULL) == -1);
115 exit(1);
116 }
117
118 static void
sigabrt_handler_4(int sig)119 sigabrt_handler_4(int sig)
120 {
121 (void) sig;
122 signal(SIGABRT, sigabrt_handler_5);
123 assert(crypto_aead_chacha20poly1305_ietf_encrypt(NULL, NULL, NULL, UINT64_MAX,
124 NULL, 0, NULL, NULL, NULL) == -1);
125 exit(1);
126 }
127
128 static void
sigabrt_handler_3(int sig)129 sigabrt_handler_3(int sig)
130 {
131 (void) sig;
132 signal(SIGABRT, sigabrt_handler_4);
133 assert(crypto_aead_chacha20poly1305_encrypt(NULL, NULL, NULL, UINT64_MAX,
134 NULL, 0, NULL, NULL, NULL) == -1);
135 exit(1);
136 }
137
138 static void
sigabrt_handler_2(int sig)139 sigabrt_handler_2(int sig)
140 {
141 (void) sig;
142 signal(SIGABRT, sigabrt_handler_3);
143 #if SIZE_MAX > 0x4000000000ULL
144 randombytes_buf_deterministic(NULL, 0x4000000001ULL, NULL);
145 #else
146 abort();
147 #endif
148 exit(1);
149 }
150
151 static void
sigabrt_handler_1(int sig)152 sigabrt_handler_1(int sig)
153 {
154 (void) sig;
155 signal(SIGABRT, sigabrt_handler_2);
156 assert(crypto_kx_server_session_keys(NULL, NULL, NULL, NULL, NULL) == -1);
157 exit(1);
158 }
159
160 int
main(void)161 main(void)
162 {
163 signal(SIGABRT, sigabrt_handler_1);
164 assert(crypto_kx_client_session_keys(NULL, NULL, NULL, NULL, NULL) == -1);
165 return 1;
166 }
167 #else
168 int
main(void)169 main(void)
170 {
171 return 0;
172 }
173 #endif
174