LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
+JANSSON := $(shell $(PKGCONF) --exists jansson; echo $$?)
+ifeq ($(JANSSON), 0)
+LDFLAGS += $(shell $(PKGCONF) --libs jansson)
+CFLAGS += -DUSE_JANSSON
+endif
+
ifeq ($(MAKECMDGOALS),static)
# check for broken pkg-config
ifeq ($(shell echo $(LDFLAGS_STATIC) | grep 'whole-archive.*l:lib.*no-whole-archive'),)
}
if (info.file_type == FIPS_TYPE_JSON) {
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
json_error_t error;
json_info.json_root = json_loadf(info.fp_rd, 0, &error);
if (!json_info.json_root) {
req_file_path, error.line, error.column);
return -EINVAL;
}
-#else /* RTE_HAS_JANSSON */
+#else /* USE_JANSSON */
RTE_LOG(ERR, USER1, "No json library configured.\n");
return -EINVAL;
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
}
info.fp_wr = fopen(rsp_file_path, "w");
fprintf(info.fp_wr, "%s\n", info.vec[i]);
}
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
int
fips_test_parse_one_json_vector_set(void)
{
return 0;
}
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
static int
parser_read_uint64_hex(uint64_t *value, const char *p)
#ifndef _FIPS_VALIDATION_H_
#define _FIPS_VALIDATION_H_
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
#include <jansson.h>
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
#define FIPS_PARSE_ERR(fmt, args) \
RTE_LOG(ERR, USER1, "FIPS parse error" ## fmt ## "\n", ## args)
uint8_t gen_iv;
};
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
struct fips_test_json_info {
/* Information used for reading from json */
json_t *json_root;
/* Other info */
uint8_t is_sample;
};
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
struct fips_test_interim_info {
FILE *fp_rd;
extern struct fips_test_vector vec;
extern struct fips_test_interim_info info;
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
extern struct fips_test_json_info json_info;
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
int
fips_test_init(const char *req_file_path, const char *rsp_file_path,
void
fips_test_write_one_case(void);
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
int
fips_test_parse_one_json_vector_set(void);
int
parse_test_aes_json_init(void);
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
int
parse_test_aes_init(void);
{NULL, NULL, NULL} /**< end pointer */
};
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
struct fips_test_callback aes_dec_json_vectors[] = {
{KEY_JSON_STR, parse_uint8_known_len_hex_str, &vec.cipher_auth.key},
{IV_JSON_STR, parse_uint8_hex_str, &vec.iv},
return 0;
}
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
static int
parse_test_aes_writeback(struct fips_val *val)
{"AES", FIPS_TEST_ALGO_AES_CMAC},
};
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
static int
parser_read_cmac_direction_str(__rte_unused const char *key, char *src,
__rte_unused struct fips_val *val)
return 0;
}
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
static int
parse_test_cmac_writeback(struct fips_val *val)
#include <time.h>
#include <stdio.h>
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
#include <jansson.h>
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
#include <rte_cryptodev.h>
#include <rte_malloc.h>
{NULL, NULL, NULL} /**< end pointer */
};
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
struct fips_test_callback gcm_dec_json_vectors[] = {
{KEY_JSON_STR, parse_uint8_known_len_hex_str, &vec.aead.key},
{IV_JSON_STR, parse_uint8_known_len_hex_str, &vec.iv},
{AAD_JSON_STR, parse_gcm_aad_str, &vec.aead.aad},
{NULL, NULL, NULL} /**< end pointer */
};
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
static int
parse_test_gcm_writeback(struct fips_val *val)
return 0;
}
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
static int
parse_test_gcm_json_writeback(struct fips_val *val)
{
return 0;
}
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
{NULL, NULL, NULL} /**< end pointer */
};
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
struct hash_size_conversion json_algorithms[] = {
{"HMAC-SHA-1", RTE_CRYPTO_AUTH_SHA1_HMAC},
{"HMAC-SHA2-224", RTE_CRYPTO_AUTH_SHA224_HMAC},
{TAGLEN_JSON_STR, parser_read_uint32_bit_val, &vec.cipher_auth.digest},
{NULL, NULL, NULL} /**< end pointer */
};
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
static int
parse_test_hmac_writeback(struct fips_val *val)
return 0;
}
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
static int
parse_test_hmac_json_writeback(struct fips_val *val)
{
return 0;
}
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
struct fips_test_vector vec;
struct fips_test_interim_info info;
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
struct fips_test_json_info json_info;
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
struct cryptodev_fips_validate_env {
const char *req_path;
static int
fips_test_one_file(void);
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
static int
fips_test_one_json_file(void);
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
static int
parse_cryptodev_arg(char *arg)
goto exit;
}
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
if (info.file_type == FIPS_TYPE_JSON) {
ret = fips_test_one_json_file();
json_decref(json_info.json_root);
} else {
ret = fips_test_one_file();
}
-#else /* RTE_HAS_JANSSON */
+#else /* USE_JANSSON */
ret = fips_test_one_file();
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
if (ret < 0) {
RTE_LOG(ERR, USER1, "Error %i: Failed test %s\n",
break;
}
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
if (info.file_type == FIPS_TYPE_JSON) {
ret = fips_test_one_json_file();
json_decref(json_info.json_root);
} else {
ret = fips_test_one_file();
}
-#else /* RTE_HAS_JANSSON */
+#else /* USE_JANSSON */
ret = fips_test_one_file();
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
if (ret < 0) {
RTE_LOG(ERR, USER1, "Error %i: Failed test %s\n",
return ret;
}
-#ifdef RTE_HAS_JANSSON
+#ifdef USE_JANSSON
static int
fips_test_json_init_writeback(void)
{
return 0;
}
-#endif /* RTE_HAS_JANSSON */
+#endif /* USE_JANSSON */
if dpdk_conf.has('RTE_HAS_JANSSON')
ext_deps += jansson_dep
+ cflags += '-DUSE_JANSSON'
endif