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