コンテンツにスキップ

wolfSSL Certificates and Keys

Functions

Name
int wolfSSL_CTX_use_certificate_file(WOLFSSL_CTX * ctx, const char * file, int format)
この関数は証明書ファイルをSSLコンテキストにロードします(wolfssl_ctx)。ファイルはファイル引数によって提供されます。format引数は、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。適切な使用法の例をご覧ください。
int wolfSSL_CTX_use_PrivateKey_file(WOLFSSL_CTX * ctx, const char * file, int format)
この関数は、秘密鍵ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。ファイルはファイル引数によって提供されます。format引数は、ファイルのフォーマットタイプを指定します.SSL_FILETYPE_ASN1OR SSL_FILETYPE_PEM。適切な使用法の例をご覧ください。外部キーストアを使用し、秘密鍵を持っていない場合は、代わりに公開鍵を入力してCryProコールバックを登録して署名を処理することができます。このためには、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 * format)
この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルであり得る。複数のCA CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 path引数は、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。ファイルの値がNULLではない場合、パスを必要な場合はパスをNULLとして指定できます。 Libraryの構築時にパスが指定されていない場合は、WOLFSSLが指定されたディレクトリにあるすべてのCA証明書をロードします。この関数はディレクトリ内のすべてのファイルをロードしようとします。この関数は、ヘッダー "-----証明書-----"を持つpemフォーマットされたcert_typeファイルを期待しています。
int wolfSSL_CTX_load_verify_locations_ex(WOLFSSL_CTX * ctx, const char * file, const char * path, unsigned int flags)
この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルであり得る。複数のCA CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 path引数は、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。ファイルの値がNULLではない場合、パスを必要な場合はパスをNULLとして指定できます。 Libraryの構築時にパスが指定されていない場合は、WOLFSSLが指定されたディレクトリにあるすべてのCA証明書をロードします。この関数は、指定されたフラグに基づいてディレクトリ内のすべてのファイルをロードしようとします。この関数は、ヘッダー "-----証明書-----"を持つPEM形式のcert_typeファイルを想定しています。
int wolfSSL_CTX_use_certificate_chain_file(WOLFSSL_CTX * ctx, const char * file)
この関数は、Chain of chainをSSLコンテキスト(WolfSSL_CTX)にロードします。証明書チェーンを含むファイルはファイル引数によって提供され、PEM形式の証明書を含める必要があります。この関数は、最大MAX_CHAIN_DEPTH(Default = 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 CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 format引数は、証明書がSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1(DER)のいずれかにある形式を指定します。 wolfssl_ctx_load_verify_locationsとは異なり、この関数は特定のディレクトリパスからのCA証明書のロードを許可しません。この関数は、WolfSSLライブラリがwolfssl_der_doad定義された状態でコンパイルされたときにのみ利用可能です。
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 * )
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 * )
この関数は証明書発行者の名前を返します。
WOLFSSL_X509_NAME * wolfSSL_X509_get_subject_name(WOLFSSL_X509 * )
この関数は、wolfssl_x509構造の件名メンバーを返します。
int wolfSSL_X509_get_isCA(WOLFSSL_X509 * )
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 * )
この関数は、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 BEFISE」を機能します。
const byte * wolfSSL_X509_notAfter(WOLFSSL_X509 * x509)
これは、BYTE配列として符号化された有効性の証明書「未処理」を機能します。
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_209_Certificateをインデックス(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 * )
この関数は、存在する場合は、ピア証明書からaltnameを返します。
WOLFSSL_ASN1_TIME * wolfSSL_X509_get_notBefore(WOLFSSL_X509 * )
関数は、x509がnullのかどうかを確認し、そうでない場合は、x509構造体のNotBeforeメンバーを返します。

Functions Documentation

function wolfSSL_CTX_use_certificate_file

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

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

Parameters:

  • ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ
  • file WolfSSL SSLコンテキストにロードする証明書を含むファイルの名前へのポインタ。 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
}
...

See:

Return:

  • SSL_SUCCESS 成功すると。
  • SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因が誤った形式にある場合、または「format」引数を使用して誤ったフォーマットが指定されている場合があります。ファイルは存在しません。読み取られない、または破損しているメモリ状態が発生すると、ベース16のデコードはファイルで失敗します。

