コンテンツにスキップ

証明書マネージャーAPI

Functions

Name
WOLFSSL_CERT_MANAGER * wolfSSL_CertManagerNew_ex(void * heap)
新しい証明書マネージャーコンテキストを割り当て、初期化します。このコンテキストはSSLの必要性とは独立して使用できます。証明書のロード、証明書の検証、失効ステータスのチェックに使用できます。
WOLFSSL_CERT_MANAGER * wolfSSL_CertManagerNew(void )
新しい証明書マネージャーコンテキストを割り当て、初期化します。このコンテキストはSSLの必要性とは独立して使用できます。証明書のロード、証明書の検証、失効ステータスのチェックに使用できます。
void wolfSSL_CertManagerFree(WOLFSSL_CERT_MANAGER * )
証明書マネージャーコンテキストに関連するすべてのリソースを解放します。証明書マネージャーを使用する必要がなくなったときにこれを呼び出します。
int wolfSSL_CertManagerLoadCA(WOLFSSL_CERT_MANAGER * cm, const char * f, const char * d)
マネージャーコンテキストへのCA証明書ロードの場所を指定します。PEM証明書CAfileには複数の信頼されたCA証明書を含めることができます。CApathがNULLでない場合、PEM形式のCA証明書を含むディレクトリを指定します。
int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER * cm, const unsigned char * in, long sz, int format)
wolfSSL_CTX_load_verify_bufferを呼び出し、関数に渡されたcmの情報を失わないように一時的なcmを使用してその結果を返すことで、CAバッファをロードします。
int wolfSSL_CertManagerUnloadCAs(WOLFSSL_CERT_MANAGER * cm)
この関数はCA署名者リストをアンロードします。
int wolfSSL_CertManagerUnloadIntermediateCerts(WOLFSSL_CERT_MANAGER * cm)
この関数はCA署名者リストに追加された中間証明書をアンロードします。
int wolfSSL_CertManagerUnload_trust_peers(WOLFSSL_CERT_MANAGER * cm)
この関数は、Trusted Peerリンクリストを解放し、トラステッドピアリストのロックを解除します。
int wolfSSL_CertManagerVerify(WOLFSSL_CERT_MANAGER * cm, const char * f, int format)
Certificate Managerコンテキストで検証する証明書を指定します。フォーマットはSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1を指定できます。
int wolfSSL_CertManagerVerifyBuffer(WOLFSSL_CERT_MANAGER * cm, const unsigned char * buff, long sz, int format)
Certificate Managerコンテキストで検証する証明書バッファを指定します。フォーマットはSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1を指定できます。
void wolfSSL_CertManagerSetVerify(WOLFSSL_CERT_MANAGER * cm, VerifyCallback verify_callback)
この関数は、Certificate Manager内にverifyCallback関数を設定します。存在する場合、ロードされた各証明書に対して呼び出されます。検証エラーがある場合、verify callbackを使用してエラーをオーバーライドできます。
int wolfSSL_CertManagerEnableCRL(WOLFSSL_CERT_MANAGER * cm, int options)
Certificate Managerで証明書を検証する際に、Certificate Revocation Listチェックをオンにします。デフォルトでは、CRLチェックはオフです。optionsには、リーフ証明書のみ(デフォルト)ではなくチェーン内の各証明書に対してCRLチェックを実行するWOLFSSL_CRL_CHECKALLが含まれます。
int wolfSSL_CertManagerDisableCRL(WOLFSSL_CERT_MANAGER * )
Certificate Managerで証明書を検証する際に、Certificate Revocation Listチェックをオフにします。デフォルトでは、CRLチェックはオフです。この関数を使用して、以前にCRLチェックを有効にしていたこのCertificate Managerコンテキストに対して、CRLチェックを一時的または永続的に無効にできます。
int wolfSSL_CertManagerLoadCRL(WOLFSSL_CERT_MANAGER * cm, const char * path, int type, int monitor)
エラーチェックを行い、LoadCRL()に渡して失効チェックのためにCRLに証明書をロードします。更新されたCRLをロードするには、まずwolfSSL_CertManagerFreeCRLを呼び出してから、新しいCRLをロードします。
int wolfSSL_CertManagerLoadCRLBuffer(WOLFSSL_CERT_MANAGER * cm, const unsigned char * buff, long sz, int type)
この関数は、BufferLoadCRLを呼び出してCRLファイルをロードします。
int wolfSSL_CertManagerSetCRL_Cb(WOLFSSL_CERT_MANAGER * cm, CbMissingCRL cb)
この関数は、CRL Certificate Managerコールバックを設定します。HAVE_CRLが定義されており、一致するCRLレコードが見つからない場合、cbMissingCRLが呼び出されます(wolfSSL_CertManagerSetCRL_Cbで設定)。これにより、外部からCRLを取得してロードできます。
int wolfSSL_CertManagerSetCRLUpdate_Cb(WOLFSSL_CERT_MANAGER * cm, CbUpdateCRL cb)
この関数は、CRL更新コールバックを設定します。HAVE_CRLとHAVE_CRL_UPDATE_CBが定義されており、CRLが追加されるときに同じ発行者でより低いCRL番号を持つエントリが存在する場合、既存のエントリと、それを置き換える新しいエントリの詳細と共にCbUpdateCRLが呼び出されます。
int wolfSSL_CertManagerGetCRLInfo(WOLFSSL_CERT_MANAGER * cm, CrlInfo * info, const byte * buff, long sz, int type)
この関数は、エンコードされたCRLバッファから解析されたCRL情報を含む構造体を生成します。
int wolfSSL_CertManagerCheckOCSP(WOLFSSL_CERT_MANAGER * cm, unsigned char * der, int sz)
この関数は、WOLFSSL_CERT_MANAGERのメンバであるocspEnabledを有効にして、OCSPチェックオプションが有効になっていることを示します。
int wolfSSL_CertManagerEnableOCSP(WOLFSSL_CERT_MANAGER * cm, int options)
OCSPがオフになっている場合にオンにし、設定オプションでコンパイルされている場合に有効にします。
int wolfSSL_CertManagerDisableOCSP(WOLFSSL_CERT_MANAGER * )
OCSP証明書失効を無効にします。
int wolfSSL_CertManagerSetOCSPOverrideURL(WOLFSSL_CERT_MANAGER * cm, const char * url)
この関数は、URLをWOLFSSL_CERT_MANAGER構造体のocspOverrideURLメンバにコピーします。
int wolfSSL_CertManagerSetOCSP_Cb(WOLFSSL_CERT_MANAGER * cm, CbOCSPIO ioCb, CbOCSPRespFree respFreeCb, void * ioCbCtx)
この関数は、WOLFSSL_CERT_MANAGER内のOCSPコールバックを設定します。
int wolfSSL_CertManagerEnableOCSPStapling(WOLFSSL_CERT_MANAGER * cm)
この関数は、OCSPステープリングがオンになっていない場合にオンにし、オプションを設定します。

