/*! \ingroup PSA \brief この関数は、指定されたコンテキストでPSAサポートを有効にします。 \param ctx PSAサポートを有効にする必要があるWOLFSSL_CTXオブジェクトへのポインタ \return WOLFSSL_SUCCESS 成功時 \return BAD_FUNC_ARG ctx == NULLの場合 _Example_ \code WOLFSSL_CTX *ctx; ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method()); if (!ctx) return NULL; ret = wolfSSL_CTX_psa_enable(ctx); if (ret != WOLFSSL_SUCCESS) printf("can't enable PSA on ctx"); \endcode \sa wolfSSL_set_psa_ctx */ int wolfSSL_CTX_psa_enable(WOLFSSL_CTX *ctx); /*! \ingroup PSA \brief この関数は、指定されたSSLセッションのPSAコンテキストをセットアップします \param ssl ctxを有効にするWOLFSSLへのポインタ \param ctx struct psa_ssl_ctxへのポインタ(SSLセッションごとに一意である必要があります) \return WOLFSSL_SUCCESS 成功時 \return BAD_FUNC_ARG sslまたはctxがNULLの場合 この関数は、指定されたSSLセッションへのTLSコールバック用のPSAコンテキストをセットアップします。セッションの終了時に、コンテキストによって使用されたリソースは、wolfSSL_free_psa_ctx()を使用して解放する必要があります。 _Example_ \code // 新しいSSLセッションを作成 WOLFSSL *ssl; struct psa_ssl_ctx psa_ctx = { 0 }; ssl = wolfSSL_new(ctx); if (!ssl) return NULL; // PSAコンテキストをセットアップ ret = wolfSSL_set_psa_ctx(ssl, ctx); \endcode \sa wolfSSL_psa_set_private_key_id \sa wolfSSL_psa_free_psa_ctx */ int wolfSSL_set_psa_ctx(WOLFSSL *ssl, struct psa_ssl_ctx *ctx); /*! \ingroup PSA \brief この関数は、PSAコンテキストによって使用されるリソースを解放します \param ctx struct psa_ssl_ctxへのポインタ \sa wolfSSL_set_psa_ctx */ void wolfSSL_free_psa_ctx(struct psa_ssl_ctx *ctx); /*! \ingroup PSA \brief この関数は、SSLセッションで使用される秘密鍵を設定します \param ctx struct psa_ssl_ctxへのポインタ \param id 秘密鍵として使用されるキーのPSA ID _Example_ \code // 新しいSSLセッションを作成 WOLFSSL *ssl; struct psa_ssl_ctx psa_ctx = { 0 }; psa_key_id_t key_id; // キープロビジョニングは既に完了 get_private_key_id(&key_id); ssl = wolfSSL_new(ctx); if (!ssl) return NULL; wolfSSL_psa_set_private_key_id(&psa_ctx, key_id); wolfSSL_set_psa_ctx(ssl, ctx); \endcode \sa wolfSSL_set_psa_ctx */ int wolfSSL_psa_set_private_key_id(struct psa_ssl_ctx *ctx, psa_key_id_t id);