function wolfSSL_CTX_use_PrivateKey_file

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

この関数は、秘密鍵ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。ファイルはファイル引数によって提供されます。format引数は、ファイルのフォーマットタイプを指定します.SSL_FILETYPE_ASN1OR SSL_FILETYPE_PEM。適切な使用法の例をご覧ください。外部キーストアを使用し、秘密鍵を持っていない場合は、代わりに公開鍵を入力してCryProコールバックを登録して署名を処理することができます。このためには、CryptoコールバックまたはPKコールバックを使用したビルドで構築できます。Cryptoコールバックを有効にするには、-enable-cryptocbまたはwolf_crypto_cbを使用し、wc_cryptocb_registerDeviceを使用して暗号コールバックを登録し、wolfssl_ctx_setdevidを使用して関連するdevidを設定します。

See:

Return:

  • SSL_SUCCESS 成功すると。
  • SSL_FAILURE ファイルは間違った形式で、または「format」引数を使用して誤った形式が与えられています。ファイルが存在しない、読み込めない、または破損しています。メモリ不足状態が発生します。base16デコードはファイルで失敗します。キーファイルは暗号化されていますが、パスワードは提供されません。 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
}
...

function wolfSSL_CTX_load_verify_locations

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

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

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。
  • file PEM形式のCA証明書を含むファイルの名前へのポインタ。 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
}
...

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()がパスを開こうとしたときに失敗した場合に返されます。

function wolfSSL_CTX_load_verify_locations_ex

int wolfSSL_CTX_load_verify_locations_ex(
    WOLFSSL_CTX * ctx,
    const char * file,
    const char * path,
    unsigned int flags
)

この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルであり得る。複数のCA CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 path引数は、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。ファイルの値がNULLではない場合、パスを必要な場合はパスをNULLとして指定できます。 Libraryの構築時にパスが指定されていない場合は、WOLFSSLが指定されたディレクトリにあるすべてのCA証明書をロードします。この関数は、指定されたフラグに基づいてディレクトリ内のすべてのファイルをロードしようとします。この関数は、ヘッダー "-----証明書-----"を持つPEM形式のcert_typeファイルを想定しています。

Parameters:

  • ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。
  • file PEM形式のCA証明書を含むファイルの名前へのポインタ。
  • path PEM形式の証明書をロードするディレクトリの名前へのポインタ。 Example
int ret = 0;
WOLFSSL_CTX* ctx;
...
ret = wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, “./certs/external",
    WOLFSSL_LOAD_FLAG_PEM_CA_ONLY);
if (ret != WOLFSSL_SUCCESS) {
    // error loading CA certs
}
...

See:

Return:

  • SSL_SUCCESS 成功しました。
  • SSL_FAILURE CTXがNULLの場合、またはファイルとパスの両方がNULLの場合は返されます。少なくとも1つの証明書が正常にロードされているが、失敗した1つ以上がある場合、これも返されます。理由でエラースタックを確認してください。
  • SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。
  • SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。
  • MEMORY_E メモリ不足状態が発生した場合に返されます。
  • ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。
  • BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。
  • BAD_PATH_ERROR OpenDir()がパスを開こうとしたときに失敗した場合に返されます。

function wolfSSL_CTX_use_certificate_chain_file

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

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

Parameters:

  • ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ 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
}
...

See:

Return:

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

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 CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 format引数は、証明書がSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1(DER)のいずれかにある形式を指定します。 wolfssl_ctx_load_verify_locationsとは異なり、この関数は特定のディレクトリパスからのCA証明書のロードを許可しません。この関数は、WolfSSLライブラリがwolfssl_der_doad定義された状態でコンパイルされたときにのみ利用可能です。

Parameters:

  • ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ
  • file wolfssl SSLコンテキストにロードされるCA証明書を含むファイルの名前をフォーマットで指定された形式で指定します。 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
}
...

See:

Return:

  • SSL_SUCCESS 成功すると。
  • SSL_FAILURE 失敗すると。

function wolfSSL_SetCertCbCtx

void wolfSSL_SetCertCbCtx(
    WOLFSSL * ssl,
    void * ctx
)

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

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 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.
}