Functions Documentation

function wolfSSL_CertManagerNew_ex

WOLFSSL_CERT_MANAGER * wolfSSL_CertManagerNew_ex(
    void * heap
)

新しい証明書マネージャーコンテキストを割り当て、初期化します。このコンテキストはSSLの必要性とは独立して使用できます。証明書のロード、証明書の検証、失効ステータスのチェックに使用できます。

Parameters:

  • none パラメータなし。

See: wolfSSL_CertManagerFree

Return:

  • WOLFSSL_CERT_MANAGER 成功した場合、呼び出しは有効なWOLFSSL_CERT_MANAGERポインタを返します。
  • NULL エラー状態の場合に返されます。

function wolfSSL_CertManagerNew

WOLFSSL_CERT_MANAGER * wolfSSL_CertManagerNew(
    void 
)

新しい証明書マネージャーコンテキストを割り当て、初期化します。このコンテキストはSSLの必要性とは独立して使用できます。証明書のロード、証明書の検証、失効ステータスのチェックに使用できます。

Parameters:

  • none パラメータなし。

See: wolfSSL_CertManagerFree

Return:

  • WOLFSSL_CERT_MANAGER 成功した場合、呼び出しは有効なWOLFSSL_CERT_MANAGERポインタを返します。
  • NULL エラー状態の場合に返されます。

Example

#import <wolfssl/ssl.h>

WOLFSSL_CERT_MANAGER* cm;
cm = wolfSSL_CertManagerNew();
if (cm == NULL) {
    // 新しい証明書マネージャーの作成エラー
}

