コンテンツにスキップ

wolfSSL Certificates and Keys

Functions

Name
int wc_KeyPemToDer(const unsigned char * pem, int pemSz, unsigned char * buff, int buffSz, const char * pass)
PEM形式の鍵をDER形式に変換します。
int wc_CertPemToDer(const unsigned char * pem, int pemSz, unsigned char * buff, int buffSz, int type)
この関数はPEM形式の証明書をDER形式に変換します。内部ではOpenSSL互換APIのPemToDerを呼び出します。
int wc_GetPubKeyDerFromCert(struct DecodedCert * cert, byte * derKey, word32 * derKeySz)
この関数は公開鍵をDER形式でDecodedCert構造体から取り出します。 wc_InitDecodedCert()とwc_ParseCert()を事前に呼び出しておく必要があります。 wc_InitDecodedCert()はDER/ASN.1エンコードされた証明書を受け付けます。 PEM形式の鍵をDER形式で取得する場合には、wc_InitDecodedCert()より先にwc_CertPemToDer()を呼び出してください。
int wolfSSL_CTX_use_certificate_file(WOLFSSL_CTX * ctx, const char * file, int format)
この関数は証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 ファイルは引数fileによって提供されます。 引数formatは、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。 適切な使用法の例をご覧ください。
int wolfSSL_CTX_use_PrivateKey_file(WOLFSSL_CTX * ctx, const char * file, int format)
この関数は、秘密鍵ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 ファイルは引数fileによって提供されます。 引数formatは、次のファイルのフォーマットタイプを指定します:SSL_FILETYPE_ASN1 あるいは SSL_FILETYPE_PEM。 適切な使用法の例をご覧ください。 外部キーストアを使用し、秘密鍵を持っていない場合は、 代わりに公開鍵を入力してcryptoコールバックを登録して署名を処理することができます。 このためには、cryptoコールバックまたはPKコールバックを使用したコンフィギュレーションでビルドします。 cryptoコールバックを有効にするには、–enable-cryptocbまたはWOLF_CRYPTO_CBマクロを使用し、 wc_CryptoCb_RegisterDeviceを使用して暗号コールバックを登録し、 wolfSSL_CTX_SetDevIdを使用して関連するdevidを設定します。
int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX * ctx, const char * file, const char * path)
この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 引数fileによって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでの場合があります。 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 引数pathは、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。 引数fileがNULLではない場合、パスが必要でない場合はNULLとして指定できます。 引数pathが指定されていてかつNO_WOLFSSL_DIRが定義されていない場合には、 wolfSSLライブラリは指定されたディレクトリに存在するすべてのCA証明書をロードします。 この関数はディレクトリ内のすべてのファイルをロードしようとします。 この関数は、ヘッダーに "-----BEGIN CERTIFICATE-----"を持つPEMフォーマットされたCERT_TYPEファイルを期待しています。
const char ** wolfSSL_get_system_CA_dirs(word32 * num)
この関数は、wolfSSL_CTX_load_system_CA_certs が呼び出されたときに、 wolfSSLがシステムCA証明書を検索するディレクトリを表す文字列の配列へのポインタを返します。
int wolfSSL_CTX_load_system_CA_certs(WOLFSSL_CTX * ctx)
この関数は、CA証明書をOS依存のCA証明書ストアからWOLFSSL_CTXにロードしようとします。 ロードされた証明書は信頼されます。 サポートおよびテストされているプラットフォームは、Linux(Debian、Ubuntu、Gentoo、Fedora、RHEL)、 Windows 10/11、Android、Apple OS X、iOSです。
int wolfSSL_CTX_use_certificate_chain_file(WOLFSSL_CTX * ctx, const char * file)
この関数は、証明書チェーンをSSLコンテキスト(WOLFSSL_CTX)にロードします。 証明書チェーンを含むファイルは引数fileによって提供され、PEM形式の証明書を含める必要があります。 この関数は、最大MAX_CHAIN_DEPTH(既定で9、internal.hで定義されている)数の証明書を処理します。 この数にはサブジェクト証明書を含みます。
int wolfSSL_CTX_der_load_verify_locations(WOLFSSL_CTX * ctx, const char * file, int format)
この関数はwolfSSL_CTX_load_verify_locationsと似ていますが、 DERフォーマットされたCAファイルをSSLコンテキスト(WOLFSSL_CTX)にロードすることを許可します。 それはまだPEM形式のCAファイルをロードするためにも使用されるかもしれません。 これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでも可能。 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 引数formatは、証明書がSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1(DER)のいずれかにある形式を指定します。 wolfSSL_CTX_load_verify_locationsとは異なり、この関数は特定のディレクトリパスからのCA証明書のロードを許可しません。 この関数は、wolfSSLライブラリがWOLFSSL_DER_LOADマクロが定義された状態でビルドされたときにのみ利用可能です。
void wolfSSL_SetCertCbCtx(WOLFSSL * ssl, void * ctx)
この関数は、検証コールバックのためのユーザーCTXオブジェクト情報を格納します。
void wolfSSL_CTX_SetCertCbCtx(WOLFSSL_CTX * ctx, void * userCtx)
この関数は、検証コールバックのためのユーザーCTXオブジェクト情報を格納します。
int wolfSSL_CTX_save_cert_cache(WOLFSSL_CTX * ctx, const char * fname)
この関数はCertキャッシュをメモリからファイルに書き込みます。
int wolfSSL_CTX_restore_cert_cache(WOLFSSL_CTX * ctx, const char * fname)
この関数はファイルから証明書キャッシュを担当します。
int wolfSSL_CTX_memsave_cert_cache(WOLFSSL_CTX * ctx, void * mem, int sz, int * used)
この関数は証明書キャッシュをメモリに持続します。
int wolfSSL_CTX_get_cert_cache_memsize(WOLFSSL_CTX * ctx)
Certificate Cache Saveバッファが必要なサイズを返します。
char * wolfSSL_X509_NAME_oneline(WOLFSSL_X509_NAME * name, char * in, int sz)
この関数はX509の名前をバッファにコピーします。
WOLFSSL_X509_NAME * wolfSSL_X509_get_issuer_name(WOLFSSL_X509 * cert)
この関数は証明書発行者の名前を返します。
WOLFSSL_X509_NAME * wolfSSL_X509_get_subject_name(WOLFSSL_X509 * cert)
この関数は、wolfssl_x509構造の件名メンバーを返します。
int wolfSSL_X509_get_isCA(WOLFSSL_X509 * cert)
WOLFSSL_X509構造体のisCaメンバーをチェックして値を返します。
int wolfSSL_X509_NAME_get_text_by_NID(WOLFSSL_X509_NAME * name, int nid, char * buf, int len)
この関数は、渡されたNID値に関連するテキストを取得します。
int wolfSSL_X509_get_signature_type(WOLFSSL_X509 * cert)
この関数は、WOLFSSL_X509構造体のsigOIDメンバーに格納されている値を返します。
int wolfSSL_X509_get_signature(WOLFSSL_X509 * x509, unsigned char * buf, int * bufSz)
x509署名を取得し、それをバッファに保存します。
int wolfSSL_X509_STORE_add_cert(WOLFSSL_X509_STORE * store, WOLFSSL_X509 * x509)
この関数は、WOLFSSL_X509_STRE構造体に証明書を追加します。
WOLFSSL_STACK * wolfSSL_X509_STORE_CTX_get_chain(WOLFSSL_X509_STORE_CTX * ctx)
この関数は、WOLFSSL_X509_STORE_CTX構造体のチェーン変数のgetter関数です。現在チェーンは取り込まれていません。
int wolfSSL_X509_STORE_set_flags(WOLFSSL_X509_STORE * store, unsigned long flag)
この関数は、渡されたWOLFSSL_X509_STORE構造体の動作を変更するためのフラグを取ります。使用されるフラグの例はWOLFSSL_CRL_CHECKです。
const byte * wolfSSL_X509_notBefore(WOLFSSL_X509 * x509)
この関数はBYTEアレイとして符号化された"not before"要素を返します。
const byte * wolfSSL_X509_notAfter(WOLFSSL_X509 * x509)
この関数は、BYTE配列として符号化された"not after"要素を返します。
const char * wolfSSL_get_psk_identity_hint(const WOLFSSL * )
この関数はPSKアイデンティティヒントを返します。
const char * wolfSSL_get_psk_identity(const WOLFSSL * )
関数は、配列構造のClient_Identityメンバーへの定数ポインタを返します。
int wolfSSL_CTX_use_psk_identity_hint(WOLFSSL_CTX * ctx, const char * hint)
この関数は、WOLFSSL_CTX構造体のserver_hintメンバーにHINT引数を格納します。
int wolfSSL_use_psk_identity_hint(WOLFSSL * ssl, const char * hint)
この関数は、wolfssl構造内の配列構造のserver_hintメンバーにHINT引数を格納します。
WOLFSSL_X509 * wolfSSL_get_peer_certificate(WOLFSSL * ssl)
この関数はピアの証明書を取得します。
WOLFSSL_X509 * wolfSSL_get_chain_X509(WOLFSSL_X509_CHAIN * chain, int idx)
この関数は、証明書のチェーンからのピアのWOLFSSL_X509構造体をインデックス(IDX)で取得します。
char * wolfSSL_X509_get_subjectCN(WOLFSSL_X509 * )
証明書から件名の共通名を返します。
const unsigned char * wolfSSL_X509_get_der(WOLFSSL_X509 * x509, int * outSz)
この関数は、wolfssl_x509構造体のDERエンコードされた証明書を取得します。
WOLFSSL_ASN1_TIME * wolfSSL_X509_get_notAfter(WOLFSSL_X509 * )
この関数は、x509がnullのかどうかを確認し、そうでない場合は、x509構造体のノッカスメンバーを返します。
int wolfSSL_X509_version(WOLFSSL_X509 * )
この関数はX509証明書のバージョンを取得します。
WOLFSSL_X509 * wolfSSL_X509_d2i_fp(WOLFSSL_X509 ** x509, FILE * file)
no_stdio_filesystemが定義されている場合、この関数はヒープメモリを割り当て、wolfssl_x509構造を初期化してそれにポインタを返します。
WOLFSSL_X509 * wolfSSL_X509_load_certificate_file(const char * fname, int format)
関数はX509証明書をメモリにロードします。
unsigned char * wolfSSL_X509_get_device_type(WOLFSSL_X509 * x509, unsigned char * in, int * inOutSz)
この関数は、デバイスの種類をX509構造からバッファにコピーします。
unsigned char * wolfSSL_X509_get_hw_type(WOLFSSL_X509 * x509, unsigned char * in, int * inOutSz)
この関数は、wolfssl_x509構造のHWTypeメンバーをバッファにコピーします。
unsigned char * wolfSSL_X509_get_hw_serial_number(WOLFSSL_X509 * x509, unsigned char * in, int * inOutSz)
この関数はX509オブジェクトのhwserialNumメンバを返します。
int wolfSSL_SetTmpDH(WOLFSSL * ssl, const unsigned char * p, int pSz, const unsigned char * g, int gSz)
サーバーDIFFIE-HELLMANエフェメラルパラメータ設定。この関数は、サーバーがDHEを使用する暗号スイートをネゴシエートしている場合に使用するグループパラメータを設定します。
int wolfSSL_SetTmpDH_buffer(WOLFSSL * ssl, const unsigned char * b, long sz, int format)
関数はwolfssl_settmph_buffer_wrapperを呼び出します。これはDiffie-Hellmanパラメータのラッパーです。
int wolfSSL_SetTmpDH_file(WOLFSSL * ssl, const char * f, int format)
この関数は、wolfssl_settmph_file_wrapperを呼び出してサーバdiffie-hellmanパラメータを設定します。
int wolfSSL_CTX_SetTmpDH(WOLFSSL_CTX * ctx, const unsigned char * p, int pSz, const unsigned char * g, int gSz)
サーバーCTX Diffie-Hellmanのパラメータを設定します。
int wolfSSL_CTX_SetTmpDH_buffer(WOLFSSL_CTX * ctx, const unsigned char * b, long sz, int format)
wolfssl_settmph_buffer_wrapperを呼び出すラッパー関数
int wolfSSL_CTX_SetTmpDH_file(WOLFSSL_CTX * ctx, const char * f, int format)
この関数は、wolfssl_settmph_file_wrapperを呼び出してサーバーDiffie-Hellmanパラメータを設定します。
int wolfSSL_CTX_SetMinDhKey_Sz(WOLFSSL_CTX * ctx, word16 )
この関数は、WOLFSSL_CTX構造体のminkkeyszメンバーにアクセスして、Diffie Hellman鍵サイズの最小サイズ(ビット単位)を設定します。
int wolfSSL_SetMinDhKey_Sz(WOLFSSL * ssl, word16 keySz_bits)
WolfSSL構造のDiffie-Hellman鍵の最小サイズ(ビット単位)を設定します。
int wolfSSL_CTX_SetMaxDhKey_Sz(WOLFSSL_CTX * ctx, word16 keySz_bits)
この関数は、WOLFSSL_CTX構造体のmaxdhkeyszメンバーにアクセスして、Diffie Hellman鍵サイズの最大サイズ(ビット単位)を設定します。
int wolfSSL_SetMaxDhKey_Sz(WOLFSSL * ssl, word16 keySz_bits)
WolfSSL構造のDiffie-Hellman鍵の最大サイズ(ビット単位)を設定します。
int wolfSSL_GetDhKey_Sz(WOLFSSL * )
オプション構造のメンバーであるDHKEYSZ(ビット内)の値を返します。この値は、Diffie-Hellman鍵サイズをバイト単位で表します。
int wolfSSL_CTX_SetMinRsaKey_Sz(WOLFSSL_CTX * ctx, short keySz)
WOLFSSL_CTX構造体とwolfssl_cert_manager構造の両方で最小RSA鍵サイズを設定します。
int wolfSSL_SetMinRsaKey_Sz(WOLFSSL * ssl, short keySz)
WolfSSL構造にあるRSAのためのビットで最小許容鍵サイズを設定します。
int wolfSSL_CTX_SetMinEccKey_Sz(WOLFSSL_CTX * ssl, short keySz)
wolf_ctx構造体とwolfssl_cert_manager構造体のECC鍵の最小サイズをビット単位で設定します。
int wolfSSL_SetMinEccKey_Sz(WOLFSSL * ssl, short keySz)
オプション構造のMineCckeyszメンバーの値を設定します。オプション構造体は、WolfSSL構造のメンバーであり、SSLパラメータを介してアクセスされます。
int wolfSSL_make_eap_keys(WOLFSSL * ssl, void * key, unsigned int len, const char * label)
この関数は、eap_tlsとeap-ttlsによって、マスターシークレットからキーイングマテリアルを導出します。
int wolfSSL_CTX_load_verify_buffer(WOLFSSL_CTX * ctx, const unsigned char * in, long sz, int format)
この関数はCA証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。適切な使用法の例をご覧ください。
int wolfSSL_CTX_load_verify_buffer_ex(WOLFSSL_CTX * ctx, const unsigned char * in, long sz, int format, int userChain, word32 flags)
この関数はCA証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。_EXバージョンはPR 2413に追加され、UserChainとFlagsの追加の引数をサポートします。
int wolfSSL_CTX_load_verify_chain_buffer_format(WOLFSSL_CTX * ctx, const unsigned char * in, long sz, int format)
この関数は、CA証明書チェーンバッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。適切な使用法の例をご覧ください。
int wolfSSL_CTX_use_certificate_buffer(WOLFSSL_CTX * ctx, const unsigned char * in, long sz, int format)
この関数は証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。
int wolfSSL_CTX_use_PrivateKey_buffer(WOLFSSL_CTX * ctx, const unsigned char * in, long sz, int format)
この関数は、秘密鍵バッファをSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1OR SSL_FILETYPE_PEM。適切な使用法の例をご覧ください。
int wolfSSL_CTX_use_certificate_chain_buffer(WOLFSSL_CTX * ctx, const unsigned char * in, long sz)
この関数は、証明書チェーンバッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。バッファはPEM形式で、ルート証明書で終わる対象の証明書から始めてください。適切な使用法の例をご覧ください。
int wolfSSL_use_certificate_buffer(WOLFSSL * ssl, const unsigned char * in, long sz, int format)
この関数は、証明書バッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。
int wolfSSL_use_PrivateKey_buffer(WOLFSSL * ssl, const unsigned char * in, long sz, int format)
この関数は、秘密鍵バッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。
int wolfSSL_use_certificate_chain_buffer(WOLFSSL * ssl, const unsigned char * in, long sz)
この関数は、証明書チェーンバッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。バッファはPEM形式で、ルート証明書で終わる対象の証明書から始めてください。適切な使用法の例をご覧ください。
int wolfSSL_UnloadCertsKeys(WOLFSSL * )
この関数は、SSLが所有する証明書または鍵をアンロードします。
int wolfSSL_GetIVSize(WOLFSSL * )
WolfSSL構造体に保持されているSpecs構造体のIV_SIZEメンバーを返します。
void wolfSSL_KeepArrays(WOLFSSL * )
通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。ハンドシェイクが始まる前にこの関数を呼び出すと、WolfSSLは一時的な配列を解放するのを防ぎます。Wolfssl_get_keys()またはPSKのヒントなどのものには、一時的な配列が必要になる場合があります。ユーザが一時的な配列で行われると、wolfssl_freearray()のいずれかが即座にリソースを解放することができ、あるいは、関連するSSLオブジェクトが解放されたときにリソースが解放されるようになる可能性がある。
void wolfSSL_FreeArrays(WOLFSSL * )
通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。wolfssl_keeparrays()がハンドシェイクの前に呼び出された場合、WolfSSLは一時的な配列を解放しません。この関数は一時的な配列を明示的に解放し、ユーザーが一時的な配列で行われたときに呼び出されるべきであり、SSLオブジェクトがこれらのリソースを解放するのを待ったくない。
int wolfSSL_DeriveTlsKeys(unsigned char * key_data, word32 keyLen, const unsigned char * ms, word32 msLen, const unsigned char * sr, const unsigned char * cr, int tls1_2, int hash_type)
TLSキーを導き出すための外部のラッパー。
int wolfSSL_X509_get_ext_by_NID(const WOLFSSL_X509 * x509, int nid, int lastPos)
この機能は、渡されたNID値に一致する拡張索引を探して返します。
void * wolfSSL_X509_get_ext_d2i(const WOLFSSL_X509 * x509, int nid, int * c, int * idx)
この関数は、渡されたNID値に合った拡張子を探して返します。
int wolfSSL_X509_digest(const WOLFSSL_X509 * x509, const WOLFSSL_EVP_MD * digest, unsigned char * buf, unsigned int * len)
この関数はDER証明書のハッシュを返します。
int wolfSSL_use_PrivateKey(WOLFSSL * ssl, WOLFSSL_EVP_PKEY * pkey)
これはWolfSSL構造の秘密鍵を設定するために使用されます。
int wolfSSL_use_PrivateKey_ASN1(int pri, WOLFSSL * ssl, unsigned char * der, long derSz)
これはWolfSSL構造の秘密鍵を設定するために使用されます。DERフォーマットのキーバッファが予想されます。
int wolfSSL_use_RSAPrivateKey_ASN1(WOLFSSL * ssl, unsigned char * der, long derSz)
これはWolfSSL構造の秘密鍵を設定するために使用されます。DERフォーマットのRSAキーバッファが予想されます。
WOLFSSL_DH * wolfSSL_DSA_dup_DH(const WOLFSSL_DSA * r)
この関数は、DSAのパラメータを新しく作成されたWOLFSSL_DH構造体に重複しています。
WOLFSSL_X509 * wolfSSL_d2i_X509_bio(WOLFSSL_BIO * bio, WOLFSSL_X509 ** x509)
この関数はBIOからDERバッファを取得し、それをWolfSSL_X509構造に変換します。
WOLFSSL_X509 * wolfSSL_PEM_read_bio_X509_AUX(WOLFSSL_BIO * bp, WOLFSSL_X509 ** x, wc_pem_password_cb * cb, void * u)
この関数はwolfssl_pem_read_bio_x509と同じように動作します。AUXは、信頼できる/拒否されたユースケースや人間の読みやすさのためのフレンドリーな名前などの追加情報を含むことを意味します。
long wolfSSL_CTX_set_tmp_dh(WOLFSSL_CTX * ctx, WOLFSSL_DH * dh)
WOLFSSL_CTX構造体のDHメンバーをdiffie-hellmanパラメータで初期化します。
WOLFSSL_DSA * wolfSSL_PEM_read_bio_DSAparams(WOLFSSL_BIO * bp, WOLFSSL_DSA ** x, wc_pem_password_cb * cb, void * u)
この関数は、BIOのPEMバッファからDSAパラメータを取得します。
WOLF_STACK_OF(WOLFSSL_X509 ) const
この関数はピアの証明書チェーンを取得します。
char * wolfSSL_X509_get_next_altname(WOLFSSL_X509 * x509)
この関数は、存在する場合は、ピア証明書からaltnameを返します。
WOLFSSL_ASN1_TIME * wolfSSL_X509_get_notBefore(WOLFSSL_X509 * x509)
関数は、x509がnullのかどうかを確認し、そうでない場合は、WOLFSSL_X509構造体のNotBeforeメンバーを返します。

