コンテンツにスキップ

curve448.h

Functions

Name
int wc_curve448_make_key(WC_RNG * rng, int keysize, curve448_key * key)
この関数は、与えられた乱数生成器rngを使用して、与えられたサイズ(keysize)のCurve448鍵を生成し、与えられたcurve448_key構造体に格納します。wc_curve448_init()を通じて鍵構造体が初期化された後に呼び出す必要があります。
int wc_curve448_shared_secret(curve448_key * private_key, curve448_key * public_key, byte * out, word32 * outlen)
この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンのみをサポートします。
int wc_curve448_shared_secret_ex(curve448_key * private_key, curve448_key * public_key, byte * out, word32 * outlen, int endian)
この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンとリトルエンディアンの両方をサポートします。
int wc_curve448_init(curve448_key * key)
この関数はCurve448鍵を初期化します。構造体の鍵を生成する前に呼び出す必要があります。
void wc_curve448_free(curve448_key * key)
この関数はCurve448オブジェクトを解放します。
int wc_curve448_import_private(const byte * priv, word32 privSz, curve448_key * key)
この関数はcurve448秘密鍵のみをインポートします。(ビッグエンディアン)
int wc_curve448_import_private_ex(const byte * priv, word32 privSz, curve448_key * key, int endian)
curve448秘密鍵のみのインポート。(ビッグエンディアンまたはリトルエンディアン)
int wc_curve448_import_private_raw(const byte * priv, word32 privSz, const byte * pub, word32 pubSz, curve448_key * key)
この関数は、公開鍵-秘密鍵ペアをcurve448_key構造体にインポートします。ビッグエンディアンのみ。
int wc_curve448_import_private_raw_ex(const byte * priv, word32 privSz, const byte * pub, word32 pubSz, curve448_key * key, int endian)
この関数は、公開鍵-秘密鍵ペアをcurve448_key構造体にインポートします。ビッグエンディアンとリトルエンディアンの両方をサポートします。
int wc_curve448_export_private_raw(curve448_key * key, byte * out, word32 * outLen)
この関数は、curve448_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンのみ。
int wc_curve448_export_private_raw_ex(curve448_key * key, byte * out, word32 * outLen, int endian)
この関数は、curve448_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンまたはリトルエンディアンを指定できます。
int wc_curve448_import_public(const byte * in, word32 inLen, curve448_key * key)
この関数は、与えられたinバッファから公開鍵をインポートし、curve448_key構造体に格納します。
int wc_curve448_import_public_ex(const byte * in, word32 inLen, curve448_key * key, int endian)
この関数は、与えられたinバッファから公開鍵をインポートし、curve448_key構造体に格納します。
int wc_curve448_check_public(const byte * pub, word32 pubSz, int endian)
この関数は、エンディアン順序を考慮して、公開鍵バッファが有効なCurve448鍵値を保持しているかどうかをチェックします。
int wc_curve448_export_public(curve448_key * key, byte * out, word32 * outLen)
この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。
int wc_curve448_export_public_ex(curve448_key * key, byte * out, word32 * outLen, int endian)
この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンとリトルエンディアンの両方をサポートします。
int wc_curve448_export_key_raw(curve448_key * key, byte * priv, word32 * privSz, byte * pub, word32 * pubSz)
この関数は、与えられた鍵構造体から鍵ペアをエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。
int wc_curve448_export_key_raw_ex(curve448_key * key, byte * priv, word32 * privSz, byte * pub, word32 * pubSz, int endian)
curve448鍵ペアをエクスポートします。ビッグエンディアンまたはリトルエンディアン。
int wc_curve448_size(curve448_key * key)
この関数は、与えられた鍵構造体の鍵サイズを返します。

Functions Documentation

function wc_curve448_make_key

int wc_curve448_make_key(
    WC_RNG * rng,
    int keysize,
    curve448_key * key
)

この関数は、与えられた乱数生成器rngを使用して、与えられたサイズ(keysize)のCurve448鍵を生成し、与えられたcurve448_key構造体に格納します。wc_curve448_init()を通じて鍵構造体が初期化された後に呼び出す必要があります。

Parameters:

  • rng ecc鍵を生成するために使用されるRNGオブジェクトへのポインタ。
  • keysize 生成する鍵のサイズ。curve448では56バイトである必要があります。
  • key 生成された鍵を格納するcurve448_key構造体へのポインタ。

See: wc_curve448_init

