From 351c5188013fff041c7217aed64478cfc7643480 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sat, 21 Dec 2019 13:33:50 +0300 Subject: restructure the project --- cxx/include/aesxx/mode.hpp | 153 --------------------------------------------- 1 file changed, 153 deletions(-) delete mode 100644 cxx/include/aesxx/mode.hpp (limited to 'cxx/include/aesxx/mode.hpp') diff --git a/cxx/include/aesxx/mode.hpp b/cxx/include/aesxx/mode.hpp deleted file mode 100644 index 1c6c4cf..0000000 --- a/cxx/include/aesxx/mode.hpp +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (c) 2015 Egor Tensin -// This file is part of the "AES tools" project. -// For details, see https://github.com/egor-tensin/aes-tools. -// Distributed under the MIT License. - -#pragma once - -#include - -#include - -namespace aes -{ - typedef AES_Mode Mode; - - template - struct ModeRequiresInitVector : public std::true_type - { }; - - template <> - struct ModeRequiresInitVector : public std::false_type - { }; - - template - struct ModeUsesEncryptionKeysOnly : public std::true_type - { }; - - inline bool mode_requires_init_vector(Mode mode) - { - return mode != AES_ECB; - } - - template <> - struct ModeUsesEncryptionKeysOnly : public std::false_type - { }; - - template <> - struct ModeUsesEncryptionKeysOnly : public std::false_type - { }; - - inline bool mode_uses_encryption_keys_only(Mode mode) - { - return mode != AES_ECB && mode != AES_CBC; - } - -#define AESXX_ENCRYPT_BLOCK_ECB(prefix) \ - template <> \ - inline void encrypt_block( \ - const typename Types::Block& plaintext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& ciphertext) \ - { \ - ciphertext = aes_## prefix ##_encrypt_block_ECB(plaintext, &encryption_keys); \ - } - -#define AESXX_DECRYPT_BLOCK_ECB(prefix) \ - template <> \ - inline void decrypt_block( \ - const typename Types::Block& ciphertext, \ - const typename Types::RoundKeys& decryption_keys, \ - typename Types::Block& plaintext) \ - { \ - plaintext = aes_## prefix ##_decrypt_block_ECB(ciphertext, &decryption_keys); \ - } - -#define AESXX_ENCRYPT_BLOCK_CBC(prefix) \ - template <> \ - inline void encrypt_block( \ - const typename Types::Block& plaintext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& ciphertext) \ - { \ - ciphertext = aes_## prefix ##_encrypt_block_CBC(plaintext, &encryption_keys, iv, &iv); \ - } - -#define AESXX_DECRYPT_BLOCK_CBC(prefix) \ - template <> \ - inline void decrypt_block( \ - const typename Types::Block& ciphertext, \ - const typename Types::RoundKeys& decryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& plaintext) \ - { \ - plaintext = aes_## prefix ##_decrypt_block_CBC(ciphertext, &decryption_keys, iv, &iv); \ - } - -#define AESXX_ENCRYPT_BLOCK_CFB(prefix) \ - template <> \ - inline void encrypt_block( \ - const typename Types::Block& plaintext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& ciphertext) \ - { \ - ciphertext = aes_## prefix ##_encrypt_block_CFB(plaintext, &encryption_keys, iv, &iv); \ - } - -#define AESXX_DECRYPT_BLOCK_CFB(prefix) \ - template <> \ - inline void decrypt_block( \ - const typename Types::Block& ciphertext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& plaintext) \ - { \ - plaintext = aes_## prefix ##_decrypt_block_CFB(ciphertext, &encryption_keys, iv, &iv); \ - } - -#define AESXX_ENCRYPT_BLOCK_OFB(prefix) \ - template <> \ - inline void encrypt_block( \ - const typename Types::Block& plaintext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& ciphertext) \ - { \ - ciphertext = aes_## prefix ##_encrypt_block_OFB(plaintext, &encryption_keys, iv, &iv); \ - } - -#define AESXX_DECRYPT_BLOCK_OFB(prefix) \ - template <> \ - inline void decrypt_block( \ - const typename Types::Block& ciphertext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& plaintext) \ - { \ - plaintext = aes_## prefix ##_decrypt_block_OFB(ciphertext, &encryption_keys, iv, &iv); \ - } - -#define AESXX_ENCRYPT_BLOCK_CTR(prefix) \ - template <> \ - inline void encrypt_block( \ - const typename Types::Block& plaintext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& ciphertext) \ - { \ - ciphertext = aes_## prefix ##_encrypt_block_CTR(plaintext, &encryption_keys, iv, &iv); \ - } - -#define AESXX_DECRYPT_BLOCK_CTR(prefix) \ - template <> \ - inline void decrypt_block( \ - const typename Types::Block& ciphertext, \ - const typename Types::RoundKeys& encryption_keys, \ - typename Types::Block& iv, \ - typename Types::Block& plaintext) \ - { \ - plaintext = aes_## prefix ##_decrypt_block_CTR(ciphertext, &encryption_keys, iv, &iv); \ - } -} -- cgit v1.2.3