function wolfSSL_CertManagerFree

void wolfSSL_CertManagerFree(
    WOLFSSL_CERT_MANAGER * 
)

証明書マネージャーコンテキストに関連するすべてのリソースを解放します。証明書マネージャーを使用する必要がなくなったときにこれを呼び出します。

Parameters:

See: wolfSSL_CertManagerNew

Return: none 戻り値なし。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CERT_MANAGER* cm;
...
wolfSSL_CertManagerFree(cm);

function wolfSSL_CertManagerLoadCA

int wolfSSL_CertManagerLoadCA(
    WOLFSSL_CERT_MANAGER * cm,
    const char * f,
    const char * d
)

マネージャーコンテキストへのCA証明書ロードの場所を指定します。PEM証明書CAfileには複数の信頼されたCA証明書を含めることができます。CApathがNULLでない場合、PEM形式のCA証明書を含むディレクトリを指定します。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • file ロードするCA証明書を含むファイル名へのポインタ。
  • path ロードするCA証明書を含むディレクトリパスの名前へのポインタ。証明書ディレクトリが不要な場合はNULLポインタを使用できます。

See: wolfSSL_CertManagerVerify

Return:

  • SSL_SUCCESS 成功した場合に返されます。
  • SSL_BAD_FILETYPE ファイルの形式が間違っている場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない、読み取れない、または破損している場合に返されます。
  • MEMORY_E メモリ不足の状態が発生した場合に返されます。
  • ASN_INPUT_E ファイルのBase16デコードが失敗した場合に返されます。
  • BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラーです。
  • SSL_FATAL_ERROR 失敗時に返されます。

Example

#include <wolfssl/ssl.h>

int ret = 0;
WOLFSSL_CERT_MANAGER* cm;
...
ret = wolfSSL_CertManagerLoadCA(cm, "path/to/cert-file.pem", 0);
if (ret != SSL_SUCCESS) {
    // 証明書マネージャーへのCA証明書のロードエラー
}

function wolfSSL_CertManagerLoadCABuffer

int wolfSSL_CertManagerLoadCABuffer(
    WOLFSSL_CERT_MANAGER * cm,
    const unsigned char * in,
    long sz,
    int format
)

wolfSSL_CTX_load_verify_bufferを呼び出し、関数に渡されたcmの情報を失わないように一時的なcmを使用してその結果を返すことで、CAバッファをロードします。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • in 証明書情報のバッファ。
  • sz バッファの長さ。
  • format 証明書の形式、PEMまたはDER。

See:

Return:

  • SSL_FATAL_ERROR WOLFSSL_CERT_MANAGER構造体がNULL、またはwolfSSL_CTX_new()がNULLを返した場合に返されます。
  • SSL_SUCCESS 正常に実行された場合に返されます。

Example

WOLFSSL_CERT_MANAGER* cm = (WOLFSSL_CERT_MANAGER*)vp;
…
const unsigned char* in;
long sz;
int format;
…
if(wolfSSL_CertManagerLoadCABuffer(vp, sz, format) != SSL_SUCCESS){
    // エラーが返されました。失敗ケースのコードブロック。
}

function wolfSSL_CertManagerUnloadCAs

int wolfSSL_CertManagerUnloadCAs(
    WOLFSSL_CERT_MANAGER * cm
)

この関数はCA署名者リストをアンロードします。

Parameters:

See: UnlockMutex

Return:

  • SSL_SUCCESS 関数の正常な実行時に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGERがNULLの場合に返されます。
  • BAD_MUTEX_E mutexエラーが発生した場合に返されます。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method);
WOLFSSL_CERT_MANAGER* cm = wolfSSL_CTX_GetCertManager(ctx);
...
if(wolfSSL_CertManagerUnloadCAs(cm) != SSL_SUCCESS){
    // 失敗ケース。
}

function wolfSSL_CertManagerUnloadIntermediateCerts

int wolfSSL_CertManagerUnloadIntermediateCerts(
    WOLFSSL_CERT_MANAGER * cm
)

この関数はCA署名者リストに追加された中間証明書をアンロードします。

Parameters:

See: UnlockMutex

