mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-05 22:00:49 +02:00
c905033acf
1. Unaligned Buffer Tests Verify correct output when input/output buffers are byte-offset by 1, 2, and 3 bytes. - AES-CBC, AES-CTS, AES-CTR, AES-GCM, AES-CCM, AES-XTS - ChaCha20, ChaCha20-Poly1305 2. In-Place (Overlapping) Buffer Tests Verify correct output when out == in (same pointer for input and output). - AES-CTS, AES-GCM, AES-CCM, AES-XTS - ChaCha20, ChaCha20-Poly1305 3. Cross-Cipher Verification Tests Verify that a higher-level mode produces identical output when manually reconstructed from a lower-level primitive (typically AES-ECB + XOR). - AES-CBC (= ECB + XOR chaining) - AES-CFB (= ECB(ciphertext feedback) + XOR) - AES-OFB (= ECB(output feedback) + XOR) - AES-CTR (= ECB(counter) + XOR with big-endian increment) - AES-GCM (ciphertext portion = CTR starting at counter J0+1) - ChaCha20-Poly1305 (ciphertext = raw ChaCha20 keystream XOR; tag = independent Poly1305) 4. Counter Overflow Tests Verify correct carry propagation when the internal block counter wraps around. - AES-CTR (32-bit big-endian carry across 4 bytes: 0xFFFFFFFE → wrap) - ChaCha20 (32-bit counter: 0xFFFFFFFF → 0x00000000) 5. AEAD Edge Case Tests Verify correct behavior for empty inputs, empty AAD, and invalid auth tag rejection. - Ascon-AEAD128 - AES-CCM - ChaCha20-Poly1305 6. Non-Standard Parameter Tests Verify behavior outside the common fast path. - AES-GCM: non-96-bit nonce lengths (1-byte, 60-byte, variable-length loop, zero-length rejection) 7. Streaming API State Tests Verify mid-stream state behavior and re-initialization after a final call. - AES-GCM stream, AES-XTS stream - ChaCha20-Poly1305 stream
45 lines
1.8 KiB
C
45 lines
1.8 KiB
C
/* test_chacha.h
|
|
*
|
|
* Copyright (C) 2006-2026 wolfSSL Inc.
|
|
*
|
|
* This file is part of wolfSSL.
|
|
*
|
|
* wolfSSL is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* wolfSSL is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
|
*/
|
|
|
|
#ifndef WOLFCRYPT_TEST_CHACHA_H
|
|
#define WOLFCRYPT_TEST_CHACHA_H
|
|
|
|
#include <tests/api/api_decl.h>
|
|
|
|
int test_wc_Chacha_SetKey(void);
|
|
int test_wc_Chacha_Process(void);
|
|
int test_wc_Chacha_Process_Chunking(void);
|
|
int test_wc_Chacha_MonteCarlo(void);
|
|
int test_wc_Chacha_CounterOverflow(void);
|
|
int test_wc_Chacha_InPlace(void);
|
|
int test_wc_Chacha_UnalignedBuffers(void);
|
|
|
|
#define TEST_CHACHA_DECLS \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_SetKey), \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_Process), \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_Process_Chunking), \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_MonteCarlo), \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_CounterOverflow), \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_InPlace), \
|
|
TEST_DECL_GROUP("chacha", test_wc_Chacha_UnalignedBuffers)
|
|
|
|
#endif /* WOLFCRYPT_TEST_CHACHA_H */
|