Blame SOURCES/libsodium-1.0.18/test/default/misuse.c

rdobuilder 775784
rdobuilder 775784
#define TEST_NAME "misuse"
rdobuilder 775784
#include "cmptest.h"
rdobuilder 775784
rdobuilder 775784
#ifdef HAVE_CATCHABLE_ABRT
rdobuilder 775784
# include <signal.h>
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_15(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    exit(0);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
# ifndef SODIUM_LIBRARY_MINIMAL
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_14(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_15);
rdobuilder 775784
    assert(crypto_box_curve25519xchacha20poly1305_easy
rdobuilder 775784
           (guard_page, guard_page, crypto_stream_xchacha20_MESSAGEBYTES_MAX - 1,
rdobuilder 775784
            guard_page, guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_13(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_14);
rdobuilder 775784
    assert(crypto_box_curve25519xchacha20poly1305_easy_afternm
rdobuilder 775784
           (guard_page, guard_page, crypto_stream_xchacha20_MESSAGEBYTES_MAX - 1,
rdobuilder 775784
            guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
# endif
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_12(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
# ifdef SODIUM_LIBRARY_MINIMAL
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_15);
rdobuilder 775784
# else
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_13);
rdobuilder 775784
# endif
rdobuilder 775784
    assert(crypto_pwhash_str_alg((char *) guard_page,
rdobuilder 775784
                                 "", 0U, 1U, 1U, -1) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_11(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_12);
rdobuilder 775784
    assert(crypto_box_easy(guard_page, guard_page,
rdobuilder 775784
                           crypto_stream_xsalsa20_MESSAGEBYTES_MAX,
rdobuilder 775784
                           guard_page, guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_10(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_11);
rdobuilder 775784
    assert(crypto_box_easy_afternm(guard_page, guard_page,
rdobuilder 775784
                                   crypto_stream_xsalsa20_MESSAGEBYTES_MAX,
rdobuilder 775784
                                   guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_9(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_10);
rdobuilder 775784
    assert(sodium_base642bin(guard_page, 1, (const char *) guard_page, 1,
rdobuilder 775784
                             NULL, NULL, NULL, -1) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_8(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_9);
rdobuilder 775784
    assert(sodium_bin2base64((char *) guard_page, 1, guard_page, 1,
rdobuilder 775784
                             sodium_base64_VARIANT_ORIGINAL) == NULL);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_7(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_8);
rdobuilder 775784
    assert(sodium_bin2base64((char *) guard_page, 1,
rdobuilder 775784
                             guard_page, 1, -1) == NULL);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_6(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_7);
rdobuilder 775784
    assert(sodium_pad(NULL, guard_page, SIZE_MAX, 16, 1) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_5(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_6);
rdobuilder 775784
    assert(crypto_aead_xchacha20poly1305_ietf_encrypt(guard_page, NULL, NULL, UINT64_MAX,
rdobuilder 775784
                                                      NULL, 0, NULL,
rdobuilder 775784
                                                      guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_4(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_5);
rdobuilder 775784
    assert(crypto_aead_chacha20poly1305_ietf_encrypt(guard_page, NULL, NULL, UINT64_MAX,
rdobuilder 775784
                                                     NULL, 0, NULL,
rdobuilder 775784
                                                     guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_3(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_4);
rdobuilder 775784
    assert(crypto_aead_chacha20poly1305_encrypt(guard_page, NULL, NULL, UINT64_MAX,
rdobuilder 775784
                                                NULL, 0, NULL,
rdobuilder 775784
                                                guard_page, guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_2(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_3);
rdobuilder 775784
#if SIZE_MAX > 0x4000000000ULL
rdobuilder 775784
    randombytes_buf_deterministic(guard_page, 0x4000000001ULL, guard_page);
rdobuilder 775784
#else
rdobuilder 775784
    abort();
rdobuilder 775784
#endif
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
static void
rdobuilder 775784
sigabrt_handler_1(int sig)
rdobuilder 775784
{
rdobuilder 775784
    (void) sig;
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_2);
rdobuilder 775784
    assert(crypto_kx_server_session_keys(NULL, NULL, guard_page, guard_page,
rdobuilder 775784
                                         guard_page) == -1);
rdobuilder 775784
    exit(1);
rdobuilder 775784
}
rdobuilder 775784
rdobuilder 775784
int
rdobuilder 775784
main(void)
rdobuilder 775784
{
rdobuilder 775784
    signal(SIGABRT, sigabrt_handler_1);
rdobuilder 775784
    assert(crypto_kx_client_session_keys(NULL, NULL, guard_page, guard_page,
rdobuilder 775784
                                         guard_page) == -1);
rdobuilder 775784
    return 1;
rdobuilder 775784
}
rdobuilder 775784
#else
rdobuilder 775784
int
rdobuilder 775784
main(void)
rdobuilder 775784
{
rdobuilder 775784
    return 0;
rdobuilder 775784
}
rdobuilder 775784
#endif