diff options
| author | Egor Tensin <egor@tensin.name> | 2026-07-22 18:31:50 +0200 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-07-22 21:07:53 +0200 |
| commit | 4720b5ac21163936fb47f524037a6f12ce6e6ce2 (patch) | |
| tree | 7b1f3f7f0e4047134048bb9b9967498b6f8ead12 /aes/src/box_aes.c | |
| parent | minor refactoring (diff) | |
| download | aes-tools-4720b5ac21163936fb47f524037a6f12ce6e6ce2.tar.gz aes-tools-4720b5ac21163936fb47f524037a6f12ce6e6ce2.zip | |
rewrite: the beginning
This a giant fuck-you to myself while I have nothing (actually, tons of
things) to do in a hospital.
* The giant screens of preprocessor code are gone, they always sucked,
fuck them.
* Switched everything to the "boxes" interface as the only one
remaining.
* Restuctured things in aes/ so that the files they're in make at least
a little bit of sense.
* Removed a bunch of cruft and prematurely generic code.
* This is half-baked at best: I just made sure that the tests pass. A
lot of cleanup awaits.
Diffstat (limited to 'aes/src/box_aes.c')
| -rw-r--r-- | aes/src/box_aes.c | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/aes/src/box_aes.c b/aes/src/box_aes.c deleted file mode 100644 index d0c9a41..0000000 --- a/aes/src/box_aes.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com> - * This file is part of the "AES tools" project. - * For details, see https://github.com/egor-tensin/aes-tools. - * Distributed under the MIT License. - */ - -#include <aes/all.h> - -#include <stdlib.h> -#include <string.h> - -static AES_StatusCode aes_box_derive_params_aes128( - const AES_BoxKey* box_key, - AES_BoxEncryptionRoundKeys* encryption_keys, - AES_BoxDecryptionRoundKeys* decryption_keys, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - aes128_expand_key_(box_key->aes128_key.key, &encryption_keys->aes128_encryption_keys); - aes128_derive_decryption_keys_( - &encryption_keys->aes128_encryption_keys, &decryption_keys->aes128_decryption_keys - ); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_derive_params_aes192( - const AES_BoxKey* box_key, - AES_BoxEncryptionRoundKeys* encryption_keys, - AES_BoxDecryptionRoundKeys* decryption_keys, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - aes192_expand_key_( - box_key->aes192_key.lo, box_key->aes192_key.hi, &encryption_keys->aes192_encryption_keys - ); - aes192_derive_decryption_keys_( - &encryption_keys->aes192_encryption_keys, &decryption_keys->aes192_decryption_keys - ); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_derive_params_aes256( - const AES_BoxKey* box_key, - AES_BoxEncryptionRoundKeys* encryption_keys, - AES_BoxDecryptionRoundKeys* decryption_keys, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - aes256_expand_key_( - box_key->aes256_key.lo, box_key->aes256_key.hi, &encryption_keys->aes256_encryption_keys - ); - aes256_derive_decryption_keys_( - &encryption_keys->aes256_encryption_keys, &decryption_keys->aes256_decryption_keys - ); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_parse_key_aes128( - AES_BoxKey* dest, - const char* src, - AES_ErrorDetails* err_details -) { - if (dest == NULL) - return aes_error_null_argument(err_details, "dest"); - - return aes128_parse_key(&dest->aes128_key, src, err_details); -} - -static AES_StatusCode aes_box_parse_key_aes192( - AES_BoxKey* dest, - const char* src, - AES_ErrorDetails* err_details -) { - if (dest == NULL) - return aes_error_null_argument(err_details, "dest"); - - return aes192_parse_key(&dest->aes192_key, src, err_details); -} - -static AES_StatusCode aes_box_parse_key_aes256( - AES_BoxKey* dest, - const char* src, - AES_ErrorDetails* err_details -) { - if (dest == NULL) - return aes_error_null_argument(err_details, "dest"); - - return aes256_parse_key(&dest->aes256_key, src, err_details); -} - -static AES_StatusCode aes_box_format_key_aes128( - AES_BoxKeyString* dest, - const AES_BoxKey* src, - AES_ErrorDetails* err_details -) { - if (dest == NULL) - return aes_error_null_argument(err_details, "dest"); - if (src == NULL) - return aes_error_null_argument(err_details, "src"); - - return aes128_format_key(&dest->aes128, &src->aes128_key, err_details); -} - -static AES_StatusCode aes_box_format_key_aes192( - AES_BoxKeyString* dest, - const AES_BoxKey* src, - AES_ErrorDetails* err_details -) { - if (dest == NULL) - return aes_error_null_argument(err_details, "dest"); - if (src == NULL) - return aes_error_null_argument(err_details, "src"); - - return aes192_format_key(&dest->aes192, &src->aes192_key, err_details); -} - -static AES_StatusCode aes_box_format_key_aes256( - AES_BoxKeyString* dest, - const AES_BoxKey* src, - AES_ErrorDetails* err_details -) { - if (dest == NULL) - return aes_error_null_argument(err_details, "dest"); - if (src == NULL) - return aes_error_null_argument(err_details, "src"); - - return aes256_format_key(&dest->aes256, &src->aes256_key, err_details); -} - -static AES_StatusCode aes_box_encrypt_block_aes128( - const AES_Block* input, - const AES_BoxEncryptionRoundKeys* params, - AES_Block* output, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - *output = aes128_encrypt_block_(*input, ¶ms->aes128_encryption_keys); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_decrypt_block_aes128( - const AES_Block* input, - const AES_BoxDecryptionRoundKeys* params, - AES_Block* output, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - *output = aes128_decrypt_block_(*input, ¶ms->aes128_decryption_keys); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_encrypt_block_aes192( - const AES_Block* input, - const AES_BoxEncryptionRoundKeys* params, - AES_Block* output, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - *output = aes192_encrypt_block_(*input, ¶ms->aes192_encryption_keys); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_decrypt_block_aes192( - const AES_Block* input, - const AES_BoxDecryptionRoundKeys* params, - AES_Block* output, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - *output = aes192_decrypt_block_(*input, ¶ms->aes192_decryption_keys); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_encrypt_block_aes256( - const AES_Block* input, - const AES_BoxEncryptionRoundKeys* params, - AES_Block* output, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - *output = aes256_encrypt_block_(*input, ¶ms->aes256_encryption_keys); - return AES_SUCCESS; -} - -static AES_StatusCode aes_box_decrypt_block_aes256( - const AES_Block* input, - const AES_BoxDecryptionRoundKeys* params, - AES_Block* output, - AES_ErrorDetails* err_details -) { - AES_UNUSED_PARAMETER(err_details); - *output = aes256_decrypt_block_(*input, ¶ms->aes256_decryption_keys); - return AES_SUCCESS; -} - -AES_BoxOps aes128_box_ops = { - &aes_box_derive_params_aes128, - &aes_box_parse_key_aes128, - &aes_box_format_key_aes128, - &aes_box_encrypt_block_aes128, - &aes_box_decrypt_block_aes128, -}; - -AES_BoxOps aes192_box_ops = { - &aes_box_derive_params_aes192, - &aes_box_parse_key_aes192, - &aes_box_format_key_aes192, - &aes_box_encrypt_block_aes192, - &aes_box_decrypt_block_aes192, -}; - -AES_BoxOps aes256_box_ops = { - &aes_box_derive_params_aes256, - &aes_box_parse_key_aes256, - &aes_box_format_key_aes256, - &aes_box_encrypt_block_aes256, - &aes_box_decrypt_block_aes256, -}; |
