証明書マネージャー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 パラメータなし。
Return:
- WOLFSSL_CERT_MANAGER 成功した場合、呼び出しは有効なWOLFSSL_CERT_MANAGERポインタを返します。
- NULL エラー状態の場合に返されます。
function wolfSSL_CertManagerNew
WOLFSSL_CERT_MANAGER * wolfSSL_CertManagerNew(
void
)
新しい証明書マネージャーコンテキストを割り当て、初期化します。このコンテキストはSSLの必要性とは独立して使用できます。証明書のロード、証明書の検証、失効ステータスのチェックに使用できます。
Parameters:
- none パラメータなし。
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:
- cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
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:
- wolfSSL_CTX_load_verify_buffer
- ProcessChainBuffer
- ProcessBuffer
- cm_pick_method
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:
- cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
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:
- cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
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:
- cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
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:
- cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。
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:
- wolfSSL_CertManagerEnableCRL
- wolfSSL_LoadCRL
- wolfSSL_CertManagerFreeCRL
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:
- BufferLoadCRL
- wolfSSL_CertManagerEnableCRL
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:
- CbMissingCRL
- wolfSSL_SetCRL_Cb
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:
- CbUpdateCRL
- wolfSSL_SetCRL_Cb
- wolfSSL_CertManagerLoadCRL
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構造体の値を設定するために使用されます。
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:
- ocspOverrideURL
- wolfSSL_SetOCSP_OverrideURL
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:
- wolfSSL_CertManagerSetOCSPOverrideURL
- wolfSSL_CertManagerCheckOCSP
- wolfSSL_CertManagerEnableOCSPStapling
- wolfSSL_EnableOCSP
- wolfSSL_DisableOCSP
- wolfSSL_SetOCSP_Cb
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