コンテンツにスキップ

pwdbased.h

Functions

Name
int wc_PBKDF1(byte * output, const byte * passwd, int pLen, const byte * salt, int sLen, int iterations, int kLen, int typeH)
この機能はパスワードベースの鍵導出機能1(PBKDF1)を実装し、入力パスワードを連結ソルトと共により安全な鍵に変換し、出力に記憶する。これにより、HASH関数としてSHAとMD5を選択できます。
int wc_PBKDF2(byte * output, const byte * passwd, int pLen, const byte * salt, int sLen, int iterations, int kLen, int typeH)
この機能はパスワードベースのキー導出機能2(PBKDF2)を実装し、入力パスワードを連結されたソルトとともにより安全なキーに変換し、出力に記憶されています。これにより、MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2Bなど、サポートされているHMACハッシュ関数のいずれかを選択できます。
int wc_PKCS12_PBKDF(byte * output, const byte * passwd, int pLen, const byte * salt, int sLen, int iterations, int kLen, int typeH, int purpose)
この関数は、RFC 7292付録Bに記載されているパスワードベースのキー導出機能(PBKDF)を実装しています。この関数は、入力パスワードを連結ソルトでより安全なキーに変換します。それは、MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2Bを含む、ユーザーはサポートされているHMACハッシュ関数のいずれかを選択できます。

Functions Documentation

function wc_PBKDF1

int wc_PBKDF1(
    byte * output,
    const byte * passwd,
    int pLen,
    const byte * salt,
    int sLen,
    int iterations,
    int kLen,
    int typeH
)

この機能はパスワードベースの鍵導出機能1(PBKDF1)を実装し、入力パスワードを連結ソルトと共により安全な鍵に変換し、出力に記憶する。これにより、HASH関数としてSHAとMD5を選択できます。

Parameters:

  • output 生成されたキーを保存するバッファへのポインタ。少なくともklen longになるべきです
  • passwd キーの派生に使用するパスワードを含むバッファへのポインタ
  • pLen キーの派生に使用するパスワードの長さ
  • salt 鍵由来に使用するソルトを含むバッファへのポインター
  • sLen ソルトの長さ
  • iterations ハッシュを処理するための回数
  • kLen 派生キーの希望の長さ。選択したハッシュのダイジェストサイズより長くしてはいけません Example
int ret;
byte key[MD5_DIGEST_SIZE];
byte pass[] = { }; // initialize with password
byte salt[] = { }; // initialize with salt

ret = wc_PBKDF1(key, pass, sizeof(pass), salt, sizeof(salt), 1000,
sizeof(key), MD5);
if ( ret != 0 ) {
    // error deriving key from password
}

See:

Return:

  • 0 入力パスワードからキーの派生に正常に戻された
  • BAD_FUNC_ARG 与えられた無効なハッシュタイプがある場合(有効なタイプは:MD5とSHA)、反復は1未満、または要求されたキーの長さ(Klen)は提供されたハッシュのハッシュ長よりも大きいです。
  • MEMORY_E SHAまたはMD5オブジェクトにメモリを割り当てるエラーがある場合は返されます。

function wc_PBKDF2

int wc_PBKDF2(
    byte * output,
    const byte * passwd,
    int pLen,
    const byte * salt,
    int sLen,
    int iterations,
    int kLen,
    int typeH
)

この機能はパスワードベースのキー導出機能2(PBKDF2)を実装し、入力パスワードを連結されたソルトとともにより安全なキーに変換し、出力に記憶されています。これにより、MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2Bなど、サポートされているHMACハッシュ関数のいずれかを選択できます。

Parameters:

  • output 生成されたキーを保存するバッファへのポインタ。klen longにするべきです
  • passwd キーの派生に使用するパスワードを含むバッファへのポインタ
  • pLen キーの派生に使用するパスワードの長さ
  • salt 鍵由来に使用するソルトを含むバッファへのポインター
  • sLen ソルトの長さ
  • iterations ハッシュを処理するための回数
  • kLen 派生鍵の望ましい長さ Example
int ret;
byte key[64];
byte pass[] = { }; // initialize with password
byte salt[] = { }; // initialize with salt

ret = wc_PBKDF2(key, pass, sizeof(pass), salt, sizeof(salt), 2048, sizeof(key),
SHA512);
if ( ret != 0 ) {
    // error deriving key from password
}

See:

Return:

  • 0 入力パスワードからキーの派生に正常に戻された
  • BAD_FUNC_ARG 無効なハッシュタイプがある場合、または反復が1未満の場合は返されます。
  • MEMORY_E HMACオブジェクトに割り振りメモリがある場合

function wc_PKCS12_PBKDF

int wc_PKCS12_PBKDF(
    byte * output,
    const byte * passwd,
    int pLen,
    const byte * salt,
    int sLen,
    int iterations,
    int kLen,
    int typeH,
    int purpose
)

この関数は、RFC 7292付録Bに記載されているパスワードベースのキー導出機能(PBKDF)を実装しています。この関数は、入力パスワードを連結ソルトでより安全なキーに変換します。それは、MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2Bを含む、ユーザーはサポートされているHMACハッシュ関数のいずれかを選択できます。

Parameters:

  • output 生成されたキーを保存するバッファへのポインタ。klen longにするべきです
  • passwd キーの派生に使用するパスワードを含むバッファへのポインタ
  • pLen キーの派生に使用するパスワードの長さ
  • salt 鍵由来に使用するソルトを含むバッファへのポインター
  • sLen ソルトの長さ
  • iterations ハッシュを処理するための回数
  • kLen 派生鍵の望ましい長さ
  • hashType 使用するハッシュアルゴリズム有効な選択肢は次のとおりです.MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2B Example
int ret;
byte key[64];
byte pass[] = { }; // initialize with password
byte salt[] = { }; // initialize with salt

ret = wc_PKCS512_PBKDF(key, pass, sizeof(pass), salt, sizeof(salt), 2048,
sizeof(key), SHA512, 1);
if ( ret != 0 ) {
    // error deriving key from password
}

See:

Return:

  • 0 入力パスワードからキーの派生に正常に戻された
  • BAD_FUNC_ARG 返された無効なハッシュタイプが与えられた場合、繰り返しは1未満、または要求されたキーの長さ(klen)が提供されたハッシュのハッシュ長よりも大きいです。
  • MEMORY_E 割り当てメモリがある場合は返されます
  • MP_INIT_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_READ_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_CMP_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_INVMOD_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_EXPTMOD_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_MOD_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_MUL_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_ADD_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_MULMOD_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_TO_E キー生成中にエラーがある場合は返却される可能性があります
  • MP_MEM キー生成中にエラーがある場合は返却される可能性があります

Source code


int wc_PBKDF1(byte* output, const byte* passwd, int pLen,
                      const byte* salt, int sLen, int iterations, int kLen,
                      int typeH);

int wc_PBKDF2(byte* output, const byte* passwd, int pLen,
                      const byte* salt, int sLen, int iterations, int kLen,
                      int typeH);

int wc_PKCS12_PBKDF(byte* output, const byte* passwd, int pLen,
                            const byte* salt, int sLen, int iterations,
                            int kLen, int typeH, int purpose);

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