コンテンツにスキップ

wolfSSLエラー処理と報告

Functions

Name
int wolfSSL_Debugging_ON(void )
ビルド時にロギングが有効になっている場合、この関数は実行時にロギングを有効にします。ビルド時にロギングを有効にするには、–enable-debugを使用するか、DEBUG_WOLFSSLを定義します。
void wolfSSL_Debugging_OFF(void )
この関数は、実行時のロギングメッセージを無効にします。既に無効になっている場合、何も行われません。
int wolfSSL_get_error(WOLFSSL * ssl, int ret)
この関数は、前回のAPI関数呼び出し(wolfSSL_connect、wolfSSL_accept、wolfSSL_read、wolfSSL_write等)がエラーリターンコード(SSL_FAILURE)になった理由を説明する一意のエラーコードを返します。前回の関数の戻り値は、retを通じてwolfSSL_get_errorに渡されます。wolfSSL_get_errorが呼び出されて一意のエラーコードを返した後、wolfSSL_ERR_error_string()を呼び出して、人間が読めるエラー文字列を取得できます。詳細については、wolfSSL_ERR_error_string()を参照してください。
void wolfSSL_load_error_strings(void )
この関数はOpenSSL互換性(SSL_load_error_string)のためのものであり、何も動作を行いません。
char * wolfSSL_ERR_error_string(unsigned long errNumber, char * data)
この関数はwolfSSL_get_error()によって返されたエラーコードを、より人間が読みやすいエラー文字列に変換します。errNumberはwolfSSL_get_error()によって返されたエラーコードであり、dataはエラー文字列が配置される格納バッファです。dataの最大長はデフォルトで80文字であり、wolfssl/wolfcrypt/error.hのMAX_ERROR_SZで定義されています。
void wolfSSL_ERR_error_string_n(unsigned long e, char * buf, unsigned long len)
この関数はwolfSSL_ERR_error_string()のバージョンであり、lenはbufに書き込まれる最大文字数を指定します。wolfSSL_ERR_error_string()と同様に、この関数はwolfSSL_get_error()から返されたエラーコードをより人間が読みやすいエラー文字列に変換します。人間が読みやすい文字列はbufに配置されます。
void wolfSSL_ERR_print_errors_fp(XFILE fp, int err)
この関数は、wolfSSL_get_error()によって返されたエラーコードを、より人間が読みやすいエラー文字列に変換し、その文字列を出力ファイルfpに出力します。errはwolfSSL_get_error()によって返されたエラーコードであり、fpはエラー文字列が配置されるファイルです。
void wolfSSL_ERR_print_errors_cb(int()(const char str, size_t len, void *u) cb, void * u)
この関数は、提供されたコールバックを使用してエラーレポートを処理します。コールバック関数は、各エラー行に対して実行されます。文字列、長さ、およびユーザデータがコールバックパラメータに渡されます。
int wolfSSL_want_read(WOLFSSL * )
この関数は、wolfSSL_get_error()を呼び出してSSL_ERROR_WANT_READが返される場合と同様です。基礎となるエラー状態がSSL_ERROR_WANT_READの場合、この関数は1を返し、それ以外の場合は0を返します。
int wolfSSL_want_write(WOLFSSL * )
この関数は、wolfSSL_get_error()を呼び出してSSL_ERROR_WANT_WRITEが返される場合と同様です。基礎となるエラー状態がSSL_ERROR_WANT_WRITEの場合、この関数は1を返し、それ以外の場合は0を返します。
unsigned long wolfSSL_ERR_peek_last_error(void )
この関数は、WOLFSSL_ERRORから発生した最後のエラーの絶対値を返します。

Functions Documentation

function wolfSSL_Debugging_ON

int wolfSSL_Debugging_ON(
    void 
)

ビルド時にロギングが有効になっている場合、この関数は実行時にロギングを有効にします。ビルド時にロギングを有効にするには、–enable-debugを使用するか、DEBUG_WOLFSSLを定義します。

Parameters:

  • none パラメータなし。

See:

Return:

  • 0 成功時。
  • NOT_COMPILED_IN このビルドでロギングが有効になっていない場合に返されるエラーです。

Example

wolfSSL_Debugging_ON();

function wolfSSL_Debugging_OFF