Functions Documentation

function wc_KeyPemToDer

int wc_KeyPemToDer(
    const unsigned char * pem,
    int pemSz,
    unsigned char * buff,
    int buffSz,
    const char * pass
)

PEM形式の鍵をDER形式に変換します。

Parameters:

  • pem PEM形式の証明書データへのポインタ
  • pemSz PEM形式の証明書データのサイズ
  • buff DerBuffer構造体のbufferメンバーのコピーへのポインタ
  • buffSz DerBuffer構造体のbufferメンバーへ確保されたバッファのサイズ
  • pass パスワード

See: wc_PemToDer

Return:

  • 変換に成功した際には出力バッファに書き込んだデータサイズを返します。
  • エラー発生時には負の整数値を返します。

Example

byte* loadBuf;
long fileSz = 0;
byte* bufSz;
static int LoadKeyFile(byte** keyBuf, word32* keyBufSz,
const char* keyFile,
                int typeKey, const char* password);
…
bufSz = wc_KeyPemToDer(loadBuf, (int)fileSz, saveBuf,
(int)fileSz, password);

if(saveBufSz > 0){
    // Bytes were written to the buffer.
}

function wc_CertPemToDer

int wc_CertPemToDer(
    const unsigned char * pem,
    int pemSz,
    unsigned char * buff,
    int buffSz,
    int type
)

この関数はPEM形式の証明書をDER形式に変換します。内部ではOpenSSL互換APIのPemToDerを呼び出します。

Parameters:

  • pem PEM形式の証明書を含むバッファへのポインタ
  • pemSz PEM形式の証明書を含むバッファのサイズ
  • buff DER形式に変換した証明書データの出力先バッファへのポインタ
  • buffSz 出力先バッファのサイズ
  • type 証明書のタイプ。asn_public.h で定義のenum CertTypeの値。

See: wc_PemToDer

Return: バッファに出力したサイズを返します。

Example

const unsigned char* pem;
int pemSz;
unsigned char buff[BUFSIZE];
int buffSz = sizeof(buff)/sizeof(char);
int type;
...
if(wc_CertPemToDer(pem, pemSz, buff, buffSz, type) <= 0) {
    // There were bytes written to buffer
}

function wc_GetPubKeyDerFromCert

int wc_GetPubKeyDerFromCert(
    struct DecodedCert * cert,
    byte * derKey,
    word32 * derKeySz
)

この関数は公開鍵をDER形式でDecodedCert構造体から取り出します。 wc_InitDecodedCert()とwc_ParseCert()を事前に呼び出しておく必要があります。 wc_InitDecodedCert()はDER/ASN.1エンコードされた証明書を受け付けます。 PEM形式の鍵をDER形式で取得する場合には、wc_InitDecodedCert()より先にwc_CertPemToDer()を呼び出してください。

Parameters:

  • cert X.509証明書を保持したDecodedCert構造体へのポインタ
  • derKey DER形式の公開鍵を出力する先のバッファへのポインタ
  • derKeySz [IN/OUT] 入力時にはderKeyで与えられるバッファのサイズ,出力時には公開鍵のサイズを保持します。 もし、derKeyがNULLで渡された場合には, derKeySzには必要なバッファサイズが格納され、LENGTH_ONLY_Eが戻り値として返されます。

