I am migrating my code base from mbed TLS version 2.26.0 to version 3.1.0 and have run into a problem in my code that attempts to load a private key from a file:
rcd = mbedtls_pk_parse_keyfile(&private_key, private_key_name.c_str(), password.c_str());
if(rcd != 0)
throw TlsException(rcd, "parse key file failed");
This call matches the function signature specified in the documentation but does not match the function signature given in the header pk.h:
int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx,
const char *path, const char *password,
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng );
Based upon what I can see in the header documentation, the additional two parameters deal with random number generation? and requires a callback to be registered?
This is the only place in the headers where I have found the prototype for this function. I feel like I am missing something somewhat fundamental here but am not certain what it is. Is there any explanation as to what might be going on?