From 82cef11d443c71c7d5ebc92f144c2b7ceb4e1cb2 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Wed, 10 Jun 2015 03:06:24 +0300 Subject: add file encryption utils for AES-128-ECB --- include/aesni/all.h | 1 + include/aesni/data.h | 11 +++++++++++ include/aesni/file.h | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 include/aesni/file.h (limited to 'include') diff --git a/include/aesni/all.h b/include/aesni/all.h index 3935d2a..a383b87 100644 --- a/include/aesni/all.h +++ b/include/aesni/all.h @@ -10,4 +10,5 @@ #include "api.h" #include "data.h" +#include "file.h" #include "raw.h" diff --git a/include/aesni/data.h b/include/aesni/data.h index 0cee7c6..73b7f6e 100644 --- a/include/aesni/data.h +++ b/include/aesni/data.h @@ -13,6 +13,17 @@ typedef __m128i AesBlock128; +static __inline AesBlock128 load_aes_block128(const unsigned char* src) +{ + return _mm_loadu_si128((AesBlock128*) src); +} + +static __inline void __fastcall store_aes_block128(AesBlock128 block, + unsigned char* dest) +{ + _mm_storeu_si128((AesBlock128*) dest, block); +} + static __inline AesBlock128 __fastcall make_aes_block128(int hi3, int hi2, int lo1, int lo0) { return _mm_set_epi32(hi3, hi2, lo1, lo0); diff --git a/include/aesni/file.h b/include/aesni/file.h new file mode 100644 index 0000000..eb84d09 --- /dev/null +++ b/include/aesni/file.h @@ -0,0 +1,20 @@ +/** + * \file + * \author Egor Tensin + * \date 2015 + * \copyright This file is licensed under the terms of the MIT License. + * See LICENSE.txt for details. + */ + +#pragma once + +#include + +size_t aes128ecb_encrypt_file(const unsigned char* src, + size_t src_size, + unsigned char* dest, + Aes128KeySchedule* key_schedule); +size_t aes128ecb_decrypt_file(const unsigned char* src, + size_t src_size, + unsigned char* dest, + Aes128KeySchedule* inverted_schedule); -- cgit v1.2.3