See:

Return: none 返品不可。

function wolfSSL_CTX_SetCertCbCtx

void wolfSSL_CTX_SetCertCbCtx(
    WOLFSSL_CTX * ctx,
    void * userCtx
)

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

Parameters:

  • ctx wolfssl_ctx構造へのポインタ。 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.
}

See:

Return: none 返品不可。

function wolfSSL_CTX_save_cert_cache

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

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

Parameters:

  • ctx wolfssl_ctx構造へのポインタ、証明書情報を保持します。 Example
WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol def );
const char* fname;
...
if(wolfSSL_CTX_save_cert_cache(ctx, fname)){
    // file was written.
}

See:

  • CM_SaveCertCache
  • DoMemSaveCertCache

Return:

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

function wolfSSL_CTX_restore_cert_cache

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

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

Parameters:

  • ctx wolfssl_ctx構造へのポインタ、証明書情報を保持します。 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
}

See:

  • CM_RestoreCertCache
  • XFOPEN

Return:

  • SSL_SUCCESS 関数cm_restorecertcacheが正常に実行された場合に返されます。
  • SSL_BAD_FILE xfopenがxbadfileを返すと返されます。ファイルが破損しています。
  • MEMORY_E TEMPバッファの割り当てられたメモリが失敗した場合に返されます。
  • BAD_FUNC_ARG FNAMEまたはCTXにNULL値がある場合は返されます。

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 出力バッファのサイズ。 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
}

See:

  • DoMemSaveCertCache
  • GetCertCacheMemSize
  • CM_MemRestoreCertCache
  • CM_GetCertCacheMemSize

Return:

  • SSL_SUCCESS 機能の実行に成功したことに戻ります。エラーが投げられていません。
  • BAD_MUTEX_E wolfssl_cert_managerメンバーのカーボックが0(ゼロ)ではなかったミューテックスエラー。
  • BAD_FUNC_ARG CTX、MEM、または使用がNULLの場合、またはSZが0以下の場合(0(ゼロ)。
  • BUFFER_E 出力バッファMEMが小さすぎました。

function wolfSSL_CTX_get_cert_cache_memsize

int wolfSSL_CTX_get_cert_cache_memsize(
    WOLFSSL_CTX * 
)

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

See: CM_GetCertCacheMemSize

Return:

  • int 成功したときにメモリサイズを表す整数値。
  • 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構造からコピーされた名前を保持するためのバッファ。 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.
}

See:

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

function wolfSSL_X509_get_issuer_name

WOLFSSL_X509_NAME * wolfSSL_X509_get_issuer_name(
    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 * 
)

この関数は、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 * 
)

wolfssl_x509構造のISCAメンバーをチェックして値を返します。

See:

Return:

  • isCA wolfssl_x509構造のISCAメンバー内の値を返します。
  • 0 有効な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 見つかったときにテキストを保持するためのバッファー。 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

See: none

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

function wolfSSL_X509_get_signature_type

int wolfSSL_X509_get_signature_type(
    WOLFSSL_X509 * 
)

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

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 バッファへの文字ポインタ。 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.
}

See:

Return:

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

function wolfSSL_X509_STORE_add_cert

int wolfSSL_X509_STORE_add_cert(
    WOLFSSL_X509_STORE * store,
    WOLFSSL_X509 * x509
)

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

Parameters:

  • str 証明書を追加する証明書ストア。 Example
WOLFSSL_X509_STORE* str;
WOLFSSL_X509* x509;
int ret;
ret = wolfSSL_X509_STORE_add_cert(str, x509);
//check ret value

See: wolfSSL_X509_free

Return:

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

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関数です。現在チェーンは取り込まれていません。

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 フラグを設定する証明書ストア。 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
}

See:

  • wolfSSL_X509_STORE_new
  • wolfSSL_X509_STORE_free

Return:

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

function wolfSSL_X509_notBefore

const byte * wolfSSL_X509_notBefore(
    WOLFSSL_X509 * x509
)

これは、BYTEアレイとして符号化された有効性の証明書「NOT BEFISE」を機能します。

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配列として符号化された有効性の証明書「未処理」を機能します。

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構造へのポインタ。 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.
}