Return:

  • SSL_SUCCESS 関数の正常な実行時に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGERがNULLの場合に返されます。
  • BAD_MUTEX_E mutexエラーが発生した場合に返されます。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method);
WOLFSSL_CERT_MANAGER* cm = wolfSSL_CTX_GetCertManager(ctx);
...
if(wolfSSL_CertManagerUnloadIntermediateCerts(cm) != SSL_SUCCESS){
    // 失敗ケース。
}

function wolfSSL_CertManagerUnload_trust_peers

int wolfSSL_CertManagerUnload_trust_peers(
    WOLFSSL_CERT_MANAGER * cm
)

この関数は、Trusted Peerリンクリストを解放し、トラステッドピアリストのロックを解除します。

Parameters:

See: UnLockMutex

Return:

  • SSL_SUCCESS 関数が正常に完了した場合。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGERがNULLの場合。
  • BAD_MUTEX_E WOLFSSL_CERT_MANAGER構造体のメンバであるtpLockが0(null)の場合、mutexエラー。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(Protocol define);
WOLFSSL_CERT_MANAGER* cm = wolfSSL_CertManagerNew();
...
if(wolfSSL_CertManagerUnload_trust_peers(cm) != SSL_SUCCESS){
    // 関数は正常に実行されませんでした。
}

function wolfSSL_CertManagerVerify

int wolfSSL_CertManagerVerify(
    WOLFSSL_CERT_MANAGER * cm,
    const char * f,
    int format
)

Certificate Managerコンテキストで検証する証明書を指定します。フォーマットはSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1を指定できます。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • fname 検証する証明書を含むファイルの名前へのポインタ。
  • format 検証する証明書のフォーマット - SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。

See:

Return:

  • SSL_SUCCESS 成功時。
  • ASN_SIG_CONFIRM_E 署名を検証できなかった場合に返されます。
  • ASN_SIG_OID_E 署名タイプがサポートされていない場合に返されます。
  • CRL_CERT_REVOKED この証明書が失効している場合に返されるエラー。
  • CRL_MISSING 現在の発行者CRLが利用できない場合に返されるエラー。
  • ASN_BEFORE_DATE_E 現在の日付がbefore dateより前の場合に返されます。
  • ASN_AFTER_DATE_E 現在の日付がafter dateより後の場合に返されます。
  • SSL_BAD_FILETYPE ファイルのフォーマットが間違っている場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない、読み取れない、または破損している場合に返されます。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E ファイルのBase16デコードに失敗した場合に返されます。
  • BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラー。

Example

int ret = 0;
WOLFSSL_CERT_MANAGER* cm;
...

ret = wolfSSL_CertManagerVerify(cm, "path/to/cert-file.pem",
SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // 証明書の検証エラー
}

function wolfSSL_CertManagerVerifyBuffer

int wolfSSL_CertManagerVerifyBuffer(
    WOLFSSL_CERT_MANAGER * cm,
    const unsigned char * buff,
    long sz,
    int format
)

Certificate Managerコンテキストで検証する証明書バッファを指定します。フォーマットはSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1を指定できます。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • buff 検証する証明書を含むバッファ。
  • sz バッファbufのサイズ。
  • format buf内にある検証する証明書のフォーマット - SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。

See:

Return:

  • SSL_SUCCESS 成功時。
  • ASN_SIG_CONFIRM_E 署名を検証できなかった場合に返されます。
  • ASN_SIG_OID_E 署名タイプがサポートされていない場合に返されます。
  • CRL_CERT_REVOKED この証明書が失効している場合に返されるエラー。
  • CRL_MISSING 現在の発行者CRLが利用できない場合に返されるエラー。
  • ASN_BEFORE_DATE_E 現在の日付がbefore dateより前の場合に返されます。
  • ASN_AFTER_DATE_E 現在の日付がafter dateより後の場合に返されます。
  • SSL_BAD_FILETYPE ファイルのフォーマットが間違っている場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない、読み取れない、または破損している場合に返されます。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E ファイルのBase16デコードに失敗した場合に返されます。
  • BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラー。

Example

#include <wolfssl/ssl.h>

int ret = 0;
int sz = 0;
WOLFSSL_CERT_MANAGER* cm;
byte certBuff[...];
...

ret = wolfSSL_CertManagerVerifyBuffer(cm, certBuff, sz, SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // 証明書の検証エラー
}

