diff options
Diffstat (limited to 'cxx/include/aesnixx/box.hpp')
-rw-r--r-- | cxx/include/aesnixx/box.hpp | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/cxx/include/aesnixx/box.hpp b/cxx/include/aesnixx/box.hpp deleted file mode 100644 index 69383a8..0000000 --- a/cxx/include/aesnixx/box.hpp +++ /dev/null @@ -1,212 +0,0 @@ -/** - * \file - * \author Egor Tensin <Egor.Tensin@gmail.com> - * \date 2015 - * \copyright This file is licensed under the terms of the MIT License. - * See LICENSE.txt for details. - */ - -#pragma once - -#include "algorithm.hpp" -#include "error.hpp" -#include "mode.hpp" - -#include <aesni/all.h> - -#include <cassert> -#include <cstddef> - -#include <iostream> -#include <string> -#include <vector> - -namespace aesni -{ - class Box - { - public: - typedef AesNI_BoxBlock Block; - typedef AesNI_BoxKey Key; - - static std::string format_key(const Key& src, Algorithm algorithm) - { - AesNI_BoxKeyString str; - aesni_box_format_key( - &str, algorithm, &src, ErrorDetailsThrowsInDestructor()); - return reinterpret_cast<const char*>(&str); - } - - static std::string format_block(const Block& src, Algorithm algorithm) - { - AesNI_BoxBlockString str; - aesni_box_format_block( - &str, algorithm, &src, ErrorDetailsThrowsInDestructor()); - return reinterpret_cast<const char*>(&str); - } - - static void parse_block( - Block& dest, - Algorithm algorithm, - const char* src) - { - aesni_box_parse_block(&dest, algorithm, src, - ErrorDetailsThrowsInDestructor()); - } - - static void parse_block( - Block& dest, - Algorithm algorithm, - const std::string& src) - { - parse_block(dest, algorithm, src.c_str()); - } - - static void parse_key( - Key& dest, - Algorithm algorithm, - const char* src) - { - aesni_box_parse_key(&dest, algorithm, src, - ErrorDetailsThrowsInDestructor()); - } - - static void parse_key( - Key& dest, - Algorithm algorithm, - const std::string& src) - { - parse_key(dest, algorithm, src.c_str()); - } - - Box(Algorithm algorithm, const Key& key) - : algorithm(algorithm) - , mode(AESNI_ECB) - { - aesni_box_init(&impl, algorithm, &key, mode, nullptr, - ErrorDetailsThrowsInDestructor()); - } - - Box(Algorithm algorithm, const Key& key, Mode mode, const Block& iv) - : algorithm(algorithm) - , mode(mode) - { - aesni_box_init(&impl, algorithm, &key, mode, &iv, - ErrorDetailsThrowsInDestructor()); - } - - void encrypt_block(const Block& plaintext, Block& ciphertext) - { - aesni_box_encrypt_block( - &impl, &plaintext, &ciphertext, - ErrorDetailsThrowsInDestructor()); - } - - void decrypt_block(const Block& ciphertext, Block& plaintext) - { - aesni_box_decrypt_block( - &impl, &ciphertext, &plaintext, - ErrorDetailsThrowsInDestructor()); - } - - std::vector<unsigned char> encrypt_buffer( - const void* src_buf, - std::size_t src_size) - { - std::size_t dest_size; - - aesni_box_encrypt_buffer( - &impl, - src_buf, - src_size, - nullptr, - &dest_size, - aesni::ErrorDetailsThrowsInDestructor()); - - std::vector<unsigned char> dest_buf; - dest_buf.resize(dest_size); - - aesni_box_encrypt_buffer( - &impl, - src_buf, - src_size, - dest_buf.data(), - &dest_size, - aesni::ErrorDetailsThrowsInDestructor()); - - dest_buf.resize(dest_size); - return dest_buf; - } - - std::vector<unsigned char> decrypt_buffer( - const void* src_buf, - std::size_t src_size) - { - std::size_t dest_size; - - aesni_box_decrypt_buffer( - &impl, - src_buf, - src_size, - nullptr, - &dest_size, - aesni::ErrorDetailsThrowsInDestructor()); - - std::vector<unsigned char> dest_buf; - dest_buf.resize(dest_size); - - aesni_box_decrypt_buffer( - &impl, - src_buf, - src_size, - dest_buf.data(), - &dest_size, - aesni::ErrorDetailsThrowsInDestructor()); - - dest_buf.resize(dest_size); - return dest_buf; - } - - std::string format_block(const Block& src) - { - return format_block(src, get_algorithm()); - } - - std::string format_key(const Key& src) - { - return format_key(src, get_algorithm()); - } - - void parse_block(Block& dest, const char* src) - { - parse_block(dest, get_algorithm(), src); - } - - void parse_block(Block& dest, const std::string& src) - { - parse_block(dest, src.c_str()); - } - - void parse_key(Key& dest, const char* src) - { - parse_key(dest, get_algorithm(), src); - } - - void parse_key(Key& dest, const std::string& src) - { - parse_key(dest, src.c_str()); - } - - Algorithm get_algorithm() const { return algorithm; } - - Mode get_mode() const { return mode; } - - private: - Key key; - - Algorithm algorithm; - Mode mode; - - AesNI_Box impl; - }; -} |