#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <wolfssl/wolfcrypt/settings.h>
#include <wolfssl/ssl.h>
#include <wolfssl/wolfcrypt/rsa.h>
#include <wolfssl/wolfcrypt/sha256.h>
#include <wolfssl/wolfcrypt/aes.h>
#include <stdlib.h>
extern int get_wolfssl_error_want_read(void);
extern int get_wolfssl_error_want_write(void);
extern int get_wolfssl_max_error_size (void);
extern int get_wolfssl_success(void);
extern int get_wolfssl_failure(void);
extern int get_wolfssl_verify_none(void);
extern int get_wolfssl_verify_peer(void);
extern int get_wolfssl_verify_fail_if_no_peer_cert(void);
extern int get_wolfssl_verify_client_once(void);
extern int get_wolfssl_verify_post_handshake(void);
extern int get_wolfssl_verify_fail_except_psk(void);
extern int get_wolfssl_verify_default(void);
extern int get_wolfssl_filetype_asn1(void);
extern int get_wolfssl_filetype_pem(void);
extern int get_wolfssl_filetype_default(void);
extern void* ada_new_rsa (void);
extern void ada_free_rsa (void* key);
extern void *ada_new_sha256 (void);
extern void ada_free_sha256 (void* sha256);
extern void* ada_new_aes (int devId);
extern void ada_free_aes (void* aes);
extern void* ada_new_rng (void);
extern void ada_free_rng (void* rng);
extern int ada_RsaSetRNG (RsaKey* key, WC_RNG* rng);
extern int get_wolfssl_invalid_devid (void);
extern int ada_md5 (void);
extern int ada_sha (void);
extern int ada_sha256 (void);
extern int ada_sha384 (void);
extern int ada_sha512 (void);
extern int ada_sha3_224 (void);
extern int ada_sha3_256 (void);
extern int ada_sha3_384 (void);
extern int ada_sha3_512 (void);
extern int get_wolfssl_error_want_read(void) {
return WOLFSSL_ERROR_WANT_READ;
}
extern int get_wolfssl_error_want_write(void) {
return WOLFSSL_ERROR_WANT_WRITE;
}
extern int get_wolfssl_max_error_size(void) {
return WOLFSSL_MAX_ERROR_SZ;
}
extern int get_wolfssl_success(void) {
return WOLFSSL_SUCCESS;
}
extern int get_wolfssl_failure(void) {
return WOLFSSL_FAILURE;
}
extern int get_wolfssl_verify_none(void) {
return WOLFSSL_VERIFY_NONE;
}
extern int get_wolfssl_verify_peer(void) {
return WOLFSSL_VERIFY_PEER;
}
extern int get_wolfssl_verify_fail_if_no_peer_cert(void) {
return WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT;
}
extern int get_wolfssl_verify_client_once(void) {
return WOLFSSL_VERIFY_CLIENT_ONCE;
}
extern int get_wolfssl_verify_post_handshake(void) {
return WOLFSSL_VERIFY_POST_HANDSHAKE;
}
extern int get_wolfssl_verify_fail_except_psk(void) {
return WOLFSSL_VERIFY_FAIL_EXCEPT_PSK;
}
extern int get_wolfssl_verify_default(void) {
return WOLFSSL_VERIFY_DEFAULT;
}
extern int get_wolfssl_filetype_asn1(void) {
return WOLFSSL_FILETYPE_ASN1;
}
extern int get_wolfssl_filetype_pem(void) {
return WOLFSSL_FILETYPE_PEM;
}
extern int get_wolfssl_filetype_default(void) {
return WOLFSSL_FILETYPE_DEFAULT;
}
extern void* ada_new_rsa (void)
{
return (void*)wc_NewRsaKey(NULL, INVALID_DEVID, NULL);
}
extern void ada_free_rsa (void* key)
{
wc_DeleteRsaKey((RsaKey*)key, NULL);
}
extern void* ada_new_sha256 (void)
{
return XMALLOC(sizeof(wc_Sha256), NULL, DYNAMIC_TYPE_SHA);
}
extern void ada_free_sha256 (void* sha256)
{
XFREE(sha256, NULL, DYNAMIC_TYPE_SHA);
}
extern void* ada_new_aes (int devId)
{
return (void*)wc_AesNew(NULL, devId, NULL);
}
extern void ada_free_aes (void* aes)
{
wc_AesDelete((Aes*)aes, NULL);
}
extern int get_wolfssl_invalid_devid (void)
{
return INVALID_DEVID;
}
extern void* ada_new_rng (void)
{
return (void*)wc_rng_new(NULL, 0, NULL);
}
extern void ada_free_rng (void* rng)
{
wc_rng_free((WC_RNG*)rng);
}
extern int ada_RsaSetRNG(RsaKey* key, WC_RNG* rng)
{
int r = 0;
#ifdef WC_RSA_BLINDING
r = wc_RsaSetRNG(key, rng);
#endif
return r;
}
extern int ada_md5 (void)
{
return WC_MD5;
}
extern int ada_sha (void)
{
return WC_SHA;
}
extern int ada_sha256 (void)
{
return WC_SHA256;
}
extern int ada_sha384 (void)
{
return WC_SHA384;
}
extern int ada_sha512 (void)
{
return WC_SHA512;
}
extern int ada_sha3_224 (void)
{
return WC_SHA3_224;
}
extern int ada_sha3_256 (void)
{
return WC_SHA3_256;
}
extern int ada_sha3_384 (void)
{
return WC_SHA3_384;
}
extern int ada_sha3_512 (void)
{
return WC_SHA3_512;
}