function wolfSSL_CertManagerSetVerify

void wolfSSL_CertManagerSetVerify(
    WOLFSSL_CERT_MANAGER * cm,
    VerifyCallback verify_callback
)

この関数は、Certificate Manager内にverifyCallback関数を設定します。存在する場合、ロードされた各証明書に対して呼び出されます。検証エラーがある場合、verify callbackを使用してエラーをオーバーライドできます。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • verify_callback コールバックルーチンへのVerifyCallback関数ポインタ。

See: wolfSSL_CertManagerVerify

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

Example

#include <wolfssl/ssl.h>

int myVerify(int preverify, WOLFSSL_X509_STORE_CTX* store)
{ // 証明書のカスタム検証を実行 }

WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(Protocol define);
WOLFSSL_CERT_MANAGER* cm = wolfSSL_CertManagerNew();
...
wolfSSL_CertManagerSetVerify(cm, myVerify);

function wolfSSL_CertManagerEnableCRL

int wolfSSL_CertManagerEnableCRL(
    WOLFSSL_CERT_MANAGER * cm,
    int options
)

Certificate Managerで証明書を検証する際に、Certificate Revocation Listチェックをオンにします。デフォルトでは、CRLチェックはオフです。optionsには、リーフ証明書のみ(デフォルト)ではなくチェーン内の各証明書に対してCRLチェックを実行するWOLFSSL_CRL_CHECKALLが含まれます。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • options Certification Manager(cm)を有効にする際に使用するオプション。

See: wolfSSL_CertManagerDisableCRL

Return:

  • SSL_SUCCESS 成功した場合、呼び出しは戻ります。
  • NOT_COMPILED_IN wolfSSLがCRLを有効にしてビルドされていない場合に返されます。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラー。
  • SSL_FAILURE CRLコンテキストを適切に初期化できない場合に返されます。

Example

#include <wolfssl/ssl.h>

int ret = 0;
WOLFSSL_CERT_MANAGER* cm;
...

ret = wolfSSL_CertManagerEnableCRL(cm, 0);
if (ret != SSL_SUCCESS) {
    // cert managerの有効化エラー
}

...

function wolfSSL_CertManagerDisableCRL

int wolfSSL_CertManagerDisableCRL(
    WOLFSSL_CERT_MANAGER * 
)

Certificate Managerで証明書を検証する際に、Certificate Revocation Listチェックをオフにします。デフォルトでは、CRLチェックはオフです。この関数を使用して、以前にCRLチェックを有効にしていたこのCertificate Managerコンテキストに対して、CRLチェックを一時的または永続的に無効にできます。

Parameters:

See: wolfSSL_CertManagerEnableCRL

Return:

  • SSL_SUCCESS 成功した場合、呼び出しは戻ります。
  • BAD_FUNC_ARG 関数ポインタが提供されていない場合に返されるエラー。

Example

#include <wolfssl/ssl.h>

int ret = 0;
WOLFSSL_CERT_MANAGER* cm;
...
ret = wolfSSL_CertManagerDisableCRL(cm);
if (ret != SSL_SUCCESS) {
    // cert managerの無効化エラー
}
...

function wolfSSL_CertManagerLoadCRL

int wolfSSL_CertManagerLoadCRL(
    WOLFSSL_CERT_MANAGER * cm,
    const char * path,
    int type,
    int monitor
)

エラーチェックを行い、LoadCRL()に渡して失効チェックのためにCRLに証明書をロードします。更新されたCRLをロードするには、まずwolfSSL_CertManagerFreeCRLを呼び出してから、新しいCRLをロードします。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • path CRLパスを保持する定数char型ポインタ。
  • type ロードする証明書のタイプ。
  • monitor LoadCRL()での監視を要求します。

See:

Return:

  • SSL_SUCCESS wolfSSL_CertManagerLoadCRLにエラーがなく、LoadCRLが正常に戻った場合。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合。
  • SSL_FATAL_ERROR wolfSSL_CertManagerEnableCRLがSSL_SUCCESS以外を返した場合。
  • BAD_PATH_ERROR pathがNULLの場合。
  • MEMORY_E LoadCRLがヒープメモリの割り当てに失敗した場合。

Example

#include <wolfssl/ssl.h>

int wolfSSL_LoadCRL(WOLFSSL* ssl, const char* path, int type,
int monitor);
…
wolfSSL_CertManagerLoadCRL(SSL_CM(ssl), path, type, monitor);

function wolfSSL_CertManagerLoadCRLBuffer

int wolfSSL_CertManagerLoadCRLBuffer(
    WOLFSSL_CERT_MANAGER * cm,
    const unsigned char * buff,
    long sz,
    int type
)

この関数は、BufferLoadCRLを呼び出してCRLファイルをロードします。

Parameters:

  • cm WOLFSSL_CERT_MANAGER構造体へのポインタ。
  • buff 定数byte型でバッファです。
  • sz バッファのサイズを表すlong int型。
  • type 証明書タイプを保持するlong integer型。

See:

Return:

  • SSL_SUCCESS 関数がエラーなく完了した場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGERがNULLの場合に返されます。
  • SSL_FATAL_ERROR WOLFSSL_CERT_MANAGERに関連するエラーがある場合に返されます。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CERT_MANAGER* cm;
const unsigned char* buff;
long sz; バッファのサイズ
int type;  証明書タイプ
...
int ret = wolfSSL_CertManagerLoadCRLBuffer(cm, buff, sz, type);
if(ret == SSL_SUCCESS){
    return ret;
} else {
    // 失敗ケース。
}

function wolfSSL_CertManagerSetCRL_Cb

int wolfSSL_CertManagerSetCRL_Cb(
    WOLFSSL_CERT_MANAGER * cm,
    CbMissingCRL cb
)

この関数は、CRL Certificate Managerコールバックを設定します。HAVE_CRLが定義されており、一致するCRLレコードが見つからない場合、cbMissingCRLが呼び出されます(wolfSSL_CertManagerSetCRL_Cbで設定)。これにより、外部からCRLを取得してロードできます。

Parameters:

  • cm 証明書の情報を保持するWOLFSSL_CERT_MANAGER構造体。
  • cb WOLFSSL_CERT_MANAGERのcbMissingCRLメンバに設定される(*CbMissingCRL)への関数ポインタ。

See:

Return:

  • SSL_SUCCESS 関数とサブルーチンの実行が成功した場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合に返されます。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method);
