My Project
Functions
Platform Security Architecture (PSA) API

Functions

int wolfSSL_CTX_psa_enable (WOLFSSL_CTX *ctx)
 This function enables PSA support on the given context. More...
 
int wolfSSL_set_psa_ctx (WOLFSSL *ssl, struct psa_ssl_ctx *ctx)
 This function setup the PSA context for the given SSL session. More...
 
void wolfSSL_free_psa_ctx (struct psa_ssl_ctx *ctx)
 This function releases the resources used by a PSA context. More...
 
int wolfSSL_psa_set_private_key_id (struct psa_ssl_ctx *ctx, psa_key_id_t id)
 This function set the private key used by an SSL session. More...
 

Detailed Description

Function Documentation

◆ wolfSSL_CTX_psa_enable()

int wolfSSL_CTX_psa_enable ( WOLFSSL_CTX *  ctx)

This function enables PSA support on the given context.

Parameters
ctxpointer to the WOLFSSL_CTX object on which the PSA support must be enabled
Returns
WOLFSSL_SUCCESS on success
BAD_FUNC_ARG if ctx == NULL

Example

WOLFSSL_CTX *ctx;
if (!ctx)
return NULL;
if (ret != WOLFSSL_SUCCESS)
printf("can't enable PSA on ctx");
int wolfSSL_CTX_psa_enable(WOLFSSL_CTX *ctx)
This function enables PSA support on the given context.
WOLFSSL_METHOD * wolfTLSv1_2_client_method(void)
The wolfTLSv1_2_client_method() function is used to indicate that the application is a client and wil...
WOLFSSL_CTX * wolfSSL_CTX_new(WOLFSSL_METHOD *)
This function creates a new SSL context, taking a desired SSL/TLS protocol method for input.
See also
wolfSSL_set_psa_ctx

◆ wolfSSL_free_psa_ctx()

void wolfSSL_free_psa_ctx ( struct psa_ssl_ctx *  ctx)

This function releases the resources used by a PSA context.

Parameters
ctxpointer to a struct psa_ssl_ctx
See also
wolfSSL_set_psa_ctx

◆ wolfSSL_psa_set_private_key_id()

int wolfSSL_psa_set_private_key_id ( struct psa_ssl_ctx *  ctx,
psa_key_id_t  id 
)

This function set the private key used by an SSL session.

Parameters
ctxpointer to a struct psa_ssl_ctx
idPSA id of the key to be used as private key

Example

// Create new ssl session
WOLFSSL *ssl;
struct psa_ssl_ctx psa_ctx = { 0 };
psa_key_id_t key_id;
// key provisioning already done
get_private_key_id(&key_id);
ssl = wolfSSL_new(ctx);
if (!ssl)
return NULL;
int wolfSSL_psa_set_private_key_id(struct psa_ssl_ctx *ctx, psa_key_id_t id)
This function set the private key used by an SSL session.
int wolfSSL_set_psa_ctx(WOLFSSL *ssl, struct psa_ssl_ctx *ctx)
This function setup the PSA context for the given SSL session.
WOLFSSL * wolfSSL_new(WOLFSSL_CTX *)
This function creates a new SSL session, taking an already created SSL context as input.
See also
wolfSSL_set_psa_ctx

◆ wolfSSL_set_psa_ctx()

int wolfSSL_set_psa_ctx ( WOLFSSL *  ssl,
struct psa_ssl_ctx *  ctx 
)

This function setup the PSA context for the given SSL session.

Parameters
sslpointer to the WOLFSSL where the ctx will be enabled
ctxpointer to a struct psa_ssl_ctx (must be unique for a ssl session)
Returns
WOLFSSL_SUCCESS on success
BAD_FUNC_ARG if ssl or ctx are NULL

This function setup the PSA context for the TLS callbacks to the given SSL session. At the end of the session, the resources used by the context should be freed using wolfSSL_free_psa_ctx().

Example

// Create new ssl session
WOLFSSL *ssl;
struct psa_ssl_ctx psa_ctx = { 0 };
ssl = wolfSSL_new(ctx);
if (!ssl)
return NULL;
// setup PSA context
ret = wolfSSL_set_psa_ctx(ssl, ctx);
See also
wolfSSL_psa_set_private_key_id
wolfSSL_psa_free_psa_ctx