See: wc_GetPubKeyDerFromCert

Return:

  • 成功時に0を返します。エラー発生時には負の整数を返します。
  • LENGTH_ONLY_E derKeyがNULLの際に返されます。

function wolfSSL_CTX_use_certificate_file

int wolfSSL_CTX_use_certificate_file(
    WOLFSSL_CTX * ctx,
    const char * file,
    int format
)

この関数は証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 ファイルは引数fileによって提供されます。 引数formatは、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。 適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ
  • file ロードする証明書を含むファイルパス文字列。
  • format ロードする証明書のフォーマット:SSL_FILETYPE_ASN1 あるいは SSL_FILETYPE_PEM

See:

Return:

  • SSL_SUCCESS 成功した場合に返されます。に返されます。
  • SSL_FAILURE 失敗時に返されます。失敗した場合の可能な原因としては、 ファイルが誤った形式の場合、または引数formatを使用して誤ったフォーマットが指定されている、 あるいはファイルが存在しない、あるいは読み取ることができない、または破損している、 メモリ不足が発生、Base16のデコードに失敗しているなどの原因が考えられます。

Example

int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_use_certificate_file(ctx, “./client-cert.pem”,
                                 SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // error loading cert file
}
...

function wolfSSL_CTX_use_PrivateKey_file

int wolfSSL_CTX_use_PrivateKey_file(
    WOLFSSL_CTX * ctx,
    const char * file,
    int format
)

この関数は、秘密鍵ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 ファイルは引数fileによって提供されます。 引数formatは、次のファイルのフォーマットタイプを指定します:SSL_FILETYPE_ASN1 あるいは SSL_FILETYPE_PEM。 適切な使用法の例をご覧ください。 外部キーストアを使用し、秘密鍵を持っていない場合は、 代わりに公開鍵を入力してcryptoコールバックを登録して署名を処理することができます。 このためには、cryptoコールバックまたはPKコールバックを使用したコンフィギュレーションでビルドします。 cryptoコールバックを有効にするには、–enable-cryptocbまたはWOLF_CRYPTO_CBマクロを使用し、 wc_CryptoCb_RegisterDeviceを使用して暗号コールバックを登録し、 wolfSSL_CTX_SetDevIdを使用して関連するdevidを設定します。

Parameters:

  • なし Example
int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_use_PrivateKey_file(ctx, “./server-key.pem”,
                                SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // error loading key file
}
...

See:

Return:

  • SSL_SUCCESS 成功した場合に返されます。に返されます。
  • SSL_FAILURE 関数呼び出しが失敗した場合の可能な原因としては、 ファイルが誤った形式の場合、または引数formatを使用して誤ったフォーマットが指定されている、 あるいはファイルが存在しない、あるいは読み取ることができない、または破損している、 メモリ不足が発生、Base16のデコードに失敗しているなどの原因が考えられます

function wolfSSL_CTX_load_verify_locations

int wolfSSL_CTX_load_verify_locations(
    WOLFSSL_CTX * ctx,
    const char * file,
    const char * path
)

この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 引数fileによって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでの場合があります。 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 引数pathは、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。 引数fileがNULLではない場合、パスが必要でない場合はNULLとして指定できます。 引数pathが指定されていてかつNO_WOLFSSL_DIRが定義されていない場合には、 wolfSSLライブラリは指定されたディレクトリに存在するすべてのCA証明書をロードします。 この関数はディレクトリ内のすべてのファイルをロードしようとします。 この関数は、ヘッダーに "-----BEGIN CERTIFICATE-----"を持つPEMフォーマットされたCERT_TYPEファイルを期待しています。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • file PEM形式のCA証明書を含むファイルの名前へのポインタ。
  • path CA証明書を含んでいるディレクトリのディレクトリの名前へのポインタ。

See:

Return:

  • SSL_SUCCESS 成功した場合に返されます。に返されます。
  • SSL_FAILURE CTXがNULLの場合、またはファイルとパスの両方がNULLの場合に返されます。
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合、読み込めない場合、または破損している場合に返されます。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • ASN_BEFORE_DATE_E 現在の日付が使用開始日より前の場合に返されます。
  • ASN_AFTER_DATE_E 現在の日付が使用期限後より後の場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。
  • BAD_PATH_ERROR opendir()がパスを開こうとして失敗した場合に返されます。

Example

int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_load_verify_locations(ctx, “./ca-cert.pem”, NULL);
if (ret != WOLFSSL_SUCCESS) {
    // error loading CA certs
}
...

function wolfSSL_get_system_CA_dirs

const char ** wolfSSL_get_system_CA_dirs(
    word32 * num
)

この関数は、wolfSSL_CTX_load_system_CA_certs が呼び出されたときに、 wolfSSLがシステムCA証明書を検索するディレクトリを表す文字列の配列へのポインタを返します。

Parameters:

  • num word32型変数へのポインタ。文字列配列の長さを格納します。

See:

Return:

  • 成功時には文字列配列へのポインタを返します。
  • NULL 失敗時に返します。

Example

WOLFSSL_CTX* ctx;
const char** dirs;
word32 numDirs;

dirs = wolfSSL_get_system_CA_dirs(&numDirs);
for (int i = 0; i < numDirs; ++i) {
    printf("Potential system CA dir: %s\n", dirs[i]);
}
...

function wolfSSL_CTX_load_system_CA_certs

int wolfSSL_CTX_load_system_CA_certs(
    WOLFSSL_CTX * ctx
)

この関数は、CA証明書をOS依存のCA証明書ストアからWOLFSSL_CTXにロードしようとします。 ロードされた証明書は信頼されます。 サポートおよびテストされているプラットフォームは、Linux(Debian、Ubuntu、Gentoo、Fedora、RHEL)、 Windows 10/11、Android、Apple OS X、iOSです。

Parameters:

See:

Return:

  • WOLFSSL_SUCCESS 成功時に返されます。
  • WOLFSSL_BAD_PATH システムCA証明書がロードできなかった場合に返されます。
  • WOLFSSL_FAILURE そのほかのエラー発生時(Windows証明書ストアが正常にクローズされない等)

Example

int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_load_system_CA_certs(ctx,);
if (ret != WOLFSSL_SUCCESS) {
    // error loading system CA certs
}
...

function wolfSSL_CTX_use_certificate_chain_file

int wolfSSL_CTX_use_certificate_chain_file(
    WOLFSSL_CTX * ctx,
    const char * file
)

この関数は、証明書チェーンをSSLコンテキスト(WOLFSSL_CTX)にロードします。 証明書チェーンを含むファイルは引数fileによって提供され、PEM形式の証明書を含める必要があります。 この関数は、最大MAX_CHAIN_DEPTH(既定で9、internal.hで定義されている)数の証明書を処理します。 この数にはサブジェクト証明書を含みます。

Parameters:

See:

Return:

  • SSL_SUCCESS 成功時に返されます。
  • SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因としては:誤った形式である場合、 または「format」引数を使用して誤ったフォーマットが指定されている場合、 ファイルが存在しない、読み取れない、または破損している、メモリ枯渇などが考えられます。

Example

int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_use_certificate_chain_file(ctx, “./cert-chain.pem”);
if (ret != SSL_SUCCESS) {
    // error loading cert file
}
...

function wolfSSL_CTX_der_load_verify_locations

int wolfSSL_CTX_der_load_verify_locations(
    WOLFSSL_CTX * ctx,
    const char * file,
    int format
)

この関数はwolfSSL_CTX_load_verify_locationsと似ていますが、 DERフォーマットされたCAファイルをSSLコンテキスト(WOLFSSL_CTX)にロードすることを許可します。 それはまだPEM形式のCAファイルをロードするためにも使用されるかもしれません。 これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでも可能。 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 引数formatは、証明書がSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1(DER)のいずれかにある形式を指定します。 wolfSSL_CTX_load_verify_locationsとは異なり、この関数は特定のディレクトリパスからのCA証明書のロードを許可しません。 この関数は、wolfSSLライブラリがWOLFSSL_DER_LOADマクロが定義された状態でビルドされたときにのみ利用可能です。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ
  • file wolfssl SSLコンテキストにロードされるCA証明書を含むファイルの名前をフォーマットで指定された形式で指定します。

See:

Return:

  • SSL_SUCCESS 成功時に返されます。
  • SSL_FAILURE 失敗すると返されます。

Example

int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_der_load_verify_locations(ctx, “./ca-cert.der”,
                                      SSL_FILETYPE_ASN1);
if (ret != SSL_SUCCESS) {
    // error loading CA certs
}
...

function wolfSSL_SetCertCbCtx

void wolfSSL_SetCertCbCtx(
    WOLFSSL * ssl,
    void * ctx
)

この関数は、検証コールバックのためのユーザーCTXオブジェクト情報を格納します。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。
  • ctx ボイドポインタ。WOLFSSL構造体のverifyCbCtx メンバーにセットされます。

See:

Return: なし

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
(void*)ctx;
...
if(ssl != NULL){
wolfSSL_SetCertCbCtx(ssl, ctx);
} else {
    // Error case, the SSL is not initialized properly.
}

function wolfSSL_CTX_SetCertCbCtx

void wolfSSL_CTX_SetCertCbCtx(
    WOLFSSL_CTX * ctx,
    void * userCtx
)

この関数は、検証コールバックのためのユーザーCTXオブジェクト情報を格納します。

Parameters:

  • ctx WOLFSSL_CTX構造体へのポインタ。
  • ctx ボイドポインタ。WOLFSSL_CTX構造体のverifyCbCtx メンバーにセットされます。

See:

Return: なし

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
void* userCtx = NULL; // Assign some user defined context
...
if(ctx != NULL){
    wolfSSL_SetCertCbCtx(ctx, userCtx);
} else {
    // Error case, the SSL is not initialized properly.
}

function wolfSSL_CTX_save_cert_cache

int wolfSSL_CTX_save_cert_cache(
    WOLFSSL_CTX * ctx,
    const char * fname
)

この関数はCertキャッシュをメモリからファイルに書き込みます。

Parameters:

  • ctx WOLFSSL_CTX構造体へのポインタ、証明書情報を保持します。
  • fname 出力先ファイル名へのポインタ

See:

  • CM_SaveCertCache
  • DoMemSaveCertCache

Return:

  • SSL_SUCCESS CM_SaveCertCacheが正常に終了した場合。
  • BAD_FUNC_ARG 引数のいずれかの引数がNULLの場合に返されます。
  • SSL_BAD_FILE 証明書キャッシュ保存ファイルを開くことができなかった場合。
  • BAD_MUTEX_E ロックミューテックスが失敗した場合
  • MEMORY_E メモリの割り当てに失敗しました。
  • FWRITE_ERROR 証明書キャッシュファイルの書き込みに失敗しました。

Example

WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol def );
const char* fname;
...
if(wolfSSL_CTX_save_cert_cache(ctx, fname)){
    // file was written.
}

function wolfSSL_CTX_restore_cert_cache

int wolfSSL_CTX_restore_cert_cache(
    WOLFSSL_CTX * ctx,
    const char * fname
)

この関数はファイルから証明書キャッシュを担当します。

Parameters:

  • ctx WOLFSSL_CTX構造体へのポインタ、証明書情報を保持します。
  • fname 証明書キャッシュを読み取るファイル名へのポインタ。

See:

  • CM_RestoreCertCache
  • XFOPEN

Return:

  • SSL_SUCCESS 正常に実行された場合に返されます。
  • SSL_BAD_FILE XFOPENがXBADFILEを返すと返されます。ファイルが破損しています。
  • MEMORY_E TEMPバッファの割り当てられたメモリが失敗した場合に返されます。
  • BAD_FUNC_ARG 引数fnameまたは引数ctxがNULLである場合に返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL* ssl = wolfSSL_new(ctx);
const char* fname = "path to file";
...
if(wolfSSL_CTX_restore_cert_cache(ctx, fname)){
    // check to see if the execution was successful
}

function wolfSSL_CTX_memsave_cert_cache

int wolfSSL_CTX_memsave_cert_cache(
    WOLFSSL_CTX * ctx,
    void * mem,
    int sz,
    int * used
)