WOLFSSL* ssl = wolfSSL_new(ctx);
…
void cb(const char* url){
    // 関数本体。
}
…
CbMissingCRL cb = CbMissingCRL;
…
if(ctx){
    return wolfSSL_CertManagerSetCRL_Cb(SSL_CM(ssl), cb);
}

function wolfSSL_CertManagerSetCRLUpdate_Cb

int wolfSSL_CertManagerSetCRLUpdate_Cb(
    WOLFSSL_CERT_MANAGER * cm,
    CbUpdateCRL cb
)

この関数は、CRL更新コールバックを設定します。HAVE_CRLとHAVE_CRL_UPDATE_CBが定義されており、CRLが追加されるときに同じ発行者でより低いCRL番号を持つエントリが存在する場合、既存のエントリと、それを置き換える新しいエントリの詳細と共にCbUpdateCRLが呼び出されます。

Parameters:

  • cm 証明書の情報を保持するWOLFSSL_CERT_MANAGER構造体。
  • cb WOLFSSL_CERT_MANAGERのcbUpdateCRLメンバに設定される(CbUpdateCRL)への関数ポインタ。 シグネチャ要件: void (CbUpdateCRL)(CrlInfo old, CrlInfo new);

See: CbUpdateCRL

Return:

  • SSL_SUCCESS 関数とサブルーチンが正常に実行された場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合に返されます。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method);
WOLFSSL* ssl = wolfSSL_new(ctx);
…
void cb(CrlInfo *old, CrlInfo *new){
    // 関数本体。
}
…
CbUpdateCRL cb = CbUpdateCRL;
…
if(ctx){
    return wolfSSL_CertManagerSetCRLUpdate_Cb(SSL_CM(ssl), cb);
}

function wolfSSL_CertManagerGetCRLInfo

int wolfSSL_CertManagerGetCRLInfo(
    WOLFSSL_CERT_MANAGER * cm,
    CrlInfo * info,
    const byte * buff,
    long sz,
    int type
)

