ascon.h
Functions
| Name | |
|---|---|
| int | wc_AsconHash256_Init(wc_AsconHash256 * a) この関数は、ハッシュ化のためにASCONコンテキストを初期化します。 |
| int | wc_AsconHash256_Update(wc_AsconHash256 * a, const byte * data, word32 dataSz) この関数は、入力データでASCONハッシュを更新します。 |
| int | wc_AsconHash256_Final(wc_AsconHash256 * a, byte * hash) この関数は、ASCONハッシュを完了し、出力を生成します。 |
| wc_AsconAEAD128 * | wc_AsconAEAD128_New(void ) この関数は、新しいAscon AEADコンテキストを割り当てて初期化します。 |
| void | wc_AsconAEAD128_Free(wc_AsconAEAD128 * a) この関数は、Ascon AEADコンテキストに関連付けられたリソースを解放します。 |
| int | wc_AsconAEAD128_Init(wc_AsconAEAD128 * a) この関数は、Ascon AEADコンテキストを初期化します。 |
| void | wc_AsconAEAD128_Clear(wc_AsconAEAD128 * a) この関数は、Ascon AEADコンテキストを非初期化します。コンテキストは解放しません。 |
| int | wc_AsconAEAD128_SetKey(wc_AsconAEAD128 * a, const byte * key) この関数は、Ascon AEADコンテキストの鍵を設定します。 |
| int | wc_AsconAEAD128_SetNonce(wc_AsconAEAD128 * a, const byte * nonce) この関数は、Ascon AEADコンテキストのnonceを設定します。 |
| int | wc_AsconAEAD128_SetAD(wc_AsconAEAD128 * a, const byte * ad, word32 adSz) この関数は、Ascon AEADコンテキストの関連データを設定します。 |
| int | wc_AsconAEAD128_EncryptUpdate(wc_AsconAEAD128 * a, byte * out, const byte * in, word32 inSz) この関数は、Ascon AEADを使用して平文メッセージを暗号化します。出力はoutバッファに格納されます。出力の長さは入力の長さと等しくなります。 |
| int | wc_AsconAEAD128_EncryptFinal(wc_AsconAEAD128 * a, byte * tag) この関数は、Ascon AEADを使用した暗号化プロセスを完了し、認証タグを生成します。 |
| int | wc_AsconAEAD128_DecryptUpdate(wc_AsconAEAD128 * a, byte * out, const byte * in, word32 inSz) この関数は、Ascon AEADを使用した復号プロセスを更新します。出力はoutバッファに格納されます。出力の長さは入力の長さと等しくなります。 |
| int | wc_AsconAEAD128_DecryptFinal(wc_AsconAEAD128 * a, const byte * tag) この関数は、Ascon AEADを使用した復号プロセスを完了し、認証タグを検証します。 |
Functions Documentation
function wc_AsconHash256_Init
int wc_AsconHash256_Init(
wc_AsconHash256 * a
)
この関数は、ハッシュ化のためにASCONコンテキストを初期化します。
Parameters:
- a 初期化するASCONコンテキストへのポインタ。
See:
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストポインタがNULLの場合。
Example
wc_AsconHash256 a;
byte data[] = {0x01, 0x02, 0x03};
byte hash[ASCON_HASH256_SZ];
if (wc_AsconHash256_Init(&a) != 0)
// エラーを処理
if (wc_AsconHash256_Update(&ctx, data, sizeof(data)) != 0)
// エラーを処理
if (wc_AsconHash256_Final(&ctx, hash, sizeof(hash)) != 0)
// エラーを処理
// hashに最終ハッシュが含まれます
function wc_AsconHash256_Update
int wc_AsconHash256_Update(
wc_AsconHash256 * a,
const byte * data,
word32 dataSz
)
この関数は、入力データでASCONハッシュを更新します。
Parameters:
- ctx ASCONコンテキストへのポインタ。
- in 入力データへのポインタ。
- inSz 入力データのサイズ。
See:
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは入力ポインタがNULLの場合。
Example
wc_AsconHash256 a;
byte data[] = {0x01, 0x02, 0x03};
byte hash[ASCON_HASH256_SZ];
if (wc_AsconHash256_Init(&a) != 0)
// エラーを処理
if (wc_AsconHash256_Update(&ctx, data, sizeof(data)) != 0)
// エラーを処理
if (wc_AsconHash256_Final(&ctx, hash, sizeof(hash)) != 0)
// エラーを処理
// hashに最終ハッシュが含まれます
function wc_AsconHash256_Final
int wc_AsconHash256_Final(
wc_AsconHash256 * a,
byte * hash
)
この関数は、ASCONハッシュを完了し、出力を生成します。
Parameters:
- ctx ASCONコンテキストへのポインタ。
- out 出力バッファへのポインタ。
- outSz 出力バッファのサイズ、少なくともASCON_HASH256_SZである必要があります。
See:
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合。
Example
wc_AsconHash256 a;
byte data[] = {0x01, 0x02, 0x03};
byte hash[ASCON_HASH256_SZ];
if (wc_AsconHash256_Init(&a) != 0)
// エラーを処理
if (wc_AsconHash256_Update(&ctx, data, sizeof(data)) != 0)
// エラーを処理
if (wc_AsconHash256_Final(&ctx, hash, sizeof(hash)) != 0)
// エラーを処理
// hashに最終ハッシュが含まれます
function wc_AsconAEAD128_New
wc_AsconAEAD128 * wc_AsconAEAD128_New(
void
)
この関数は、新しいAscon AEADコンテキストを割り当てて初期化します。
See: wc_AsconAEAD128_Free
Return:
- pointer 新しく割り当てられたAscon AEADコンテキストへのポインタ
- NULL 失敗時。
Example
wc_AsconAEAD128* a = wc_AsconAEAD128_New();
if (a == NULL) {
// 割り当てエラーを処理
}
wc_AsconAEAD128_Free(a);
function wc_AsconAEAD128_Free
void wc_AsconAEAD128_Free(
wc_AsconAEAD128 * a
)
この関数は、Ascon AEADコンテキストに関連付けられたリソースを解放します。
Parameters:
- a 解放するAscon AEADコンテキストへのポインタ。
See: wc_AsconAEAD128_New
Example
wc_AsconAEAD128* a = wc_AsconAEAD128_New();
if (a == NULL) {
// 割り当てエラーを処理
}
// コンテキストを使用
wc_AsconAEAD128_Free(a);
function wc_AsconAEAD128_Init
int wc_AsconAEAD128_Init(
wc_AsconAEAD128 * a
)
この関数は、Ascon AEADコンテキストを初期化します。
Parameters:
- a 初期化するAscon AEADコンテキストへのポインタ。
See:
- wc_AsconAeadEncrypt
- wc_AsconAeadDecrypt
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合。
Example
AsconAead a;
if (wc_AsconAEAD128_Init(&a) != 0)
// エラーを処理
function wc_AsconAEAD128_Clear
void wc_AsconAEAD128_Clear(
wc_AsconAEAD128 * a
)
この関数は、Ascon AEADコンテキストを非初期化します。コンテキストは解放しません。
Parameters:
- a 非初期化するAscon AEADコンテキストへのポインタ。
See:
- wc_AsconAeadEncrypt
- wc_AsconAeadDecrypt
Example
AsconAead a;
if (wc_AsconAEAD128_Init(&a) != 0)
// エラーを処理
wc_AsconAEAD128_Clear(&a);
function wc_AsconAEAD128_SetKey
int wc_AsconAEAD128_SetKey(
wc_AsconAEAD128 * a,
const byte * key
)
この関数は、Ascon AEADコンテキストの鍵を設定します。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- key ASCON_AEAD128_KEY_SZの長さの鍵バッファへのポインタ。
See:
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは鍵ポインタがNULLの場合。
- BAD_STATE_E 鍵が既に設定されている場合。
Example
wc_AsconAEAD128 a;
byte key[ASCON_AEAD128_KEY_SZ] = { ... };
if (wc_AsconAEAD128_Init(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetKey(&a, key) != 0)
// エラーを処理
function wc_AsconAEAD128_SetNonce
int wc_AsconAEAD128_SetNonce(
wc_AsconAEAD128 * a,
const byte * nonce
)
この関数は、Ascon AEADコンテキストのnonceを設定します。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- nonce ASCON_AEAD128_NONCE_SZの長さのnonceバッファへのポインタ。
See:
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたはnonceポインタがNULLの場合。
- BAD_STATE_E nonceが既に設定されている場合。
Example
wc_AsconAEAD128 a;
byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... };
if (wc_AsconAEAD128_Init(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0)
// エラーを処理
function wc_AsconAEAD128_SetAD
int wc_AsconAEAD128_SetAD(
wc_AsconAEAD128 * a,
const byte * ad,
word32 adSz
)
この関数は、Ascon AEADコンテキストの関連データを設定します。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- ad 関連データバッファへのポインタ。
- adSz 関連データバッファのサイズ。
See:
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは関連データポインタがNULLの場合。
- BAD_STATE_E 鍵またはnonceが設定されていない場合。
Example
wc_AsconAEAD128 a;
byte key[ASCON_AEAD128_KEY_SZ] = { ... };
byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... };
byte ad[] = { ... };
if (wc_AsconAEAD128_Init(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetKey(&a, key) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0)
// エラーを処理
function wc_AsconAEAD128_EncryptUpdate
int wc_AsconAEAD128_EncryptUpdate(
wc_AsconAEAD128 * a,
byte * out,
const byte * in,
word32 inSz
)
この関数は、Ascon AEADを使用して平文メッセージを暗号化します。出力はoutバッファに格納されます。出力の長さは入力の長さと等しくなります。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- out 暗号文を格納する出力バッファへのポインタ。
- in 平文メッセージを含む入力バッファへのポインタ。
- inSz 入力バッファの長さ。
See:
- wc_AsconAeadInit
- wc_AsconAEAD128_Clear
- wc_AsconAEAD128_SetKey
- wc_AsconAEAD128_SetNonce
- wc_AsconAEAD128_SetAD
- wc_AsconAEAD128_EncryptFinal
- wc_AsconAEAD128_DecryptUpdate
- wc_AsconAEAD128_DecryptFinal
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合、または入力サイズが0より大きいのに入力がNULLの場合。
- BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に復号に使用された場合。
Example
wc_AsconAEAD128 a;
byte key[ASCON_AEAD128_KEY_SZ] = { ... };
byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... };
byte plaintext[PLAIN_TEXT_SIZE] = { ... };
byte ciphertext[CIPHER_TEXT_SIZE];
byte tag[ASCON_AEAD128_TAG_SZ] = { ... };
if (wc_AsconAeadInit(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetKey(&a, key) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0)
// エラーを処理
if (wc_AsconAEAD128_EncryptUpdate(&a, ciphertext, plaintext,
sizeof(plaintext)) != 0)
// エラーを処理
if (wc_AsconAEAD128_EncryptFinal(&a, tag) != 0)
// エラーを処理
function wc_AsconAEAD128_EncryptFinal
int wc_AsconAEAD128_EncryptFinal(
wc_AsconAEAD128 * a,
byte * tag
)
この関数は、Ascon AEADを使用した暗号化プロセスを完了し、認証タグを生成します。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- tag 認証タグを格納する出力バッファへのポインタ。
See:
- wc_AsconAEAD128_Init
- wc_AsconAEAD128_SetKey
- wc_AsconAEAD128_SetNonce
- wc_AsconAEAD128_SetAD
- wc_AsconAEAD128_EncryptUpdate
- wc_AsconAEAD128_DecryptUpdate
- wc_AsconAEAD128_DecryptFinal
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合、または入力サイズが0より大きいのに入力がNULLの場合。
- BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に復号に使用された場合。
Example
wc_AsconAEAD128 a;
byte key[ASCON_AEAD128_KEY_SZ] = { ... };
byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... };
byte plaintext[PLAIN_TEXT_SIZE] = { ... };
byte ciphertext[CIPHER_TEXT_SIZE];
byte tag[ASCON_AEAD128_TAG_SZ] = { ... };
if (wc_AsconAeadInit(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetKey(&a, key) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0)
// エラーを処理
if (wc_AsconAEAD128_EncryptUpdate(&a, ciphertext, plaintext,
sizeof(plaintext)) != 0)
// エラーを処理
if (wc_AsconAEAD128_EncryptFinal(&a, tag) != 0)
// エラーを処理
function wc_AsconAEAD128_DecryptUpdate
int wc_AsconAEAD128_DecryptUpdate(
wc_AsconAEAD128 * a,
byte * out,
const byte * in,
word32 inSz
)
この関数は、Ascon AEADを使用した復号プロセスを更新します。出力はoutバッファに格納されます。出力の長さは入力の長さと等しくなります。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- out 平文を格納する出力バッファへのポインタ。
- in 暗号文メッセージを含む入力バッファへのポインタ。
- inSz 入力バッファの長さ。
See:
- wc_AsconAEAD128_Init
- wc_AsconAEAD128_SetKey
- wc_AsconAEAD128_SetNonce
- wc_AsconAEAD128_SetAD
- wc_AsconAEAD128_EncryptUpdate
- wc_AsconAEAD128_EncryptFinal
- wc_AsconAEAD128_DecryptFinal
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合、または入力サイズが0より大きいのに入力がNULLの場合。
- BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に暗号化に使用された場合。
Example
wc_AsconAEAD128 a;
byte key[ASCON_AEAD128_KEY_SZ] = { ... };
byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... };
byte ciphertext[CIPHER_TEXT_SIZE] = { ... };
byte plaintext[PLAIN_TEXT_SIZE];
byte tag[ASCON_AEAD128_TAG_SZ] = { ... };
if (wc_AsconAeadInit(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetKey(&a, key) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0)
// エラーを処理
if (wc_AsconAEAD128_DecryptUpdate(&a, plaintext, ciphertext,
sizeof(ciphertext)) != 0)
// エラーを処理
if (wc_AsconAEAD128_DecryptFinal(&a, tag) != 0)
// エラーを処理
function wc_AsconAEAD128_DecryptFinal
int wc_AsconAEAD128_DecryptFinal(
wc_AsconAEAD128 * a,
const byte * tag
)
この関数は、Ascon AEADを使用した復号プロセスを完了し、認証タグを検証します。
Parameters:
- a 初期化されたAscon AEADコンテキストへのポインタ。
- tag 検証する認証タグを含むバッファへのポインタ
See:
- wc_AsconAEAD128_Init
- wc_AsconAEAD128_SetKey
- wc_AsconAEAD128_SetNonce
- wc_AsconAEAD128_SetAD
- wc_AsconAEAD128_DecryptUpdate
- wc_AsconAEAD128_EncryptUpdate
- wc_AsconAEAD128_EncryptFinal
Return:
- 0 成功時。
- BAD_FUNC_ARG コンテキストまたはタグポインタがNULLの場合。
- BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に暗号化に使用された場合。
- ASCON_AUTH_E 認証タグが一致しない場合。
Example
wc_AsconAEAD128 a;
byte key[ASCON_AEAD128_KEY_SZ] = { ... };
byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... };
byte ciphertext[CIPHER_TEXT_SIZE] = { ... };
byte plaintext[PLAIN_TEXT_SIZE];
byte tag[ASCON_AEAD128_TAG_SZ] = { ... };
if (wc_AsconAeadInit(&a) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetKey(&a, key) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0)
// エラーを処理
if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0)
// エラーを処理
if (wc_AsconAEAD128_DecryptUpdate(&a, plaintext, ciphertext,
sizeof(ciphertext)) != 0)
// エラーを処理
if (wc_AsconAEAD128_DecryptFinal(&a, tag) != 0)
// エラーを処理
Source code
int wc_AsconHash256_Init(wc_AsconHash256* a);
int wc_AsconHash256_Update(wc_AsconHash256* a, const byte* data, word32 dataSz);
int wc_AsconHash256_Final(wc_AsconHash256* a, byte* hash);
wc_AsconAEAD128* wc_AsconAEAD128_New(void);
void wc_AsconAEAD128_Free(wc_AsconAEAD128 *a);
int wc_AsconAEAD128_Init(wc_AsconAEAD128* a);
void wc_AsconAEAD128_Clear(wc_AsconAEAD128 *a);
int wc_AsconAEAD128_SetKey(wc_AsconAEAD128* a, const byte* key);
int wc_AsconAEAD128_SetNonce(wc_AsconAEAD128* a, const byte* nonce);
int wc_AsconAEAD128_SetAD(wc_AsconAEAD128* a, const byte* ad, word32 adSz);
int wc_AsconAEAD128_EncryptUpdate(wc_AsconAEAD128* a, byte* out, const byte* in,
word32 inSz);
int wc_AsconAEAD128_EncryptFinal(wc_AsconAEAD128* a, byte* tag);
int wc_AsconAEAD128_DecryptUpdate(wc_AsconAEAD128* a, byte* out, const byte* in,
word32 inSz);
int wc_AsconAEAD128_DecryptFinal(wc_AsconAEAD128* a, const byte* tag);
Updated on 2025-12-12 at 03:08:17 +0000