この関数は証明書キャッシュをメモリに持続します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。
  • mem 宛先へのvoidポインタ(出力バッファ)。
  • sz 出力バッファのサイズ。
  • used 証明書キャッシュヘッダーのサイズを格納する変数へのポインタ。

See:

  • DoMemSaveCertCache
  • GetCertCacheMemSize
  • CM_MemRestoreCertCache
  • CM_GetCertCacheMemSize

Return:

  • SSL_SUCCESS 機能の実行に成功したことに戻ります。エラーが投げられていません。
  • BAD_MUTEX_E WOLFSSL_CERT_MANAGER構造体のcaLockメンバー0(ゼロ)ではなかった。
  • BAD_FUNC_ARG 引数ctx、memがNULLの場合、またはszが0以下の場合に返されます。
  • BUFFER_E 出力バッファMEMが小さすぎました。

Example

WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol );
void* mem;
int sz;
int* used;
...
if(wolfSSL_CTX_memsave_cert_cache(ctx, mem, sz, used) != SSL_SUCCESS){
    // The function returned with an error
}

function wolfSSL_CTX_get_cert_cache_memsize

int wolfSSL_CTX_get_cert_cache_memsize(
    WOLFSSL_CTX * ctx
)

Certificate Cache Saveバッファが必要なサイズを返します。

Parameters:

See: CM_GetCertCacheMemSize

Return:

  • メモリサイズを返します。
  • BAD_FUNC_ARG WOLFSSL_CTX構造体がNULLの場合に返されます。
  • BAD_MUTEX_E ミューテックスロックエラーが発生した場合に返されます。

Example

WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(protocol);
...
int certCacheSize = wolfSSL_CTX_get_cert_cache_memsize(ctx);

if(certCacheSize != BAD_FUNC_ARG || certCacheSize != BAD_MUTEX_E){
// Successfully retrieved the memory size.
}

function wolfSSL_X509_NAME_oneline

char * wolfSSL_X509_NAME_oneline(
    WOLFSSL_X509_NAME * name,
    char * in,
    int sz
)

この関数はX509の名前をバッファにコピーします。

Parameters:

  • name wolfssl_x509構造へのポインタ。
  • in WOLFSSL_X509_NAME構造体からコピーされた名前を保持するためのバッファ。
  • sz バッファの最大サイズ

See:

Return: A WOLFSSL_X509_NAME構造名メンバーのデータが正常に実行された場合、nameメンバーのデータが返されます。

Example

WOLFSSL_X509 x509;
char* name;
...
name = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_issuer_name(x509), 0, 0);

if(name <= 0){
    // There’s nothing in the buffer.
}

function wolfSSL_X509_get_issuer_name

WOLFSSL_X509_NAME * wolfSSL_X509_get_issuer_name(
    WOLFSSL_X509 * cert
)

この関数は証明書発行者の名前を返します。

Parameters:

  • cert WOLFSSL_X509構造体へのポインタ

See:

Return:

  • point WOLFSSL_X509構造体の発行者メンバーへのポインタが返されます。
  • NULL 渡された証明書がNULLの場合

Example

WOLFSSL_X509* x509;
WOLFSSL_X509_NAME issuer;
...
issuer = wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_issuer_name(x509), 0, 0);

if(!issuer){
    // NULL was returned
} else {
    // issuer hods the name of the certificate issuer.
}

function wolfSSL_X509_get_subject_name

WOLFSSL_X509_NAME * wolfSSL_X509_get_subject_name(
    WOLFSSL_X509 * cert
)

この関数は、wolfssl_x509構造の件名メンバーを返します。

Parameters:

  • cert WOLFSSL_X509構造体へのポインタ

See:

Return: pointer wolfssl_x509_name構造へのポインタ。WOLFSSL_X509構造体がNULLの場合、または構造体の件名メンバーがNULLの場合、ポインタはNULLになることがあります。

Example

WOLFSSL_X509* cert;
WOLFSSL_X509_NAME name;
…
name = wolfSSL_X509_get_subject_name(cert);
if(name == NULL){
    // Deal with the NULL cacse
}

function wolfSSL_X509_get_isCA

int wolfSSL_X509_get_isCA(
    WOLFSSL_X509 * cert
)

WOLFSSL_X509構造体のisCaメンバーをチェックして値を返します。

Parameters:

  • cert WOLFSSL_X509構造体へのポインタ

See:

Return:

  • isCA WOLFSSL_X509構造体のisCaメンバーの値を返します。
  • 0 有効なWOLFSSL_X509構造体が渡されない場合に返されます。

Example

WOLFSSL* ssl;
...
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
...
if(wolfSSL_X509_get_isCA(ssl)){
    // This is the CA
}else {
    // Failure case
}

function wolfSSL_X509_NAME_get_text_by_NID

int wolfSSL_X509_NAME_get_text_by_NID(
    WOLFSSL_X509_NAME * name,
    int nid,
    char * buf,
    int len
)

この関数は、渡されたNID値に関連するテキストを取得します。

Parameters:

  • name wolfssl_x509_nameテキストを検索する。
  • nid 検索するNID。
  • buf 見つかったときにテキストを保持するためのバッファー。
  • len バッファのサイズ

See: none

Return: int テキストバッファのサイズを返します。

Example

WOLFSSL_X509_NAME* name;
char buffer[100];
int bufferSz;
int ret;
// get WOLFSSL_X509_NAME
ret = wolfSSL_X509_NAME_get_text_by_NID(name, NID_commonName,
buffer, bufferSz);

//check ret value

function wolfSSL_X509_get_signature_type

int wolfSSL_X509_get_signature_type(
    WOLFSSL_X509 * cert
)

この関数は、WOLFSSL_X509構造体のsigOIDメンバーに格納されている値を返します。

Parameters:

  • cert WOLFSSL_X509構造体へのポインタ

See:

Return:

  • 0 WOLFSSL_X509構造体がNULLの場合に返されます。
  • int x509オブジェクトから取得された整数値が返されます。

Example

WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
                        DYNAMIC_TYPE_X509);
...
int x509SigType = wolfSSL_X509_get_signature_type(x509);

if(x509SigType != EXPECTED){
// Deal with an unexpected value
}

function wolfSSL_X509_get_signature

int wolfSSL_X509_get_signature(
    WOLFSSL_X509 * x509,
    unsigned char * buf,
    int * bufSz
)

x509署名を取得し、それをバッファに保存します。

Parameters:

  • x509 wolfssl_x509構造へのポインタ。
  • buf バッファへの文字ポインタ。
  • bufSz バッファサイズを格納するint型変数へのポインタ

See:

Return:

  • SSL_SUCCESS 関数が正常に実行された場合に返されます。署名がバッファにロードされます。
  • SSL_FATAL_ERRROR X509構造体またはBUFSZメンバーがNULLの場合に返します。SIG構造の長さメンバのチェックもある(SIGはX509のメンバーである)。

Example

WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALOC(sizeof(WOLFSSL_X509), NULL,
DYNAMIC_TYPE_X509);
unsigned char* buf; // Initialize
int* bufSz = sizeof(buf)/sizeof(unsigned char);
...
if(wolfSSL_X509_get_signature(x509, buf, bufSz) != SSL_SUCCESS){
    // The function did not execute successfully.
} else{
    // The buffer was written to correctly.
}

function wolfSSL_X509_STORE_add_cert

int wolfSSL_X509_STORE_add_cert(
    WOLFSSL_X509_STORE * store,
    WOLFSSL_X509 * x509
)

この関数は、WOLFSSL_X509_STRE構造体に証明書を追加します。

Parameters:

  • str 証明書を追加する証明書ストア。
  • x509 追加するWOLFSSL_X509構造体へのポインタ

See: wolfSSL_X509_free

Return:

  • SSL_SUCCESS 証明書が正常に追加された場合。
  • SSL_FATAL_ERROR: 証明書が正常に追加されない場合

Example

WOLFSSL_X509_STORE* str;
WOLFSSL_X509* x509;
int ret;
ret = wolfSSL_X509_STORE_add_cert(str, x509);
//check ret value

function wolfSSL_X509_STORE_CTX_get_chain

WOLFSSL_STACK * wolfSSL_X509_STORE_CTX_get_chain(
    WOLFSSL_X509_STORE_CTX * ctx
)

この関数は、WOLFSSL_X509_STORE_CTX構造体のチェーン変数のgetter関数です。現在チェーンは取り込まれていません。

Parameters:

  • ctx WOLFSSL_X509_STORE_CTX構造体へのポインタ

See: wolfSSL_sk_X509_free

Return:

  • pointer 成功した場合WOLFSSL_STACK(STACK_OF(WOLFSSL_X509))ポインタと同じ
  • Null 失敗した場合に返されます。

Example

WOLFSSL_STACK* sk;
WOLFSSL_X509_STORE_CTX* ctx;
sk = wolfSSL_X509_STORE_CTX_get_chain(ctx);
//check sk for NULL and then use it. sk needs freed after done.

function wolfSSL_X509_STORE_set_flags

int wolfSSL_X509_STORE_set_flags(
    WOLFSSL_X509_STORE * store,
    unsigned long flag
)

この関数は、渡されたWOLFSSL_X509_STORE構造体の動作を変更するためのフラグを取ります。使用されるフラグの例はWOLFSSL_CRL_CHECKです。

Parameters:

  • str フラグを設定する証明書ストア。
  • flag フラグ

See:

  • wolfSSL_X509_STORE_new
  • wolfSSL_X509_STORE_free

Return:

  • SSL_SUCCESS フラグを設定するときにエラーが発生しなかった場合。
  • <0 障害の際に負の値が返されます。

Example

WOLFSSL_X509_STORE* str;
int ret;
// create and set up str
ret = wolfSSL_X509_STORE_set_flags(str, WOLFSSL_CRL_CHECKALL);
If (ret != SSL_SUCCESS) {
    //check ret value and handle error case
}

function wolfSSL_X509_notBefore

const byte * wolfSSL_X509_notBefore(
    WOLFSSL_X509 * x509
)

この関数はBYTEアレイとして符号化された"not before"要素を返します。

Parameters:

  • x509 WOLFSSL_X509構造体へのポインタ。

See:

Return:

  • NULL WOLFSSL_X509構造体がNULLの場合に返されます。
  • byte NetBeforEdataを含むバッファへのポインタが返されます。

Example

WOLFSSL_X509* x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
                        DYNAMIC_TYPE_X509);
...
byte* notBeforeData = wolfSSL_X509_notBefore(x509);

function wolfSSL_X509_notAfter

const byte * wolfSSL_X509_notAfter(
    WOLFSSL_X509 * x509
)

この関数は、BYTE配列として符号化された"not after"要素を返します。

Parameters:

  • x509 WOLFSSL_X509構造体へのポインタ。

See:

Return:

  • NULL WOLFSSL_X509構造体がNULLの場合に返されます。
  • byte notAfterDataを含むバッファへのポインタが返されます。

Example

WOLFSSL_X509* x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
                        DYNAMIC_TYPE_X509);
...
byte* notAfterData = wolfSSL_X509_notAfter(x509);

function wolfSSL_get_psk_identity_hint

const char * wolfSSL_get_psk_identity_hint(
    const WOLFSSL * 
)

この関数はPSKアイデンティティヒントを返します。

See: wolfSSL_get_psk_identity

Return:

  • pointer WolfSSL構造の配列メンバーに格納されている値へのconst charポインタが返されます。
  • NULL WOLFSSLまたは配列構造がNULLの場合に返されます。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
char* idHint;
...
idHint = wolfSSL_get_psk_identity_hint(ssl);
if(idHint){
    // The hint was retrieved
    return idHint;
} else {
    // Hint wasn’t successfully retrieved
}

function wolfSSL_get_psk_identity

const char * wolfSSL_get_psk_identity(
    const WOLFSSL * 
)

関数は、配列構造のClient_Identityメンバーへの定数ポインタを返します。

See:

Return:

  • string 配列構造のclient_identityメンバの文字列値。
  • NULL WOLFSSL構造がNULLの場合、またはWOLFSSL構造の配列メンバーがNULLの場合。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
const char* pskID;
...
pskID = wolfSSL_get_psk_identity(ssl);

if(pskID == NULL){
    // There is not a value in pskID
}

function wolfSSL_CTX_use_psk_identity_hint

