#ifndef SRC_USER_SETTINGS_H_
#define SRC_USER_SETTINGS_H_
#include <xparameters.h>
#define WOLFCRYPT_ONLY
#define WOLFSSL_XILINX
#define WOLFSSL_XILINX_CRYPT
#if defined(versal) && defined(WOLFSSL_XILINX_CRYPT)
#define WOLFSSL_XILINX_CRYPT_VERSAL
#endif
#ifndef FREERTOS
#define SINGLE_THREADED
#endif
#define NO_FILESYSTEM
#define HAVE_UINTPTR_T
#include "xil_printf.h"
#define XPRINTF xil_printf
#if !defined(WOLFSSL_XILINX_CRYPT_VERSAL)
#define WOLFSSL_ARMASM
#endif
#define USE_FAST_MATH
#define FP_MAX_BITS (4096 * 2)
#define WOLFSSL_SP
#define WOLFSSL_SP_ASM
#define WOLFSSL_SP_ARM64_ASM
#define WOLFSSL_HAVE_SP_ECC
#define WOLFSSL_HAVE_SP_RSA
#if defined(WOLFSSL_XILINX_CRYPT_VERSAL)
#define HAVE_HASHDRBG
#define WOLFSSL_PSV_TRNG_DEV_ID XPAR_VERSAL_CIPS_0_PSPMC_0_PSV_PMC_TRNG_DEVICE_ID
#if !defined(HAVE_HASHDRBG)
#define CUSTOM_RAND_GENERATE_BLOCK wc_VersalTrngGenerate
#else
#define CUSTOM_RAND_GENERATE_SEED wc_VersalTrngGenerate
#endif
#else
#define HAVE_HASHDRBG
extern unsigned char my_rng_seed_gen(void);
#define CUSTOM_RAND_GENERATE my_rng_seed_gen
#endif
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define HAVE_ECC
#if defined(WOLFSSL_XILINX_CRYPT_VERSAL)
#define ECC_USER_CURVES
#define NO_ECC256
#define WOLFSSL_SP_NO_256
#define HAVE_ECC384
#define WOLFSSL_SP_384
#define HAVE_ECC521
#define WOLFSSL_SP_521
#else
#define TFM_ECC256
#define ECC_SHAMIR
#endif
#undef NO_DH
#define WOLFSSL_DH_CONST
#define HAVE_FFDHE_2048
#define HAVE_FFDHE_4096
#define HAVE_CURVE25519
#define HAVE_ED25519
#ifndef HAVE___UINT128_T
#define HAVE___UINT128_T
#endif
#define HAVE_CHACHA
#define HAVE_POLY1305
#define HAVE_AESCCM
#define HAVE_AESGCM
#define WOLFSSL_AES_DIRECT
#define WOLFSSL_CMAC
#define WOLFSSL_SHA512
#define WOLFSSL_SHA384
#define WOLFSSL_SHA224
#define WOLFSSL_SHA3
#define WOLFSSL_NO_HASH_RAW
#define WOLFSSL_NO_SHAKE128
#define WOLFSSL_NO_SHAKE256
#define HAVE_HKDF
#define NO_DSA
#define NO_RC4
#define NO_MD4
#define NO_MD5
#define NO_SHA
#define NO_PSK
#define NO_DES3
#define WOLFSSL_IGNORE_FILE_WARN
#define NO_MAIN_FUNCTION
#define WOLFSSL_KEY_GEN
#define AES_AUTH_ADD_SZ 16
#define USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_2048
#if 0#endif
#endif