コンテンツにスキップ

wolfSSL Context and Session Set Up

Functions

Name
WOLFSSL_METHOD * wolfSSLv23_method(void )
この関数は、Wolfsslv23_client_methodと同様のwolfssl_methodを返します(サーバー/クライアント)。
WOLFSSL_METHOD * wolfSSLv3_server_method(void )
WOLFSSLV3_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfSSLv3_client_method(void )
wolfsslv3_client_method()関数は、アプリケーションがクライアントであり、SSL 3.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_server_method(void )
WOLFTLSV1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_client_method(void )
wolftlsv1_client_method()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_1_server_method(void )
WOLFTLSV1_1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.1プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_1_client_method(void )
WOLFTLSV1_1_CLIENT_METHOD()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_2_server_method(void )
WOLFTLSV1_2_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.2プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_2_client_method(void )
wolftlsv1_2_client_method()関数は、アプリケーションがクライアントであり、TLS 1.2プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfDTLSv1_client_method(void )
wolfdtlsv1_client_method()関数は、アプリケーションがクライアントであり、DTLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。この関数は、WolfSSLがDTLSサポート( - enable-dtls、またはWolfSSL_DTLSを定義することによって)コンパイルされている場合にのみ使用できます。
WOLFSSL_METHOD * wolfDTLSv1_server_method(void )
WOLFDTLSV1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、DTLS 1.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。この関数は、WolfSSLがDTLSサポート( - enable-dtls、またはWolfSSL_DTLSを定義することによって)コンパイルされている場合にのみ使用できます。
int wolfSSL_use_old_poly(WOLFSSL * ssl, int value)
Chacha-Poly Aead Constructionの最初のリリースと新しいバージョンの間にいくつかの違いがあるため、古いバージョンを使用してサーバー/クライアントと通信するオプションを追加しました。デフォルトでは、WolfSSLは新しいバージョンを使用します。
int wolfSSL_CTX_trust_peer_cert(WOLFSSL_CTX * ctx, const char * file, int type)
この関数は、TLS / SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。ハンドシェイク中に送信されたピア証明書は、使用可能なときにスキッドを使用することによって比較されます。これら2つのことが一致しない場合は、ロードされたCASが使用されます。マクロwolfssl_trust_peer_certを定義することで機能が有効になっています。適切な使用法の例をご覧ください。
long wolfSSL_CTX_get_verify_depth(WOLFSSL_CTX * ctx)
この関数は、CTX構造を使用して証明書チェーン深度を取得します。
WOLFSSL_CTX * wolfSSL_CTX_new(WOLFSSL_METHOD * )
この関数は、入力のための所望のSSL / TLSプロトコル方式を取って、新しいSSLコンテキストを作成します。
WOLFSSL * wolfSSL_new(WOLFSSL_CTX * )
この関数は新しいSSLセッションを作成し、すでに作成されたSSLコンテキストを入力として作成します。
int wolfSSL_set_fd(WOLFSSL * ssl, int fd)
この関数は、SSL接続の入出力機能としてファイル記述子(FD)を割り当てます。通常これはソケットファイル記述子になります。
void wolfSSL_set_using_nonblock(WOLFSSL * ssl, int nonblock)
この関数は、wolfsslオブジェクトに基礎となるI / Oがブロックされていないことを通知します。アプリケーションがWolfSSLオブジェクトを作成した後、ブロッキング以外のソケットで使用される場合は、wolfssl_set_using_nonblock()を呼び出します。これにより、wolfsslオブジェクトは、Ewouldblockを受信することを意味します。
void wolfSSL_CTX_free(WOLFSSL_CTX * )
この関数は、割り当てられたwolfssl_ctxオブジェクトを解放します。この関数はCTX参照数を減らし、参照カウントが0に達したときにのみコンテキストを解放します。
void wolfSSL_free(WOLFSSL * )
この関数は割り当てられたwolfsslオブジェクトを解放します。
int wolfSSL_set_session(WOLFSSL * ssl, WOLFSSL_SESSION * session)
この関数は、SSLオブジェクトSSLがSSL / TLS接続を確立するために使用されるときに使用されるセッションを設定します。セッションの再開の場合、wolfssl_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。これはセッションへのポインタを返します。後で、アプリケーションは新しいWolfSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションがそれを使用してそれを使用して解放される必要があります。
void wolfSSL_CTX_set_verify(WOLFSSL_CTX * ctx, int mode, VerifyCallback verify_callback)
この関数はリモートピアの検証方法を設定し、またSSLコンテキストに登録されることを確認することもできます。検証コールバックは、検証障害が発生した場合にのみ呼び出されます。検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。ピア証明書の検証モードは、論理的またはフラグのリストです。可能なフラグ値は次のとおりです.SSL_VERIFY_NONEクライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。 ssl_verify_peerクライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfsslではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。 ssl_verify_fail_if_no_peer_certクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。 ssl_verify_fail_except_pskクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:PSK接続の場合を除き、検証はssl_verify_fail_if_no_peer_certと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。
void wolfSSL_set_verify(WOLFSSL * ssl, int mode, VerifyCallback verify_callback)
この関数はリモートピアの検証方法を設定し、またSSLセッションに登録するのを登録することもできます。検証コールバックは、検証障害が発生した場合にのみ呼び出されます。検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。ピア証明書の検証モードは、論理的またはフラグのリストです。可能なフラグ値は次のとおりです.SSL_VERIFY_NONEクライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。 ssl_verify_peerクライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfsslではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。 ssl_verify_fail_if_no_peer_certクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。 ssl_verify_fail_except_pskクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:PSK接続の場合を除き、検証はssl_verify_fail_if_no_peer_certと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。
long wolfSSL_CTX_set_session_cache_mode(WOLFSSL_CTX * ctx, long mode)
この関数はSSLセッションキャッシュを有効または無効にします。動作はモードに使用される値によって異なります。モードの値は次のとおりです.SSL_SESS_CACHE_OFF - セッションキャッシングを無効にします。デフォルトでセッションキャッシングがオンになっています。SSL_SESS_CACHE_NO_AUTO_CLEAR - セッションキャッシュのオートフラッシュを無効にします。デフォルトで自動フラッシングはオンになっています。
int wolfSSL_CTX_memrestore_cert_cache(WOLFSSL_CTX * ctx, const void * mem, int sz)
この関数は証明書キャッシュをメモリから復元します。
int wolfSSL_CTX_set_cipher_list(WOLFSSL_CTX * ctx, const char * list)
この関数は、与えられたwolfssl_ctxの暗号スイートリストを設定します。このCipher Suiteリストは、このコンテキストを使用して作成された新しいSSLセッション(WolfSSL)のデフォルトリストになります。リスト内の暗号は、最高から最低への好みの順にソートされるべきです。wolfssl_ctx_set_cipher_list()の各呼び出しは、関数が呼び出されるたびに、特定のSSLコンテキストの暗号スイートリストを提供されたリストにリセットします。暗号スイートリスト、リストは、ヌル終端テキスト文字列、およびコロン区切りリストです。たとえば、リストの値が「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」有効な暗号値は、src / internal.cのcipher_names []配列のフルネーム値です。(有効な暗号化値の明確なリストの場合はsrc / internal.cをチェックしてください)
int wolfSSL_set_cipher_list(WOLFSSL * ssl, const char * list)
この関数は、特定のWolfSSLオブジェクト(SSLセッション)の暗号スイートリストを設定します。リスト内の暗号は、最高から最低への好みの順にソートされるべきです。wolfssl_set_cipher_list()の各呼び出しは、関数が呼び出されるたびに、特定のSSLセッションの暗号スイートリストを提供されたリストにリセットします。暗号スイートリスト、リストは、ヌル終端テキスト文字列、およびコロン区切りリストです。例えば、リストのための1つの値は、「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」であり得る。有効な暗号化値は、src / internal.c(有効な暗号化値の明確なリストのリストの場合はsrc / internal.cを指定してください)のcipher_names []配列のフルネーム値です。
int wolfSSL_dtls_set_timeout_init(WOLFSSL * ssl, int )
この関数はDTLSタイムアウトを設定します。
WOLFSSL_SESSION * wolfSSL_get1_session(WOLFSSL * ssl)
この関数は、wolfssl構造からのwolfssl_sessionを参照型として返します。これには、wolfssl_session_freeを呼び出してセッション参照を解除する必要があります。 wolfssl_sessionは、セッションの再開を実行するために必要なすべての必要な情報を含むことを指摘し、新しいハンドシェイクなしで接続を再確立します。セッションの再開の場合、wolfssl_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。これはセッションへのポインタを返します。後で、アプリケーションは新しいWolfSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。 WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。 wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションがそれを使用してそれを使用して解放される必要があります。
WOLFSSL_METHOD * wolfSSLv23_client_method(void )
wolfsslv23_client_method()関数は、アプリケーションがクライアントであることを示すために使用され、SSL 3.0 - TLS 1.3の間でサーバーでサポートされている最高のプロトコルバージョンをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。WolfSSLクライアントとサーバーの両方が堅牢なバージョンのダウングレード機能を持っています。特定のプロトコルバージョンメソッドがどちらの側で使用されている場合は、そのバージョンのみがネゴシエートされたり、エラーが返されます。たとえば、TLSV1を使用し、SSLv3のみに接続しようとするクライアントは、TLSV1.1に接続しても失敗します。この問題を解決するために、wolfsslv23_client_method()関数を使用するクライアントは、サーバーでサポートされている最高のプロトコルバージョンを使用し、必要に応じてSSLv3にダウングレードします。この場合、クライアントはSSLv3 - TLSv1.3を実行しているサーバーに接続できるようになります。
WOLFSSL_BIGNUM * wolfSSL_ASN1_INTEGER_to_BN(const WOLFSSL_ASN1_INTEGER * ai, WOLFSSL_BIGNUM * bn)
この関数は、wolfssl_asn1_integer値をwolfssl_bignum構造にコピーするために使用されます。
long wolfSSL_CTX_add_extra_chain_cert(WOLFSSL_CTX * ctx, WOLFSSL_X509 * x509)
この関数は、wolfssl_ctx構造で構築されている内部チェーンに証明書を追加します。
int wolfSSL_CTX_get_read_ahead(WOLFSSL_CTX * )
この関数は、wolfssl_ctx構造からGet Read Hapeフラグを返します。
int wolfSSL_CTX_set_read_ahead(WOLFSSL_CTX * ctx, int v)
この関数は、wolfssl_ctx構造内の読み出し先のフラグを設定します。
long wolfSSL_CTX_set_tlsext_status_arg(WOLFSSL_CTX * ctx, void * arg)
この関数はOCSPで使用するオプション引数を設定します。
long wolfSSL_CTX_set_tlsext_opaque_prf_input_callback_arg(WOLFSSL_CTX * ctx, void * arg)
この関数は、PRFコールバックに渡すオプションの引数を設定します。
long wolfSSL_set_options(WOLFSSL * s, long op)
この関数は、SSLのオプションマスクを設定します。いくつかの有効なオプションは、ssl_op_all、ssl_op_cookie_exchange、ssl_op_no_sslv2、ssl_op_no_sslv3、ssl_op_no_tlsv1_1、ssl_op_no_tlsv1_2、ssl_op_no_compressionです。
long wolfSSL_get_options(const WOLFSSL * s)
この関数は現在のオプションマスクを返します。
long wolfSSL_set_tlsext_debug_arg(WOLFSSL * s, void * arg)
これは、渡されたデバッグ引数を設定するために使用されます。
long wolfSSL_get_verify_result(const WOLFSSL * ssl)
これは、ピアの証明書を確認しようとした後に結果を取得するために使用されます。
int wolfSSL_CTX_allow_anon_cipher(WOLFSSL_CTX * )
この機能により、CTX構造のHAVAnonメンバーがコンパイル中に定義されている場合は、CTX構造のHABANONメンバーを有効にします。
WOLFSSL_METHOD * wolfSSLv23_server_method(void )
wolfsslv23_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0 - TLS 1.3からプロトコルバージョンと接続するクライアントをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
int wolfSSL_state(WOLFSSL * ssl)
これは、WolfSSL構造体の内部エラー状態を取得するために使用されます。
int wolfSSL_check_domain_name(WOLFSSL * ssl, const char * dn)
wolfsslデフォルトでは、有効な日付範囲と検証済みの署名のためにピア証明書をチェックします。wolfssl_connect()またはwolfssl_accept()の前にこの関数を呼び出すと、実行するチェックのリストにドメイン名チェックが追加されます。DN受信時にピア証明書を確認するためのドメイン名を保持します。
int wolfSSL_set_compression(WOLFSSL * ssl)
SSL接続に圧縮を使用する機能をオンにします。両側には圧縮がオンになっている必要があります。そうでなければ圧縮は使用されません。ZLIBライブラリは実際のデータ圧縮を実行します。ライブラリにコンパイルするには、システムの設定システムに–with-libzを使用し、そうでない場合はhand_libzを定義します。送受信されるメッセージの実際のサイズを減らす前にデータを圧縮している間に、圧縮によって保存されたデータの量は通常、ネットワークの遅いすべてのネットワークを除いたものよりも分析に時間がかかります。
int wolfSSL_set_timeout(WOLFSSL * ssl, unsigned int to)
この関数はSSLセッションタイムアウト値を秒単位で設定します。
int wolfSSL_CTX_set_timeout(WOLFSSL_CTX * ctx, unsigned int to)
この関数は、指定されたSSLコンテキストに対して、SSLセッションのタイムアウト値を秒単位で設定します。
int wolfSSL_CTX_UnloadCAs(WOLFSSL_CTX * )
この関数はCA署名者リストをアンロードし、署名者全体のテーブルを解放します。
int wolfSSL_CTX_Unload_trust_peers(WOLFSSL_CTX * )
この関数は、以前にロードされたすべての信頼できるピア証明書をアンロードするために使用されます。マクロwolfssl_trust_peer_certを定義することで機能が有効になっています。
int wolfSSL_CTX_trust_peer_buffer(WOLFSSL_CTX * ctx, const unsigned char * in, long sz, int format)
この関数は、TLS / SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。ハンドシェイク中に送信されたピア証明書は、使用可能なときにスキッドを使用することによって比較されます。これら2つのことが一致しない場合は、ロードされたCASが使用されます。ファイルの代わりにバッファーの場合は、wolfssl_ctx_trust_peer_certと同じ機能です。特徴はマクロwolfssl_trust_peer_certを定義することによって有効になっています適切な使用法の例を参照してください。
int wolfSSL_CTX_set_group_messages(WOLFSSL_CTX * )
この機能は、可能な限りハンドシェイクメッセージのグループ化をオンにします。
int wolfSSL_set_group_messages(WOLFSSL * )
この機能は、可能な限りハンドシェイクメッセージのグループ化をオンにします。
int wolfSSL_CTX_SetMinVersion(WOLFSSL_CTX * ctx, int version)
この関数は、許可されている最小のダウングレードバージョンを設定します。接続が(wolfsslv23_client_methodまたはwolfsslv23_server_method)を使用して、接続がダウングレードできる場合にのみ適用されます。
int wolfSSL_SetVersion(WOLFSSL * ssl, int version)
この関数は、バージョンで指定されたバージョンを使用して、指定されたSSLセッション(WolfSSLオブジェクト)のSSL / TLSプロトコルバージョンを設定します。これにより、SSLセッション(SSL)のプロトコル設定が最初に定義され、SSLコンテキスト(WolfSSL_CTX_NEW())メソッドの種類によって上書きされます。
int wolfSSL_UseALPN(WOLFSSL * ssl, char * protocol_name_list, unsigned int protocol_name_listSz, unsigned char options)
wolfsslセッションにALPNを設定します。
int wolfSSL_CTX_UseSessionTicket(WOLFSSL_CTX * ctx)
この関数は、セッションチケットを使用するようにWolfSSLコンテキストを設定します。
int wolfSSL_check_private_key(const WOLFSSL * ssl)
この関数は、秘密鍵が使用されている証明書との一致であることを確認します。
int wolfSSL_use_certificate(WOLFSSL * ssl, WOLFSSL_X509 * x509)
ハンドシェイク中に使用するために、WolfSSL構造の証明書を設定するために使用されます。
int wolfSSL_use_certificate_ASN1(WOLFSSL * ssl, unsigned char * der, int derSz)
これは、handshakeの間に使用するためにWolfSSL構造の証明書を設定するために使用されます。DERフォーマットバッファが予想されます。
int wolfSSL_SESSION_get_master_key(const WOLFSSL_SESSION * ses, unsigned char * out, int outSz)
これはハンドシェイクを完了した後にマスターキーを取得するために使用されます。
int wolfSSL_SESSION_get_master_key_length(const WOLFSSL_SESSION * ses)
これはマスター秘密鍵の長さを取得するために使用されます。
void wolfSSL_CTX_set_cert_store(WOLFSSL_CTX * ctx, WOLFSSL_X509_STORE * str)
これは、CTXのWOLFSSL_X509_STORE構造の設定機能です。
WOLFSSL_X509_STORE * wolfSSL_CTX_get_cert_store(WOLFSSL_CTX * ctx)
これは、CTXのWOLFSSL_X509_STORE構造のゲッター関数です。
size_t wolfSSL_get_server_random(const WOLFSSL * ssl, unsigned char * out, size_t outlen)
これは、ハンドシェイク中にサーバーによって送信されたランダムなデータを取得するために使用されます。
size_t wolfSSL_get_client_random(const WOLFSSL * ssl, unsigned char * out, size_t outSz)
これは、ハンドシェイク中にクライアントによって送信されたランダムなデータを取得するために使用されます。
wc_pem_password_cb * wolfSSL_CTX_get_default_passwd_cb(WOLFSSL_CTX * ctx)
これはCTXで設定されたパスワードコールバックのゲッター関数です。
void * wolfSSL_CTX_get_default_passwd_cb_userdata(WOLFSSL_CTX * ctx)
これは、CTXで設定されているパスワードコールバックユーザーデータの取得機能です。
long wolfSSL_CTX_clear_options(WOLFSSL_CTX * ctx, long opt)
この関数は、wolfssl_ctxオブジェクトのオプションビットをリセットします。
int wolfSSL_set_msg_callback(WOLFSSL * ssl, SSL_Msg_Cb cb)
この関数はSSL内のコールバックを設定します。コールバックはハンドシェイクメッセージを観察することです。CBのNULL値はコールバックをリセットします。
int wolfSSL_set_msg_callback_arg(WOLFSSL * ssl, void * arg)
この関数は、SSL内の関連コールバックコンテキスト値を設定します。値はコールバック引数に渡されます。
int wolfSSL_send_hrr_cookie(WOLFSSL * ssl, const unsigned char * secret, unsigned int secretSz)
この関数はサーバー側で呼び出されて、HellORetryRequestメッセージにCookieを含める必要があることを示します。Cookieは現在のトランスクリプトのハッシュを保持しているので、別のサーバープロセスは応答でClientHelloを処理できます。秘密はCookieデータの整合性チェックをGenertingするときに使用されます。
int wolfSSL_CTX_no_ticket_TLSv13(WOLFSSL_CTX * ctx)
ハンドシェイクが完了すると、この関数はサーバー上で再開セッションチケットの送信を停止するように呼び出されます。
int wolfSSL_no_ticket_TLSv13(WOLFSSL * ssl)
ハンドシェイクが完了すると、この関数はサーバー上で再開セッションチケットの送信を停止するように呼び出されます。
int wolfSSL_CTX_no_dhe_psk(WOLFSSL_CTX * ctx)
この関数は、Authenticationにプリシェアキーを使用している場合、DIFFIE-HELLMAN(DH)スタイルのキー交換を許可するTLS V1.3 WolfSSLコンテキストで呼び出されます。
int wolfSSL_no_dhe_psk(WOLFSSL * ssl)
この関数は、Authenticationのためにプリシェアキーを使用しているときにDiffie-Hellman(DH)スタイルのキー交換を許可するTLS V1.3クライアントまたはサーバーのWolfSSLで呼び出されます。
int wolfSSL_CTX_allow_post_handshake_auth(WOLFSSL_CTX * ctx)
この関数は、TLS v1.3クライアントのWolfSSLコンテキストで呼び出され、クライアントはサーバーからの要求に応じてPost Handshakeを送信できるようにします。これは、クライアント認証などを必要としないページを持つWebサーバーに接続するときに役立ちます。
int wolfSSL_allow_post_handshake_auth(WOLFSSL * ssl)
この関数は、TLS V1.3クライアントWolfSSLで呼び出され、クライアントはサーバーからの要求に応じてハンドシェイクを送ります。handshakeクライアント認証拡張機能はClientHelloで送信されます。これは、クライアント認証などを必要としないページを持つWebサーバーに接続するときに役立ちます。
int wolfSSL_CTX_set1_groups_list(WOLFSSL_CTX * ctx, char * list)
この関数は楕円曲線グループのリストを設定して、WolfSSLコンテキストを希望の順に設定します。リストはヌル終了したテキスト文字列、およびコロン区切りリストです。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。
int wolfSSL_set1_groups_list(WOLFSSL * ssl, char * list)
この関数は楕円曲線グループのリストを設定して、WolfSSLを希望の順に設定します。リストはヌル終了したテキスト文字列、およびコロン区切りリストです。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。
int wolfSSL_CTX_set_groups(WOLFSSL_CTX * ctx, int * groups, int count)
この関数は楕円曲線グループのリストを設定して、WolfSSLコンテキストを希望の順に設定します。リストは、Countで指定された識別子の数を持つグループ識別子の配列です。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。
int wolfSSL_set_groups(WOLFSSL * ssl, int * groups, int count)
この関数は、wolfsslを許すために楕円曲線グループのリストを設定します。リストは、Countで指定された識別子の数を持つグループ識別子の配列です。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。
int wolfSSL_CTX_set_max_early_data(WOLFSSL_CTX * ctx, unsigned int sz)
この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられる早期データの最大量を設定します。この関数を呼び出して、再生攻撃を軽減するためのプロセスへの早期データの量を制限します。初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続のキーから派生したキーによって保護されます。値は再開のためにセッションチケットに含まれています。ゼロの値は、セッションチケットを使用してクライアントによって早期データを送信することを示します。早期データバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。
int wolfSSL_set_max_early_data(WOLFSSL * ssl, unsigned int sz)
この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられる早期データの最大量を設定します。この関数を呼び出して、再生攻撃を軽減するためのプロセスへの早期データの量を制限します。初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続のキーから派生したキーによって保護されます。値は再開のためにセッションチケットに含まれています。ゼロの値は、セッションチケットを使用してクライアントによって早期データを送信することを示します。早期データバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。
void wolfSSL_CTX_set_psk_client_tls13_callback(WOLFSSL_CTX * ctx, wc_psk_client_tls13_callback cb)
この関数は、TLS v1.3接続のプレシェアキー(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のclient_psk_tls13_cbメンバーを設定します。
void wolfSSL_set_psk_client_tls13_callback(WOLFSSL * ssl, wc_psk_client_tls13_callback cb)
この関数は、TLS v1.3接続のプレシェアキー(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のOptionsフィールドのclient_psk_tls13_cbメンバーを設定します。
void wolfSSL_CTX_set_psk_server_tls13_callback(WOLFSSL_CTX * ctx, wc_psk_server_tls13_callback cb)
この関数は、TLS v1.3接続用の事前共有キー(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のserver_psk_tls13_cbメンバーを設定します。
void wolfSSL_set_psk_server_tls13_callback(WOLFSSL * ssl, wc_psk_server_tls13_callback cb)
この関数は、TLS v1.3接続用の事前共有キー(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のオプションフィールドのserver_psk_tls13_cbメンバーを設定します。
int wolfSSL_UseKeyShare(WOLFSSL * ssl, word16 group)
この関数は、キーペアの生成を含むグループからキーシェアエントリを作成します。Keyshareエクステンションには、鍵交換のための生成されたすべての公開鍵が含まれています。この関数が呼び出されると、指定されたグループのみが含まれます。優先グループがサーバーに対して以前に確立されているときにこの関数を呼び出します。
int wolfSSL_NoKeyShares(WOLFSSL * ssl)
この関数は、ClientHelloで鍵共有が送信されないように呼び出されます。これにより、ハンドシェイクに鍵交換が必要な場合は、サーバーがHelloretryRequestで応答するように強制します。予想される鍵交換グループが知られておらず、キーの生成を不必要に回避するときにこの機能を呼び出します。鍵交換が必要なときにハンドシェイクを完了するために追加の往復が必要になることに注意してください。
WOLFSSL_METHOD * wolfTLSv1_3_server_method_ex(void * heap)
この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_3_client_method_ex(void * heap)
この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_3_server_method(void )
この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_3_client_method(void )
この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。
WOLFSSL_METHOD * wolfTLSv1_3_method_ex(void * heap)
この関数は、まだどちらの側(サーバ/クライアント)を決定していないことを除いて、Wolftlsv1_3_client_methodと同様のwolfssl_methodを返します。
WOLFSSL_METHOD * wolfTLSv1_3_method(void )
この関数は、まだどちらの側(サーバ/クライアント)を決定していないことを除いて、Wolftlsv1_3_client_methodと同様のwolfssl_methodを返します。
void * wolfSSL_GetCookieCtx(WOLFSSL * ssl)
この関数は、WolfSSL構造のIOCB_COOKIECTXメンバーを返します。
int wolfSSL_SetIO_ISOTP(WOLFSSL * ssl, isotp_wolfssl_ctx * ctx, can_recv_fn recv_fn, can_send_fn send_fn, can_delay_fn delay_fn, word32 receive_delay, char * receive_buffer, int receive_buffer_size, void * arg)
この関数は、WolfSSLがWolfSSL_ISOTPでコンパイルされている場合に使用する場合は、WolfSSLの場合はISO-TPコンテキストを設定します。

Functions Documentation

function wolfSSLv23_method

WOLFSSL_METHOD * wolfSSLv23_method(
    void 
)

この関数は、Wolfsslv23_client_methodと同様のwolfssl_methodを返します(サーバー/クライアント)。

See:

Return:

  • WOLFSSL_METHOD* 成功した作成では、wolfssl_methodポインタを返します
  • NULL メモリ割り当てエラーまたはメソッドの作成の失敗の場合はnull Example
WOLFSSL* ctx;
ctx  = wolfSSL_CTX_new(wolfSSLv23_method());
// check ret value

function wolfSSLv3_server_method

WOLFSSL_METHOD * wolfSSLv3_server_method(
    void 
)

WOLFSSLV3_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfSSLv3_server_method();
if (method == NULL) {
    unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfSSLv3_client_method

WOLFSSL_METHOD * wolfSSLv3_client_method(
    void 
)

wolfsslv3_client_method()関数は、アプリケーションがクライアントであり、SSL 3.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfSSLv3_client_method();
if (method == NULL) {
    unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_server_method

WOLFSSL_METHOD * wolfTLSv1_server_method(
    void 
)

WOLFTLSV1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_server_method();
if (method == NULL) {
    unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_client_method

WOLFSSL_METHOD * wolfTLSv1_client_method(
    void 
)

wolftlsv1_client_method()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_client_method();
if (method == NULL) {
    unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_1_server_method

WOLFSSL_METHOD * wolfTLSv1_1_server_method(
    void 
)

WOLFTLSV1_1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.1プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_1_server_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_1_client_method

WOLFSSL_METHOD * wolfTLSv1_1_client_method(
    void 
)

WOLFTLSV1_1_CLIENT_METHOD()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_1_client_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_2_server_method

WOLFSSL_METHOD * wolfTLSv1_2_server_method(
    void 
)

WOLFTLSV1_2_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.2プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_2_server_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_2_client_method

WOLFSSL_METHOD * wolfTLSv1_2_client_method(
    void 
)

wolftlsv1_2_client_method()関数は、アプリケーションがクライアントであり、TLS 1.2プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_2_client_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfDTLSv1_client_method

WOLFSSL_METHOD * wolfDTLSv1_client_method(
    void 
)

wolfdtlsv1_client_method()関数は、アプリケーションがクライアントであり、DTLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。この関数は、WolfSSLがDTLSサポート( - enable-dtls、またはWolfSSL_DTLSを定義することによって)コンパイルされている場合にのみ使用できます。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfDTLSv1_client_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfDTLSv1_server_method

WOLFSSL_METHOD * wolfDTLSv1_server_method(
    void 
)

WOLFDTLSV1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、DTLS 1.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。この関数は、WolfSSLがDTLSサポート( - enable-dtls、またはWolfSSL_DTLSを定義することによって)コンパイルされている場合にのみ使用できます。

See:

Return:

    • 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfDTLSv1_server_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfSSL_use_old_poly

int wolfSSL_use_old_poly(
    WOLFSSL * ssl,
    int value
)

Chacha-Poly Aead Constructionの最初のリリースと新しいバージョンの間にいくつかの違いがあるため、古いバージョンを使用してサーバー/クライアントと通信するオプションを追加しました。デフォルトでは、WolfSSLは新しいバージョンを使用します。

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
int ret = 0;
WOLFSSL* ssl;
...

ret = wolfSSL_use_old_poly(ssl, 1);
if (ret != 0) {
    // failed to set poly1305 AEAD version
}

See: none

Return: 0 成功すると

function wolfSSL_CTX_trust_peer_cert

int wolfSSL_CTX_trust_peer_cert(
    WOLFSSL_CTX * ctx,
    const char * file,
    int type
)

この関数は、TLS / SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。ハンドシェイク中に送信されたピア証明書は、使用可能なときにスキッドを使用することによって比較されます。これら2つのことが一致しない場合は、ロードされたCASが使用されます。マクロwolfssl_trust_peer_certを定義することで機能が有効になっています。適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。
  • file 証明書を含むファイルの名前へのポインタ Example
int ret = 0;
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
...

ret = wolfSSL_CTX_trust_peer_cert(ctx, “./peer-cert.pem”,
SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // error loading trusted peer cert
}
...

See:

Return:

  • SSL_SUCCES 成功すると。
  • SSL_FAILURE CTXがNULLの場合、または両方のファイルと種類が無効な場合は返されます。
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。
  • SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。

function wolfSSL_CTX_get_verify_depth

long wolfSSL_CTX_get_verify_depth(
    WOLFSSL_CTX * ctx
)

この関数は、CTX構造を使用して証明書チェーン深度を取得します。

See:

Return:

  • MAX_CHAIN_DEPTH CTX構造体がNULLではない場合に返されます。最大証明書チェーンピア深度の定数表現。
  • BAD_FUNC_ARG CTX構造がNULLの場合に返されます。 Example
WOLFSSL_METHOD method; // protocol method
WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(method);
…
long ret = wolfSSL_CTX_get_verify_depth(ctx);

if(ret == EXPECTED){
    //  You have the expected value
} else {
    //  Handle an unexpected depth
}

function wolfSSL_CTX_new

WOLFSSL_CTX * wolfSSL_CTX_new(
    WOLFSSL_METHOD * 
)

この関数は、入力のための所望のSSL / TLSプロトコル方式を取って、新しいSSLコンテキストを作成します。

See: wolfSSL_new

Return:

  • pointer 正常にコールが新しく作成されたwolfssl_ctxへのポインタを返します。
  • NULL 失敗すると。 Example
WOLFSSL_CTX*    ctx    = 0;
WOLFSSL_METHOD* method = 0;

method = wolfSSLv3_client_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
if (ctx == NULL) {
    // context creation failed
}

function wolfSSL_new

WOLFSSL * wolfSSL_new(
    WOLFSSL_CTX * 
)

この関数は新しいSSLセッションを作成し、すでに作成されたSSLコンテキストを入力として作成します。

See: wolfSSL_CTX_new

Return:

    • 成功した場合、呼び出しが新しく作成されたWolfSSL構造へのポインタを返します。
  • NULL 失敗すると。 Example
#include <wolfssl/ssl.h>

WOLFSSL*     ssl = NULL;
WOLFSSL_CTX* ctx = 0;

ctx = wolfSSL_CTX_new(method);
if (ctx == NULL) {
    // context creation failed
}

ssl = wolfSSL_new(ctx);
if (ssl == NULL) {
    // SSL object creation failed
}

function wolfSSL_set_fd

int wolfSSL_set_fd(
    WOLFSSL * ssl,
    int fd
)

この関数は、SSL接続の入出力機能としてファイル記述子(FD)を割り当てます。通常これはソケットファイル記述子になります。

Parameters:

  • ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
int sockfd;
WOLFSSL* ssl = 0;
...

ret = wolfSSL_set_fd(ssl, sockfd);
if (ret != SSL_SUCCESS) {
    // failed to set SSL file descriptor
}

See:

Return:

  • SSL_SUCCESS 成功すると。
  • Bad_FUNC_ARG 失敗すると。

function wolfSSL_set_using_nonblock

void wolfSSL_set_using_nonblock(
    WOLFSSL * ssl,
    int nonblock
)

この関数は、wolfsslオブジェクトに基礎となるI / Oがブロックされていないことを通知します。アプリケーションがWolfSSLオブジェクトを作成した後、ブロッキング以外のソケットで使用される場合は、wolfssl_set_using_nonblock()を呼び出します。これにより、wolfsslオブジェクトは、Ewouldblockを受信することを意味します。

Parameters:

  • ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
WOLFSSL* ssl = 0;
...
wolfSSL_set_using_nonblock(ssl, 1);

See:

Return: none 返品不可。

function wolfSSL_CTX_free

void wolfSSL_CTX_free(
    WOLFSSL_CTX * 
)

この関数は、割り当てられたwolfssl_ctxオブジェクトを解放します。この関数はCTX参照数を減らし、参照カウントが0に達したときにのみコンテキストを解放します。

See:

Return: none 返品不可。 Example

WOLFSSL_CTX* ctx = 0;
...
wolfSSL_CTX_free(ctx);

function wolfSSL_free

void wolfSSL_free(
    WOLFSSL * 
)

この関数は割り当てられたwolfsslオブジェクトを解放します。

See:

Return: none 返品不可。 Example

#include <wolfssl/ssl.h>

WOLFSSL* ssl = 0;
...
wolfSSL_free(ssl);

function wolfSSL_set_session

int wolfSSL_set_session(
    WOLFSSL * ssl,
    WOLFSSL_SESSION * session
)

この関数は、SSLオブジェクトSSLがSSL / TLS接続を確立するために使用されるときに使用されるセッションを設定します。セッションの再開の場合、wolfssl_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。これはセッションへのポインタを返します。後で、アプリケーションは新しいWolfSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションがそれを使用してそれを使用して解放される必要があります。

Parameters:

  • ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 Example
int ret;
WOLFSSL* ssl;
WOLFSSL_SESSION* session;
...
session = wolfSSL_get1_session(ssl);
if (session == NULL) {
    // failed to get session object from ssl object
}
...
ret = wolfSSL_set_session(ssl, session);
if (ret != SSL_SUCCESS) {
    // failed to set the SSL session
}
wolfSSL_SESSION_free(session);
...

See: wolfSSL_get1_session

Return:

  • SSL_SUCCESS セッションを正常に設定すると返されます。
  • SSL_FAILURE 失敗した場合に返されます。これはセッションキャッシュが無効になっている、またはセッションがタイムアウトした場合によって発生する可能性があります。
  • When OpenSSL_EXTRAとWOLFSSL_ERROR_CODE_OPENSSLが定義されているため、セッションがタイムアウトしていてもSSL_SUCCESSが返されます。

function wolfSSL_CTX_set_verify

void wolfSSL_CTX_set_verify(
    WOLFSSL_CTX * ctx,
    int mode,
    VerifyCallback verify_callback
)

この関数はリモートピアの検証方法を設定し、またSSLコンテキストに登録されることを確認することもできます。検証コールバックは、検証障害が発生した場合にのみ呼び出されます。検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。ピア証明書の検証モードは、論理的またはフラグのリストです。可能なフラグ値は次のとおりです.SSL_VERIFY_NONEクライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。 ssl_verify_peerクライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfsslではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。 ssl_verify_fail_if_no_peer_certクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。 ssl_verify_fail_except_pskクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:PSK接続の場合を除き、検証はssl_verify_fail_if_no_peer_certと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。
  • mode セッションタイムアウト値(秒) Example
WOLFSSL_CTX*    ctx    = 0;
...
wolfSSL_CTX_set_verify(ctx, (WOLFSSL_VERIFY_PEER |
                       WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT), NULL);

See: wolfSSL_set_verify

Return: none 返品不可。

function wolfSSL_set_verify

void wolfSSL_set_verify(
    WOLFSSL * ssl,
    int mode,
    VerifyCallback verify_callback
)

この関数はリモートピアの検証方法を設定し、またSSLセッションに登録するのを登録することもできます。検証コールバックは、検証障害が発生した場合にのみ呼び出されます。検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。ピア証明書の検証モードは、論理的またはフラグのリストです。可能なフラグ値は次のとおりです.SSL_VERIFY_NONEクライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。 ssl_verify_peerクライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfsslではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。 ssl_verify_fail_if_no_peer_certクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。 ssl_verify_fail_except_pskクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:PSK接続の場合を除き、検証はssl_verify_fail_if_no_peer_certと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。

Parameters:

  • ssl wolfssl_new()で作成されたSSLセッションへのポインタ。
  • mode セッションタイムアウト値(秒単位)。 Example
WOLFSSL* ssl = 0;
...
wolfSSL_set_verify(ssl, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);

See: wolfSSL_CTX_set_verify

Return: none 返品不可。

function wolfSSL_CTX_set_session_cache_mode

long wolfSSL_CTX_set_session_cache_mode(
    WOLFSSL_CTX * ctx,
    long mode
)

この関数はSSLセッションキャッシュを有効または無効にします。動作はモードに使用される値によって異なります。モードの値は次のとおりです.SSL_SESS_CACHE_OFF - セッションキャッシングを無効にします。デフォルトでセッションキャッシングがオンになっています。SSL_SESS_CACHE_NO_AUTO_CLEAR - セッションキャッシュのオートフラッシュを無効にします。デフォルトで自動フラッシングはオンになっています。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 Example
WOLFSSL_CTX* ctx = 0;
...
ret = wolfSSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
if (ret != SSL_SUCCESS) {
    // failed to turn SSL session caching off
}

See:

Return: SSL_SUCCESS 成功に戻ります。

function wolfSSL_CTX_memrestore_cert_cache

int wolfSSL_CTX_memrestore_cert_cache(
    WOLFSSL_CTX * ctx,
    const void * mem,
    int sz
)

この関数は証明書キャッシュをメモリから復元します。

Parameters:

  • ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。
  • mem 証明書キャッシュに復元される値を持つvoidポインタ。 Example
WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol method );
WOLFSSL* ssl = WOLFSSL_new(ctx);
void* mem;
int sz = (*int) sizeof(mem);
…
if(wolfSSL_CTX_memrestore_cert_cache(ssl->ctx, mem, sz)){
    // The success case
}

See: CM_MemRestoreCertCache

Return:

  • SSL_SUCCESS 関数とサブルーチンがエラーなしで実行された場合に返されます。
  • BAD_FUNC_ARG CTXまたはMEMパラメータがNULLまたはSZパラメータがゼロ以下の場合に返されます。
  • BUFFER_E CERTキャッシュメモリバッファが小さすぎると戻ります。
  • CACHE_MATCH_ERROR CERTキャッシュヘッダーの不一致があった場合に返されます。
  • BAD_MUTEX_E ロックミューテックスが失敗した場合に返されます。

function wolfSSL_CTX_set_cipher_list

int wolfSSL_CTX_set_cipher_list(
    WOLFSSL_CTX * ctx,
    const char * list
)

この関数は、与えられたwolfssl_ctxの暗号スイートリストを設定します。このCipher Suiteリストは、このコンテキストを使用して作成された新しいSSLセッション(WolfSSL)のデフォルトリストになります。リスト内の暗号は、最高から最低への好みの順にソートされるべきです。wolfssl_ctx_set_cipher_list()の各呼び出しは、関数が呼び出されるたびに、特定のSSLコンテキストの暗号スイートリストを提供されたリストにリセットします。暗号スイートリスト、リストは、ヌル終端テキスト文字列、およびコロン区切りリストです。たとえば、リストの値が「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」有効な暗号値は、src / internal.cのcipher_names []配列のフルネーム値です。(有効な暗号化値の明確なリストの場合はsrc / internal.cをチェックしてください)

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 Example
WOLFSSL_CTX* ctx = 0;
...
ret = wolfSSL_CTX_set_cipher_list(ctx,
“DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256”);
if (ret != SSL_SUCCESS) {
    // failed to set cipher suite list
}

See:

Return:

  • SSL_SUCCESS 機能完了に成功したときに返されます。
  • SSL_FAILURE 失敗した場合に返されます。

function wolfSSL_set_cipher_list

int wolfSSL_set_cipher_list(
    WOLFSSL * ssl,
    const char * list
)

この関数は、特定のWolfSSLオブジェクト(SSLセッション)の暗号スイートリストを設定します。リスト内の暗号は、最高から最低への好みの順にソートされるべきです。wolfssl_set_cipher_list()の各呼び出しは、関数が呼び出されるたびに、特定のSSLセッションの暗号スイートリストを提供されたリストにリセットします。暗号スイートリスト、リストは、ヌル終端テキスト文字列、およびコロン区切りリストです。例えば、リストのための1つの値は、「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」であり得る。有効な暗号化値は、src / internal.c(有効な暗号化値の明確なリストのリストの場合はsrc / internal.cを指定してください)のcipher_names []配列のフルネーム値です。

Parameters:

  • ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
int ret = 0;
WOLFSSL* ssl = 0;
...
ret = wolfSSL_set_cipher_list(ssl,
“DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256”);
if (ret != SSL_SUCCESS) {
    // failed to set cipher suite list
}

See:

Return:

  • SSL_SUCCESS 機能完了に成功したときに返されます。
  • SSL_FAILURE 失敗した場合に返されます。

function wolfSSL_dtls_set_timeout_init

int wolfSSL_dtls_set_timeout_init(
    WOLFSSL * ssl,
    int 
)

この関数はDTLSタイムアウトを設定します。

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
int timeout = TIMEOUT;
...
if(wolfSSL_dtls_set_timeout_init(ssl, timeout)){
    // the dtls timeout was set
} else {
    // Failed to set DTLS timeout.
}

See:

Return:

  • SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。SSLのDTLS_TIMEOUT_INITとDTLS_TIMEOUTメンバーが設定されています。
  • BAD_FUNC_ARG wolfssl structがnullの場合、またはタイムアウトが0以下の場合に返されます。タイムアウト引数が許可されている最大値を超えると、戻ります。

function wolfSSL_get1_session

WOLFSSL_SESSION * wolfSSL_get1_session(
    WOLFSSL * ssl
)

この関数は、wolfssl構造からのwolfssl_sessionを参照型として返します。これには、wolfssl_session_freeを呼び出してセッション参照を解除する必要があります。 wolfssl_sessionは、セッションの再開を実行するために必要なすべての必要な情報を含むことを指摘し、新しいハンドシェイクなしで接続を再確立します。セッションの再開の場合、wolfssl_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。これはセッションへのポインタを返します。後で、アプリケーションは新しいWolfSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。 WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。 wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションがそれを使用してそれを使用して解放される必要があります。

See:

Return:

  • WOLFSSL_SESSION 成功の場合はセッションポインタを返します。
  • NULL SSLがNULLの場合、SSLセッションキャッシュが無効になっている場合、WolfSSLはセッションIDを使用できない、またはミューテックス関数が失敗します。 Example
WOLFSSL* ssl;
WOLFSSL_SESSION* ses;
// attempt/complete handshake
wolfSSL_connect(ssl);
ses  = wolfSSL_get1_session(ssl);
// check ses information
// disconnect / setup new SSL instance
wolfSSL_set_session(ssl, ses);
// attempt/resume handshake
wolfSSL_SESSION_free(ses);

function wolfSSLv23_client_method

WOLFSSL_METHOD * wolfSSLv23_client_method(
    void 
)

wolfsslv23_client_method()関数は、アプリケーションがクライアントであることを示すために使用され、SSL 3.0 - TLS 1.3の間でサーバーでサポートされている最高のプロトコルバージョンをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。WolfSSLクライアントとサーバーの両方が堅牢なバージョンのダウングレード機能を持っています。特定のプロトコルバージョンメソッドがどちらの側で使用されている場合は、そのバージョンのみがネゴシエートされたり、エラーが返されます。たとえば、TLSV1を使用し、SSLv3のみに接続しようとするクライアントは、TLSV1.1に接続しても失敗します。この問題を解決するために、wolfsslv23_client_method()関数を使用するクライアントは、サーバーでサポートされている最高のプロトコルバージョンを使用し、必要に応じてSSLv3にダウングレードします。この場合、クライアントはSSLv3 - TLSv1.3を実行しているサーバーに接続できるようになります。

See:

Return:

  • pointer 成功すると、wolfssl_methodへのポインタがあります。
  • Failure xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;
method = wolfSSLv23_client_method();
if (method == NULL) {
// unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfSSL_ASN1_INTEGER_to_BN

WOLFSSL_BIGNUM * wolfSSL_ASN1_INTEGER_to_BN(
    const WOLFSSL_ASN1_INTEGER * ai,
    WOLFSSL_BIGNUM * bn
)

この関数は、wolfssl_asn1_integer値をwolfssl_bignum構造にコピーするために使用されます。

Parameters:

  • ai wolfssl asn1_integer構造体からコピーする。 Example
WOLFSSL_ASN1_INTEGER* ai;
WOLFSSL_BIGNUM* bn;
// create ai
bn = wolfSSL_ASN1_INTEGER_to_BN(ai, NULL);

// or if having already created bn and wanting to reuse structure
// wolfSSL_ASN1_INTEGER_to_BN(ai, bn);
// check bn is or return value is not NULL

See: none

Return:

  • pointer wolfssl_asn1_integer値を正常にコピーすると、wolfssl_bignumポインタが返されます。
  • Null 失敗すると。

function wolfSSL_CTX_add_extra_chain_cert

long wolfSSL_CTX_add_extra_chain_cert(
    WOLFSSL_CTX * ctx,
    WOLFSSL_X509 * x509
)

この関数は、wolfssl_ctx構造で構築されている内部チェーンに証明書を追加します。

Parameters:

  • ctx 証明書を追加するためのwolfssl_ctx構造。 Example
WOLFSSL_CTX* ctx;
WOLFSSL_X509* x509;
int ret;
// create ctx
ret = wolfSSL_CTX_add_extra_chain_cert(ctx, x509);
// check ret value

See:

Return:

  • SSL_SUCCESS 証明書の追加に成功したら。
  • SSL_FAILURE チェーンに証明書を追加することが失敗した場合。

function wolfSSL_CTX_get_read_ahead

int wolfSSL_CTX_get_read_ahead(
    WOLFSSL_CTX * 
)

この関数は、wolfssl_ctx構造からGet Read Hapeフラグを返します。

See:

Return:

  • flag 成功すると、読み取り先のフラグを返します。
  • SSL_FAILURE ctxがnullの場合、ssl_failureが返されます。 Example
WOLFSSL_CTX* ctx;
int flag;
// setup ctx
flag = wolfSSL_CTX_get_read_ahead(ctx);
//check flag

function wolfSSL_CTX_set_read_ahead

int wolfSSL_CTX_set_read_ahead(
    WOLFSSL_CTX * ctx,
    int v
)

この関数は、wolfssl_ctx構造内の読み出し先のフラグを設定します。

See:

Return:

  • SSL_SUCCESS CTXが先読みフラグを設定した場合。
  • SSL_FAILURE ctxがnullの場合、ssl_failureが返されます。 Example
WOLFSSL_CTX* ctx;
int flag;
int ret;
// setup ctx
ret = wolfSSL_CTX_set_read_ahead(ctx, flag);
// check return value

function wolfSSL_CTX_set_tlsext_status_arg

long wolfSSL_CTX_set_tlsext_status_arg(
    WOLFSSL_CTX * ctx,
    void * arg
)

この関数はOCSPで使用するオプション引数を設定します。

Parameters:

  • ctx wolfssl_ctx構造ユーザー引数を設定するための構造。 Example
WOLFSSL_CTX* ctx;
void* data;
int ret;
// setup ctx
ret = wolfSSL_CTX_set_tlsext_status_arg(ctx, data);

//check ret value

See:

Return:

  • SSL_FAILURE CTXまたはITのCERT ManagerがNULLの場合。
  • SSL_SUCCESS 正常に設定されている場合。

function wolfSSL_CTX_set_tlsext_opaque_prf_input_callback_arg

long wolfSSL_CTX_set_tlsext_opaque_prf_input_callback_arg(
    WOLFSSL_CTX * ctx,
    void * arg
)

この関数は、PRFコールバックに渡すオプションの引数を設定します。

Parameters:

  • ctx wolfssl_ctx構造ユーザー引数を設定するための構造。 Example
WOLFSSL_CTX* ctx;
void* data;
int ret;
// setup ctx
ret = wolfSSL_CTX_set_tlsext_opaques_prf_input_callback_arg(ctx, data);
//check ret value

See:

Return:

  • SSL_FAILURE CTXがNULLの場合
  • SSL_SUCCESS 正常に設定されている場合。

function wolfSSL_set_options

long wolfSSL_set_options(
    WOLFSSL * s,
    long op
)

この関数は、SSLのオプションマスクを設定します。いくつかの有効なオプションは、ssl_op_all、ssl_op_cookie_exchange、ssl_op_no_sslv2、ssl_op_no_sslv3、ssl_op_no_tlsv1_1、ssl_op_no_tlsv1_2、ssl_op_no_compressionです。

Parameters:

  • s オプションマスクを設定するためのWolfSSL構造。 Example
WOLFSSL* ssl;
unsigned long mask;
mask = SSL_OP_NO_TLSv1
mask  = wolfSSL_set_options(ssl, mask);
// check mask

See:

Return: val SSLに格納されている更新されたオプションマスク値を返します。

function wolfSSL_get_options

long wolfSSL_get_options(
    const WOLFSSL * s
)

この関数は現在のオプションマスクを返します。

See:

Return: val SSLに格納されているマスク値を返します。 Example

WOLFSSL* ssl;
unsigned long mask;
mask  = wolfSSL_get_options(ssl);
// check mask

function wolfSSL_set_tlsext_debug_arg

long wolfSSL_set_tlsext_debug_arg(
    WOLFSSL * s,
    void * arg
)

これは、渡されたデバッグ引数を設定するために使用されます。

Parameters:

  • ssl 引数を設定するためのWolfSSL構造。 Example
WOLFSSL* ssl;
void* args;
int ret;
// create ssl object
ret  = wolfSSL_set_tlsext_debug_arg(ssl, args);
// check ret value

See:

Return:

  • SSL_SUCCESS 設定の成功した引数について。
  • SSL_FAILURE NULL SSLが渡された場合。

function wolfSSL_get_verify_result

long wolfSSL_get_verify_result(
    const WOLFSSL * ssl
)

これは、ピアの証明書を確認しようとした後に結果を取得するために使用されます。

See:

Return:

  • X509_V_OK 成功した検証について
  • SSL_FAILURE NULL SSLが渡された場合。 Example
WOLFSSL* ssl;
long ret;
// attempt/complete handshake
ret  = wolfSSL_get_verify_result(ssl);
// check ret value

function wolfSSL_CTX_allow_anon_cipher

int wolfSSL_CTX_allow_anon_cipher(
    WOLFSSL_CTX * 
)

この機能により、CTX構造のHAVAnonメンバーがコンパイル中に定義されている場合は、CTX構造のHABANONメンバーを有効にします。

See: none

Return:

  • SSL_SUCCESS 機能が正常に実行され、CTXのHaveannonメンバーが1に設定されている場合に返されます。
  • SSL_FAILURE CTX構造がNULLの場合に返されます。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL* ssl = wolfSSL_new(ctx);
...
#ifdef HAVE_ANON
if(cipherList == NULL){
    wolfSSL_CTX_allow_anon_cipher(ctx);
    if(wolfSSL_CTX_set_cipher_list(ctx, “ADH_AES128_SHA”) != SSL_SUCCESS){
        // failure case
    }
}
#endif

function wolfSSLv23_server_method

WOLFSSL_METHOD * wolfSSLv23_server_method(
    void 
)

wolfsslv23_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0 - TLS 1.3からプロトコルバージョンと接続するクライアントをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return:

  • pointer 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。
  • Failure xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 Example
WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfSSLv23_server_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfSSL_state

int wolfSSL_state(
    WOLFSSL * ssl
)

これは、WolfSSL構造体の内部エラー状態を取得するために使用されます。

See:

Return:

  • wolfssl_error SSLエラー状態、通常はマイナスを返します
  • BAD_FUNC_ARG SSLがNULLの場合 Example
WOLFSSL* ssl;
int ret;
// create ssl object
ret  = wolfSSL_state(ssl);
// check ret value

function wolfSSL_check_domain_name

int wolfSSL_check_domain_name(
    WOLFSSL * ssl,
    const char * dn
)

wolfsslデフォルトでは、有効な日付範囲と検証済みの署名のためにピア証明書をチェックします。wolfssl_connect()またはwolfssl_accept()の前にこの関数を呼び出すと、実行するチェックのリストにドメイン名チェックが追加されます。DN受信時にピア証明書を確認するためのドメイン名を保持します。

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
int ret = 0;
WOLFSSL* ssl;
char* domain = (char*) “www.yassl.com”;
...

ret = wolfSSL_check_domain_name(ssl, domain);
if (ret != SSL_SUCCESS) {
   // failed to enable domain name check
}

See: none

Return:

  • SSL_SUCCESS 成功すると。
  • SSL_FAILURE メモリエラーが発生した場合に返されます。

function wolfSSL_set_compression

int wolfSSL_set_compression(
    WOLFSSL * ssl
)

SSL接続に圧縮を使用する機能をオンにします。両側には圧縮がオンになっている必要があります。そうでなければ圧縮は使用されません。ZLIBライブラリは実際のデータ圧縮を実行します。ライブラリにコンパイルするには、システムの設定システムに–with-libzを使用し、そうでない場合はhand_libzを定義します。送受信されるメッセージの実際のサイズを減らす前にデータを圧縮している間に、圧縮によって保存されたデータの量は通常、ネットワークの遅いすべてのネットワークを除いたものよりも分析に時間がかかります。

See: none

Return:

  • SSL_SUCCESS 成功すると。
  • NOT_COMPILED_IN 圧縮サポートがライブラリに組み込まれていない場合に返されます。 Example
int ret = 0;
WOLFSSL* ssl = 0;
...
ret = wolfSSL_set_compression(ssl);
if (ret == SSL_SUCCESS) {
    // successfully enabled compression for SSL session
}

function wolfSSL_set_timeout

int wolfSSL_set_timeout(
    WOLFSSL * ssl,
    unsigned int to
)

この関数はSSLセッションタイムアウト値を秒単位で設定します。

Parameters:

  • ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 Example
int ret = 0;
WOLFSSL* ssl = 0;
...

ret = wolfSSL_set_timeout(ssl, 500);
if (ret != SSL_SUCCESS) {
    // failed to set session timeout value
}
...

See:

Return:

  • SSL_SUCCESS セッションを正常に設定すると返されます。
  • BAD_FUNC_ARG SSLがNULLの場合に返されます。

function wolfSSL_CTX_set_timeout

int wolfSSL_CTX_set_timeout(
    WOLFSSL_CTX * ctx,
    unsigned int to
)

この関数は、指定されたSSLコンテキストに対して、SSLセッションのタイムアウト値を秒単位で設定します。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 Example
WOLFSSL_CTX*    ctx    = 0;
...
ret = wolfSSL_CTX_set_timeout(ctx, 500);
if (ret != SSL_SUCCESS) {
    // failed to set session timeout value
}

See:

Return:

  • the wolfssl_error_code_opensslの場合、以前のタイムアウト値
  • defined 成功しています。定義されていない場合、SSL_SUCCESSは返されます。
  • BAD_FUNC_ARG 入力コンテキスト(CTX)がNULLのときに返されます。

function wolfSSL_CTX_UnloadCAs

int wolfSSL_CTX_UnloadCAs(
    WOLFSSL_CTX * 
)

この関数はCA署名者リストをアンロードし、署名者全体のテーブルを解放します。

See:

Return:

  • SSL_SUCCESS 機能の実行に成功したことに戻ります。
  • BAD_FUNC_ARG wolfssl_ctx構造体がnullの場合、または他の方法では未解決の引数値がサブルーチンに渡された場合に返されます。
  • BAD_MUTEX_E ミューテックスエラーが発生した場合は返されます。lockmutex()は0を返しませんでした。 Example
WOLFSSL_METHOD method = wolfTLSv1_2_client_method();
WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(method);
…
if(!wolfSSL_CTX_UnloadCAs(ctx)){
    // The function did not unload CAs
}

function wolfSSL_CTX_Unload_trust_peers

int wolfSSL_CTX_Unload_trust_peers(
    WOLFSSL_CTX * 
)

この関数は、以前にロードされたすべての信頼できるピア証明書をアンロードするために使用されます。マクロwolfssl_trust_peer_certを定義することで機能が有効になっています。

See:

Return:

  • SSL_SUCCESS 成功すると。
  • BAD_FUNC_ARG CTXがNULLの場合は返されます。
  • SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。 Example
int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_Unload_trust_peers(ctx);
if (ret != SSL_SUCCESS) {
    // error unloading trusted peer certs
}
...

function wolfSSL_CTX_trust_peer_buffer

int wolfSSL_CTX_trust_peer_buffer(
    WOLFSSL_CTX * ctx,
    const unsigned char * in,
    long sz,
    int format
)

この関数は、TLS / SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。ハンドシェイク中に送信されたピア証明書は、使用可能なときにスキッドを使用することによって比較されます。これら2つのことが一致しない場合は、ロードされたCASが使用されます。ファイルの代わりにバッファーの場合は、wolfssl_ctx_trust_peer_certと同じ機能です。特徴はマクロwolfssl_trust_peer_certを定義することによって有効になっています適切な使用法の例を参照してください。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。
  • buffer 証明書を含むバッファへのポインタ。
  • sz バッファ入力の長さ。 Example
int ret = 0;
WOLFSSL_CTX* ctx;
...

ret = wolfSSL_CTX_trust_peer_buffer(ctx, bufferPtr, bufferSz,
SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
// error loading trusted peer cert
}
...

See:

Return:

  • SSL_SUCCESS 成功すると
  • SSL_FAILURE CTXがNULLの場合、または両方のファイルと種類が無効な場合は返されます。
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。
  • SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。

function wolfSSL_CTX_set_group_messages

int wolfSSL_CTX_set_group_messages(
    WOLFSSL_CTX * 
)

この機能は、可能な限りハンドシェイクメッセージのグループ化をオンにします。

See:

Return:

  • SSL_SUCCESS 成功に戻ります。
  • BAD_FUNC_ARG 入力コンテキストがNULLの場合、返されます。 Example
WOLFSSL_CTX* ctx = 0;
...
ret = wolfSSL_CTX_set_group_messages(ctx);
if (ret != SSL_SUCCESS) {
    // failed to set handshake message grouping
}

function wolfSSL_set_group_messages

int wolfSSL_set_group_messages(
    WOLFSSL * 
)

この機能は、可能な限りハンドシェイクメッセージのグループ化をオンにします。

See:

Return:

  • SSL_SUCCESS 成功に戻ります。
  • BAD_FUNC_ARG 入力コンテキストがNULLの場合、返されます。 Example
WOLFSSL* ssl = 0;
...
ret = wolfSSL_set_group_messages(ssl);
if (ret != SSL_SUCCESS) {
// failed to set handshake message grouping
}

function wolfSSL_CTX_SetMinVersion

int wolfSSL_CTX_SetMinVersion(
    WOLFSSL_CTX * ctx,
    int version
)

この関数は、許可されている最小のダウングレードバージョンを設定します。接続が(wolfsslv23_client_methodまたはwolfsslv23_server_method)を使用して、接続がダウングレードできる場合にのみ適用されます。

Parameters:

  • ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 Example
WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol method );
WOLFSSL* ssl = WOLFSSL_new(ctx);
int version; // macrop representation
…
if(wolfSSL_CTX_SetMinVersion(ssl->ctx, version) != SSL_SUCCESS){
    // Failed to set min version
}

See: SetMinVersionHelper

Return:

  • SSL_SUCCESS エラーなしで返された関数と最小バージョンが設定されている場合に返されます。
  • BAD_FUNC_ARG wolfssl_ctx構造がNULLの場合、または最小バージョンがサポートされていない場合に返されます。

function wolfSSL_SetVersion

int wolfSSL_SetVersion(
    WOLFSSL * ssl,
    int version
)

この関数は、バージョンで指定されたバージョンを使用して、指定されたSSLセッション(WolfSSLオブジェクト)のSSL / TLSプロトコルバージョンを設定します。これにより、SSLセッション(SSL)のプロトコル設定が最初に定義され、SSLコンテキスト(WolfSSL_CTX_NEW())メソッドの種類によって上書きされます。

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
int ret = 0;
WOLFSSL* ssl;
...

ret = wolfSSL_SetVersion(ssl, WOLFSSL_TLSV1);
if (ret != SSL_SUCCESS) {
    // failed to set SSL session protocol version
}

See: wolfSSL_CTX_new

Return:

  • SSL_SUCCESS 成功すると。
  • BAD_FUNC_ARG 入力SSLオブジェクトがNULLまたは誤ったプロトコルバージョンがバージョンで指定されている場合に返されます。

function wolfSSL_UseALPN

int wolfSSL_UseALPN(
    WOLFSSL * ssl,
    char * protocol_name_list,
    unsigned int protocol_name_listSz,
    unsigned char options
)

wolfsslセッションにALPNを設定します。

Parameters:

  • ssl 使用するWolfSSLセッション。
  • protocol_name_list 使用するプロトコル名のリスト。カンマ区切り文字列が必要です。
  • protocol_name_listSz プロトコル名のリストのサイズ。 Example
wolfSSL_Init();
WOLFSSL_CTX* ctx;
WOLFSSL* ssl;
WOLFSSL_METHOD method = // Some wolfSSL method
ctx = wolfSSL_CTX_new(method);
ssl = wolfSSL_new(ctx);

char alpn_list[] = {};

if (wolfSSL_UseALPN(ssl, alpn_list, sizeof(alpn_list),
    WOLFSSL_APN_FAILED_ON_MISMATCH) != WOLFSSL_SUCCESS)
{
   // Error setting session ticket
}

See: TLSX_UseALPN

Return:

  • WOLFSSL_SUCCESS: 成功すると。
  • BAD_FUNC_ARG SSLまたはPROTOCOL_NAME_LISTがNULLまたはPROTOCOL_NAME_LISTSZが大きすぎたり、オプションがサポートされていないものを含みます。
  • MEMORY_ERROR プロトコルリストのメモリの割り当て中にエラーが発生しました。
  • SSL_FAILURE 失敗すると。

function wolfSSL_CTX_UseSessionTicket

int wolfSSL_CTX_UseSessionTicket(
    WOLFSSL_CTX * ctx
)

この関数は、セッションチケットを使用するようにWolfSSLコンテキストを設定します。

See: TLSX_UseSessionTicket

Return:

  • SSL_SUCCESS 関数は正常に実行されます。
  • BAD_FUNC_ARG CTXがNULLの場合に返されます。
  • MEMORY_E 内部関数内のメモリの割り当て中にエラーが発生しました。 Example
wolfSSL_Init();
WOLFSSL_CTX* ctx;
WOLFSSL_METHOD method = // Some wolfSSL method ;
ctx = wolfSSL_CTX_new(method);

if(wolfSSL_CTX_UseSessionTicket(ctx) != SSL_SUCCESS)
{
    // Error setting session ticket
}

function wolfSSL_check_private_key

int wolfSSL_check_private_key(
    const WOLFSSL * ssl
)

この関数は、秘密鍵が使用されている証明書との一致であることを確認します。

See:

Return:

  • SSL_SUCCESS うまく一致します。
  • SSL_FAILURE エラーケースに遭遇した場合
  • <0 ssl_failure以外のすべてのエラーケースは負の値です。 Example
WOLFSSL* ssl;
int ret;
// create and set up ssl
ret  = wolfSSL_check_private_key(ssl);
// check ret value

function wolfSSL_use_certificate

int wolfSSL_use_certificate(
    WOLFSSL * ssl,
    WOLFSSL_X509 * x509
)

ハンドシェイク中に使用するために、WolfSSL構造の証明書を設定するために使用されます。

Parameters:

  • ssl 証明書を設定するためのWolfSSL構造。 Example
 WOLFSSL* ssl;
WOLFSSL_X509* x509
int ret;
// create ssl object and x509
ret  = wolfSSL_use_certificate(ssl, x509);
// check ret value

See:

Return:

  • SSL_SUCCESS 設定の成功した引数について。
  • SSL_FAILURE NULL引数が渡された場合。

function wolfSSL_use_certificate_ASN1

int wolfSSL_use_certificate_ASN1(
    WOLFSSL * ssl,
    unsigned char * der,
    int derSz
)

これは、handshakeの間に使用するためにWolfSSL構造の証明書を設定するために使用されます。DERフォーマットバッファが予想されます。

Parameters:

  • ssl 証明書を設定するためのWolfSSL構造。
  • der 使用する証明書。 Example
WOLFSSL* ssl;
unsigned char* der;
int derSz;
int ret;
// create ssl object and set DER variables
ret  = wolfSSL_use_certificate_ASN1(ssl, der, derSz);
// check ret value

See:

Return:

  • SSL_SUCCESS 設定の成功した引数について。
  • SSL_FAILURE NULL引数が渡された場合。

function wolfSSL_SESSION_get_master_key

int wolfSSL_SESSION_get_master_key(
    const WOLFSSL_SESSION * ses,
    unsigned char * out,
    int outSz
)

これはハンドシェイクを完了した後にマスターキーを取得するために使用されます。

Parameters:

  • ses マスターシークレットバッファを取得するためのWolfSSL_SESSION構造。
  • out データを保持するためのバッファ。 Example
WOLFSSL_SESSION ssl;
unsigned char* buffer;
size_t bufferSz;
size_t ret;
// complete handshake and get session structure
bufferSz  = wolfSSL_SESSION_get_master_secret(ses, NULL, 0);
buffer = malloc(bufferSz);
ret  = wolfSSL_SESSION_get_master_secret(ses, buffer, bufferSz);
// check ret value

See:

Return:

  • 0 データの取得に成功した場合、0より大きい値を返します。

  • 0 ランダムなデータバッファまたはエラー状態が返されない場合は0
  • max 渡されたOUTSZが0の場合、必要な最大バッファサイズが返されます。

function wolfSSL_SESSION_get_master_key_length

int wolfSSL_SESSION_get_master_key_length(
    const WOLFSSL_SESSION * ses
)

これはマスター秘密鍵の長さを取得するために使用されます。

See:

Return: size マスターシークレットキーサイズを返します。 Example

WOLFSSL_SESSION ssl;
unsigned char* buffer;
size_t bufferSz;
size_t ret;
// complete handshake and get session structure
bufferSz  = wolfSSL_SESSION_get_master_secret_length(ses);
buffer = malloc(bufferSz);
// check ret value

function wolfSSL_CTX_set_cert_store

void wolfSSL_CTX_set_cert_store(
    WOLFSSL_CTX * ctx,
    WOLFSSL_X509_STORE * str
)

これは、CTXのWOLFSSL_X509_STORE構造の設定機能です。

Parameters:

  • ctx Cert Storeポインタを設定するためのWolfSSL_CTX構造体へのポインタ。 Example
WOLFSSL_CTX ctx;
WOLFSSL_X509_STORE* st;
// setup ctx and st
st = wolfSSL_CTX_set_cert_store(ctx, st);
//use st

See:

Return: none 返品不可。

function wolfSSL_CTX_get_cert_store

WOLFSSL_X509_STORE * wolfSSL_CTX_get_cert_store(
    WOLFSSL_CTX * ctx
)

これは、CTXのWOLFSSL_X509_STORE構造のゲッター関数です。

See:

Return:

  • WOLFSSL_X509_STORE* ポインタを正常に入手します。
  • NULL NULL引数が渡された場合に返されます。 Example
WOLFSSL_CTX ctx;
WOLFSSL_X509_STORE* st;
// setup ctx
st = wolfSSL_CTX_get_cert_store(ctx);
//use st

function wolfSSL_get_server_random

size_t wolfSSL_get_server_random(
    const WOLFSSL * ssl,
    unsigned char * out,
    size_t outlen
)

これは、ハンドシェイク中にサーバーによって送信されたランダムなデータを取得するために使用されます。

Parameters:

  • ssl クライアントのランダムデータバッファを取得するためのWolfSSL構造。
  • out ランダムデータを保持するためのバッファ。 Example
WOLFSSL ssl;
unsigned char* buffer;
size_t bufferSz;
size_t ret;
bufferSz  = wolfSSL_get_server_random(ssl, NULL, 0);
buffer = malloc(bufferSz);
ret  = wolfSSL_get_server_random(ssl, buffer, bufferSz);
// check ret value

See:

Return:

  • 0 データの取得に成功した場合、0より大きい値を返します。

  • 0 ランダムなデータバッファまたはエラー状態が返されない場合は0
  • max 渡されたOUTSZが0の場合、必要な最大バッファサイズが返されます。

function wolfSSL_get_client_random

size_t wolfSSL_get_client_random(
    const WOLFSSL * ssl,
    unsigned char * out,
    size_t outSz
)

これは、ハンドシェイク中にクライアントによって送信されたランダムなデータを取得するために使用されます。

Parameters:

  • ssl クライアントのランダムデータバッファを取得するためのWolfSSL構造。
  • out ランダムデータを保持するためのバッファ。 Example
WOLFSSL ssl;
unsigned char* buffer;
size_t bufferSz;
size_t ret;
bufferSz  = wolfSSL_get_client_random(ssl, NULL, 0);
buffer = malloc(bufferSz);
ret  = wolfSSL_get_client_random(ssl, buffer, bufferSz);
// check ret value

See:

Return:

  • 0 データの取得に成功した場合、0より大きい値を返します。

  • 0 ランダムなデータバッファまたはエラー状態が返されない場合は0
  • max 渡されたOUTSZが0の場合、必要な最大バッファサイズが返されます。

function wolfSSL_CTX_get_default_passwd_cb

wc_pem_password_cb * wolfSSL_CTX_get_default_passwd_cb(
    WOLFSSL_CTX * ctx
)

これはCTXで設定されたパスワードコールバックのゲッター関数です。

See:

Return:

  • func 成功すると、コールバック関数を返します。
  • NULL CTXがNULLの場合、NULLが返されます。 Example
WOLFSSL_CTX* ctx;
wc_pem_password_cb cb;
// setup ctx
cb = wolfSSL_CTX_get_default_passwd_cb(ctx);
//use cb

function wolfSSL_CTX_get_default_passwd_cb_userdata

void * wolfSSL_CTX_get_default_passwd_cb_userdata(
    WOLFSSL_CTX * ctx
)

これは、CTXで設定されているパスワードコールバックユーザーデータの取得機能です。

See:

Return:

  • pointer 成功すると、ユーザーデータポインタを返します。
  • NULL CTXがNULLの場合、NULLが返されます。 Example
WOLFSSL_CTX* ctx;
void* data;
// setup ctx
data = wolfSSL_CTX_get_default_passwd_cb(ctx);
//use data

function wolfSSL_CTX_clear_options

long wolfSSL_CTX_clear_options(
    WOLFSSL_CTX * ctx,
    long opt
)

この関数は、wolfssl_ctxオブジェクトのオプションビットをリセットします。

See:

Return: option 新しいオプションビット Example

WOLFSSL_CTX* ctx = 0;
...
wolfSSL_CTX_clear_options(ctx, SSL_OP_NO_TLSv1);

function wolfSSL_set_msg_callback

int wolfSSL_set_msg_callback(
    WOLFSSL * ssl,
    SSL_Msg_Cb cb
)

この関数はSSL内のコールバックを設定します。コールバックはハンドシェイクメッセージを観察することです。CBのNULL値はコールバックをリセットします。

See: wolfSSL_set_msg_callback_arg

Return:

  • SSL_SUCCESS 成功しています。
  • SSL_FAILURE NULL SSLが渡された場合。 Example
static cb(int write_p, int version, int content_type,
const void *buf, size_t len, WOLFSSL *ssl, void *arg)
…
WOLFSSL* ssl;
ret  = wolfSSL_set_msg_callback(ssl, cb);
// check ret

function wolfSSL_set_msg_callback_arg

int wolfSSL_set_msg_callback_arg(
    WOLFSSL * ssl,
    void * arg
)

この関数は、SSL内の関連コールバックコンテキスト値を設定します。値はコールバック引数に渡されます。

See: wolfSSL_set_msg_callback

Return: none 返品不可。 Example

static cb(int write_p, int version, int content_type,
const void *buf, size_t len, WOLFSSL *ssl, void *arg)
…
WOLFSSL* ssl;
ret  = wolfSSL_set_msg_callback(ssl, cb);
// check ret
wolfSSL_set_msg_callback(ssl, arg);
int wolfSSL_send_hrr_cookie(
    WOLFSSL * ssl,
    const unsigned char * secret,
    unsigned int secretSz
)

この関数はサーバー側で呼び出されて、HellORetryRequestメッセージにCookieを含める必要があることを示します。Cookieは現在のトランスクリプトのハッシュを保持しているので、別のサーバープロセスは応答でClientHelloを処理できます。秘密はCookieデータの整合性チェックをGenertingするときに使用されます。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。
  • 秘密を保持しているバッファへのポインタを秘密にします。渡すNULLは、新しいランダムシークレットを生成することを示します。
  • シークスのサイズをバイト単位でサイズ。0を渡すと、デフォルトのサイズを使用することを示します.WC_SHA256_DIGEST_SIZE(またはSHA-256が使用できない場合はWC_SHA_DIGEST_SIZE)。

See: wolfSSL_new

Return:

  • BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR クライアントで呼び出された場合。
  • WOLFSSL_SUCCESS 成功した場合
  • MEMORY_ERROR 秘密を保存するために動的メモリを割り当てる場合に失敗しました。 Example
int ret;
WOLFSSL* ssl;
char secret[32];
...
ret = wolfSSL__send_hrr_cookie(ssl, secret, sizeof(secret));
if (ret != WOLFSSL_SUCCESS) {
    // failed to set use of Cookie and secret
}

function wolfSSL_CTX_no_ticket_TLSv13

int wolfSSL_CTX_no_ticket_TLSv13(
    WOLFSSL_CTX * ctx
)

ハンドシェイクが完了すると、この関数はサーバー上で再開セッションチケットの送信を停止するように呼び出されます。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。

See: wolfSSL_no_ticket_TLSv13

Return:

  • BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR クライアントで呼び出された場合。 Example
int ret;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_no_ticket_TLSv13(ctx);
if (ret != 0) {
    // failed to set no ticket
}

function wolfSSL_no_ticket_TLSv13

int wolfSSL_no_ticket_TLSv13(
    WOLFSSL * ssl
)

ハンドシェイクが完了すると、この関数はサーバー上で再開セッションチケットの送信を停止するように呼び出されます。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。

See: wolfSSL_CTX_no_ticket_TLSv13

Return:

  • BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR クライアントで呼び出された場合。 Example
int ret;
WOLFSSL* ssl;
...
ret = wolfSSL_no_ticket_TLSv13(ssl);
if (ret != 0) {
    // failed to set no ticket
}

function wolfSSL_CTX_no_dhe_psk

int wolfSSL_CTX_no_dhe_psk(
    WOLFSSL_CTX * ctx
)

この関数は、Authenticationにプリシェアキーを使用している場合、DIFFIE-HELLMAN(DH)スタイルのキー交換を許可するTLS V1.3 WolfSSLコンテキストで呼び出されます。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。

See: wolfSSL_no_dhe_psk

Return: BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。 Example

int ret;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_no_dhe_psk(ctx);
if (ret != 0) {
    // failed to set no DHE for PSK handshakes
}

function wolfSSL_no_dhe_psk

int wolfSSL_no_dhe_psk(
    WOLFSSL * ssl
)

この関数は、Authenticationのためにプリシェアキーを使用しているときにDiffie-Hellman(DH)スタイルのキー交換を許可するTLS V1.3クライアントまたはサーバーのWolfSSLで呼び出されます。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。

See: wolfSSL_CTX_no_dhe_psk

Return: BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 Example

int ret;
WOLFSSL* ssl;
...
ret = wolfSSL_no_dhe_psk(ssl);
if (ret != 0) {
    // failed to set no DHE for PSK handshakes
}

function wolfSSL_CTX_allow_post_handshake_auth

int wolfSSL_CTX_allow_post_handshake_auth(
    WOLFSSL_CTX * ctx
)

この関数は、TLS v1.3クライアントのWolfSSLコンテキストで呼び出され、クライアントはサーバーからの要求に応じてPost Handshakeを送信できるようにします。これは、クライアント認証などを必要としないページを持つWebサーバーに接続するときに役立ちます。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。

See:

Return:

  • BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR サーバーで呼び出された場合。 Example
int ret;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_allow_post_handshake_auth(ctx);
if (ret != 0) {
    // failed to allow post handshake authentication
}

function wolfSSL_allow_post_handshake_auth

int wolfSSL_allow_post_handshake_auth(
    WOLFSSL * ssl
)

この関数は、TLS V1.3クライアントWolfSSLで呼び出され、クライアントはサーバーからの要求に応じてハンドシェイクを送ります。handshakeクライアント認証拡張機能はClientHelloで送信されます。これは、クライアント認証などを必要としないページを持つWebサーバーに接続するときに役立ちます。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。

See:

Return:

  • BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR サーバーで呼び出された場合。 Example
int ret;
WOLFSSL* ssl;
...
ret = wolfSSL_allow_post_handshake_auth(ssl);
if (ret != 0) {
    // failed to allow post handshake authentication
}

function wolfSSL_CTX_set1_groups_list

int wolfSSL_CTX_set1_groups_list(
    WOLFSSL_CTX * ctx,
    char * list
)

この関数は楕円曲線グループのリストを設定して、WolfSSLコンテキストを希望の順に設定します。リストはヌル終了したテキスト文字列、およびコロン区切りリストです。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。
  • 楕円曲線グループのコロン区切りリストである文字列をリストします。

See:

Return: WOLFSSL_FAILURE ポインタパラメータがNULLの場合、wolfssl_max_group_countグループが多い場合は、グループ名が認識されないか、TLS v1.3を使用していません。 Example

int ret;
WOLFSSL_CTX* ctx;
const char* list = "P-384:P-256";
...
ret = wolfSSL_CTX_set1_groups_list(ctx, list);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set group list
}

function wolfSSL_set1_groups_list

int wolfSSL_set1_groups_list(
    WOLFSSL * ssl,
    char * list
)

この関数は楕円曲線グループのリストを設定して、WolfSSLを希望の順に設定します。リストはヌル終了したテキスト文字列、およびコロン区切りリストです。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。
  • 鍵交換グループのコロン区切りリストである文字列をリストします。

See:

Return: WOLFSSL_FAILURE ポインタパラメータがNULLの場合、wolfssl_max_group_countグループが多い場合は、グループ名が認識されないか、TLS v1.3を使用していません。 Example

int ret;
WOLFSSL* ssl;
const char* list = "P-384:P-256";
...
ret = wolfSSL_CTX_set1_groups_list(ssl, list);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set group list
}

function wolfSSL_CTX_set_groups

int wolfSSL_CTX_set_groups(
    WOLFSSL_CTX * ctx,
    int * groups,
    int count
)

この関数は楕円曲線グループのリストを設定して、WolfSSLコンテキストを希望の順に設定します。リストは、Countで指定された識別子の数を持つグループ識別子の配列です。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。
  • 識別子によって鍵交換グループのリストをグループ化します。
  • グループ内の鍵交換グループの数を数えます。

See:

Return: BAD_FUNC_ARG ポインタパラメータがNULLの場合、グループ数はwolfssl_max_group_countを超えているか、TLS v1.3を使用していません。 Example

int ret;
WOLFSSL_CTX* ctx;
int* groups = { WOLFSSL_ECC_X25519, WOLFSSL_ECC_SECP256R1 };
int count = 2;
...
ret = wolfSSL_CTX_set1_groups_list(ctx, groups, count);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set group list
}

function wolfSSL_set_groups

int wolfSSL_set_groups(
    WOLFSSL * ssl,
    int * groups,
    int count
)

この関数は、wolfsslを許すために楕円曲線グループのリストを設定します。リストは、Countで指定された識別子の数を持つグループ識別子の配列です。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。
  • 識別子によって鍵交換グループのリストをグループ化します。
  • グループ内の鍵交換グループの数を数えます。

See:

Return: BAD_FUNC_ARG ポインタパラメータがNULLの場合、グループ数がWolfSSL_MAX_GROUP_COUNTを超えている場合、任意の識別子は認識されないか、TLS v1.3を使用していません。 Example

int ret;
WOLFSSL* ssl;
int* groups = { WOLFSSL_ECC_X25519, WOLFSSL_ECC_SECP256R1 };
int count = 2;
...
ret = wolfSSL_set_groups(ssl, groups, count);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set group list
}

function wolfSSL_CTX_set_max_early_data

int wolfSSL_CTX_set_max_early_data(
    WOLFSSL_CTX * ctx,
    unsigned int sz
)

この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられる早期データの最大量を設定します。この関数を呼び出して、再生攻撃を軽減するためのプロセスへの早期データの量を制限します。初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続のキーから派生したキーによって保護されます。値は再開のためにセッションチケットに含まれています。ゼロの値は、セッションチケットを使用してクライアントによって早期データを送信することを示します。早期データバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。
  • SZバイト単位で受け入れる早期データの量。

See:

Return:

  • BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR クライアントで呼び出された場合。 Example
int ret;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_set_max_early_data(ctx, 128);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set group list
}

function wolfSSL_set_max_early_data

int wolfSSL_set_max_early_data(
    WOLFSSL * ssl,
    unsigned int sz
)

この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられる早期データの最大量を設定します。この関数を呼び出して、再生攻撃を軽減するためのプロセスへの早期データの量を制限します。初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続のキーから派生したキーによって保護されます。値は再開のためにセッションチケットに含まれています。ゼロの値は、セッションチケットを使用してクライアントによって早期データを送信することを示します。早期データバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。
  • SZクライアントからバイト単位で受け入れる早期データの量。

See:

Return:

  • BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。
  • SIDE_ERROR クライアントで呼び出された場合。 Example
int ret;
WOLFSSL* ssl;
...
ret = wolfSSL_set_max_early_data(ssl, 128);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set group list
}

function wolfSSL_CTX_set_psk_client_tls13_callback

void wolfSSL_CTX_set_psk_client_tls13_callback(
    WOLFSSL_CTX * ctx,
    wc_psk_client_tls13_callback cb
)

この関数は、TLS v1.3接続のプレシェアキー(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のclient_psk_tls13_cbメンバーを設定します。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 Example
WOLFSSL_CTX* ctx;
...
wolfSSL_CTX_set_psk_client_tls13_callback(ctx, my_psk_client_tls13_cb);

See:

function wolfSSL_set_psk_client_tls13_callback

void wolfSSL_set_psk_client_tls13_callback(
    WOLFSSL * ssl,
    wc_psk_client_tls13_callback cb
)

この関数は、TLS v1.3接続のプレシェアキー(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のOptionsフィールドのclient_psk_tls13_cbメンバーを設定します。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 Example
WOLFSSL* ssl;
...
wolfSSL_set_psk_client_tls13_callback(ssl, my_psk_client_tls13_cb);

See:

function wolfSSL_CTX_set_psk_server_tls13_callback

void wolfSSL_CTX_set_psk_server_tls13_callback(
    WOLFSSL_CTX * ctx,
    wc_psk_server_tls13_callback cb
)

この関数は、TLS v1.3接続用の事前共有キー(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のserver_psk_tls13_cbメンバーを設定します。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 Example
WOLFSSL_CTX* ctx;
...
wolfSSL_CTX_set_psk_server_tls13_callback(ctx, my_psk_client_tls13_cb);

See:

function wolfSSL_set_psk_server_tls13_callback

void wolfSSL_set_psk_server_tls13_callback(
    WOLFSSL * ssl,
    wc_psk_server_tls13_callback cb
)

この関数は、TLS v1.3接続用の事前共有キー(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のオプションフィールドのserver_psk_tls13_cbメンバーを設定します。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 Example
WOLFSSL* ssl;
...
wolfSSL_set_psk_server_tls13_callback(ssl, my_psk_server_tls13_cb);

See:

function wolfSSL_UseKeyShare

int wolfSSL_UseKeyShare(
    WOLFSSL * ssl,
    word16 group
)

この関数は、キーペアの生成を含むグループからキーシェアエントリを作成します。Keyshareエクステンションには、鍵交換のための生成されたすべての公開鍵が含まれています。この関数が呼び出されると、指定されたグループのみが含まれます。優先グループがサーバーに対して以前に確立されているときにこの関数を呼び出します。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。
  • キー交換グループ識別子をグループ化します。

See:

Return:

  • BAD_FUNC_ARG SSLがNULLの場合
  • MEMORY_E 動的メモリ割り当てが失敗すると失敗すると。 Example
int ret;
WOLFSSL* ssl;
...
ret = wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X25519);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set key share
}

function wolfSSL_NoKeyShares

int wolfSSL_NoKeyShares(
    WOLFSSL * ssl
)

この関数は、ClientHelloで鍵共有が送信されないように呼び出されます。これにより、ハンドシェイクに鍵交換が必要な場合は、サーバーがHelloretryRequestで応答するように強制します。予想される鍵交換グループが知られておらず、キーの生成を不必要に回避するときにこの機能を呼び出します。鍵交換が必要なときにハンドシェイクを完了するために追加の往復が必要になることに注意してください。

Parameters:

  • SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。

See: wolfSSL_UseKeyShare

Return:

  • BAD_FUNC_ARG SSLがNULLの場合
  • SIDE_ERROR サーバーで呼び出された場合。 Example
int ret;
WOLFSSL* ssl;
...
ret = wolfSSL_NoKeyShares(ssl);
if (ret != WOLFSSL_SUCCESS) {
    // failed to set no key shares
}

function wolfTLSv1_3_server_method_ex

WOLFSSL_METHOD * wolfTLSv1_3_server_method_ex(
    void * heap
)

この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

Parameters:

  • ヒープ静的メモリ割り当て中に静的メモリ割り当て器が使用するバッファへのポインタを使用します。

See:

Return: If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 Example

#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_3_server_method_ex(NULL);
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_3_client_method_ex

WOLFSSL_METHOD * wolfTLSv1_3_client_method_ex(
    void * heap
)

この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

Parameters:

  • ヒープ静的メモリ割り当て中に静的メモリ割り当て器が使用するバッファへのポインタを使用します。

See:

Return: If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 Example

#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_3_client_method_ex(NULL);
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_3_server_method

WOLFSSL_METHOD * wolfTLSv1_3_server_method(
    void 
)

この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return: If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 Example

#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_3_server_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_3_client_method

WOLFSSL_METHOD * wolfTLSv1_3_client_method(
    void 
)

この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。

See:

Return: If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 Example

#include <wolfssl/ssl.h>

WOLFSSL_METHOD* method;
WOLFSSL_CTX* ctx;

method = wolfTLSv1_3_client_method();
if (method == NULL) {
    // unable to get method
}

ctx = wolfSSL_CTX_new(method);
...

function wolfTLSv1_3_method_ex

WOLFSSL_METHOD * wolfTLSv1_3_method_ex(
    void * heap
)

この関数は、まだどちらの側(サーバ/クライアント)を決定していないことを除いて、Wolftlsv1_3_client_methodと同様のwolfssl_methodを返します。

Parameters:

  • ヒープ静的メモリ割り当て中に静的メモリ割り当て器が使用するバッファへのポインタを使用します。

See:

Return: WOLFSSL_METHOD 成功した作成では、wolfssl_methodポインタを返します Example

WOLFSSL* ctx;
ctx  = wolfSSL_CTX_new(wolfTLSv1_3_method_ex(NULL));
// check ret value

function wolfTLSv1_3_method

WOLFSSL_METHOD * wolfTLSv1_3_method(
    void 
)

この関数は、まだどちらの側(サーバ/クライアント)を決定していないことを除いて、Wolftlsv1_3_client_methodと同様のwolfssl_methodを返します。

See:

Return: WOLFSSL_METHOD 成功した作成では、wolfssl_methodポインタを返します Example

WOLFSSL* ctx;
ctx  = wolfSSL_CTX_new(wolfTLSv1_3_method());
// check ret value

function wolfSSL_GetCookieCtx

void * wolfSSL_GetCookieCtx(
    WOLFSSL * ssl
)

この関数は、WolfSSL構造のIOCB_COOKIECTXメンバーを返します。

See:

Return:

  • pointer この関数は、iocb_cookiectxに格納されているvoidポインタ値を返します。
  • NULL WolfSSL構造体がNULLの場合 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
void* cookie;
...
cookie = wolfSSL_GetCookieCtx(ssl);
if(cookie != NULL){
// You have the cookie
}

function wolfSSL_SetIO_ISOTP

int wolfSSL_SetIO_ISOTP(
    WOLFSSL * ssl,
    isotp_wolfssl_ctx * ctx,
    can_recv_fn recv_fn,
    can_send_fn send_fn,
    can_delay_fn delay_fn,
    word32 receive_delay,
    char * receive_buffer,
    int receive_buffer_size,
    void * arg
)

この関数は、WolfSSLがWolfSSL_ISOTPでコンパイルされている場合に使用する場合は、WolfSSLの場合はISO-TPコンテキストを設定します。

Parameters:

  • ssl wolfsslコンテキスト
  • ctx ユーザーはこの関数が初期化されるISOTPコンテキストを作成しました
  • recv_fn ユーザーはバスを受信できます
  • send_fn ユーザーはバスを送ることができます
  • delay_fn ユーザーマイクロ秒の粒度遅延関数
  • receive_delay 各CANバスパケットを遅らせるためのマイクロ秒のセット数
  • receive_buffer ユーザーがデータを受信するためのバッファーが提供され、ISOTP_DEFAULT_BUFFER_SIZEバイトに割り当てられていることをお勧めします。
  • receive_buffer_size - receive_bufferのサイズ Example
struct can_info can_con_info;
isotp_wolfssl_ctx isotp_ctx;
char *receive_buffer = malloc(ISOTP_DEFAULT_BUFFER_SIZE);
WOLFSSL_CTX* ctx = wolfSSL_CTX_new(method);
WOLFSSL* ssl = wolfSSL_new(ctx);
...
wolfSSL_SetIO_ISOTP(ssl, &isotp_ctx, can_receive, can_send, can_delay, 0,
        receive_buffer, ISOTP_DEFAULT_BUFFER_SIZE, &can_con_info);

Return: 0 成功すると、故障のwolfssl_cbio_err_general


Updated on 2023-03-29 at 08:44:33 +0000