int wolfSSL_CTX_use_psk_identity_hint(
    WOLFSSL_CTX * ctx,
    const char * hint
)

この関数は、WOLFSSL_CTX構造体のserver_hintメンバーにHINT引数を格納します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。

See: wolfSSL_use_psk_identity_hint

Return: SSL_SUCCESS 機能の実行が成功したために返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
const char* hint;
int ret;
…
ret = wolfSSL_CTX_use_psk_identity_hint(ctx, hint);
if(ret == SSL_SUCCESS){
    // Function was successful.
return ret;
} else {
    // Failure case.
}

function wolfSSL_use_psk_identity_hint

int wolfSSL_use_psk_identity_hint(
    WOLFSSL * ssl,
    const char * hint
)

この関数は、wolfssl構造内の配列構造のserver_hintメンバーにHINT引数を格納します。

Parameters:

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

See: wolfSSL_CTX_use_psk_identity_hint

Return:

  • SSL_SUCCESS ヒントがWolfSSL構造に正常に保存された場合に返されます。
  • SSL_FAILURE WOLFSSLまたは配列構造がNULLの場合に返されます。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
const char* hint;
...
if(wolfSSL_use_psk_identity_hint(ssl, hint) != SSL_SUCCESS){
    // Handle failure case.
}

function wolfSSL_get_peer_certificate

WOLFSSL_X509 * wolfSSL_get_peer_certificate(
    WOLFSSL * ssl
)

この関数はピアの証明書を取得します。

See:

Return:

  • pointer WOLFSSL_X509構造のPECRERTメンバーへのポインタが存在する場合は。
  • 0 ピア証明書発行者サイズが定義されていない場合に返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
...
WOLFSSL_X509* peerCert = wolfSSL_get_peer_certificate(ssl);

if(peerCert){
    // You have a pointer peerCert to the peer certification
}

function wolfSSL_get_chain_X509

WOLFSSL_X509 * wolfSSL_get_chain_X509(
    WOLFSSL_X509_CHAIN * chain,
    int idx
)

この関数は、証明書のチェーンからのピアのWOLFSSL_X509構造体をインデックス(IDX)で取得します。

Parameters:

  • chain 動的メモリsession_cacheの場合に使用されるWOLFSSL_X509_CHAINへのポインタ。

See:

  • InitDecodedCert
  • ParseCertRelative
  • CopyDecodedToX509

Return: pointer WOLFSSL_X509構造体へのポインタを返します。

注意:本関数から返された構造体をwolfSSL_FreeX509()を呼び出して解放するのはユーザーの責任です。

Example

WOLFSSL_X509_CHAIN* chain = &session->chain;
int idx = 999; // set idx
...
WOLFSSL_X509* ptr;
prt = wolfSSL_get_chain_X509(chain, idx);

if(ptr != NULL){
    //ptr contains the cert at the index specified
    wolfSSL_FreeX509(ptr);
} else {
    // ptr is NULL
}

function wolfSSL_X509_get_subjectCN

char * wolfSSL_X509_get_subjectCN(
    WOLFSSL_X509 * 
)

証明書から件名の共通名を返します。

See:

Return:

  • NULL X509構造がNULLの場合に返されます
  • string サブジェクトの共通名の文字列表現は成功に返されます

Example

WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
                        DYNAMIC_TYPE_X509);
...
int x509Cn = wolfSSL_X509_get_subjectCN(x509);
if(x509Cn == NULL){
    // Deal with NULL case
} else {
    // x509Cn contains the common name
}

function wolfSSL_X509_get_der

const unsigned char * wolfSSL_X509_get_der(
    WOLFSSL_X509 * x509,
    int * outSz
)

この関数は、wolfssl_x509構造体のDERエンコードされた証明書を取得します。

Parameters:

  • x509 証明書情報を含むWolfSSL_X509構造へのポインタ。

See:

Return:

  • buffer この関数はDerbuffer構造体のバッファメンバーを返します。これはバイト型です。
  • NULL x509またはoutszパラメーターがnullの場合に返されます。

Example

WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
                        DYNAMIC_TYPE_X509);
int* outSz; // initialize
...
byte* x509Der = wolfSSL_X509_get_der(x509, outSz);
if(x509Der == NULL){
    // Failure case one of the parameters was NULL
}

function wolfSSL_X509_get_notAfter

WOLFSSL_ASN1_TIME * wolfSSL_X509_get_notAfter(
    WOLFSSL_X509 * 
)

この関数は、x509がnullのかどうかを確認し、そうでない場合は、x509構造体のノッカスメンバーを返します。

See: wolfSSL_X509_get_notBefore

Return:

  • pointer ASN1_TIMEを使用してX509構造体のノカフターメンバーに構造体を表明します。
  • NULL X509オブジェクトがNULLの場合に返されます。

Example

WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALOC(sizeof(WOLFSSL_X509), NULL,
DYNAMIC_TYPE_X509) ;
...
const WOLFSSL_ASN1_TIME* notAfter = wolfSSL_X509_get_notAfter(x509);
if(notAfter == NULL){
    // Failure case, the x509 object is null.
}

function wolfSSL_X509_version

int wolfSSL_X509_version(
    WOLFSSL_X509 * 
)

この関数はX509証明書のバージョンを取得します。

See:

Return:

  • 0 X509構造がNULLの場合に返されます。
  • version X509構造に保存されているバージョンが返されます。

Example

WOLFSSL_X509* x509;
int version;
...
version = wolfSSL_X509_version(x509);
if(!version){
    // The function returned 0, failure case.
}

function wolfSSL_X509_d2i_fp

WOLFSSL_X509 * wolfSSL_X509_d2i_fp(
    WOLFSSL_X509 ** x509,
    FILE * file
)

no_stdio_filesystemが定義されている場合、この関数はヒープメモリを割り当て、wolfssl_x509構造を初期化してそれにポインタを返します。

Parameters:

  • x509 wolfssl_x509ポインタへのポインタ。

See:

  • wolfSSL_X509_d2i
  • XFTELL
  • XREWIND
  • XFSEEK

Return:

  • *WOLFSSL_X509 関数が正常に実行された場合、WolfSSL_X509構造ポインタが返されます。
  • NULL Xftellマクロの呼び出しが負の値を返す場合。

Example

WOLFSSL_X509* x509a = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
DYNAMIC_TYPE_X509);
WOLFSSL_X509** x509 = x509a;
XFILE file;  (mapped to struct fs_file*)
...
WOLFSSL_X509* newX509 = wolfSSL_X509_d2i_fp(x509, file);
if(newX509 == NULL){
    // The function returned NULL
}

function wolfSSL_X509_load_certificate_file

WOLFSSL_X509 * wolfSSL_X509_load_certificate_file(
    const char * fname,
    int format
)

関数はX509証明書をメモリにロードします。

Parameters:

  • fname ロードする証明書ファイル。

See:

  • InitDecodedCert
  • PemToDer
  • wolfSSL_get_certificate
  • AssertNotNull

Return:

  • pointer 実行された実行は、wolfssl_x509構造へのポインタを返します。
  • NULL 証明書が書き込まれなかった場合に返されます。

Example

#define cliCert    “certs/client-cert.pem”
…
X509* x509;
…
x509 = wolfSSL_X509_load_certificate_file(cliCert, SSL_FILETYPE_PEM);
AssertNotNull(x509);

function wolfSSL_X509_get_device_type

unsigned char * wolfSSL_X509_get_device_type(
    WOLFSSL_X509 * x509,
    unsigned char * in,
    int * inOutSz
)

この関数は、デバイスの種類をX509構造からバッファにコピーします。

Parameters:

  • x509 wolfssl_x509_new()で作成されたwolfssl_x509構造へのポインタ。
  • in デバイスタイプ(バッファ)を保持するバイトタイプへのポインタ。

See:

Return:

  • pointer X509構造からデバイスの種類を保持するバイトポインタを返します。
  • NULL バッファサイズがNULLの場合に返されます。

Example

WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALOC(sizeof(WOLFSSL_X509), NULL,
DYNAMIC_TYPE_X509);
byte* in;
int* inOutSz;
...
byte* deviceType = wolfSSL_X509_get_device_type(x509, in, inOutSz);

if(!deviceType){
    // Failure case, NULL was returned.
}

function wolfSSL_X509_get_hw_type

unsigned char * wolfSSL_X509_get_hw_type(
    WOLFSSL_X509 * x509,
    unsigned char * in,
    int * inOutSz
)

この関数は、wolfssl_x509構造のHWTypeメンバーをバッファにコピーします。

Parameters:

  • x509 証明書情報を含むWolfSSL_X509構造へのポインタ。
  • in バッファを表すバイトを入力するポインタ。

See:

Return:

  • byte この関数は、wolfssl_x509構造のHWTypeメンバーに以前に保持されているデータのバイトタイプを返します。
  • NULL inoutszがnullの場合に返されます。

Example

WOLFSSL_X509* x509;  // X509 certificate
byte* in;  // initialize the buffer
int* inOutSz;  // holds the size of the buffer
...
byte* hwType = wolfSSL_X509_get_hw_type(x509, in, inOutSz);

if(hwType == NULL){
    // Failure case function returned NULL.
}

function wolfSSL_X509_get_hw_serial_number

unsigned char * wolfSSL_X509_get_hw_serial_number(
    WOLFSSL_X509 * x509,
    unsigned char * in,
    int * inOutSz
)

この関数はX509オブジェクトのhwserialNumメンバを返します。

Parameters:

  • x509 証明書情報を含むWOLFSSL_X509構造へのポインタ。
  • in コピーされるバッファへのポインタ。

See:

Return: pointer この関数は、X509オブジェクトからロードされたシリアル番号を含むINバッファへのバイトポインタを返します。

Example

char* serial;
byte* in;
int* inOutSz;
WOLFSSL_X509 x509;
...
serial = wolfSSL_X509_get_hw_serial_number(x509, in, inOutSz);

if(serial == NULL || serial <= 0){
    // Failure case
}

function wolfSSL_SetTmpDH

int wolfSSL_SetTmpDH(
    WOLFSSL * ssl,
    const unsigned char * p,
    int pSz,
    const unsigned char * g,
    int gSz
)

サーバーDIFFIE-HELLMANエフェメラルパラメータ設定。この関数は、サーバーがDHEを使用する暗号スイートをネゴシエートしている場合に使用するグループパラメータを設定します。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。
  • p Diffie-Hellman素数パラメータ。
  • pSz pのサイズ。
  • g Diffie-Hellman "Generator"パラメータ。

See: SSL_accept

Return:

  • SSL_SUCCESS 成功時に返されます。
  • MEMORY_ERROR メモリエラーが発生した場合に返されます。
  • SIDE_ERROR この関数がSSLサーバではなくSSLクライアントで呼び出されると返されます。

Example

WOLFSSL* ssl;
static unsigned char p[] = {...};
static unsigned char g[] = {...};
...
wolfSSL_SetTmpDH(ssl, p, sizeof(p), g, sizeof(g));

function wolfSSL_SetTmpDH_buffer

int wolfSSL_SetTmpDH_buffer(
    WOLFSSL * ssl,
    const unsigned char * b,
    long sz,
    int format
)

関数はwolfssl_settmph_buffer_wrapperを呼び出します。これはDiffie-Hellmanパラメータのラッパーです。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。
  • buf wolfssl_settmph_file_wrapperから渡された割り当てバッファー。
  • sz ファイルのサイズ(wolfssl_settmph_file_wrapper内のfname)を保持するロングint。

See:

Return:

  • SSL_SUCCESS 実行に成功した場合。
  • SSL_BAD_FILETYPE ファイルの種類がpemではなく、asn.1ではない場合WC_DHParamSLOADが正常に戻っていない場合は、も返されます。
  • SSL_NO_PEM_HEADER PEMヘッダーがない場合はPemToderから返します。
  • SSL_BAD_FILE PemToderにファイルエラーがある場合に返されます。
  • SSL_FATAL_ERROR コピーエラーが発生した場合はPemToderから返されました。
  • MEMORY_E - メモリ割り当てエラーが発生した場合
  • BAD_FUNC_ARG wolfssl構造体がnullの場合、またはそうでない場合はサブルーチンに渡された場合に返されます。
  • DH_KEY_SIZE_E wolfssl_settmph()またはWOLFSSL_CTX_settmph()の鍵サイズエラーがある場合に返されます。
  • SIDE_ERROR wolfssl_settmphのサーバー側ではない場合に返されます。

