* See https://www.openssl.org/source/license.html for details
*/
+#ifdef _MSC_VER
+# pragma warning(push, 3)
+# include <openssl/applink.c>
+# pragma warning(pop)
+#endif
#include <openssl/opensslv.h>
#include <openssl/engine.h>
#include <openssl/provider.h>
#endif
/* Helpers to test OpenSSL API calls. */
-#define T(e) ({ if (!(e)) { \
- ERR_print_errors_fp(stderr); \
- OpenSSLDie(__FILE__, __LINE__, #e); \
- } \
- })
-#define TE(e) ({ if (!(e)) { \
- ERR_print_errors_fp(stderr); \
- fprintf(stderr, "Error at %s:%d %s\n", __FILE__, __LINE__, #e); \
- return -1; \
- } \
- })
+#define T(e) \
+ if (!(e)) { \
+ ERR_print_errors_fp(stderr); \
+ OpenSSLDie(__FILE__, __LINE__, #e); \
+ }
+#define TE(e) \
+ if (!(e)) { \
+ ERR_print_errors_fp(stderr); \
+ fprintf(stderr, "Error at %s:%d %s\n", __FILE__, __LINE__, #e); \
+ return -1; \
+ }
#define cRED "\033[1;31m"
#define cDRED "\033[0;31m"
else \
printf(cGREEN " Test passed" cNORM "\n");}
+#ifdef __GNUC__
/* To test older APIs. */
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
/*
* Test keys from both GOST R 34.12-2015 and GOST R 34.13-2015,
const char *hmac; /* Expected output for HMAC tests. */
const char *key; /* MAC key.*/
int psize; /* Input (plaintext) size. */
- int outsize; /* Compare to EVP_MD_size() / EVP_MAC_size() if non-zero. */
+ size_t outsize; /* Compare to EVP_MD_size() / EVP_MAC_size() if non-zero. */
int truncate; /* Truncated output (digest) size. */
int key_size; /* MAC key size. */
int block_size; /* Internal block size. */
const struct hash_testvec *t)
{
if (!iter)
- printf("[MAC %d] ", t->outsize);
+ printf("[MAC %zu] ", t->outsize);
size_t acpkm = (size_t)t->acpkm;
size_t acpkm_t = (size_t)t->acpkm_t;
- OSSL_PARAM params[] = { OSSL_PARAM_END, OSSL_PARAM_END, OSSL_PARAM_END };
+ OSSL_PARAM params[] = { OSSL_PARAM_END, OSSL_PARAM_END, OSSL_PARAM_END, OSSL_PARAM_END };
OSSL_PARAM *p = params;
if (acpkm) {
*p++ = OSSL_PARAM_construct_size_t("key-mesh", &acpkm);
if (t->outsize)
T(EVP_MAC_CTX_get_mac_size(ctx) == t->outsize);
size_t outsize;
- if (t->truncate)
+ if (t->truncate) {
outsize = t->truncate;
+ *p++ = OSSL_PARAM_construct_size_t("size", &outsize);
+ }
else
outsize = EVP_MAC_CTX_get_mac_size(ctx);
const struct hash_testvec *t)
{
if (!iter)
- printf("[MD %d] ", t->outsize);
+ printf("[MD %zu] ", t->outsize);
if (t->outsize)
T(EVP_MD_size(type) == t->outsize);
size_t outsize;