Thanks for the help! The problem was solved by creating a custom random seed generator, now everything is running fine.

I turned debugging on, this is the output:

wolfSSL Entering SSL_new
RNG Init error
CTX ref count ot 0 yet, no free
wolfSSL Leaving SSL_new, return -199

I had forgotten to include random.h, but including it changes nothing.

I have the headers you mentioned included, and even modified a line in settings.h, but all remains the same.

/* Uncomment next line if building wolfSSL for a game console */
/* #define WOLFSSL_GAME_BUILD*/

became

/* Uncomment next line if building wolfSSL for a game console */
#define WOLFSSL_GAME_BUILD

This doesn't seem to change anything, as i still get the same error, maybe there is something wrong with the commands i used to build the library, i found them in a 2016 post in devkitpro forums.

./configure --disable-shared CC=/opt/devkitpro/devkitPPC/bin/powerpc-eabi-gcc --host=ppc --enable-singlethreaded RANLIB=/opt/devkitpro/devkitPPC/bin/powerpc-eabi-ranlib CFLAGS="-DDEVKITPRO -DNO_WRITEV"

make src/libwolfssl.la

In the makefile everything looks fine and the compiler gives no errors.

CFLAGS    = -g -O2 -Wall $(MACHDEP) $(INCLUDE) -I/home/deltree/Downloads/Wii/DEV/wolfssl-4.0.0-stable/
LIBS    :=    /home/deltree/Downloads/Wii/DEV/wolfssl-4.0.0-stable/src/.libs/libwolfssl.a -lfat -lwiiuse -lbte -logc -lm 

I'm creating an application for the Nintendo Wii and i'm trying to write a simple code to establish and HTTPS connection and retrieve data from a website, however, when i call the wolfSSL_new function, it doesn't work, wolfSSL_get_error returns me -173 error code, which means "Bad function argument".

This is the code i'm using:

WOLFSSL_CTX* ctx = NULL;
WOLFSSL* sslSock = NULL;

wolfSSL_Init();

ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
    
if ( ctx == NULL ) 
{
        printf("ERRO: WOLFSSL_CTX\n");
    return("SSLERR");
}
    
sslSock = wolfSSL_new(ctx);
    
if ( sslSock == NULL ) 
{
    int error = wolfSSL_get_error(sslSock, 0);
    char *errStr="";
    wolfSSL_ERR_error_string(error, errStr);
        printf("ERRO: wolfSSL_new: %d , %s\n", error, errStr);
    wolfSSL_CTX_free(ctx);
    wolfSSL_Cleanup();
        return("SSLERR");
}

I appreciate any help.