Return:

  • 0 鍵の生成に成功し、与えられたcurve448_key構造体に格納された場合に返されます。
  • ECC_BAD_ARG_E 入力keysizeがcurve448鍵のkeysizeに対応していない場合(56バイト)に返されます。
  • RNG_FAILURE_E rng内部ステータスがDRBG_OKでない場合、またはrngで次のランダムブロックを生成する際にエラーがある場合に返されます。
  • BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

curve448_key key;
wc_curve448_init(&key); // 鍵を初期化
WC_RNG rng;
wc_InitRng(&rng); // 乱数生成器を初期化

ret = wc_curve448_make_key(&rng, 56, &key);
if (ret != 0) {
    // Curve448鍵作成エラー
}

function wc_curve448_shared_secret

int wc_curve448_shared_secret(
    curve448_key * private_key,
    curve448_key * public_key,
    byte * out,
    word32 * outlen
)

この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンのみをサポートします。

Parameters:

  • private_key ユーザーの秘密鍵で初期化されたcurve448_key構造体へのポインタ。
  • public_key 受信した公開鍵を含むcurve448_key構造体へのポインタ。
  • out 56バイトの計算された秘密鍵を格納するバッファへのポインタ。
  • outlen 出力バッファに書き込まれた長さを格納するポインタ。

See:

Return:

  • 0 共有秘密鍵の計算に成功した場合に返されます。
  • BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte sharedKey[56];
word32 keySz;
curve448_key privKey, pubKey;
// 両方の鍵を初期化

ret = wc_curve448_shared_secret(&privKey, &pubKey, sharedKey, &keySz);
if (ret != 0) {
    // 共有鍵生成エラー
}

function wc_curve448_shared_secret_ex

int wc_curve448_shared_secret_ex(
    curve448_key * private_key,
    curve448_key * public_key,
    byte * out,
    word32 * outlen,
    int endian
)

この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンとリトルエンディアンの両方をサポートします。

Parameters:

  • private_key ユーザーの秘密鍵で初期化されたcurve448_key構造体へのポインタ。
  • public_key 受信した公開鍵を含むcurve448_key構造体へのポインタ。
  • out 56バイトの計算された秘密鍵を格納するバッファへのポインタ。
  • outlen 出力バッファに書き込まれた長さを格納するポインタ。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 共有秘密鍵の計算に成功した場合に返されます。
  • BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte sharedKey[56];
word32 keySz;

curve448_key privKey, pubKey;
// 両方の鍵を初期化

ret = wc_curve448_shared_secret_ex(&privKey, &pubKey, sharedKey, &keySz,
        EC448_BIG_ENDIAN);
if (ret != 0) {
    // 共有鍵生成エラー
}

function wc_curve448_init

int wc_curve448_init(
    curve448_key * key
)

この関数はCurve448鍵を初期化します。構造体の鍵を生成する前に呼び出す必要があります。

Parameters:

  • key 初期化するcurve448_key構造体へのポインタ。

See: wc_curve448_make_key

Return:

  • 0 curve448_key構造体の初期化に成功した場合に返されます。
  • BAD_FUNC_ARG keyがNULLの場合に返されます。

Example

curve448_key key;
wc_curve448_init(&key); // 鍵を初期化
// 鍵を作成し、暗号化に進む

function wc_curve448_free

void wc_curve448_free(
    curve448_key * key
)

この関数はCurve448オブジェクトを解放します。

Parameters:

  • key 解放する鍵オブジェクトへのポインタ。

See:

Example

curve448_key privKey;
// 鍵を初期化し、共有秘密鍵の生成に使用
wc_curve448_free(&privKey);

function wc_curve448_import_private

int wc_curve448_import_private(
    const byte * priv,
    word32 privSz,
    curve448_key * key
)

この関数はcurve448秘密鍵のみをインポートします。(ビッグエンディアン)

Parameters:

  • priv インポートする秘密鍵を含むバッファへのポインタ。
  • privSz インポートする秘密鍵の長さ。
  • key インポートされた鍵を格納する構造体へのポインタ。

See:

Return:

  • 0 秘密鍵のインポートに成功した場合に返されます。
  • BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。
  • ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEと等しくない場合に返されます。

Example

int ret;

