アルゴリズム - Curve25519
Functions
| Name | |
|---|---|
| int | wc_curve25519_make_key(WC_RNG * rng, int keysize, curve25519_key * key) この関数は、与えられた乱数生成器rngを使用して、与えられたサイズ(keysize)のCurve25519鍵を生成し、与えられたcurve25519_key構造体に格納します。wc_curve25519_init()を通じて鍵構造体が初期化された後に呼び出す必要があります。 |
| int | wc_curve25519_shared_secret(curve25519_key * private_key, curve25519_key * public_key, byte * out, word32 * outlen) この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンのみをサポートします。 |
| int | wc_curve25519_shared_secret_ex(curve25519_key * private_key, curve25519_key * public_key, byte * out, word32 * outlen, int endian) この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンとリトルエンディアンの両方をサポートします。 |
| int | wc_curve25519_init(curve25519_key * key) この関数はCurve25519鍵を初期化します。構造体の鍵を生成する前に呼び出す必要があります。 |
| void | wc_curve25519_free(curve25519_key * key) この関数はCurve25519オブジェクトを解放します。 |
| int | wc_curve25519_import_private(const byte * priv, word32 privSz, curve25519_key * key) この関数はcurve25519秘密鍵のみをインポートします。(ビッグエンディアン) |
| int | wc_curve25519_import_private_ex(const byte * priv, word32 privSz, curve25519_key * key, int endian) curve25519秘密鍵のみのインポート。(ビッグエンディアンまたはリトルエンディアン) |
| int | wc_curve25519_import_private_raw(const byte * priv, word32 privSz, const byte * pub, word32 pubSz, curve25519_key * key) この関数は、公開鍵-秘密鍵ペアをcurve25519_key構造体にインポートします。ビッグエンディアンのみ。 |
| int | wc_curve25519_import_private_raw_ex(const byte * priv, word32 privSz, const byte * pub, word32 pubSz, curve25519_key * key, int endian) この関数は、公開鍵-秘密鍵ペアをcurve25519_key構造体にインポートします。ビッグエンディアンとリトルエンディアンの両方をサポートします。 |
| int | wc_curve25519_export_private_raw(curve25519_key * key, byte * out, word32 * outLen) この関数は、curve25519_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンのみ。 |
| int | wc_curve25519_export_private_raw_ex(curve25519_key * key, byte * out, word32 * outLen, int endian) この関数は、curve25519_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンまたはリトルエンディアンを指定できます。 |
| int | wc_curve25519_import_public(const byte * in, word32 inLen, curve25519_key * key) この関数は、与えられたinバッファから公開鍵をインポートし、curve25519_key構造体に格納します。 |
| int | wc_curve25519_import_public_ex(const byte * in, word32 inLen, curve25519_key * key, int endian) この関数は、与えられたinバッファから公開鍵をインポートし、curve25519_key構造体に格納します。 |
| int | wc_curve25519_check_public(const byte * pub, word32 pubSz, int endian) この関数は、エンディアン順序を考慮して、公開鍵バッファが有効なCurve25519鍵値を保持しているかどうかをチェックします。 |
| int | wc_curve25519_export_public(curve25519_key * key, byte * out, word32 * outLen) この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。 |
| int | wc_curve25519_export_public_ex(curve25519_key * key, byte * out, word32 * outLen, int endian) この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンとリトルエンディアンの両方をサポートします。 |
| int | wc_curve25519_export_key_raw(curve25519_key * key, byte * priv, word32 * privSz, byte * pub, word32 * pubSz) Curve25519鍵ペアをエクスポートします。ビッグエンディアンのみ。 |
| int | wc_curve25519_export_key_raw_ex(curve25519_key * key, byte * priv, word32 * privSz, byte * pub, word32 * pubSz, int endian) curve25519鍵ペアをエクスポートします。ビッグエンディアンまたはリトルエンディアン。 |
| int | wc_curve25519_size(curve25519_key * key) この関数は、与えられた鍵構造体の鍵サイズを返します。 |
Functions Documentation
function wc_curve25519_make_key
int wc_curve25519_make_key(
WC_RNG * rng,
int keysize,
curve25519_key * key
)
この関数は、与えられた乱数生成器rngを使用して、与えられたサイズ(keysize)のCurve25519鍵を生成し、与えられたcurve25519_key構造体に格納します。wc_curve25519_init()を通じて鍵構造体が初期化された後に呼び出す必要があります。
Parameters:
- rng ecc鍵を生成するために使用されるRNGオブジェクトへのポインタ。
- keysize 生成する鍵のサイズ。curve25519では32バイトである必要があります。
- key 生成された鍵を格納するcurve25519_key構造体へのポインタ。
See: wc_curve25519_init
Return:
- 0 鍵の生成に成功し、与えられたcurve25519_key構造体に格納された場合に返されます。
- ECC_BAD_ARG_E 入力keysizeがcurve25519鍵のkeysizeに対応していない場合(32バイト)に返されます。
- RNG_FAILURE_E rng内部ステータスがDRBG_OKでない場合、またはrngで次のランダムブロックを生成する際にエラーがある場合に返されます。
- BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。
Example
int ret;
curve25519_key key;
wc_curve25519_init(&key); // 鍵を初期化
WC_RNG rng;
wc_InitRng(&rng); // 乱数生成器を初期化
ret = wc_curve25519_make_key(&rng, 32, &key);
if (ret != 0) {
// Curve25519鍵作成エラー
}
function wc_curve25519_shared_secret
int wc_curve25519_shared_secret(
curve25519_key * private_key,
curve25519_key * public_key,
byte * out,
word32 * outlen
)
この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンのみをサポートします。
Parameters:
- private_key ユーザーの秘密鍵で初期化されたcurve25519_key構造体へのポインタ。
- public_key 受信した公開鍵を含むcurve25519_key構造体へのポインタ。
- out 32バイトの計算された秘密鍵を格納するバッファへのポインタ。
- outlen 出力バッファに書き込まれた長さを格納するポインタ。
See:
Return:
- 0 共有秘密鍵の計算に成功した場合に返されます。
- BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。
- ECC_BAD_ARG_E 実装フィンガープリントを回避するために、公開鍵の最初のビットが設定されている場合に返されます。
Example
int ret;
byte sharedKey[32];
word32 keySz;
curve25519_key privKey, pubKey;
// 両方の鍵を初期化
ret = wc_curve25519_shared_secret(&privKey, &pubKey, sharedKey, &keySz);
if (ret != 0) {
// 共有鍵生成エラー
}
function wc_curve25519_shared_secret_ex
int wc_curve25519_shared_secret_ex(
curve25519_key * private_key,
curve25519_key * public_key,
byte * out,
word32 * outlen,
int endian
)
この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンとリトルエンディアンの両方をサポートします。
Parameters:
- private_key ユーザーの秘密鍵で初期化されたcurve25519_key構造体へのポインタ。
- public_key 受信した公開鍵を含むcurve25519_key構造体へのポインタ。
- out 32バイトの計算された秘密鍵を格納するバッファへのポインタ。
- outlen 出力バッファに書き込まれた長さを格納するポインタ。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
Return:
- 0 共有秘密鍵の計算に成功した場合に返されます。
- BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。
- ECC_BAD_ARG_E 実装フィンガープリントを回避するために、公開鍵の最初のビットが設定されている場合に返されます。
Example
int ret;
byte sharedKey[32];
word32 keySz;
curve25519_key privKey, pubKey;
// 両方の鍵を初期化
ret = wc_curve25519_shared_secret_ex(&privKey, &pubKey, sharedKey, &keySz,
EC25519_BIG_ENDIAN);
if (ret != 0) {
// 共有鍵生成エラー
}
function wc_curve25519_init
int wc_curve25519_init(
curve25519_key * key
)
この関数はCurve25519鍵を初期化します。構造体の鍵を生成する前に呼び出す必要があります。
Parameters:
- key 初期化するcurve25519_key構造体へのポインタ。
Return:
- 0 curve25519_key構造体の初期化に成功した場合に返されます。
- BAD_FUNC_ARG keyがNULLの場合に返されます。
Example
curve25519_key key;
wc_curve25519_init(&key); // 鍵を初期化
// 鍵を作成し、暗号化に進む
function wc_curve25519_free
void wc_curve25519_free(
curve25519_key * key
)
この関数はCurve25519オブジェクトを解放します。
Parameters:
- key 解放する鍵オブジェクトへのポインタ。
See:
Example
curve25519_key privKey;
// 鍵を初期化し、共有秘密鍵の生成に使用
wc_curve25519_free(&privKey);
function wc_curve25519_import_private
int wc_curve25519_import_private(
const byte * priv,
word32 privSz,
curve25519_key * key
)
この関数はcurve25519秘密鍵のみをインポートします。(ビッグエンディアン)
Parameters:
- priv インポートする秘密鍵を含むバッファへのポインタ。
- privSz インポートする秘密鍵の長さ。
- key インポートされた鍵を格納する構造体へのポインタ。
See:
Return:
- 0 秘密鍵のインポートに成功した場合に返されます。
- BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。
- ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEと等しくない場合に返されます。
Example
int ret;
byte priv[] = { // 秘密鍵の内容 };
curve25519_key key;
wc_curve25519_init(&key);
ret = wc_curve25519_import_private(priv, sizeof(priv), &key);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_import_private_ex
int wc_curve25519_import_private_ex(
const byte * priv,
word32 privSz,
curve25519_key * key,
int endian
)
curve25519秘密鍵のみのインポート。(ビッグエンディアンまたはリトルエンディアン)
Parameters:
- priv インポートする秘密鍵を含むバッファへのポインタ。
- privSz インポートする秘密鍵の長さ。
- key インポートされた鍵を格納する構造体へのポインタ。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
Return:
- 0 秘密鍵のインポートに成功した場合に返されます。
- BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。
- ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEと等しくない場合に返されます。
Example
int ret;
byte priv[] = { // 秘密鍵の内容 };
curve25519_key key;
wc_curve25519_init(&key);
ret = wc_curve25519_import_private_ex(priv, sizeof(priv), &key,
EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_import_private_raw
int wc_curve25519_import_private_raw(
const byte * priv,
word32 privSz,
const byte * pub,
word32 pubSz,
curve25519_key * key
)
この関数は、公開鍵-秘密鍵ペアをcurve25519_key構造体にインポートします。ビッグエンディアンのみ。
Parameters:
- priv インポートする秘密鍵を含むバッファへのポインタ。
- privSz インポートする秘密鍵の長さ。
- pub インポートする公開鍵を含むバッファへのポインタ。
- pubSz インポートする公開鍵の長さ。
- key インポートされた鍵を格納する構造体へのポインタ。
See:
- wc_curve25519_init
- wc_curve25519_make_key
- wc_curve25519_import_public
- wc_curve25519_export_private_raw
Return:
- 0 curve25519_key構造体へのインポートに成功した場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。
- ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。
Example
int ret;
byte priv[32];
byte pub[32];
// 公開鍵と秘密鍵で初期化
curve25519_key key;
wc_curve25519_init(&key);
// 鍵を初期化
ret = wc_curve25519_import_private_raw(&priv, sizeof(priv), pub,
sizeof(pub), &key);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_import_private_raw_ex
int wc_curve25519_import_private_raw_ex(
const byte * priv,
word32 privSz,
const byte * pub,
word32 pubSz,
curve25519_key * key,
int endian
)
この関数は、公開鍵-秘密鍵ペアをcurve25519_key構造体にインポートします。ビッグエンディアンとリトルエンディアンの両方をサポートします。
Parameters:
- priv インポートする秘密鍵を含むバッファへのポインタ。
- privSz インポートする秘密鍵の長さ。
- pub インポートする公開鍵を含むバッファへのポインタ。
- pubSz インポートする公開鍵の長さ。
- key インポートされた鍵を格納する構造体へのポインタ。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
- wc_curve25519_init
- wc_curve25519_make_key
- wc_curve25519_import_public
- wc_curve25519_export_private_raw
- wc_curve25519_import_private_raw
Return:
- 0 curve25519_key構造体へのインポートに成功した場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。
- ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。
Example
int ret;
byte priv[32];
byte pub[32];
// 公開鍵と秘密鍵で初期化
curve25519_key key;
wc_curve25519_init(&key);
// 鍵を初期化
ret = wc_curve25519_import_private_raw_ex(&priv, sizeof(priv), pub,
sizeof(pub), &key, EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_export_private_raw
int wc_curve25519_export_private_raw(
curve25519_key * key,
byte * out,
word32 * outLen
)
この関数は、curve25519_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンのみ。
Parameters:
- key 鍵をエクスポートする構造体へのポインタ。
- out エクスポートされた鍵を格納するバッファへのポインタ。
- outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。
See:
- wc_curve25519_init
- wc_curve25519_make_key
- wc_curve25519_import_private_raw
- wc_curve25519_export_private_raw_ex
Return:
- 0 curve25519_key構造体から秘密鍵のエクスポートに成功した場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
- ECC_BAD_ARG_E wc_curve25519_size()がkeyと等しくない場合に返されます。
Example
int ret;
byte priv[32];
int privSz;
curve25519_key key;
// 鍵を初期化して作成
ret = wc_curve25519_export_private_raw(&key, priv, &privSz);
if (ret != 0) {
// 鍵のエクスポートエラー
}
function wc_curve25519_export_private_raw_ex
int wc_curve25519_export_private_raw_ex(
curve25519_key * key,
byte * out,
word32 * outLen,
int endian
)
この関数は、curve25519_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンまたはリトルエンディアンを指定できます。
Parameters:
- key 鍵をエクスポートする構造体へのポインタ。
- out エクスポートされた鍵を格納するバッファへのポインタ。
- outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
- wc_curve25519_init
- wc_curve25519_make_key
- wc_curve25519_import_private_raw
- wc_curve25519_export_private_raw
- wc_curve25519_size
Return:
- 0 curve25519_key構造体から秘密鍵のエクスポートに成功した場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
- ECC_BAD_ARG_E wc_curve25519_size()がkeyと等しくない場合に返されます。
Example
int ret;
byte priv[32];
int privSz;
curve25519_key key;
// 鍵を初期化して作成
ret = wc_curve25519_export_private_raw_ex(&key, priv, &privSz,
EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のエクスポートエラー
}
function wc_curve25519_import_public
int wc_curve25519_import_public(
const byte * in,
word32 inLen,
curve25519_key * key
)
この関数は、与えられたinバッファから公開鍵をインポートし、curve25519_key構造体に格納します。
Parameters:
- in インポートする公開鍵を含むバッファへのポインタ。
- inLen インポートする公開鍵の長さ。
- key 鍵を格納するcurve25519_key構造体へのポインタ。
See:
- wc_curve25519_init
- wc_curve25519_export_public
- wc_curve25519_import_private_raw
- wc_curve25519_import_public_ex
- wc_curve25519_check_public
- wc_curve25519_size
Return:
- 0 curve25519_key構造体への公開鍵のインポートに成功した場合に返されます。
- ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
Example
int ret;
byte pub[32];
// pubを公開鍵で初期化
curve25519_key key;
// 鍵を初期化
ret = wc_curve25519_import_public(pub,sizeof(pub), &key);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_import_public_ex
int wc_curve25519_import_public_ex(
const byte * in,
word32 inLen,
curve25519_key * key,
int endian
)
この関数は、与えられたinバッファから公開鍵をインポートし、curve25519_key構造体に格納します。
Parameters:
- in インポートする公開鍵を含むバッファへのポインタ。
- inLen インポートする公開鍵の長さ。
- key 鍵を格納するcurve25519_key構造体へのポインタ。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
- wc_curve25519_init
- wc_curve25519_export_public
- wc_curve25519_import_private_raw
- wc_curve25519_import_public
- wc_curve25519_check_public
- wc_curve25519_size
Return:
- 0 curve25519_key構造体への公開鍵のインポートに成功した場合に返されます。
- ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
Example
int ret;
byte pub[32];
// pubを公開鍵で初期化
curve25519_key key;
// 鍵を初期化
ret = wc_curve25519_import_public_ex(pub, sizeof(pub), &key,
EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_check_public
int wc_curve25519_check_public(
const byte * pub,
word32 pubSz,
int endian
)
この関数は、エンディアン順序を考慮して、公開鍵バッファが有効なCurve25519鍵値を保持しているかどうかをチェックします。
Parameters:
- pub チェックする公開鍵を含むバッファへのポインタ。
- pubLen チェックする公開鍵の長さ。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
Return:
- 0 公開鍵の値が有効な場合に返されます。
- ECC_BAD_ARG_E 公開鍵の値が有効でない場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
Example
int ret;
byte pub[] = { // 公開鍵の内容 };
ret = wc_curve25519_check_public_ex(pub, sizeof(pub), EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のインポートエラー
}
function wc_curve25519_export_public
int wc_curve25519_export_public(
curve25519_key * key,
byte * out,
word32 * outLen
)
この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。
Parameters:
- key 鍵をエクスポートするcurve25519_key構造体へのポインタ。
- out 公開鍵を格納するバッファへのポインタ。
- outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。
See:
Return:
- 0 curve25519_key構造体から公開鍵のエクスポートに成功した場合に返されます。
- ECC_BAD_ARG_E outLenがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
Example
int ret;
byte pub[32];
int pubSz;
curve25519_key key;
// 鍵を初期化して作成
ret = wc_curve25519_export_public(&key, pub, &pubSz);
if (ret != 0) {
// 鍵のエクスポートエラー
}
function wc_curve25519_export_public_ex
int wc_curve25519_export_public_ex(
curve25519_key * key,
byte * out,
word32 * outLen,
int endian
)
この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンとリトルエンディアンの両方をサポートします。
Parameters:
- key 鍵をエクスポートするcurve25519_key構造体へのポインタ。
- out 公開鍵を格納するバッファへのポインタ。
- outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
Return:
- 0 curve25519_key構造体から公開鍵のエクスポートに成功した場合に返されます。
- ECC_BAD_ARG_E outLenがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
Example
int ret;
byte pub[32];
int pubSz;
curve25519_key key;
// 鍵を初期化して作成
ret = wc_curve25519_export_public_ex(&key, pub, &pubSz, EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のエクスポートエラー
}
function wc_curve25519_export_key_raw
int wc_curve25519_export_key_raw(
curve25519_key * key,
byte * priv,
word32 * privSz,
byte * pub,
word32 * pubSz
)
Curve25519鍵ペアをエクスポートします。ビッグエンディアンのみ。
Parameters:
- key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。
- priv 秘密鍵を格納するバッファへのポインタ。
- privSz 入力時は、privバッファのバイト単位のサイズ。 出力時は、privバッファに書き込まれたバイト数を格納します。
- pub 公開鍵を格納するバッファへのポインタ。
- pubSz 入力時は、pubバッファのバイト単位のサイズ。 出力時は、pubバッファに書き込まれたバイト数を格納します。
See:
Return:
- 0 curve25519_key構造体から鍵ペアのエクスポートに成功した場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
- ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEより小さい、またはpubSzがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。
Example
int ret;
byte pub[32];
byte priv[32];
int pubSz;
int privSz;
curve25519_key key;
// 鍵を初期化して作成
ret = wc_curve25519_export_key_raw(&key, priv, &privSz, pub, &pubSz);
if (ret != 0) {
// 鍵のエクスポートエラー
}
function wc_curve25519_export_key_raw_ex
int wc_curve25519_export_key_raw_ex(
curve25519_key * key,
byte * priv,
word32 * privSz,
byte * pub,
word32 * pubSz,
int endian
)
curve25519鍵ペアをエクスポートします。ビッグエンディアンまたはリトルエンディアン。
Parameters:
- key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。
- priv 秘密鍵を格納するバッファへのポインタ。
- privSz 入力時は、privバッファのバイト単位のサイズ。 出力時は、privバッファに書き込まれたバイト数を格納します。
- pub 公開鍵を格納するバッファへのポインタ。
- pubSz 入力時は、pubバッファのバイト単位のサイズ。 出力時は、pubバッファに書き込まれたバイト数を格納します。
- endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。
See:
Return:
- 0 curve25519_key構造体から鍵ペアのエクスポートに成功した場合に返されます。
- BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
- ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEより小さい、またはpubSzがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。
Example
int ret;
byte pub[32];
byte priv[32];
int pubSz;
int privSz;
curve25519_key key;
// 鍵を初期化して作成
ret = wc_curve25519_export_key_raw_ex(&key,priv, &privSz, pub, &pubSz,
EC25519_BIG_ENDIAN);
if (ret != 0) {
// 鍵のエクスポートエラー
}
function wc_curve25519_size
int wc_curve25519_size(
curve25519_key * key
)
この関数は、与えられた鍵構造体の鍵サイズを返します。
Parameters:
- key 鍵サイズを決定するcurve25519_key構造体へのポインタ。
See:
Return:
- Success 有効で初期化されたcurve25519_key構造体が与えられた場合、鍵のサイズを返します。
- 0 keyがNULLの場合に返されます。
Example
int keySz;
curve25519_key key;
// 鍵を初期化して作成
keySz = wc_curve25519_size(&key);
Updated on 2025-12-12 at 03:08:17 +0000