blob: dcafdc841193255bc99ed6537b24706f88d652d8 [file] [log] [blame]
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +01001/* BEGIN_HEADER */
2#include "block_cipher_internal.h"
3
4#define BLOCK_SIZE 16
Manuel Pégourié-Gonnard3e0884f2023-11-10 11:52:10 +01005
6#if defined(MBEDTLS_AES_C)
7#define VALID_CIPHER_ID MBEDTLS_CIPHER_ID_AES
8#define BADKEY_ERROR MBEDTLS_ERR_AES_INVALID_KEY_LENGTH
9#elif defined(MBEDTLS_ARIA_C)
10#define VALID_CIPHER_ID MBEDTLS_CIPHER_ID_ARIA
11#define BADKEY_ERROR MBEDTLS_ERR_ARIA_BAD_INPUT_DATA
12#elif defined(MBEDTLS_CAMELLIA_C)
13#define VALID_CIPHER_ID MBEDTLS_CIPHER_ID_CAMELLIA
14#define BADKEY_ERROR MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA
15#else
16#undef VALID_CIPHER_ID
17#endif
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +010018/* END_HEADER */
19
20/* BEGIN_DEPENDENCIES
21 * depends_on:MBEDTLS_BLOCK_CIPHER_C
22 * END_DEPENDENCIES
23 */
24
Manuel Pégourié-Gonnard3e0884f2023-11-10 11:52:10 +010025/* BEGIN_CASE depends_on:VALID_CIPHER_ID */
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +010026void invalid()
27{
Manuel Pégourié-Gonnard3e0884f2023-11-10 11:52:10 +010028 /* That size is valid for a key or an input/output block. */
29 unsigned char buf[16] = { 0 };
30
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +010031 mbedtls_block_cipher_context_t ctx;
32
33 mbedtls_block_cipher_init(&ctx);
34
Manuel Pégourié-Gonnard3e0884f2023-11-10 11:52:10 +010035 /* Bad parameters to setup */
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +010036 TEST_EQUAL(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA,
37 mbedtls_block_cipher_setup(&ctx, MBEDTLS_CIPHER_ID_NONE));
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +010038 TEST_EQUAL(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA,
39 mbedtls_block_cipher_setup(&ctx, MBEDTLS_CIPHER_ID_DES));
40
Manuel Pégourié-Gonnard3e0884f2023-11-10 11:52:10 +010041 /* setkey() before successful setup() */
42 TEST_EQUAL(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT,
43 mbedtls_block_cipher_setkey(&ctx, buf, 128));
44
45 /* Now properly setup the context */
46 TEST_EQUAL(0, mbedtls_block_cipher_setup(&ctx, VALID_CIPHER_ID));
47
48 /* Bad parameters to setkey() */
49 TEST_EQUAL(BADKEY_ERROR,
50 mbedtls_block_cipher_setkey(&ctx, buf, 42));
51
Manuel Pégourié-Gonnard21718762023-11-10 11:21:17 +010052exit:
53 mbedtls_block_cipher_free(&ctx);
54}
55/* END_CASE */