mirror of
https://github.com/jedisct1/libsodium.git
synced 2024-12-20 02:25:14 -07:00
81 lines
1.6 KiB
C
81 lines
1.6 KiB
C
|
|
#define TEST_NAME "misuse"
|
|
#include "cmptest.h"
|
|
|
|
#if defined(SIGABRT) && (defined(__APPLE__) || defined(__OpenBSD__))
|
|
# include <signal.h>
|
|
|
|
static void
|
|
sigabrt_handler_6(int sig)
|
|
{
|
|
(void) sig;
|
|
exit(0);
|
|
}
|
|
|
|
static void
|
|
sigabrt_handler_5(int sig)
|
|
{
|
|
(void) sig;
|
|
signal(SIGABRT, sigabrt_handler_6);
|
|
assert(crypto_aead_xchacha20poly1305_ietf_encrypt(NULL, NULL, NULL, UINT64_MAX,
|
|
NULL, 0, NULL, NULL, NULL) == -1);
|
|
exit(1);
|
|
}
|
|
|
|
static void
|
|
sigabrt_handler_4(int sig)
|
|
{
|
|
(void) sig;
|
|
signal(SIGABRT, sigabrt_handler_5);
|
|
assert(crypto_aead_chacha20poly1305_ietf_encrypt(NULL, NULL, NULL, UINT64_MAX,
|
|
NULL, 0, NULL, NULL, NULL) == -1);
|
|
exit(1);
|
|
}
|
|
|
|
static void
|
|
sigabrt_handler_3(int sig)
|
|
{
|
|
(void) sig;
|
|
signal(SIGABRT, sigabrt_handler_4);
|
|
assert(crypto_aead_chacha20poly1305_encrypt(NULL, NULL, NULL, UINT64_MAX,
|
|
NULL, 0, NULL, NULL, NULL) == -1);
|
|
exit(1);
|
|
}
|
|
|
|
static void
|
|
sigabrt_handler_2(int sig)
|
|
{
|
|
(void) sig;
|
|
signal(SIGABRT, sigabrt_handler_3);
|
|
#if SIZE_MAX > 0x4000000000ULL
|
|
randombytes_buf_deterministic(NULL, 0x4000000001ULL, NULL);
|
|
#else
|
|
abort();
|
|
#endif
|
|
exit(1);
|
|
}
|
|
|
|
static void
|
|
sigabrt_handler_1(int sig)
|
|
{
|
|
(void) sig;
|
|
signal(SIGABRT, sigabrt_handler_2);
|
|
assert(crypto_kx_server_session_keys(NULL, NULL, NULL, NULL, NULL) == -1);
|
|
exit(1);
|
|
}
|
|
|
|
int
|
|
main(void)
|
|
{
|
|
signal(SIGABRT, sigabrt_handler_1);
|
|
assert(crypto_kx_client_session_keys(NULL, NULL, NULL, NULL, NULL) == -1);
|
|
return 1;
|
|
}
|
|
#else
|
|
int
|
|
main(void)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|