Example

Static int wolfSSL_SetTmpDH_file_wrapper(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
Const char* fname, int format);
long sz = 0;
byte* myBuffer = staticBuffer[FILE_BUFFER_SIZE];
…
if(ssl)
ret = wolfSSL_SetTmpDH_buffer(ssl, myBuffer, sz, format);

function wolfSSL_SetTmpDH_file

int wolfSSL_SetTmpDH_file(
    WOLFSSL * ssl,
    const char * f,
    int format
)

この関数は、wolfssl_settmph_file_wrapperを呼び出してサーバdiffie-hellmanパラメータを設定します。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ
  • fname 証明書を保持している定数の文字ポインタ。

See:

Return:

  • SSL_SUCCESS この機能の正常な完了とそのサブルーチンの完了に戻りました。
  • MEMORY_E この関数またはサブルーチンにメモリ割り当てが失敗した場合に返されます。
  • SIDE_ERROR WolfSSL構造体にあるオプション構造のサイドメンバーがサーバー側ではない場合。
  • SSL_BAD_FILETYPE 証明書が一連のチェックに失敗した場合は返します。
  • DH_KEY_SIZE_E DHパラメーターの鍵サイズがWolfSSL構造体のMinkKeyszメンバーの値より小さい場合に返されます。
  • DH_KEY_SIZE_E DHパラメータの鍵サイズがwolfssl構造体のMAXDHKEYSZメンバーの値よりも大きい場合に返されます。
  • BAD_FUNC_ARG wolfssl構造など、引数値がnullの場合に返します。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
const char* dhParam;
…
AssertIntNE(SSL_SUCCESS,
wolfSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM));

function wolfSSL_CTX_SetTmpDH

int wolfSSL_CTX_SetTmpDH(
    WOLFSSL_CTX * ctx,
    const unsigned char * p,
    int pSz,
    const unsigned char * g,
    int gSz
)

サーバーCTX Diffie-Hellmanのパラメータを設定します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。
  • p ServerDH_P構造体のバッファメンバーにロードされた定数の符号なし文字ポインタ。
  • pSz pのサイズを表すint型は、max_dh_sizeに初期化されます。
  • g ServerDh_g構造体のバッファメンバーにロードされた定数の符号なし文字ポインタ。

See:

Return:

  • SSL_SUCCESS 関数とすべてのサブルーチンがエラーなしで戻った場合に返されます。
  • BAD_FUNC_ARG CTX、P、またはGパラメーターがNULLの場合に返されます。
  • DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMindHKEYSZメンバーの値より小さい場合に返されます。
  • DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMaxDhkeySZメンバーの値よりも大きい場合に返されます。
  • MEMORY_E この関数またはサブルーチンにメモリの割り当てが失敗した場合に返されます。

Example

WOLFSSL_CTX* ctx =  wolfSSL_CTX_new( protocol );
byte* p;
byte* g;
word32 pSz = (word32)sizeof(p)/sizeof(byte);
word32 gSz = (word32)sizeof(g)/sizeof(byte);
…
int ret =  wolfSSL_CTX_SetTmpDH(ctx, p, pSz, g, gSz);

if(ret != SSL_SUCCESS){
    // Failure case
}

function wolfSSL_CTX_SetTmpDH_buffer

int wolfSSL_CTX_SetTmpDH_buffer(
    WOLFSSL_CTX * ctx,
    const unsigned char * b,
    long sz,
    int format
)

wolfssl_settmph_buffer_wrapperを呼び出すラッパー関数

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWolfSSL構造へのポインタ。
  • buf バッファとして割り当てられ、wolfssl_settmpdh_buffer_wrapperに渡された定数の符号なし文字型へのポインタ。
  • sz wolfssl_settmph_file_wrapper()のFNAMEパラメータから派生した長い整数型。

See:

Return:

  • 0 実行が成功するために返されました。
  • BAD_FUNC_ARG CTXパラメータまたはBUFパラメータがNULLの場合に返されます。
  • MEMORY_E メモリ割り当てエラーがある場合
  • SSL_BAD_FILETYPE フォーマットが正しくない場合に返されます。

Example

static int wolfSSL_SetTmpDH_file_wrapper(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
Const char* fname, int format);
#ifdef WOLFSSL_SMALL_STACK
byte staticBuffer[1]; // force heap usage
#else
byte* staticBuffer;
long sz = 0;
…
if(ssl){
    ret = wolfSSL_SetTmpDH_buffer(ssl, myBuffer, sz, format);
} else {
ret = wolfSSL_CTX_SetTmpDH_buffer(ctx, myBuffer, sz, format);
}

function wolfSSL_CTX_SetTmpDH_file

int wolfSSL_CTX_SetTmpDH_file(
    WOLFSSL_CTX * ctx,
    const char * f,
    int format
)

この関数は、wolfssl_settmph_file_wrapperを呼び出してサーバーDiffie-Hellmanパラメータを設定します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。
  • fname 証明書ファイルへの定数文字ポインタ。

See:

Return:

  • SSL_SUCCESS wolfssl_settmph_file_wrapperまたはそのサブルーチンのいずれかが正常に戻った場合に返されます。
  • MEMORY_E 動的メモリの割り当てがサブルーチンで失敗した場合に返されます。
  • BAD_FUNC_ARG CTXまたはFNAMEパラメータがNULLまたはサブルーチンがNULL引数に渡された場合に返されます。
  • SSL_BAD_FILE 証明書ファイルが開くことができない場合、またはファイルの一連のチェックがwolfssl_settmpdh_file_wrapperから失敗した場合に返されます。
  • SSL_BAD_FILETYPE フォーマットがwolfssl_settmph_buffer_wrapper()からPEMまたはASN.1ではない場合に返されます。
  • DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMindHKEYSZメンバーの値より小さい場合に返されます。
  • DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMaxDhkeySZメンバーの値よりも大きい場合に返されます。
  • SIDE_ERROR wolfssl_settmph()で返されたサイドがサーバー終了ではない場合。
  • SSL_NO_PEM_HEADER PEMヘッダーがない場合はPemToderから返されます。
  • SSL_FATAL_ERROR メモリコピーの失敗がある場合はPemToderから返されます。

Example

#define dhParam     “certs/dh2048.pem”
#DEFINE aSSERTiNTne(x, y)     AssertInt(x, y, !=, ==)
WOLFSSL_CTX* ctx;
…
AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()))
…
AssertIntNE(SSL_SUCCESS, wolfSSL_CTX_SetTmpDH_file(NULL, dhParam,
SSL_FILETYPE_PEM));

function wolfSSL_CTX_SetMinDhKey_Sz

int wolfSSL_CTX_SetMinDhKey_Sz(
    WOLFSSL_CTX * ctx,
    word16 
)

この関数は、WOLFSSL_CTX構造体のminkkeyszメンバーにアクセスして、Diffie Hellman鍵サイズの最小サイズ(ビット単位)を設定します。

Parameters:

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

See:

Return:

  • SSL_SUCCESS 関数が正常に完了した場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、またはキーz_BITSが16,000を超えるか、または8によって割り切れない場合に返されます。

Example