See: wolfSSL_use_psk_identity_hint

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

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構造へのポインタ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
const char* hint;
...
if(wolfSSL_use_psk_identity_hint(ssl, hint) != SSL_SUCCESS){
    // Handle failure case.
}

See: wolfSSL_CTX_use_psk_identity_hint

Return:

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

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_209_Certificateをインデックス(IDX)で取得します。

Parameters:

  • chain 動的メモリsession_cacheの場合に使用されるWOLFSSL_X509_CHAINへのポインタ。 Example
WOLFSSL_X509_CHAIN* chain = &session->chain;
int idx = 999; // set idx
...
WOLFSSL_X509_CHAIN ptr;
prt = wolfSSL_get_chain_X509(chain, idx);

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

See:

  • InitDecodedCert
  • ParseCertRelative
  • CopyDecodedToX509

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

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構造へのポインタ。 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
}

See:

Return:

  • buffer この関数はDerbuffer構造体のバッファメンバーを返します。これはバイト型です。
  • NULL x509またはoutszパラメーターが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ポインタへのポインタ。 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
}

See:

  • wolfSSL_X509_d2i
  • XFTELL
  • XREWIND
  • XFSEEK

Return:

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

function wolfSSL_X509_load_certificate_file

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

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

Parameters:

  • fname ロードする証明書ファイル。 Example
#define cliCert    “certs/client-cert.pem”
…
X509* x509;
…
x509 = wolfSSL_X509_load_certificate_file(cliCert, SSL_FILETYPE_PEM);
AssertNotNull(x509);

See:

  • InitDecodedCert
  • PemToDer
  • wolfSSL_get_certificate
  • AssertNotNull

Return:

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

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 デバイスタイプ(バッファ)を保持するバイトタイプへのポインタ。 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.
}

See:

Return:

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

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 バッファを表すバイトを入力するポインタ。 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.
}

See:

Return:

  • byte この関数は、wolfssl_x509構造のHWTypeメンバーに以前に保持されているデータのバイトタイプを返します。
  • NULL inoutszが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 コピーされるバッファへのポインタ。 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
}

See:

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

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"パラメータ。 Example
WOLFSSL* ssl;
static unsigned char p[] = {...};
static unsigned char g[] = {...};
...
wolfSSL_SetTmpDH(ssl, p, sizeof(p), g, sizeof(g));

See: SSL_accept

Return:

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

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。 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);

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のサーバー側ではない場合は返されます。

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 証明書を保持している定数の文字ポインタ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
const char* dhParam;
…
AssertIntNE(SSL_SUCCESS,
wolfSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM));

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の場合に返します。

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構造体のバッファメンバーにロードされた定数の符号なし文字ポインタ。
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
}

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 この関数またはサブルーチンにメモリの割り当てが失敗した場合は返されます。

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パラメータから派生した長い整数型。 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);
}

See:

Return:

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

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 証明書ファイルへの定数文字ポインタ。 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));

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から返されます。

function wolfSSL_CTX_SetMinDhKey_Sz

