wolfio.h
Functions
Name | |
---|---|
int | EmbedReceive(WOLFSSL * ssl, char * buf, int sz, void * ctx) |
int | EmbedSend(WOLFSSL * ssl, char * buf, int sz, void * ctx) |
int | EmbedReceiveFrom(WOLFSSL * ssl, char * buf, int sz, void * ) |
int | EmbedSendTo(WOLFSSL * ssl, char * buf, int sz, void * ctx) |
int | EmbedGenerateCookie(WOLFSSL * ssl, unsigned char * buf, int sz, void * ) |
void | EmbedOcspRespFree(void * ctx, byte * resp) |
void | wolfSSL_CTX_SetIORecv(WOLFSSL_CTX * ctx, CallbackIORecv CBIORecv) データ。デフォルトでは、WolfSSLはシステムのTCP RECV()関数を使用するコールバックとしてEmbedReceive()を使用します。ユーザは、メモリ、他のネットワークモジュール、またはどこからでも入力するように機能を登録できます。関数の機能とエラーコードのためのガイドとして、src / io.cの埋め込みReceive()関数を参照してください。特に、データが準備ができていないときに、IO_ERR_WANT_READを非ブロック受信用に返す必要があります。 |
void | wolfSSL_SetIOReadCtx(WOLFSSL * ssl, void * ctx) コールバック関数デフォルトでは、WolfSSLは、WolfSSLがシステムのTCPライブラリを使用している場合、wolfssl_set_fd()に渡されたファイル記述子をコンテキストとして設定します。自分の受信コールバックを登録した場合は、セッションの特定のコンテキストを設定することができます。たとえば、メモリバッファを使用している場合、コンテキストは、メモリバッファーのどこにありかを説明する構造へのポインタであり得る。 |
void | wolfSSL_SetIOWriteCtx(WOLFSSL * ssl, void * ctx) コールバック関数デフォルトでは、WolfSSLは、WolfSSLがシステムのTCPライブラリを使用している場合、wolfssl_set_fd()に渡されたファイル記述子をコンテキストとして設定します。独自の送信コールバックを登録した場合は、セッションの特定のコンテキストを設定することができます。たとえば、メモリバッファを使用している場合、コンテキストは、メモリバッファーのどこにありかを説明する構造へのポインタであり得る。 |
void * | wolfSSL_GetIOReadCtx(WOLFSSL * ssl) この関数は、WolfSSL構造体のIOCB_READCTXメンバーを返します。 |
void * | wolfSSL_GetIOWriteCtx(WOLFSSL * ssl) この関数は、WolfSSL構造のIOCB_WRITECTXメンバーを返します。 |
void | wolfSSL_SetIOReadFlags(WOLFSSL * ssl, int flags) 与えられたSSLセッション受信コールバックは、デフォルトのwolfssl埋め込み受信コールバック、またはユーザによって指定されたカスタムコールバックであり得る(wolfssl_ctx_setiorecvを参照)。デフォルトのフラグ値は、WolfSSLによってwolfsslによって0の値に設定されます。デフォルトのWolfSSL受信コールバックはRECV()関数を使用してソケットからデータを受信します。 「Recv()」ページから:「Recv()関数へのflags引数は、1つ以上の値をOR処理するか、MSG_OOBプロセス帯域外データ、MSG_PEEK PEEK、MSG_PEEK PEEK、MSG_WAITALLがフルを待っています要求またはエラー。 MSG_OOBフラグは、通常のデータストリームで受信されないであろう帯域外データの受信を要求します。一部のプロトコルは通常のデータキューの先頭に迅速なデータを配置し、このフラグをそのようなプロトコルで使用することはできません。 MSG_PEEKフラグは、受信操作によって受信キューの先頭からのデータをキューから削除することなくデータを返します。したがって、以降の受信呼び出しは同じデータを返します。 MSG_WAITALLフラグは、完全な要求が満たされるまで操作ブロックを要求します。ただし、信号がキャッチされている場合は、呼び出し側よりも少ないデータが少なく、エラーまたは切断が発生するか、または受信されるデータが返されるものとは異なるタイプのデータを返します。 |
void | wolfSSL_SetIOWriteFlags(WOLFSSL * ssl, int flags) SSLセッションを考えると送信コールバックは、デフォルトのWolfSSL EmbedEndコールバック、またはユーザーによって指定されたカスタムコールバックのいずれかです(WolfSSL_CTX_SetiosEndを参照)。デフォルトのフラグ値は、wolfsslによって0の値に設定されます。デフォルトのWolfSSL Send Callbackはsend()関数を使用してソケットからデータを送信します。send()manページから: "flagsパラメータには、次のうち1つ以上が含まれていてもよい。フラグMSG_OOBは、この概念(例えばSOCK_STREAM)をサポートするソケットに「帯域外」データを送信するために使用される。基礎となるプロトコルは、「帯域外」のデータもサポートする必要があります。MSG_DONTROUTEは通常、診断プログラムまたはルーティングプログラムによってのみ使用されます。」 |
void | wolfSSL_SetIO_NetX(WOLFSSL * ssl, NX_TCP_SOCKET * nxsocket, ULONG waitoption) この関数は、wolfssl構造内のnxctx構造体のNxSocketメンバーとNXWAITメンバーを設定します。 |
void | wolfSSL_CTX_SetGenCookie(WOLFSSL_CTX * ctx, CallbackGenCookie cb) wolfssl_ctx構造CallBackGencookie Typeは関数ポインタで、署名:int(* callbackgencookie)(wolfssl * ssl、unsigned char * buf、int sz、void * ctx)を持っています。 |
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 EmbedReceive
int EmbedReceive(
WOLFSSL * ssl,
char * buf,
int sz,
void * ctx
)
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。
- buf バッファのチャーポインタ表現。
- sz バッファのサイズ。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL* ssl = wolfSSL_new(ctx);
char* buf;
int sz;
void* ctx;
int bytesRead = EmbedReceive(ssl, buf, sz, ctx);
if(bytesRead <= 0){
// There were no bytes read. Failure case.
}
See:
- EmbedSend
- wolfSSL_CTX_SetIORecv
- wolfSSL_SSLSetIORecv
Return:
- Success この関数は、読み取られたバイト数を返します。
- WOLFSSL_CBIO_ERR_WANT_READ 最後のエラーがsocket_ewouldbolcokまたはsocket_eagainであれば、メッセージを返されます。
- WOLFSSL_CBIO_ERR_TIMEOUT "Socket Timeout"メッセージを返しました。
- WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがsocket_econnresetの場合、 "Connection Reset"メッセージで返されます。
- WOLFSSL_CBIO_ERR_ISR 最後のエラーがsocket_eintrの場合、 "Socket Interrupted"メッセージが返されます。
- WOLFSSL_CBIO_ERR_WANT_READ 最後のエラーがsocket_econneRefusedの場合、「接続拒否」メッセージを返しました。
- WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがSOCKET_ECONNABORTEDの場合、「接続中止」メッセージで返されます。
- WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合は、「一般的なエラー」メッセージで返されます。
function EmbedSend
int EmbedSend(
WOLFSSL * ssl,
char * buf,
int sz,
void * ctx
)
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。
- buf バッファを表す文字ポインタ。
- sz バッファのサイズ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
char* buf;
int sz;
void* ctx;
int dSent = EmbedSend(ssl, buf, sz, ctx);
if(dSent <= 0){
// No byes sent. Failure case.
}
See:
- EmbedReceive
- wolfSSL_CTX_SetIOSend
- wolfSSL_SSLSetIOSend
Return:
- Success この関数は送信されたバイト数を返します。
- WOLFSSL_CBIO_ERR_WANT_WRITE 最後のエラーがsocket_ewouldblockまたはsocket_eagainであれば、 "Block"メッセージを返します。
- WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがsocket_econnresetの場合、 "Connection Reset"メッセージで返されます。
- WOLFSSL_CBIO_ERR_ISR 最後のエラーがsocket_eintrの場合、 "Socket Interrupted"メッセージが返されます。
- WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがsocket_epipeの場合、 "Socket Epipe"メッセージを返しました。
- WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合は、「一般的なエラー」メッセージで返されます。
function EmbedReceiveFrom
int EmbedReceiveFrom(
WOLFSSL * ssl,
char * buf,
int sz,
void *
)
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。
- buf バッファへの定数の文字ポインタ。
- sz バッファのサイズを表すint型。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL* ssl = WOLFSSL_new(ctx);
char* buf;
int sz = sizeof(buf)/sizeof(char);
(void*)ctx;
…
int nb = EmbedReceiveFrom(ssl, buf, sz, ctx);
if(nb > 0){
// nb is the number of bytes written and is positive
}
See:
- EmbedSendTo
- wolfSSL_CTX_SetIORecv
- wolfSSL_SSLSetIORecv
- wolfSSL_dtls_get_current_timeout
Return:
- Success この関数は、実行が成功した場合に読み込まれたNBバイトを返します。
- WOLFSSL_CBIO_ERR_WANT_READ 接続が拒否された場合、または「ブロック」エラーが発生した場合は機能にスローされました。
- WOLFSSL_CBIO_ERR_TIMEOUT ソケットがタイムアウトした場合は返されます。
- WOLFSSL_CBIO_ERR_CONN_RST 接続がリセットされている場合は返されます。
- WOLFSSL_CBIO_ERR_ISR ソケットが中断された場合は返されます。
- WOLFSSL_CBIO_ERR_GENERAL 一般的なエラーがあった場合に返されます。
function EmbedSendTo
int EmbedSendTo(
WOLFSSL * ssl,
char * buf,
int sz,
void * ctx
)
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。
- buf バッファを表す文字ポインタ。
- sz バッファのサイズ。 Example
WOLFSSL* ssl;
…
char* buf;
int sz;
void* ctx;
int sEmbed = EmbedSendto(ssl, buf, sz, ctx);
if(sEmbed <= 0){
// No bytes sent. Failure case.
}
See:
- EmbedReceiveFrom
- wolfSSL_CTX_SetIOSend
- wolfSSL_SSLSetIOSend
Return:
- Success この関数は送信されたバイト数を返します。
- WOLFSSL_CBIO_ERR_WANT_WRITE 最後のエラーがsocket_ewouldblockまたはsocket_eagainエラーの場合、 "Block"メッセージを返します。
- WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがsocket_econnresetの場合、 "Connection Reset"メッセージで返されます。
- WOLFSSL_CBIO_ERR_ISR 最後のエラーがsocket_eintrの場合、 "Socket Interrupted"メッセージが返されます。
- WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがwolfssl_cbio_err_conn_croseの場合、 "Socket Epipe"メッセージを返しました。
- WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合は、「一般的なエラー」メッセージで返されます。
function EmbedGenerateCookie
int EmbedGenerateCookie(
WOLFSSL * ssl,
unsigned char * buf,
int sz,
void *
)
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。
- buf バッファを表すバイトポインタ。xmemcpy()からの宛先です。
- sz バッファのサイズ。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
byte buffer[BUFFER_SIZE];
int sz = sizeof(buffer)/sizeof(byte);
void* ctx;
…
int ret = EmbedGenerateCookie(ssl, buffer, sz, ctx);
if(ret > 0){
// EmbedGenerateCookie code block for success
}
Return:
- Success この関数は、バッファにコピーされたバイト数を返します。
- GEN_COOKIE_E getPeernameがEmbedGenerateCookieに失敗した場合に返されます。
function EmbedOcspRespFree
void EmbedOcspRespFree(
void * ctx,
byte * resp
)
Parameters:
- ctx ヒープヒントへのvoidポインタ。 Example
void* ctx;
byte* resp; // Response buffer.
…
EmbedOcspRespFree(ctx, resp);
See:
Return: none いいえ返します。
function wolfSSL_CTX_SetIORecv
void wolfSSL_CTX_SetIORecv(
WOLFSSL_CTX * ctx,
CallbackIORecv CBIORecv
)
データ。デフォルトでは、WolfSSLはシステムのTCP RECV()関数を使用するコールバックとしてEmbedReceive()を使用します。ユーザは、メモリ、他のネットワークモジュール、またはどこからでも入力するように機能を登録できます。関数の機能とエラーコードのためのガイドとして、src / io.cの埋め込みReceive()関数を参照してください。特に、データが準備ができていないときに、IO_ERR_WANT_READを非ブロック受信用に返す必要があります。
Parameters:
- ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 Example
WOLFSSL_CTX* ctx = 0;
// Receive callback prototype
int MyEmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx);
// Register the custom receive callback with wolfSSL
wolfSSL_CTX_SetIORecv(ctx, MyEmbedReceive);
int MyEmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx)
{
// custom EmbedReceive function
}
See:
- wolfSSL_CTX_SetIOSend
- wolfSSL_SetIOReadCtx
- wolfSSL_SetIOWriteCtx
Return: none いいえ返します。
function wolfSSL_SetIOReadCtx
void wolfSSL_SetIOReadCtx(
WOLFSSL * ssl,
void * ctx
)
コールバック関数デフォルトでは、WolfSSLは、WolfSSLがシステムのTCPライブラリを使用している場合、wolfssl_set_fd()に渡されたファイル記述子をコンテキストとして設定します。自分の受信コールバックを登録した場合は、セッションの特定のコンテキストを設定することができます。たとえば、メモリバッファを使用している場合、コンテキストは、メモリバッファーのどこにありかを説明する構造へのポインタであり得る。
Parameters:
- ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
int sockfd;
WOLFSSL* ssl = 0;
...
// Manually setting the socket fd as the receive CTX, for example
wolfSSL_SetIOReadCtx(ssl, &sockfd);
...
See:
- wolfSSL_CTX_SetIORecv
- wolfSSL_CTX_SetIOSend
- wolfSSL_SetIOWriteCtx
Return: none いいえ返します。
function wolfSSL_SetIOWriteCtx
void wolfSSL_SetIOWriteCtx(
WOLFSSL * ssl,
void * ctx
)
コールバック関数デフォルトでは、WolfSSLは、WolfSSLがシステムのTCPライブラリを使用している場合、wolfssl_set_fd()に渡されたファイル記述子をコンテキストとして設定します。独自の送信コールバックを登録した場合は、セッションの特定のコンテキストを設定することができます。たとえば、メモリバッファを使用している場合、コンテキストは、メモリバッファーのどこにありかを説明する構造へのポインタであり得る。
Parameters:
- ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
int sockfd;
WOLFSSL* ssl = 0;
...
// Manually setting the socket fd as the send CTX, for example
wolfSSL_SetIOWriteCtx(ssl, &sockfd);
...
See:
- wolfSSL_CTX_SetIORecv
- wolfSSL_CTX_SetIOSend
- wolfSSL_SetIOReadCtx
Return: none いいえ返します。
function wolfSSL_GetIOReadCtx
void * wolfSSL_GetIOReadCtx(
WOLFSSL * ssl
)
この関数は、WolfSSL構造体のIOCB_READCTXメンバーを返します。
See:
- wolfSSL_GetIOWriteCtx
- wolfSSL_SetIOReadFlags
- wolfSSL_SetIOWriteCtx
- wolfSSL_SetIOReadCtx
- wolfSSL_CTX_SetIOSend
Return:
- pointer この関数は、wolfssl構造体のiocb_readctxメンバーへのvoidポインタを返します。
- NULL wolfssl構造体がNULLの場合に返されます。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
void* ioRead;
...
ioRead = wolfSSL_GetIOReadCtx(ssl);
if(ioRead == NULL){
// Failure case. The ssl object was NULL.
}
function wolfSSL_GetIOWriteCtx
void * wolfSSL_GetIOWriteCtx(
WOLFSSL * ssl
)
この関数は、WolfSSL構造のIOCB_WRITECTXメンバーを返します。
See:
- wolfSSL_GetIOReadCtx
- wolfSSL_SetIOWriteCtx
- wolfSSL_SetIOReadCtx
- wolfSSL_CTX_SetIOSend
Return:
- pointer この関数は、WolfSSL構造のIOCB_WRITECTXメンバーへのvoidポインタを返します。
- NULL wolfssl構造体がNULLの場合に返されます。 Example
WOLFSSL* ssl;
void* ioWrite;
...
ioWrite = wolfSSL_GetIOWriteCtx(ssl);
if(ioWrite == NULL){
// The function returned NULL.
}
function wolfSSL_SetIOReadFlags
void wolfSSL_SetIOReadFlags(
WOLFSSL * ssl,
int flags
)
与えられたSSLセッション受信コールバックは、デフォルトのwolfssl埋め込み受信コールバック、またはユーザによって指定されたカスタムコールバックであり得る(wolfssl_ctx_setiorecvを参照)。デフォルトのフラグ値は、WolfSSLによってwolfsslによって0の値に設定されます。デフォルトのWolfSSL受信コールバックはRECV()関数を使用してソケットからデータを受信します。 「Recv()」ページから:「Recv()関数へのflags引数は、1つ以上の値をOR処理するか、MSG_OOBプロセス帯域外データ、MSG_PEEK PEEK、MSG_PEEK PEEK、MSG_WAITALLがフルを待っています要求またはエラー。 MSG_OOBフラグは、通常のデータストリームで受信されないであろう帯域外データの受信を要求します。一部のプロトコルは通常のデータキューの先頭に迅速なデータを配置し、このフラグをそのようなプロトコルで使用することはできません。 MSG_PEEKフラグは、受信操作によって受信キューの先頭からのデータをキューから削除することなくデータを返します。したがって、以降の受信呼び出しは同じデータを返します。 MSG_WAITALLフラグは、完全な要求が満たされるまで操作ブロックを要求します。ただし、信号がキャッチされている場合は、呼び出し側よりも少ないデータが少なく、エラーまたは切断が発生するか、または受信されるデータが返されるものとは異なるタイプのデータを返します。
Parameters:
- ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
WOLFSSL* ssl = 0;
...
// Manually setting recv flags to 0
wolfSSL_SetIOReadFlags(ssl, 0);
...
See:
- wolfSSL_CTX_SetIORecv
- wolfSSL_CTX_SetIOSend
- wolfSSL_SetIOReadCtx
Return: none いいえ返します。
function wolfSSL_SetIOWriteFlags
void wolfSSL_SetIOWriteFlags(
WOLFSSL * ssl,
int flags
)
SSLセッションを考えると送信コールバックは、デフォルトのWolfSSL EmbedEndコールバック、またはユーザーによって指定されたカスタムコールバックのいずれかです(WolfSSL_CTX_SetiosEndを参照)。デフォルトのフラグ値は、wolfsslによって0の値に設定されます。デフォルトのWolfSSL Send Callbackはsend()関数を使用してソケットからデータを送信します。send()manページから: "flagsパラメータには、次のうち1つ以上が含まれていてもよい。フラグMSG_OOBは、この概念(例えばSOCK_STREAM)をサポートするソケットに「帯域外」データを送信するために使用される。基礎となるプロトコルは、「帯域外」のデータもサポートする必要があります。MSG_DONTROUTEは通常、診断プログラムまたはルーティングプログラムによってのみ使用されます。」
Parameters:
- ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 Example
WOLFSSL* ssl = 0;
...
// Manually setting send flags to 0
wolfSSL_SetIOWriteFlags(ssl, 0);
...
See:
- wolfSSL_CTX_SetIORecv
- wolfSSL_CTX_SetIOSend
- wolfSSL_SetIOReadCtx
Return: none いいえ返します。
function wolfSSL_SetIO_NetX
void wolfSSL_SetIO_NetX(
WOLFSSL * ssl,
NX_TCP_SOCKET * nxsocket,
ULONG waitoption
)
この関数は、wolfssl構造内のnxctx構造体のNxSocketメンバーとNXWAITメンバーを設定します。
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。
- nxSocket NXCTX構造のNXSOCTOCKメンバーに設定されているNX_TCP_SOCKETを入力するためのポインタ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
NX_TCP_SOCKET* nxSocket;
ULONG waitOption;
…
if(ssl != NULL || nxSocket != NULL || waitOption <= 0){
wolfSSL_SetIO_NetX(ssl, nxSocket, waitOption);
} else {
// You need to pass in good parameters.
}
See:
- set_fd
- NetX_Send
- NetX_Receive
Return: none いいえ返します。
function wolfSSL_CTX_SetGenCookie
void wolfSSL_CTX_SetGenCookie(
WOLFSSL_CTX * ctx,
CallbackGenCookie cb
)
wolfssl_ctx構造CallBackGencookie Typeは関数ポインタで、署名:int(* callbackgencookie)(wolfssl * ssl、unsigned char * buf、int sz、void * ctx)を持っています。
Parameters:
- ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
…
int SetGenCookieCB(WOLFSSL* ssl, unsigned char* buf, int sz, void* ctx){
// Callback function body.
}
…
wolfSSL_CTX_SetGenCookie(ssl->ctx, SetGenCookieCB);
See: CallbackGenCookie
Return: none いいえ返します。
function wolfSSL_GetCookieCtx
void * wolfSSL_GetCookieCtx(
WOLFSSL * ssl
)
この関数は、WolfSSL構造のIOCB_COOKIECTXメンバーを返します。
See:
- wolfSSL_SetCookieCtx
- wolfSSL_CTX_SetGenCookie
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
Source code
int EmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx);
int EmbedSend(WOLFSSL* ssl, char* buf, int sz, void* ctx);
int EmbedReceiveFrom(WOLFSSL* ssl, char* buf, int sz, void*);
int EmbedSendTo(WOLFSSL* ssl, char* buf, int sz, void* ctx);
int EmbedGenerateCookie(WOLFSSL* ssl, unsigned char* buf,
int sz, void*);
void EmbedOcspRespFree(void* ctx, byte* resp);
void wolfSSL_CTX_SetIORecv(WOLFSSL_CTX* ctx, CallbackIORecv CBIORecv);
void wolfSSL_SetIOReadCtx( WOLFSSL* ssl, void *ctx);
void wolfSSL_SetIOWriteCtx(WOLFSSL* ssl, void *ctx);
void* wolfSSL_GetIOReadCtx( WOLFSSL* ssl);
void* wolfSSL_GetIOWriteCtx(WOLFSSL* ssl);
void wolfSSL_SetIOReadFlags( WOLFSSL* ssl, int flags);
void wolfSSL_SetIOWriteFlags(WOLFSSL* ssl, int flags);
void wolfSSL_SetIO_NetX(WOLFSSL* ssl, NX_TCP_SOCKET* nxsocket,
ULONG waitoption);
void wolfSSL_CTX_SetGenCookie(WOLFSSL_CTX* ctx, CallbackGenCookie cb);
void* wolfSSL_GetCookieCtx(WOLFSSL* ssl);
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);
Updated on 2024-11-21 at 02:35:59 +0000