public static int CTX_SetMinDhKey_Sz(IntPtr ctx, short minDhKey){
…
return wolfSSL_CTX_SetMinDhKey_Sz(local_ctx, minDhKeyBits);

function wolfSSL_SetMinDhKey_Sz

int wolfSSL_SetMinDhKey_Sz(
    WOLFSSL * ssl,
    word16 keySz_bits
)

WolfSSL構造のDiffie-Hellman鍵の最小サイズ(ビット単位)を設定します。

Parameters:

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

See:

Return:

  • SSL_SUCCESS 最小サイズは正常に設定されました。
  • BAD_FUNC_ARG wolfssl構造はNULL、またはKeysz_BITSが16,000を超えるか、または8によって割り切れない場合

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
word16 keySz_bits;
...
if(wolfSSL_SetMinDhKey_Sz(ssl, keySz_bits) != SSL_SUCCESS){
    // Failed to set.
}

function wolfSSL_CTX_SetMaxDhKey_Sz

int wolfSSL_CTX_SetMaxDhKey_Sz(
    WOLFSSL_CTX * ctx,
    word16 keySz_bits
)

この関数は、WOLFSSL_CTX構造体のmaxdhkeyszメンバーにアクセスして、Diffie Hellman鍵サイズの最大サイズ(ビット単位)を設定します。

Parameters:

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

See:

Return:

  • SSL_SUCCESS 関数が正常に完了した場合に返されます。
  • BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、またはキーz_BITSが16,000を超えるか、または8によって割り切れない場合に返されます。

Example

public static int CTX_SetMaxDhKey_Sz(IntPtr ctx, short maxDhKey){
…
return wolfSSL_CTX_SetMaxDhKey_Sz(local_ctx, keySz_bits);

function wolfSSL_SetMaxDhKey_Sz

int wolfSSL_SetMaxDhKey_Sz(
    WOLFSSL * ssl,
    word16 keySz_bits
)

WolfSSL構造のDiffie-Hellman鍵の最大サイズ(ビット単位)を設定します。

Parameters:

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

See:

Return:

  • SSL_SUCCESS 最大サイズは正常に設定されました。
  • BAD_FUNC_ARG WOLFSSL構造はNULLまたはKEYSZパラメータは許容サイズより大きかったか、または8によって割り切れませんでした。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
word16 keySz;
...
if(wolfSSL_SetMaxDhKey(ssl, keySz) != SSL_SUCCESS){
    // Failed to set.
}

function wolfSSL_GetDhKey_Sz

int wolfSSL_GetDhKey_Sz(
    WOLFSSL * 
)

オプション構造のメンバーであるDHKEYSZ(ビット内)の値を返します。この値は、Diffie-Hellman鍵サイズをバイト単位で表します。

See:

Return:

  • dhKeySz サイズを表す整数値であるssl-> options.dhkeyszで保持されている値を返します。
  • BAD_FUNC_ARG wolfssl構造体がNULLの場合に返します。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL* ssl = wolfSSL_new(ctx);
int dhKeySz;
...
dhKeySz = wolfSSL_GetDhKey_Sz(ssl);

if(dhKeySz == BAD_FUNC_ARG || dhKeySz <= 0){
    // Failure case
} else {
    // dhKeySz holds the size of the key.
}

function wolfSSL_CTX_SetMinRsaKey_Sz

int wolfSSL_CTX_SetMinRsaKey_Sz(
    WOLFSSL_CTX * ctx,
    short keySz
)

WOLFSSL_CTX構造体とwolfssl_cert_manager構造の両方で最小RSA鍵サイズを設定します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。

See: wolfSSL_SetMinRsaKey_Sz

Return:

  • SSL_SUCCESS 機能の実行に成功したことに戻ります。
  • BAD_FUNC_ARG CTX構造がNULLの場合、またはKEYSZがゼロより小さいか、または8によって割り切れない場合に返されます。

Example

WOLFSSL_CTX* ctx = SSL_CTX_new(method);
(void)minDhKeyBits;
ourCert = myoptarg;
…
minDhKeyBits = atoi(myoptarg);
…
if(wolfSSL_CTX_SetMinRsaKey_Sz(ctx, minRsaKeyBits) != SSL_SUCCESS){
…

function wolfSSL_SetMinRsaKey_Sz

int wolfSSL_SetMinRsaKey_Sz(
    WOLFSSL * ssl,
    short keySz
)

WolfSSL構造にあるRSAのためのビットで最小許容鍵サイズを設定します。

Parameters:

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

See: wolfSSL_CTX_SetMinRsaKey_Sz

Return:

  • SSL_SUCCESS 最小値が正常に設定されました。
  • BAD_FUNC_ARG SSL構造がNULLの場合、またはKSYSZがゼロより小さい場合、または8によって割り切れない場合に返されます。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
short keySz;
…

int isSet =  wolfSSL_SetMinRsaKey_Sz(ssl, keySz);
if(isSet != SSL_SUCCESS){
    Failed to set.
}

function wolfSSL_CTX_SetMinEccKey_Sz

int wolfSSL_CTX_SetMinEccKey_Sz(
    WOLFSSL_CTX * ssl,
    short keySz
)

wolf_ctx構造体とwolfssl_cert_manager構造体のECC鍵の最小サイズをビット単位で設定します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。

See: wolfSSL_SetMinEccKey_Sz

Return:

  • SSL_SUCCESS 実行が成功したために返され、MineCkeyszメンバーが設定されます。
  • BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、または鍵が負の場合、または8によって割り切れない場合に返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
short keySz; // minimum key size
…
if(wolfSSL_CTX_SetMinEccKey(ctx, keySz) != SSL_SUCCESS){
    // Failed to set min key size
}

function wolfSSL_SetMinEccKey_Sz

int wolfSSL_SetMinEccKey_Sz(
    WOLFSSL * ssl,
    short keySz
)

オプション構造のMineCckeyszメンバーの値を設定します。オプション構造体は、WolfSSL構造のメンバーであり、SSLパラメータを介してアクセスされます。

Parameters:

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

See:

Return:

  • SSL_SUCCESS 関数がオプション構造のMineCckeyszメンバーを正常に設定した場合。
  • BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、または鍵サイズ(keysz)が0(ゼロ)未満の場合、または8で割り切れない場合。

Example

WOLFSSL* ssl = wolfSSL_new(ctx); // New session
short keySz = 999; // should be set to min key size allowable
...
if(wolfSSL_SetMinEccKey_Sz(ssl, keySz) != SSL_SUCCESS){
    // Failure case.
}

function wolfSSL_make_eap_keys

int wolfSSL_make_eap_keys(
    WOLFSSL * ssl,
    void * key,
    unsigned int len,
    const char * label
)

この関数は、eap_tlsとeap-ttlsによって、マスターシークレットからキーイングマテリアルを導出します。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ
  • msk p_hash関数の結果を保持するvoidポインタ変数。
  • len MSK変数の長さを表す符号なし整数。

See:

Return:

  • BUFFER_E バッファの実際のサイズが許容最大サイズを超える場合に返されます。
  • MEMORY_E メモリ割り当てにエラーがある場合に返されます。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);;
void* msk;
unsigned int len;
const char* label;
…
return wolfSSL_make_eap_keys(ssl, msk, len, label);

function wolfSSL_CTX_load_verify_buffer

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

この関数はCA証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • in CA証明書バッファへのポインタ。
  • sz 入力CA証明書バッファのサイズ、IN。

See:

Return:

  • SSL_SUCCESS 成功すると
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。

Example

int ret = 0;
int sz = 0;
WOLFSSL_CTX* ctx;
byte certBuff[...];
...

ret = wolfSSL_CTX_load_verify_buffer(ctx, certBuff, sz, SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // error loading CA certs from buffer
}
...

function wolfSSL_CTX_load_verify_buffer_ex

int wolfSSL_CTX_load_verify_buffer_ex(
    WOLFSSL_CTX * ctx,
    const unsigned char * in,
    long sz,
    int format,
    int userChain,
    word32 flags
)

この関数はCA証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。_EXバージョンはPR 2413に追加され、UserChainとFlagsの追加の引数をサポートします。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • in CA証明書バッファへのポインタ。
  • sz 入力CA証明書バッファのサイズ、IN。
  • format バッファ証明書の形式、SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。
  • userChain フォーマットwolfssl_filetype_asn1を使用する場合、このセットはゼロ以外のセットを示しています.Derのチェーンが表示されています。

See:

Return:

  • SSL_SUCCESS 成功すると
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。

Example

int ret = 0;
int sz = 0;
WOLFSSL_CTX* ctx;
byte certBuff[...];
...

// Example for force loading an expired certificate
ret = wolfSSL_CTX_load_verify_buffer_ex(ctx, certBuff, sz, SSL_FILETYPE_PEM,
    0, (WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY));
if (ret != SSL_SUCCESS) {
    // error loading CA certs from buffer
}
...

function wolfSSL_CTX_load_verify_chain_buffer_format

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

この関数は、CA証明書チェーンバッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • in CA証明書バッファへのポインタ。
  • sz 入力CA証明書バッファのサイズ、IN。

See:

Return:

  • SSL_SUCCESS 成功すると
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。

Example

int ret = 0;
int sz = 0;
WOLFSSL_CTX* ctx;
byte certBuff[...];
...

ret = wolfSSL_CTX_load_verify_chain_buffer_format(ctx,
                     certBuff, sz, WOLFSSL_FILETYPE_ASN1);
if (ret != SSL_SUCCESS) {
    // error loading CA certs from buffer
}
...

function wolfSSL_CTX_use_certificate_buffer

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

この関数は証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • in ロードする証明書を含む入力バッファ。
  • sz 入力バッファのサイズ。

See:

Return:

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

Example

int ret = 0;
int sz = 0;
WOLFSSL_CTX* ctx;
byte certBuff[...];
...
ret = wolfSSL_CTX_use_certificate_buffer(ctx, certBuff, sz, SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // error loading certificate from buffer
}
...

function wolfSSL_CTX_use_PrivateKey_buffer

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

この関数は、秘密鍵バッファをSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1OR SSL_FILETYPE_PEM。適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • in ロードする秘密鍵を含む入力バッファ。
  • sz 入力バッファのサイズ。

See:

Return:

  • SSL_SUCCESS 成功すると
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • NO_PASSWORD 鍵ファイルが暗号化されているがパスワードが提供されていない場合に返されます。

Example

int ret = 0;
int sz = 0;
WOLFSSL_CTX* ctx;
byte keyBuff[...];
...
ret = wolfSSL_CTX_use_PrivateKey_buffer(ctx, keyBuff, sz, SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // error loading private key from buffer
}
...

function wolfSSL_CTX_use_certificate_chain_buffer

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

この関数は、証明書チェーンバッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。バッファはPEM形式で、ルート証明書で終わる対象の証明書から始めてください。適切な使用法の例をご覧ください。

Parameters:

  • ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。
  • in ロードされるPEM形式の証明書チェーンを含む入力バッファ。

See:

Return:

  • SSL_SUCCESS 成功すると
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。

Example

int ret = 0;
int sz = 0;
WOLFSSL_CTX* ctx;
byte certChainBuff[...];
...
ret = wolfSSL_CTX_use_certificate_chain_buffer(ctx, certChainBuff, sz);
if (ret != SSL_SUCCESS) {
    // error loading certificate chain from buffer
}
...

function wolfSSL_use_certificate_buffer

int wolfSSL_use_certificate_buffer(
    WOLFSSL * ssl,
    const unsigned char * in,
    long sz,
    int format
)

この関数は、証明書バッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。

Parameters:

  • ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。
  • in ロードする証明書を含むバッファ。
  • sz バッファにある証明書のサイズ。

See:

Return:

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

Example

int buffSz;
int ret;
byte certBuff[...];
WOLFSSL* ssl = 0;
...

ret = wolfSSL_use_certificate_buffer(ssl, certBuff, buffSz, SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // failed to load certificate from buffer
}

function wolfSSL_use_PrivateKey_buffer

int wolfSSL_use_PrivateKey_buffer(
    WOLFSSL * ssl,
    const unsigned char * in,
    long sz,
    int format
)

この関数は、秘密鍵バッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。

Parameters:

  • ssl wolfssl_new()で作成されたSSLセッションへのポインタ。
  • in ロードする秘密鍵を含むバッファ。
  • sz バッファにある秘密鍵のサイズ。

See:

Return:

  • SSL_SUCCESS 成功時に返されます。
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • NO_PASSWORD 鍵ファイルが暗号化されているがパスワードが提供されていない場合に返されます。

Example

int buffSz;
int ret;
byte keyBuff[...];
WOLFSSL* ssl = 0;
...
ret = wolfSSL_use_PrivateKey_buffer(ssl, keyBuff, buffSz, SSL_FILETYPE_PEM);
if (ret != SSL_SUCCESS) {
    // failed to load private key from buffer
}

function wolfSSL_use_certificate_chain_buffer

int wolfSSL_use_certificate_chain_buffer(
    WOLFSSL * ssl,
    const unsigned char * in,
    long sz
)

この関数は、証明書チェーンバッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。バッファはPEM形式で、ルート証明書で終わる対象の証明書から始めてください。適切な使用法の例をご覧ください。

Parameters:

  • ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ
  • in ロードする証明書を含むバッファ。

See:

Return:

  • SSL_SUCCES 成功時に返されます。
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。
  • SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。

Example

int buffSz;
int ret;
byte certChainBuff[...];
WOLFSSL* ssl = 0;
...
ret = wolfSSL_use_certificate_chain_buffer(ssl, certChainBuff, buffSz);
if (ret != SSL_SUCCESS) {
    // failed to load certificate chain from buffer
}

function wolfSSL_UnloadCertsKeys

int wolfSSL_UnloadCertsKeys(
    WOLFSSL * 
)

この関数は、SSLが所有する証明書または鍵をアンロードします。

See: wolfSSL_CTX_UnloadCAs

Return:

  • SSL_SUCCESS - 関数が正常に実行された場合に返されます。
  • BAD_FUNC_ARG - wolfsslオブジェクトがnullの場合に返されます。

Example

WOLFSSL* ssl = wolfSSL_new(ctx);
...
int unloadKeys = wolfSSL_UnloadCertsKeys(ssl);
if(unloadKeys != SSL_SUCCESS){
    // Failure case.
}

function wolfSSL_GetIVSize

int wolfSSL_GetIVSize(
    WOLFSSL * 
)

WolfSSL構造体に保持されているSpecs構造体のIV_SIZEメンバーを返します。

Parameters:

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

See:

Return:

  • iv_size ssl-> specs.iv_sizeで保持されている値を返します。
  • BAD_FUNC_ARG WolfSSL構造がNULLの場合に返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
int ivSize;
...
ivSize = wolfSSL_GetIVSize(ssl);

if(ivSize > 0){
    // ivSize holds the specs.iv_size value.
}

function wolfSSL_KeepArrays

void wolfSSL_KeepArrays(
    WOLFSSL * 
)

通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。ハンドシェイクが始まる前にこの関数を呼び出すと、WolfSSLは一時的な配列を解放するのを防ぎます。Wolfssl_get_keys()またはPSKのヒントなどのものには、一時的な配列が必要になる場合があります。ユーザが一時的な配列で行われると、wolfssl_freearray()のいずれかが即座にリソースを解放することができ、あるいは、関連するSSLオブジェクトが解放されたときにリソースが解放されるようになる可能性がある。

See: wolfSSL_FreeArrays

Return: none 返品不可。

Example

WOLFSSL* ssl;
...
wolfSSL_KeepArrays(ssl);

function wolfSSL_FreeArrays

void wolfSSL_FreeArrays(
    WOLFSSL * 
)

通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。wolfssl_keeparrays()がハンドシェイクの前に呼び出された場合、WolfSSLは一時的な配列を解放しません。この関数は一時的な配列を明示的に解放し、ユーザーが一時的な配列で行われたときに呼び出されるべきであり、SSLオブジェクトがこれらのリソースを解放するのを待ったくない。

See: wolfSSL_KeepArrays

Return: none 返品不可。

Example

WOLFSSL* ssl;
...
wolfSSL_FreeArrays(ssl);

function wolfSSL_DeriveTlsKeys

int wolfSSL_DeriveTlsKeys(
    unsigned char * key_data,
    word32 keyLen,
    const unsigned char * ms,
    word32 msLen,
    const unsigned char * sr,
    const unsigned char * cr,
    int tls1_2,
    int hash_type
)

TLSキーを導き出すための外部のラッパー。

Parameters:

  • key_data DeriveTlSkeysに割り当てられ、最終ハッシュを保持するためにWC_PRFに渡されたバイトポインタ。
  • keyLen WOLFSSL構造体のスペックメンバーからのDerivetlskeysで派生したWord32タイプ。
  • ms WolfSSL構造内でアレイ構造に保持されているマスターシークレットを保持する定数ポインタ型。
  • msLen 列挙された定義で、マスターシークレットの長さを保持するWord32タイプ。
  • sr WOLFSSL構造内の配列構造のServerRandomメンバーへの定数バイトポインタ。
  • cr WolfSSL構造内の配列構造のClientRandomメンバーへの定数バイトポインタ。
  • tls1_2 ISATLEASTLSV1_2()から返された整数型。

See:

  • wc_PRF
  • DeriveTlsKeys
  • IsAtLeastTLSv1_2

Return:

  • 0 成功に戻りました。
  • BUFFER_E LABLENとSEADLENの合計(合計サイズを計算)が最大サイズを超えると返されます。
  • MEMORY_E メモリの割り当てが失敗した場合に返されます。

Example

int DeriveTlsKeys(WOLFSSL* ssl){
int ret;
…
ret = wolfSSL_DeriveTlsKeys(key_data, length, ssl->arrays->masterSecret,
SECRET_LEN, ssl->arrays->clientRandom,
IsAtLeastTLSv1_2(ssl), ssl->specs.mac_algorithm);
…
}

function wolfSSL_X509_get_ext_by_NID

int wolfSSL_X509_get_ext_by_NID(
    const WOLFSSL_X509 * x509,
    int nid,
    int lastPos
)

この機能は、渡されたNID値に一致する拡張索引を探して返します。

Parameters:

  • x509 拡張のために解析する証明書。
  • nid 見つかる拡張OID。

Return:

  • = 0拡張インデックスが成功した場合に返されます。

  • -1 拡張が見つからないかエラーが発生した場合

Example

const WOLFSSL_X509* x509;
int lastPos = -1;
int idx;

idx = wolfSSL_X509_get_ext_by_NID(x509, NID_basic_constraints, lastPos);

function wolfSSL_X509_get_ext_d2i

void * wolfSSL_X509_get_ext_d2i(
    const WOLFSSL_X509 * x509,
    int nid,
    int * c,
    int * idx
)

この関数は、渡されたNID値に合った拡張子を探して返します。

Parameters:

  • x509 拡張のために解析する証明書。
  • nid 見つかる拡張OID。
  • c not nullが複数の拡張子に-2に設定されていない場合は-1が見つかりませんでした。

See: wolfSSL_sk_ASN1_OBJECT_free

Return:

  • pointer STACK_OF(wolfssl_asn1_object)ポインタが成功した場合に返されます。
  • NULL 拡張が見つからないかエラーが発生した場合

Example

const WOLFSSL_X509* x509;
int c;
int idx = 0;
STACK_OF(WOLFSSL_ASN1_OBJECT)* sk;

sk = wolfSSL_X509_get_ext_d2i(x509, NID_basic_constraints, &c, &idx);
//check sk for NULL and then use it. sk needs freed after done.

function wolfSSL_X509_digest

int wolfSSL_X509_digest(
    const WOLFSSL_X509 * x509,
    const WOLFSSL_EVP_MD * digest,
    unsigned char * buf,
    unsigned int * len
)

この関数はDER証明書のハッシュを返します。

Parameters:

  • x509 ハッシュを得るための証明書。
  • digest 使用するハッシュアルゴリズム
  • buf ハッシュを保持するためのバッファ。

See: none

Return:

  • SSL_SUCCESS ハッシュの作成に成功しました。
  • SSL_FAILURE 不良入力または失敗したハッシュに戻りました。

Example

WOLFSSL_X509* x509;
unsigned char buffer[64];
unsigned int bufferSz;
int ret;

ret = wolfSSL_X509_digest(x509, wolfSSL_EVP_sha256(), buffer, &bufferSz);
//check ret value

function wolfSSL_use_PrivateKey

int wolfSSL_use_PrivateKey(
    WOLFSSL * ssl,
    WOLFSSL_EVP_PKEY * pkey
)

これはWolfSSL構造の秘密鍵を設定するために使用されます。

Parameters:

  • ssl 引数を設定するためのWolfSSL構造。

See:

Return:

  • SSL_SUCCESS 設定の成功した引数について。
  • SSL_FAILURE NULL SSLが渡された場合。すべてのエラーケースは負の値になります。

Example

WOLFSSL* ssl;
WOLFSSL_EVP_PKEY* pkey;
int ret;
// create ssl object and set up private key
ret  = wolfSSL_use_PrivateKey(ssl, pkey);
// check ret value

function wolfSSL_use_PrivateKey_ASN1

int wolfSSL_use_PrivateKey_ASN1(
    int pri,
    WOLFSSL * ssl,
    unsigned char * der,
    long derSz
)

これはWolfSSL構造の秘密鍵を設定するために使用されます。DERフォーマットのキーバッファが予想されます。

Parameters:

  • pri 秘密鍵の種類。
  • ssl 引数を設定するためのWolfSSL構造。
  • der バッファー保持DERキー。

See:

Return:

  • SSL_SUCCESS 秘密鍵の構文解析と設定に成功した場合。
  • SSL_FAILURE NULL SSLが渡された場合。すべてのエラーケースは負の値になります。

Example

WOLFSSL* ssl;
unsigned char* pkey;
long pkeySz;
int ret;
// create ssl object and set up private key
ret  = wolfSSL_use_PrivateKey_ASN1(1, ssl, pkey, pkeySz);
// check ret value

function wolfSSL_use_RSAPrivateKey_ASN1

int wolfSSL_use_RSAPrivateKey_ASN1(
    WOLFSSL * ssl,
    unsigned char * der,
    long derSz
)

これはWolfSSL構造の秘密鍵を設定するために使用されます。DERフォーマットのRSAキーバッファが予想されます。

Parameters:

  • ssl 引数を設定するためのWolfSSL構造。
  • der バッファー保持DERキー。

See:

Return:

  • SSL_SUCCESS 秘密鍵の構文解析と設定に成功した場合。
  • SSL_FAILURE NULL SSLが渡された場合。すべてのエラーケースは負の値になります。

Example

WOLFSSL* ssl;
unsigned char* pkey;
long pkeySz;
int ret;
// create ssl object and set up RSA private key
ret  = wolfSSL_use_RSAPrivateKey_ASN1(ssl, pkey, pkeySz);
// check ret value

function wolfSSL_DSA_dup_DH

WOLFSSL_DH * wolfSSL_DSA_dup_DH(
    const WOLFSSL_DSA * r
)

この関数は、DSAのパラメータを新しく作成されたWOLFSSL_DH構造体に重複しています。

See: none

Return:

  • WOLFSSL_DH 重複した場合はWolfSSL_DH構造体を返す場合
  • NULL 失敗すると

Example

WOLFSSL_DH* dh;
WOLFSSL_DSA* dsa;
// set up dsa
dh = wolfSSL_DSA_dup_DH(dsa);

// check dh is not null

function wolfSSL_d2i_X509_bio

WOLFSSL_X509 * wolfSSL_d2i_X509_bio(
    WOLFSSL_BIO * bio,
    WOLFSSL_X509 ** x509
)

この関数はBIOからDERバッファを取得し、それをWolfSSL_X509構造に変換します。

Parameters:

  • bio DER証明書バッファを持つWOLFSSL_BIO構造体体へのポインタ。

See: none

Return:

  • pointer 成功したwolfssl_x509構造ポインタを返します。
  • Null 失敗時にNULLを返します

Example

WOLFSSL_BIO* bio;
WOLFSSL_X509* x509;
// load DER into bio
x509 = wolfSSL_d2i_X509_bio(bio, NULL);
Or
wolfSSL_d2i_X509_bio(bio, &x509);
// use x509 returned (check for NULL)

function wolfSSL_PEM_read_bio_X509_AUX

WOLFSSL_X509 * wolfSSL_PEM_read_bio_X509_AUX(
    WOLFSSL_BIO * bp,
    WOLFSSL_X509 ** x,
    wc_pem_password_cb * cb,
    void * u
)

この関数はwolfssl_pem_read_bio_x509と同じように動作します。AUXは、信頼できる/拒否されたユースケースや人間の読みやすさのためのフレンドリーな名前などの追加情報を含むことを意味します。

Parameters:

  • bp WOLFSSL_BIO構造体体からPEMバッファを取得します。
  • x wolfssl_x509を機能副作用で設定する場合
  • cb パスワードコールバック

See: wolfSSL_PEM_read_bio_X509

Return:

  • WOLFSSL_X509 PEMバッファの解析に成功した場合、wolfssl_x509構造が返されます。
  • Null PEMバッファの解析に失敗した場合。

Example

WOLFSSL_BIO* bio;
WOLFSSL_X509* x509;
// setup bio
X509 = wolfSSL_PEM_read_bio_X509_AUX(bio, NULL, NULL, NULL);
//check x509 is not null and then use it

function wolfSSL_CTX_set_tmp_dh

long wolfSSL_CTX_set_tmp_dh(
    WOLFSSL_CTX * ctx,
    WOLFSSL_DH * dh
)

WOLFSSL_CTX構造体のDHメンバーをdiffie-hellmanパラメータで初期化します。

Parameters:

  • ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。

See: wolfSSL_BN_bn2bin

Return:

  • SSL_SUCCESS 関数が正常に実行された場合に返されます。
  • BAD_FUNC_ARG CTXまたはDH構造体がNULLの場合に返されます。
  • SSL_FATAL_ERROR 構造値を設定するエラーが発生した場合に返されます。
  • MEMORY_E メモリを割り当てることができなかった場合に返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL_DH* dh;
…
return wolfSSL_CTX_set_tmp_dh(ctx, dh);

function wolfSSL_PEM_read_bio_DSAparams

WOLFSSL_DSA * wolfSSL_PEM_read_bio_DSAparams(
    WOLFSSL_BIO * bp,
    WOLFSSL_DSA ** x,
    wc_pem_password_cb * cb,
    void * u
)

この関数は、BIOのPEMバッファからDSAパラメータを取得します。

Parameters:

  • bio PEMメモリポインタを取得するためのWOLFSSL_BIO構造体体へのポインタ。
  • x 新しいWolfSSL_DSA構造に設定するポインタ。
  • cb パスワードコールバック関数

See: none

Return:

  • WOLFSSL_DSA PEMバッファの解析に成功した場合、WolfSSL_DSA構造が作成され、返されます。
  • Null PEMバッファの解析に失敗した場合。

Example

WOLFSSL_BIO* bio;
WOLFSSL_DSA* dsa;
// setup bio
dsa = wolfSSL_PEM_read_bio_DSAparams(bio, NULL, NULL, NULL);

// check dsa is not NULL and then use dsa

function WOLF_STACK_OF

WOLF_STACK_OF(
    WOLFSSL_X509 
) const

この関数はピアの証明書チェーンを取得します。

See:

Return:

  • pointer ピアの証明書スタックへのポインタを返します。
  • NULL ピア証明書がない場合に返されます。

Example

WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method );
WOLFSSL* ssl = wolfSSL_new(ctx);
...
wolfSSL_connect(ssl);
STACK_OF(WOLFSSL_X509)* chain = wolfSSL_get_peer_cert_chain(ssl);
ifchain){
    // You have a pointer to the peer certificate chain
}

