misuse.c 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #define TEST_NAME "misuse"
  2. #include "cmptest.h"
  3. #ifdef HAVE_CATCHABLE_ABRT
  4. # include <signal.h>
  5. static void
  6. sigabrt_handler_13(int sig)
  7. {
  8. (void) sig;
  9. exit(0);
  10. }
  11. static void
  12. sigabrt_handler_12(int sig)
  13. {
  14. (void) sig;
  15. signal(SIGABRT, sigabrt_handler_13);
  16. assert(crypto_pwhash_str_alg(NULL, "", 0U, 1U, 1U, -1) == -1);
  17. exit(1);
  18. }
  19. static void
  20. sigabrt_handler_11(int sig)
  21. {
  22. (void) sig;
  23. signal(SIGABRT, sigabrt_handler_12);
  24. assert(crypto_box_easy(NULL, NULL, crypto_stream_xsalsa20_MESSAGEBYTES_MAX,
  25. NULL, NULL, NULL) == -1);
  26. exit(1);
  27. }
  28. static void
  29. sigabrt_handler_10(int sig)
  30. {
  31. (void) sig;
  32. signal(SIGABRT, sigabrt_handler_11);
  33. assert(crypto_box_easy_afternm(NULL, NULL, crypto_stream_xsalsa20_MESSAGEBYTES_MAX,
  34. NULL, NULL) == -1);
  35. exit(1);
  36. }
  37. static void
  38. sigabrt_handler_9(int sig)
  39. {
  40. (void) sig;
  41. signal(SIGABRT, sigabrt_handler_10);
  42. assert(sodium_base642bin(NULL, 1, NULL, 1, NULL, NULL, NULL, -1) == -1);
  43. exit(1);
  44. }
  45. static void
  46. sigabrt_handler_8(int sig)
  47. {
  48. (void) sig;
  49. signal(SIGABRT, sigabrt_handler_9);
  50. assert(sodium_bin2base64(NULL, 1, NULL, 1, sodium_base64_VARIANT_ORIGINAL) == NULL);
  51. exit(1);
  52. }
  53. static void
  54. sigabrt_handler_7(int sig)
  55. {
  56. (void) sig;
  57. signal(SIGABRT, sigabrt_handler_8);
  58. assert(sodium_bin2base64(NULL, 1, NULL, 1, -1) == NULL);
  59. exit(1);
  60. }
  61. static void
  62. sigabrt_handler_6(int sig)
  63. {
  64. (void) sig;
  65. signal(SIGABRT, sigabrt_handler_7);
  66. assert(sodium_pad(NULL, NULL, SIZE_MAX, 16, 1) == -1);
  67. exit(1);
  68. }
  69. static void
  70. sigabrt_handler_5(int sig)
  71. {
  72. (void) sig;
  73. signal(SIGABRT, sigabrt_handler_6);
  74. assert(crypto_aead_xchacha20poly1305_ietf_encrypt(NULL, NULL, NULL, UINT64_MAX,
  75. NULL, 0, NULL, NULL, NULL) == -1);
  76. exit(1);
  77. }
  78. static void
  79. sigabrt_handler_4(int sig)
  80. {
  81. (void) sig;
  82. signal(SIGABRT, sigabrt_handler_5);
  83. assert(crypto_aead_chacha20poly1305_ietf_encrypt(NULL, NULL, NULL, UINT64_MAX,
  84. NULL, 0, NULL, NULL, NULL) == -1);
  85. exit(1);
  86. }
  87. static void
  88. sigabrt_handler_3(int sig)
  89. {
  90. (void) sig;
  91. signal(SIGABRT, sigabrt_handler_4);
  92. assert(crypto_aead_chacha20poly1305_encrypt(NULL, NULL, NULL, UINT64_MAX,
  93. NULL, 0, NULL, NULL, NULL) == -1);
  94. exit(1);
  95. }
  96. static void
  97. sigabrt_handler_2(int sig)
  98. {
  99. (void) sig;
  100. signal(SIGABRT, sigabrt_handler_3);
  101. #if SIZE_MAX > 0x4000000000ULL
  102. randombytes_buf_deterministic(NULL, 0x4000000001ULL, NULL);
  103. #else
  104. abort();
  105. #endif
  106. exit(1);
  107. }
  108. static void
  109. sigabrt_handler_1(int sig)
  110. {
  111. (void) sig;
  112. signal(SIGABRT, sigabrt_handler_2);
  113. assert(crypto_kx_server_session_keys(NULL, NULL, NULL, NULL, NULL) == -1);
  114. exit(1);
  115. }
  116. int
  117. main(void)
  118. {
  119. signal(SIGABRT, sigabrt_handler_1);
  120. assert(crypto_kx_client_session_keys(NULL, NULL, NULL, NULL, NULL) == -1);
  121. return 1;
  122. }
  123. #else
  124. int
  125. main(void)
  126. {
  127. return 0;
  128. }
  129. #endif