この関数は、エンコードされたCRLバッファから解析されたCRL情報を含む構造体を生成します。

Parameters:

  • cm WOLFSSL_CERT_MANAGER構造体。
  • info CRL情報を受け取る呼び出し元管理のCrlInfo構造体へのポインタ。
  • buff エンコードされたCRLを含む入力バッファ。
  • sz buff内の入力CRLデータの長さ(バイト単位)。
  • type WOLFSSL_FILETYPE_PEMまたはWOLFSSL_FILETYPE_DER
  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。

See:

Return:

  • SSL_SUCCESS 関数とサブルーチンが正常に実行された場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合に返されます。
  • SSL_SUCCESS 関数とサブルーチンが正常に実行された場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合に返されます。

Example

#include <wolfssl/ssl.h>

CrlInfo info;
WOLFSSL_CERT_MANAGER* cm = NULL;

cm = wolfSSL_CertManagerNew();

// ファイルからバッファへcrlデータを読み込む

wolfSSL_CertManagerGetCRLInfo(cm, &info, crlData, crlDataLen,
                              WOLFSSL_FILETYPE_PEM);

この関数は、証明書マネージャに保存されているCRLを解放します。アプリケーションは、wolfSSL_CertManagerFreeCRLを呼び出してから新しいCRLを読み込むことで、CRLを更新できます。

Example

#include <wolfssl/ssl.h>

const char* crl1     = "./certs/crl/crl.pem";
WOLFSSL_CERT_MANAGER* cm = NULL;

cm = wolfSSL_CertManagerNew();
wolfSSL_CertManagerLoadCRL(cm, crl1, WOLFSSL_FILETYPE_PEM, 0);
…
wolfSSL_CertManagerFreeCRL(cm);

function wolfSSL_CertManagerCheckOCSP

int wolfSSL_CertManagerCheckOCSP(
    WOLFSSL_CERT_MANAGER * cm,
    unsigned char * der,
    int sz
)

この関数は、WOLFSSL_CERT_MANAGERのメンバであるocspEnabledを有効にして、OCSPチェックオプションが有効になっていることを示します。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • der 証明書へのbyteポインタ。
  • sz DER証明書のサイズを表すint型。

See:

  • ParseCertRelative
  • CheckCertOCSP

Return:

  • SSL_SUCCESS 関数の実行が成功した場合に返されます。WOLFSSL_CERT_MANAGERのocspEnabledメンバが有効になります。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合、またはサブルーチンに許可されていない引数値が渡された場合に返されます。
  • MEMORY_E この関数またはサブルーチン内でメモリの割り当てにエラーがある場合に返されます。

Example

#import <wolfssl/ssl.h>

WOLFSSL* ssl = wolfSSL_new(ctx);
byte* der;
int sz; // derのサイズ
...
if(wolfSSL_CertManagerCheckOCSP(cm, der, sz) != SSL_SUCCESS){
    // 失敗ケース。
}

function wolfSSL_CertManagerEnableOCSP

int wolfSSL_CertManagerEnableOCSP(
    WOLFSSL_CERT_MANAGER * cm,
    int options
)

OCSPがオフになっている場合にオンにし、設定オプションでコンパイルされている場合に有効にします。

Parameters:

  • cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
  • options WOLFSSL_CERT_MANAGER構造体の値を設定するために使用されます。

See: wolfSSL_CertManagerNew

Return:

  • SSL_SUCCESS 関数呼び出しが成功した場合に返されます。
  • BAD_FUNC_ARG cm構造体がNULLの場合。
  • MEMORY_E WOLFSSL_OCSP構造体の値がNULLの場合。
  • SSL_FAILURE WOLFSSL_OCSP構造体の初期化が失敗した場合。
  • NOT_COMPILED_IN 正しい機能を有効にしてコンパイルされていないビルド。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method);
WOLFSSL* ssl = wolfSSL_new(ctx);
WOLFSSL_CERT_MANAGER* cm = wolfSSL_CertManagerNew();
int options;
…
if(wolfSSL_CertManagerEnableOCSP(SSL_CM(ssl), options) != SSL_SUCCESS){
    // 失敗ケース。
}

function wolfSSL_CertManagerDisableOCSP

int wolfSSL_CertManagerDisableOCSP(
    WOLFSSL_CERT_MANAGER * 
)