function wolfSSL_X509_get_next_altname

char * wolfSSL_X509_get_next_altname(
    WOLFSSL_X509 * x509
)

この関数は、存在する場合は、ピア証明書からaltnameを返します。

See:

Return:

  • NULL 次のAltNameがない場合。
  • cert->altNamesNext->name wolfssl_x509から、AltNameリストからの文字列値である構造が存在する場合に返されます。

Example

WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL,
                                                    DYNAMIC_TYPE_X509);
…
int x509NextAltName = wolfSSL_X509_get_next_altname(x509);
if(x509NextAltName == NULL){
        //There isn’t another alt name
}

function wolfSSL_X509_get_notBefore

WOLFSSL_ASN1_TIME * wolfSSL_X509_get_notBefore(
    WOLFSSL_X509 * x509
)

関数は、x509がnullのかどうかを確認し、そうでない場合は、WOLFSSL_X509構造体のNotBeforeメンバーを返します。

Parameters:

  • x509 WOLFSSL_X509構造体へのポインタ

See: wolfSSL_X509_get_notAfter

Return:

  • pointer WOLFSSL_ASN1_TIMEへのポインタ(WOLFSSL_X509構造体のNotBeforeメンバーへのポインタ)を返します。
  • NULL WOLFSSL_X509構造体がNULLの場合に返されます。

Example

WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALLOC(sizeof(WOLFSSL_X509), NULL,
DYNAMIC_TYPE_X509) ;
…
const WOLFSSL_ASN1_TIME* notAfter = wolfSSL_X509_get_notBefore(x509);
if(notAfter == NULL){
        //The x509 object was NULL
}

Updated on 2024-04-19 at 02:10:11 +0000