byte priv[] = { // 秘密鍵の内容 };
curve448_key key;
wc_curve448_init(&key);

ret = wc_curve448_import_private(priv, sizeof(priv), &key);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_import_private_ex

int wc_curve448_import_private_ex(
    const byte * priv,
    word32 privSz,
    curve448_key * key,
    int endian
)

curve448秘密鍵のみのインポート。(ビッグエンディアンまたはリトルエンディアン)

Parameters:

  • priv インポートする秘密鍵を含むバッファへのポインタ。
  • privSz インポートする秘密鍵の長さ。
  • key インポートされた鍵を格納する構造体へのポインタ。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 秘密鍵のインポートに成功した場合に返されます。
  • BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。
  • ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEと等しくない場合に返されます。

Example

int ret;

byte priv[] = { // 秘密鍵の内容 };
curve448_key key;
wc_curve448_init(&key);

ret = wc_curve448_import_private_ex(priv, sizeof(priv), &key,
        EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_import_private_raw

int wc_curve448_import_private_raw(
    const byte * priv,
    word32 privSz,
    const byte * pub,
    word32 pubSz,
    curve448_key * key
)

この関数は、公開鍵-秘密鍵ペアをcurve448_key構造体にインポートします。ビッグエンディアンのみ。

Parameters:

  • priv インポートする秘密鍵を含むバッファへのポインタ。
  • privSz インポートする秘密鍵の長さ。
  • pub インポートする公開鍵を含むバッファへのポインタ。
  • pubSz インポートする公開鍵の長さ。
  • key インポートされた鍵を格納する構造体へのポインタ。

See:

Return:

  • 0 curve448_key構造体へのインポートに成功した場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。
  • ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。

Example

int ret;

byte priv[56];
byte pub[56];
// 公開鍵と秘密鍵で初期化
curve448_key key;

wc_curve448_init(&key);
// 鍵を初期化

ret = wc_curve448_import_private_raw(&priv, sizeof(priv), pub, sizeof(pub),
        &key);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_import_private_raw_ex

int wc_curve448_import_private_raw_ex(
    const byte * priv,
    word32 privSz,
    const byte * pub,
    word32 pubSz,
    curve448_key * key,
    int endian
)

この関数は、公開鍵-秘密鍵ペアをcurve448_key構造体にインポートします。ビッグエンディアンとリトルエンディアンの両方をサポートします。

Parameters:

  • priv インポートする秘密鍵を含むバッファへのポインタ。
  • privSz インポートする秘密鍵の長さ。
  • pub インポートする公開鍵を含むバッファへのポインタ。
  • pubSz インポートする公開鍵の長さ。
  • key インポートされた鍵を格納する構造体へのポインタ。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 curve448_key構造体へのインポートに成功した場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。
  • ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。

Example

int ret;

byte priv[56];
byte pub[56];
// 公開鍵と秘密鍵で初期化
curve448_key key;

wc_curve448_init(&key);
// 鍵を初期化

ret = wc_curve448_import_private_raw_ex(&priv, sizeof(priv), pub,
        sizeof(pub), &key, EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_export_private_raw

int wc_curve448_export_private_raw(
    curve448_key * key,
    byte * out,
    word32 * outLen
)

この関数は、curve448_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンのみ。

Parameters:

  • key 鍵をエクスポートする構造体へのポインタ。
  • out エクスポートされた鍵を格納するバッファへのポインタ。
  • outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。

See:

Return:

  • 0 curve448_key構造体から秘密鍵のエクスポートに成功した場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
  • ECC_BAD_ARG_E wc_curve448_size()がkeyと等しくない場合に返されます。

Example

int ret;
byte priv[56];
int privSz;

curve448_key key;
// 鍵を初期化して作成

ret = wc_curve448_export_private_raw(&key, priv, &privSz);
if (ret != 0) {
    // 鍵のエクスポートエラー
}

function wc_curve448_export_private_raw_ex

int wc_curve448_export_private_raw_ex(
    curve448_key * key,
    byte * out,
    word32 * outLen,
    int endian
)

この関数は、curve448_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンまたはリトルエンディアンを指定できます。

Parameters:

  • key 鍵をエクスポートする構造体へのポインタ。
  • out エクスポートされた鍵を格納するバッファへのポインタ。
  • outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 curve448_key構造体から秘密鍵のエクスポートに成功した場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
  • ECC_BAD_ARG_E wc_curve448_size()がkeyと等しくない場合に返されます。

Example

int ret;

byte priv[56];
int privSz;
curve448_key key;
// 鍵を初期化して作成
ret = wc_curve448_export_private_raw_ex(&key, priv, &privSz,
        EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のエクスポートエラー
}

function wc_curve448_import_public

int wc_curve448_import_public(
    const byte * in,
    word32 inLen,
    curve448_key * key
)

この関数は、与えられたinバッファから公開鍵をインポートし、curve448_key構造体に格納します。

Parameters:

  • in インポートする公開鍵を含むバッファへのポインタ。
  • inLen インポートする公開鍵の長さ。
  • key 鍵を格納するcurve448_key構造体へのポインタ。

See:

Return:

  • 0 curve448_key構造体への公開鍵のインポートに成功した場合に返されます。
  • ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte pub[56];
// pubを公開鍵で初期化

curve448_key key;
// 鍵を初期化

ret = wc_curve448_import_public(pub,sizeof(pub), &key);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_import_public_ex

int wc_curve448_import_public_ex(
    const byte * in,
    word32 inLen,
    curve448_key * key,
    int endian
)

この関数は、与えられたinバッファから公開鍵をインポートし、curve448_key構造体に格納します。

Parameters:

  • in インポートする公開鍵を含むバッファへのポインタ。
  • inLen インポートする公開鍵の長さ。
  • key 鍵を格納するcurve448_key構造体へのポインタ。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 curve448_key構造体への公開鍵のインポートに成功した場合に返されます。
  • ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte pub[56];
// pubを公開鍵で初期化
curve448_key key;
// 鍵を初期化

ret = wc_curve448_import_public_ex(pub, sizeof(pub), &key,
        EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_check_public

int wc_curve448_check_public(
    const byte * pub,
    word32 pubSz,
    int endian
)

この関数は、エンディアン順序を考慮して、公開鍵バッファが有効なCurve448鍵値を保持しているかどうかをチェックします。

Parameters:

  • pub チェックする公開鍵を含むバッファへのポインタ。
  • pubLen チェックする公開鍵の長さ。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 公開鍵の値が有効な場合に返されます。
  • ECC_BAD_ARG_E 公開鍵の値が有効でない場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte pub[] = { // 公開鍵の内容 };

ret = wc_curve448_check_public_ex(pub, sizeof(pub), EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のインポートエラー
}

function wc_curve448_export_public

int wc_curve448_export_public(
    curve448_key * key,
    byte * out,
    word32 * outLen
)

この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。

Parameters:

  • key 鍵をエクスポートするcurve448_key構造体へのポインタ。
  • out 公開鍵を格納するバッファへのポインタ。
  • outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。

See:

Return:

  • 0 curve448_key構造体から公開鍵のエクスポートに成功した場合に返されます。
  • ECC_BAD_ARG_E outLenがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte pub[56];
int pubSz;

curve448_key key;
// 鍵を初期化して作成

ret = wc_curve448_export_public(&key, pub, &pubSz);
if (ret != 0) {
    // 鍵のエクスポートエラー
}

function wc_curve448_export_public_ex

int wc_curve448_export_public_ex(
    curve448_key * key,
    byte * out,
    word32 * outLen,
    int endian
)

この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンとリトルエンディアンの両方をサポートします。

Parameters:

  • key 鍵をエクスポートするcurve448_key構造体へのポインタ。
  • out 公開鍵を格納するバッファへのポインタ。
  • outLen 入力時は、outのバイト単位のサイズ。 出力時は、出力バッファに書き込まれたバイト数を格納します。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 curve448_key構造体から公開鍵のエクスポートに成功した場合に返されます。
  • ECC_BAD_ARG_E outLenがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。

Example

int ret;

byte pub[56];
int pubSz;

curve448_key key;
// 鍵を初期化して作成

ret = wc_curve448_export_public_ex(&key, pub, &pubSz, EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のエクスポートエラー
}

function wc_curve448_export_key_raw

int wc_curve448_export_key_raw(
    curve448_key * key,
    byte * priv,
    word32 * privSz,
    byte * pub,
    word32 * pubSz
)

この関数は、与えられた鍵構造体から鍵ペアをエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。

Parameters:

  • key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。
  • priv 秘密鍵を格納するバッファへのポインタ。
  • privSz 入力時は、privバッファのバイト単位のサイズ。 出力時は、privバッファに書き込まれたバイト数を格納します。
  • pub 公開鍵を格納するバッファへのポインタ。
  • pubSz 入力時は、pubバッファのバイト単位のサイズ。 出力時は、pubバッファに書き込まれたバイト数を格納します。

See:

Return:

  • 0 curve448_key構造体から鍵ペアのエクスポートに成功した場合に返されます。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
  • ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEより小さい、またはpubSzがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。

Example

int ret;

byte pub[56];
byte priv[56];
int pubSz;
int privSz;

curve448_key key;
// 鍵を初期化して作成

ret = wc_curve448_export_key_raw(&key, priv, &privSz, pub, &pubSz);
if (ret != 0) {
    // 鍵のエクスポートエラー
}

function wc_curve448_export_key_raw_ex

int wc_curve448_export_key_raw_ex(
    curve448_key * key,
    byte * priv,
    word32 * privSz,
    byte * pub,
    word32 * pubSz,
    int endian
)

curve448鍵ペアをエクスポートします。ビッグエンディアンまたはリトルエンディアン。

Parameters:

  • key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。
  • priv 秘密鍵を格納するバッファへのポインタ。
  • privSz 入力時は、privバッファのバイト単位のサイズ。 出力時は、privバッファに書き込まれたバイト数を格納します。
  • pub 公開鍵を格納するバッファへのポインタ。
  • pubSz 入力時は、pubバッファのバイト単位のサイズ。 出力時は、pubバッファに書き込まれたバイト数を格納します。
  • endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。

See:

Return:

  • 0 成功。
  • BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。
  • ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEより小さい、またはpubSzがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。

この関数は、与えられた鍵構造体から鍵ペアをエクスポートし、結果をoutバッファに格納します。ビッグエンディアンまたはリトルエンディアン。

Example

int ret;

byte pub[56];
byte priv[56];
int pubSz;
int privSz;

curve448_key key;
// 鍵を初期化して作成

ret = wc_curve448_export_key_raw_ex(&key,priv, &privSz, pub, &pubSz,
        EC448_BIG_ENDIAN);
if (ret != 0) {
    // 鍵のエクスポートエラー
}

function wc_curve448_size

int wc_curve448_size(
    curve448_key * key
)

この関数は、与えられた鍵構造体の鍵サイズを返します。

Parameters:

  • key 鍵サイズを決定するcurve448_key構造体へのポインタ。

See:

Return:

  • Success 有効で初期化されたcurve448_key構造体が与えられた場合、鍵のサイズを返します。
  • 0 keyがNULLの場合に返されます。

Example

int keySz;

curve448_key key;
// 鍵を初期化して作成

keySz = wc_curve448_size(&key);

Source code


int wc_curve448_make_key(WC_RNG* rng, int keysize, curve448_key* key);

int wc_curve448_shared_secret(curve448_key* private_key,
                                curve448_key* public_key,
                                byte* out, word32* outlen);

int wc_curve448_shared_secret_ex(curve448_key* private_key,
                                   curve448_key* public_key,
                                   byte* out, word32* outlen, int endian);

int wc_curve448_init(curve448_key* key);

void wc_curve448_free(curve448_key* key);

int wc_curve448_import_private(const byte* priv, word32 privSz,
                                 curve448_key* key);

int wc_curve448_import_private_ex(const byte* priv, word32 privSz,
                                    curve448_key* key, int endian);

int wc_curve448_import_private_raw(const byte* priv, word32 privSz,
                            const byte* pub, word32 pubSz, curve448_key* key);

int wc_curve448_import_private_raw_ex(const byte* priv, word32 privSz,
                                        const byte* pub, word32 pubSz,
                                        curve448_key* key, int endian);

int wc_curve448_export_private_raw(curve448_key* key, byte* out,
                                     word32* outLen);

int wc_curve448_export_private_raw_ex(curve448_key* key, byte* out,
                                        word32* outLen, int endian);

int wc_curve448_import_public(const byte* in, word32 inLen,
                                curve448_key* key);

int wc_curve448_import_public_ex(const byte* in, word32 inLen,
                                   curve448_key* key, int endian);

int wc_curve448_check_public(const byte* pub, word32 pubSz, int endian);

int wc_curve448_export_public(curve448_key* key, byte* out, word32* outLen);

int wc_curve448_export_public_ex(curve448_key* key, byte* out,
                                   word32* outLen, int endian);

int wc_curve448_export_key_raw(curve448_key* key,
                                 byte* priv, word32 *privSz,
                                 byte* pub, word32 *pubSz);

int wc_curve448_export_key_raw_ex(curve448_key* key,
                                    byte* priv, word32 *privSz,
                                    byte* pub, word32 *pubSz,
                                    int endian);

int wc_curve448_size(curve448_key* key);

Updated on 2025-12-12 at 03:08:17 +0000