OCSP証明書失効を無効にします。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。

See: wolfSSL_DisableCRL

Return:

  • SSL_SUCCESS wolfSSL_CertMangerDisableCRLがWOLFSSL_CERT_MANAGER構造体のcrlEnabledメンバを正常に無効にしました。
  • BAD_FUNC_ARG WOLFSSL構造体がNULLでした。

Example

#include <wolfssl/ssl.h>

WOLFSSL_CTX* ctx = wolfSSL_CTX_new(method);
WOLFSSL* ssl = wolfSSL_new(ctx);
...
if(wolfSSL_CertManagerDisableOCSP(ssl) != SSL_SUCCESS){
    // 失敗ケース。
}

function wolfSSL_CertManagerSetOCSPOverrideURL

int wolfSSL_CertManagerSetOCSPOverrideURL(
    WOLFSSL_CERT_MANAGER * cm,
    const char * url
)

この関数は、URLをWOLFSSL_CERT_MANAGER構造体のocspOverrideURLメンバにコピーします。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。

See:

Return:

  • SSL_SUCCESS 関数が期待通りに実行できた場合。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合。
  • MEMEORY_E 証明書マネージャのocspOverrideURLメンバにメモリを割り当てることができなかった場合。

Example

#include <wolfssl/ssl.h>
WOLFSSL_CERT_MANAGER* cm = wolfSSL_CertManagerNew();
const char* url;
…
int wolfSSL_SetOCSP_OverrideURL(WOLFSSL* ssl, const char* url)
…
if(wolfSSL_CertManagerSetOCSPOverrideURL(SSL_CM(ssl), url) != SSL_SUCCESS){
    // 失敗ケース。
}

function wolfSSL_CertManagerSetOCSP_Cb

int wolfSSL_CertManagerSetOCSP_Cb(
    WOLFSSL_CERT_MANAGER * cm,
    CbOCSPIO ioCb,
    CbOCSPRespFree respFreeCb,
    void * ioCbCtx
)

この関数は、WOLFSSL_CERT_MANAGER内のOCSPコールバックを設定します。

Parameters:

  • cm WOLFSSL_CERT_MANAGER構造体へのポインタ。
  • ioCb CbOCSPIO型の関数ポインタ。
  • respFreeCb CbOCSPRespFree型の関数ポインタ。
  • ioCbCtx I/Oコールバックユーザ登録コンテキストへのvoidポインタ変数。

See:

Return:

  • SSL_SUCCESS 実行が成功した場合に返されます。引数はWOLFSSL_CERT_MANAGER構造体に保存されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGERがNULLの場合に返されます。

Example

#include <wolfssl/ssl.h>

wolfSSL_SetOCSP_Cb(WOLFSSL* ssl, CbOCSPIO ioCb,
CbOCSPRespFree respFreeCb, void* ioCbCtx){
    …
    return wolfSSL_CertManagerSetOCSP_Cb(SSL_CM(ssl), ioCb, respFreeCb, ioCbCtx);

function wolfSSL_CertManagerEnableOCSPStapling

int wolfSSL_CertManagerEnableOCSPStapling(
    WOLFSSL_CERT_MANAGER * cm
)

この関数は、OCSPステープリングがオンになっていない場合にオンにし、オプションを設定します。

Parameters:

  • cm WOLFSSL_CTX構造体のメンバであるWOLFSSL_CERT_MANAGER構造体へのポインタ。

See: wolfSSL_CTX_EnableOCSPStapling

Return:

  • SSL_SUCCESS エラーがなく、関数が正常に実行された場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CERT_MANAGER構造体がNULLの場合、またはサブルーチンに許可されていない引数値が渡された場合に返されます。
  • MEMORY_E メモリの割り当てに問題があった場合に返されます。
  • SSL_FAILURE OCSP構造体の初期化が失敗した場合に返されます。
  • NOT_COMPILED_IN wolfSSLがHAVE_CERTIFICATE_STATUS_REQUESTオプションでコンパイルされていない場合に返されます。

Example

int wolfSSL_CTX_EnableOCSPStapling(WOLFSSL_CTX* ctx){
    …
    return wolfSSL_CertManagerEnableOCSPStapling(ctx->cm);

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