int wolfSSL_CTX_SetMinDhKey_Sz(
    WOLFSSL_CTX * ctx,
    word16 
)

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

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
public static int CTX_SetMinDhKey_Sz(IntPtr ctx, short minDhKey){
…
return wolfSSL_CTX_SetMinDhKey_Sz(local_ctx, minDhKeyBits);

See:

Return:

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

function wolfSSL_SetMinDhKey_Sz

int wolfSSL_SetMinDhKey_Sz(
    WOLFSSL * ssl,
    word16 keySz_bits
)

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

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
word16 keySz_bits;
...
if(wolfSSL_SetMinDhKey_Sz(ssl, keySz_bits) != SSL_SUCCESS){
    // Failed to set.
}

See:

Return:

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

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構造へのポインタ。 Example
public static int CTX_SetMaxDhKey_Sz(IntPtr ctx, short maxDhKey){
…
return wolfSSL_CTX_SetMaxDhKey_Sz(local_ctx, keySz_bits);

See:

Return:

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

function wolfSSL_SetMaxDhKey_Sz

int wolfSSL_SetMaxDhKey_Sz(
    WOLFSSL * ssl,
    word16 keySz_bits
)

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

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
word16 keySz;
...
if(wolfSSL_SetMaxDhKey(ssl, keySz) != SSL_SUCCESS){
    // Failed to set.
}

See:

Return:

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

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構造へのポインタ。 Example
WOLFSSL_CTX* ctx = SSL_CTX_new(method);
(void)minDhKeyBits;
ourCert = myoptarg;
…
minDhKeyBits = atoi(myoptarg);
…
if(wolfSSL_CTX_SetMinRsaKey_Sz(ctx, minRsaKeyBits) != SSL_SUCCESS){
…

See: wolfSSL_SetMinRsaKey_Sz

Return:

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

function wolfSSL_SetMinRsaKey_Sz

int wolfSSL_SetMinRsaKey_Sz(
    WOLFSSL * ssl,
    short keySz
)

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

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);
short keySz;
…

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

See: wolfSSL_CTX_SetMinRsaKey_Sz

Return:

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

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構造へのポインタ。 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
}

See: wolfSSL_SetMinEccKey_Sz

Return:

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

function wolfSSL_SetMinEccKey_Sz

int wolfSSL_SetMinEccKey_Sz(
    WOLFSSL * ssl,
    short keySz
)

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

Parameters:

  • ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 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.
}

See:

Return:

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

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変数の長さを表す符号なし整数。 Example
WOLFSSL* ssl = wolfSSL_new(ctx);;
void* msk;
unsigned int len;
const char* label;
…
return wolfSSL_make_eap_keys(ssl, msk, len, label);

See:

Return:

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

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。 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
}
...

See:

Return:

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

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のチェーンが表示されています。 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
}
...

See:

Return:

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

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。 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
}
...

See:

Return:

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

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 入力バッファのサイズ。 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
}
...

See:

Return:

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

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 入力バッファのサイズ。 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
}
...

See:

Return:

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

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形式の証明書チェーンを含む入力バッファ。 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
}
...

See:

Return:

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

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 バッファにある証明書のサイズ。 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
}

See:

Return:

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

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 バッファにある秘密鍵のサイズ。 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
}

See:

Return:

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

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()で作成されたSSLセッションへのポインタ。
  • in ロードする証明書を含むバッファ。 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
}

See:

Return:

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

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メンバーを返します。

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()から返された整数型。 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);
…
}

See:

  • wc_PRF
  • DeriveTlsKeys
  • IsAtLeastTLSv1_2

Return:

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

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。 Example
const WOLFSSL_X509* x509;
int lastPos = -1;
int idx;

idx = wolfSSL_X509_get_ext_by_NID(x509, NID_basic_constraints, lastPos);

Return:

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

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

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が見つかりませんでした。 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.

See: wolfSSL_sk_ASN1_OBJECT_free

Return:

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

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 ハッシュを保持するためのバッファ。 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

See: none

Return:

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

function wolfSSL_use_PrivateKey

int wolfSSL_use_PrivateKey(
    WOLFSSL * ssl,
    WOLFSSL_EVP_PKEY * pkey
)

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

Parameters:

  • ssl 引数を設定するためのWolfSSL構造。 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

See:

Return:

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

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キー。 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

See:

Return:

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

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キー。 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

See:

Return:

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

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構造体へのポインタ。 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)

See: none

Return:

  • pointer 成功したwolfssl_x509構造ポインタを返します。
  • Null 失敗時に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 パスワードコールバック 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

See: wolfSSL_PEM_read_bio_X509

Return:

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

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構造へのポインタ。 Example
WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method );
WOLFSSL_DH* dh;
…
return wolfSSL_CTX_set_tmp_dh(ctx, dh);

See: wolfSSL_BN_bn2bin

Return:

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

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 パスワードコールバック関数 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

See: none

Return:

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

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 * 
)

この関数は、存在する場合は、ピア証明書から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がnullのかどうかを確認し、そうでない場合は、x509構造体のNotBeforeメンバーを返します。

See: wolfSSL_X509_get_notAfter

Return:

  • pointer X509構造体のNotBeforeメンバーにASN1_TIMEを使用して構造体に。
  • NULL x509構造がnullの場合、関数は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 2023-03-29 at 08:44:33 +0000