void wolfSSL_Debugging_OFF(
    void 
)

この関数は、実行時のロギングメッセージを無効にします。既に無効になっている場合、何も行われません。

Parameters:

  • none パラメータなし。

See:

Return: none 戻り値なし。

Example

wolfSSL_Debugging_OFF();

function wolfSSL_get_error

int wolfSSL_get_error(
    WOLFSSL * ssl,
    int ret
)

この関数は、前回のAPI関数呼び出し(wolfSSL_connect、wolfSSL_accept、wolfSSL_read、wolfSSL_write等)がエラーリターンコード(SSL_FAILURE)になった理由を説明する一意のエラーコードを返します。前回の関数の戻り値は、retを通じてwolfSSL_get_errorに渡されます。wolfSSL_get_errorが呼び出されて一意のエラーコードを返した後、wolfSSL_ERR_error_string()を呼び出して、人間が読めるエラー文字列を取得できます。詳細については、wolfSSL_ERR_error_string()を参照してください。

Parameters:

  • ssl wolfSSL_new()で作成されたSSLオブジェクトへのポインタ。
  • ret エラーリターンコードになった前回の関数の戻り値。

See:

Return:

  • 正常に完了した場合、この関数は前回のAPI関数が失敗した理由を説明する一意のエラーコードを返します。
  • SSL_ERROR_NONEは、ret > 0の場合に返されます。ret <= 0の場合、前回のAPIがエラーコードを返したように見えても実際にはエラーが発生していなかった場合に、この値が返されることがあります。例えば、szパラメータがゼロのwolfSSL_read()を呼び出した場合です。wolfSSL_read()からの0の戻り値は通常エラーを示しますが、この場合はエラーは発生していません。その後wolfSSL_get_error()を呼び出すと、SSL_ERROR_NONEが返されます。

Example

int err = 0;
WOLFSSL* ssl;
char buffer[80];
...
err = wolfSSL_get_error(ssl, 0);
wolfSSL_ERR_error_string(err, buffer);
printf("err = %d, %s\n", err, buffer);

function wolfSSL_load_error_strings

void wolfSSL_load_error_strings(
    void 
)

この関数はOpenSSL互換性(SSL_load_error_string)のためのものであり、何も動作を行いません。

Parameters:

  • none パラメータはありません。

See:

Return: none 返り値はありません。

Example

wolfSSL_load_error_strings();

function wolfSSL_ERR_error_string

char * wolfSSL_ERR_error_string(
    unsigned long errNumber,
    char * data
)

この関数はwolfSSL_get_error()によって返されたエラーコードを、より人間が読みやすいエラー文字列に変換します。errNumberはwolfSSL_get_error()によって返されたエラーコードであり、dataはエラー文字列が配置される格納バッファです。dataの最大長はデフォルトで80文字であり、wolfssl/wolfcrypt/error.hのMAX_ERROR_SZで定義されています。

Parameters:

  • errNumber wolfSSL_get_error()によって返されたエラーコード。
  • data errNumberに一致する人間が読みやすいエラー文字列を含む出力バッファ。

See:

Return:

  • success 正常に完了した場合、この関数はdataで返されるのと同じ文字列を返します。
  • failure 失敗時には、この関数は適切な失敗理由msgを含む文字列を返します。

Example

int err = 0;
WOLFSSL* ssl;
char buffer[80];
...
err = wolfSSL_get_error(ssl, 0);
wolfSSL_ERR_error_string(err, buffer);
printf("err = %d, %s\n", err, buffer);

function wolfSSL_ERR_error_string_n

void wolfSSL_ERR_error_string_n(
    unsigned long e,
    char * buf,
    unsigned long len
)

この関数はwolfSSL_ERR_error_string()のバージョンであり、lenはbufに書き込まれる最大文字数を指定します。wolfSSL_ERR_error_string()と同様に、この関数はwolfSSL_get_error()から返されたエラーコードをより人間が読みやすいエラー文字列に変換します。人間が読みやすい文字列はbufに配置されます。

Parameters:

  • e wolfSSL_get_error()によって返されたエラーコード。
  • buff eに一致する人間が読みやすいエラー文字列を含む出力バッファ。
  • len bufに書き込まれる最大文字数。

See:

Return: none 返り値はありません。

Example

int err = 0;
WOLFSSL* ssl;
char buffer[80];
...
err = wolfSSL_get_error(ssl, 0);
wolfSSL_ERR_error_string_n(err, buffer, 80);
printf("err = %d, %s\n", err, buffer);

function wolfSSL_ERR_print_errors_fp

void wolfSSL_ERR_print_errors_fp(
    XFILE fp,
    int err
)

この関数は、wolfSSL_get_error()によって返されたエラーコードを、より人間が読みやすいエラー文字列に変換し、その文字列を出力ファイルfpに出力します。errはwolfSSL_get_error()によって返されたエラーコードであり、fpはエラー文字列が配置されるファイルです。

Parameters:

  • fp 人間が読みやすいエラー文字列が書き込まれる出力ファイル。
  • err wolfSSL_get_error()によって返されたエラーコード。

See:

Return: none 戻り値なし。

Example

int err = 0;
WOLFSSL* ssl;
FILE* fp = ...
...
err = wolfSSL_get_error(ssl, 0);
wolfSSL_ERR_print_errors_fp(fp, err);

function wolfSSL_ERR_print_errors_cb

void wolfSSL_ERR_print_errors_cb(
    int(*)(const char *str, size_t len, void *u) cb,
    void * u
)

この関数は、提供されたコールバックを使用してエラーレポートを処理します。コールバック関数は、各エラー行に対して実行されます。文字列、長さ、およびユーザデータがコールバックパラメータに渡されます。

Parameters:

  • cb コールバック関数。
  • u コールバック関数に渡すユーザデータ。

See:

Return: none 戻り値なし。

Example

int error_cb(const char *str, size_t len, void *u)
{ fprintf((FILE*)u, "%-*.*s\n", (int)len, (int)len, str); return 0; }
...
FILE* fp = ...
wolfSSL_ERR_print_errors_cb(error_cb, fp);

function wolfSSL_want_read

int wolfSSL_want_read(
    WOLFSSL * 
)

この関数は、wolfSSL_get_error()を呼び出してSSL_ERROR_WANT_READが返される場合と同様です。基礎となるエラー状態がSSL_ERROR_WANT_READの場合、この関数は1を返し、それ以外の場合は0を返します。

Parameters:

  • ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。

See:

Return:

  • 1 wolfSSL_get_error()がSSL_ERROR_WANT_READを返す場合。基礎となるI/Oに読み取り可能なデータがあります。
  • 0 SSL_ERROR_WANT_READエラー状態がない場合。

Example

int ret;
WOLFSSL* ssl = 0;
...

ret = wolfSSL_want_read(ssl);
if (ret == 1) {
    // 基礎となるI/Oに読み取り可能なデータがあります(SSL_ERROR_WANT_READ)
}

function wolfSSL_want_write

int wolfSSL_want_write(
    WOLFSSL * 
)

この関数は、wolfSSL_get_error()を呼び出してSSL_ERROR_WANT_WRITEが返される場合と同様です。基礎となるエラー状態がSSL_ERROR_WANT_WRITEの場合、この関数は1を返し、それ以外の場合は0を返します。

Parameters:

  • ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。

See:

Return:

  • 1 wolfSSL_get_error()がSSL_ERROR_WANT_WRITEを返す場合。基礎となるSSL接続で進行するために、基礎となるI/Oにデータを書き込む必要があります。
  • 0 SSL_ERROR_WANT_WRITEエラー状態がない場合。

Example

int ret;
WOLFSSL* ssl = 0;
...
ret = wolfSSL_want_write(ssl);
if (ret == 1) {
    // 基礎となるI/Oにデータを書き込む必要があります(SSL_ERROR_WANT_WRITE)
}

function wolfSSL_ERR_peek_last_error

unsigned long wolfSSL_ERR_peek_last_error(
    void 
)

この関数は、WOLFSSL_ERRORから発生した最後のエラーの絶対値を返します。

Parameters:

  • none パラメータはありません。

See: wolfSSL_ERR_print_errors_fp

Return: error 最後のエラーの絶対値を返します。

Example

unsigned long err;
...
err = wolfSSL_ERR_peek_last_error();
// err値を検査

Updated on 2025-12-12 at 03:08:16 +0000