1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis */
2 /* SPDX-License-Identifier: Unlicense */
3 #ifndef DEMOS_COMMON_H_
4 #define DEMOS_COMMON_H_
8 extern prng_state yarrow_prng
;
10 extern const unsigned char ltc_dsa_private_test_key
[];
11 extern const unsigned long ltc_dsa_private_test_key_sz
;
12 int dsa_key_cmp(const int should_type
, const dsa_key
*should
, const dsa_key
*is
);
15 extern const unsigned char ltc_rsa_private_test_key
[];
16 extern const unsigned long ltc_rsa_private_test_key_sz
;
17 int rsa_key_cmp(const int should_type
, const rsa_key
*should
, const rsa_key
*is
);
20 extern const unsigned char ltc_ecc_long_pri_test_key
[];
21 extern const unsigned long ltc_ecc_long_pri_test_key_sz
;
22 int ecc_key_cmp(const int should_type
, const ecc_key
*should
, const ecc_key
*is
);
26 #define DO(x) do { fprintf(stderr, "%s:\n", #x); run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
27 #define DOX(x, str) do { fprintf(stderr, "%s - %s:\n", #x, (str)); run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
28 #define SHOULD_FAIL(x) do { fprintf(stderr, "%s:\n", #x); run_cmd((x) != CRYPT_OK ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
29 #define SHOULD_FAIL_WITH(x, e) do { fprintf(stderr, "%s:\n", #x); run_cmd((x) == (e) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
30 #define ENSURE(x) do { fprintf(stderr, "%s:\n", #x); run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
31 #define ENSUREX(x, str) do { fprintf(stderr, "%s:\n", #x); run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, (str)); } while (0)
33 #define DO(x) do { run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
34 #define DOX(x, str) do { run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
35 #define SHOULD_FAIL(x) do { run_cmd((x) != CRYPT_OK ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
36 #define SHOULD_FAIL_WITH(x, e) do { run_cmd((x) == (e) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
37 #define ENSURE(x) do { run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
38 #define ENSUREX(x, str) do { run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, (str)); } while (0)
41 #define COMPARE_TESTVECTOR(i, il, s, sl, wa, wi) do { DO(do_compare_testvector((i), (il), (s), (sl), (wa), (wi))); } while(0)
43 #if !((defined(_WIN32) || defined(_WIN32_WCE)) && !defined(__GNUC__)) && !defined(LTC_NO_FILE)
44 #define LTC_TEST_READDIR
46 typedef int (*dir_iter_cb
)(const void *d
, unsigned long l
, void* ctx
);
47 typedef int (*dir_fiter_cb
)(FILE *f
, void* ctx
);
48 typedef void (*dir_cleanup_cb
)(void* ctx
);
50 int test_process_dir(const char *path
, void *ctx
, dir_iter_cb iter
, dir_fiter_cb fiter
, dir_cleanup_cb cleanup
, const char *test
);
53 void run_cmd(int res
, int line
, const char *file
, const char *cmd
, const char *algorithm
);
55 void print_hex(const char* what
, const void* v
, const unsigned long l
);
57 int do_compare_testvector(const void* is
, const unsigned long is_len
, const void* should
, const unsigned long should_len
, const char* what
, int which
);
59 #endif /* DEMOS_COMMON_H_ */