diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/asm/aes128.asm | 16 | ||||
-rw-r--r-- | src/asm/aes192.asm | 16 | ||||
-rw-r--r-- | src/asm/aes256.asm | 16 | ||||
-rw-r--r-- | src/buffer.c | 44 | ||||
-rw-r--r-- | src/c/aes128.c | 34 | ||||
-rw-r--r-- | src/c/aes192.c | 34 | ||||
-rw-r--r-- | src/c/aes256.c | 40 | ||||
-rw-r--r-- | src/common.c | 186 |
8 files changed, 193 insertions, 193 deletions
diff --git a/src/asm/aes128.asm b/src/asm/aes128.asm index 874f876..4f88f09 100644 --- a/src/asm/aes128.asm +++ b/src/asm/aes128.asm @@ -8,7 +8,7 @@ .code -@raw_aes128_encrypt_block@20 proc +@aesni_raw_encrypt_block128@20 proc pxor xmm0, [ecx] aesenc xmm0, [ecx + 10h] aesenc xmm0, [ecx + 20h] @@ -21,9 +21,9 @@ aesenc xmm0, [ecx + 90h] aesenclast xmm0, [ecx + 0A0h] ret -@raw_aes128_encrypt_block@20 endp +@aesni_raw_encrypt_block128@20 endp -@raw_aes128_decrypt_block@20 proc +@aesni_raw_decrypt_block128@20 proc pxor xmm0, [ecx] aesdec xmm0, [ecx + 10h] aesdec xmm0, [ecx + 20h] @@ -36,9 +36,9 @@ aesdec xmm0, [ecx + 90h] aesdeclast xmm0, [ecx + 0A0h] ret -@raw_aes128_decrypt_block@20 endp +@aesni_raw_decrypt_block128@20 endp -@raw_aes128_expand_key_schedule@20 proc +@aesni_raw_expand_key_schedule128@20 proc ; A "word" (in terms of the FIPS 187 standard) is a 32-bit block. ; Words are denoted by `w[N]`. ; @@ -165,9 +165,9 @@ aes128_keygen_assist: add ecx, 10h ; ecx = &w[i+8] ret -@raw_aes128_expand_key_schedule@20 endp +@aesni_raw_expand_key_schedule128@20 endp -@raw_aes128_invert_key_schedule@8 proc +@aesni_raw_invert_key_schedule128@8 proc movdqa xmm5, [ecx] movdqa xmm4, [ecx + 0A0h] movdqa [edx], xmm4 @@ -197,6 +197,6 @@ aes128_keygen_assist: movdqa [edx + 50h], xmm5 ret -@raw_aes128_invert_key_schedule@8 endp +@aesni_raw_invert_key_schedule128@8 endp end diff --git a/src/asm/aes192.asm b/src/asm/aes192.asm index adbc690..e045910 100644 --- a/src/asm/aes192.asm +++ b/src/asm/aes192.asm @@ -8,7 +8,7 @@ .code -@raw_aes192_encrypt_block@20 proc +@aesni_raw_encrypt_block192@20 proc pxor xmm0, [ecx] aesenc xmm0, [ecx + 10h] aesenc xmm0, [ecx + 20h] @@ -23,9 +23,9 @@ aesenc xmm0, [ecx + 0B0h] aesenclast xmm0, [ecx + 0C0h] ret -@raw_aes192_encrypt_block@20 endp +@aesni_raw_encrypt_block192@20 endp -@raw_aes192_decrypt_block@20 proc +@aesni_raw_decrypt_block192@20 proc pxor xmm0, [ecx] aesdec xmm0, [ecx + 10h] aesdec xmm0, [ecx + 20h] @@ -40,9 +40,9 @@ aesdec xmm0, [ecx + 0B0h] aesdeclast xmm0, [ecx + 0C0h] ret -@raw_aes192_decrypt_block@20 endp +@aesni_raw_decrypt_block192@20 endp -@raw_aes192_expand_key_schedule@36 proc +@aesni_raw_expand_key_schedule192@36 proc ; A "word" (in terms of the FIPS 187 standard) is a 32-bit block. ; Words are denoted by `w[N]`. ; @@ -206,9 +206,9 @@ aes192_keygen_assist: ; xmm1[31:0] == w[i+10] == RotWord(SubWord(w[i+5]))^Rcon^w[i+4]^w[i+3]^w[i+2]^w[i+1]^w[i] ret -@raw_aes192_expand_key_schedule@36 endp +@aesni_raw_expand_key_schedule192@36 endp -@raw_aes192_invert_key_schedule@8 proc +@aesni_raw_invert_key_schedule192@8 proc movdqa xmm5, [ecx] movdqa xmm4, [ecx + 0C0h] movdqa [edx], xmm4 @@ -243,6 +243,6 @@ aes192_keygen_assist: movdqa [edx + 60h], xmm5 ret -@raw_aes192_invert_key_schedule@8 endp +@aesni_raw_invert_key_schedule192@8 endp end diff --git a/src/asm/aes256.asm b/src/asm/aes256.asm index 479b0f5..285cf69 100644 --- a/src/asm/aes256.asm +++ b/src/asm/aes256.asm @@ -8,7 +8,7 @@ .code -@raw_aes256_encrypt_block@20 proc +@aesni_raw_encrypt_block256@20 proc pxor xmm0, [ecx] aesenc xmm0, [ecx + 10h] aesenc xmm0, [ecx + 20h] @@ -25,9 +25,9 @@ aesenc xmm0, [ecx + 0D0h] aesenclast xmm0, [ecx + 0E0h] ret -@raw_aes256_encrypt_block@20 endp +@aesni_raw_encrypt_block256@20 endp -@raw_aes256_decrypt_block@20 proc +@aesni_raw_decrypt_block256@20 proc pxor xmm0, [ecx] aesdec xmm0, [ecx + 10h] aesdec xmm0, [ecx + 20h] @@ -44,9 +44,9 @@ aesdec xmm0, [ecx + 0D0h] aesdeclast xmm0, [ecx + 0E0h] ret -@raw_aes256_decrypt_block@20 endp +@aesni_raw_decrypt_block256@20 endp -@raw_aes256_expand_key_schedule@36 proc +@aesni_raw_expand_key_schedule256@36 proc ; A "word" (in terms of the FIPS 187 standard) is a 32-bit block. ; Words are denoted by `w[N]`. ; @@ -239,9 +239,9 @@ aes256_keygen_assist: pxor xmm0, xmm1 ret -@raw_aes256_expand_key_schedule@36 endp +@aesni_raw_expand_key_schedule256@36 endp -@raw_aes256_invert_key_schedule@8 proc +@aesni_raw_invert_key_schedule256@8 proc movdqa xmm5, [ecx] movdqa xmm4, [ecx + 0E0h] movdqa [edx], xmm4 @@ -281,6 +281,6 @@ aes256_keygen_assist: movdqa [edx + 70h], xmm5 ret -@raw_aes256_invert_key_schedule@8 endp +@aesni_raw_invert_key_schedule256@8 endp end diff --git a/src/buffer.c b/src/buffer.c index ff14f18..b4896f7 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -13,11 +13,11 @@ static unsigned char FULL_BLOCK_PADDING[16] = { 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 }; -size_t aes128ecb_encrypt_buffer( - const unsigned char* src, +size_t aesni_encrypt_buffer_ecb128( + const void* src, size_t src_size, - unsigned char* dest, - Aes128KeySchedule* key_schedule) + void* dest, + AesNI_KeySchedule128* key_schedule) { size_t rem_size = src_size % 16; size_t padding_size = 16 - rem_size; @@ -28,11 +28,11 @@ size_t aes128ecb_encrypt_buffer( size_t src_len = src_size / 16; - for (size_t i = 0; i < src_len; ++i, src += 16, dest += 16) + for (size_t i = 0; i < src_len; ++i, (char*) src += 16, (char*) dest += 16) { - AesBlock128 plaintext = load_aes_block128(src); - AesBlock128 ciphertext = aes128ecb_encrypt_block(plaintext, key_schedule); - store_aes_block128(ciphertext, dest); + AesNI_Block128 plaintext = aesni_load_block128(src); + AesNI_Block128 ciphertext = aesni_encrypt_block_ecb128(plaintext, key_schedule); + aesni_store_block128(dest, ciphertext); } unsigned char padding[16]; @@ -47,9 +47,9 @@ size_t aes128ecb_encrypt_buffer( memset(padding + rem_size, padding_size, padding_size); } - AesBlock128 plaintext = load_aes_block128(padding); - AesBlock128 ciphertext = aes128ecb_encrypt_block(plaintext, key_schedule); - store_aes_block128(ciphertext, dest); + AesNI_Block128 plaintext = aesni_load_block128(padding); + AesNI_Block128 ciphertext = aesni_encrypt_block_ecb128(plaintext, key_schedule); + aesni_store_block128(dest, ciphertext); return dest_size; } @@ -66,11 +66,11 @@ static unsigned char get_padding_size(const unsigned char* padding) return padding[15]; } -size_t aes128ecb_decrypt_buffer( - const unsigned char* src, +size_t aesni_decrypt_buffer_ecb128( + const void* src, size_t src_size, - unsigned char* dest, - Aes128KeySchedule* inverted_schedule) + void* dest, + AesNI_KeySchedule128* inverted_schedule) { size_t dest_size = src_size; @@ -79,17 +79,17 @@ size_t aes128ecb_decrypt_buffer( size_t src_len = src_size / 16; - for (size_t i = 0; i < src_len - 1; ++i, src += 16, dest += 16) + for (size_t i = 0; i < src_len - 1; ++i, (char*) src += 16, (char*) dest += 16) { - AesBlock128 ciphertext = load_aes_block128(src); - AesBlock128 plaintext = aes128ecb_decrypt_block(ciphertext, inverted_schedule); - store_aes_block128(plaintext, dest); + AesNI_Block128 ciphertext = aesni_load_block128(src); + AesNI_Block128 plaintext = aesni_decrypt_block_ecb128(ciphertext, inverted_schedule); + aesni_store_block128(dest, plaintext); } - AesBlock128 ciphertext = load_aes_block128(src); - AesBlock128 plaintext = aes128ecb_decrypt_block(ciphertext, inverted_schedule); + AesNI_Block128 ciphertext = aesni_load_block128(src); + AesNI_Block128 plaintext = aesni_decrypt_block_ecb128(ciphertext, inverted_schedule); unsigned char padding[16]; - store_aes_block128(plaintext, padding); + aesni_store_block128(padding, plaintext); unsigned char padding_size = get_padding_size(padding); diff --git a/src/c/aes128.c b/src/c/aes128.c index d4c609d..ac1b4f5 100644 --- a/src/c/aes128.c +++ b/src/c/aes128.c @@ -11,9 +11,9 @@ #include <emmintrin.h> #include <wmmintrin.h> -AesBlock128 __fastcall raw_aes128_encrypt_block( - AesBlock128 plain, - Aes128KeySchedule* key_schedule) +AesNI_Block128 __fastcall aesni_raw_encrypt_block128( + AesNI_Block128 plain, + AesNI_KeySchedule128* key_schedule) { plain = _mm_xor_si128(plain, key_schedule->keys[0]); plain = _mm_aesenc_si128(plain, key_schedule->keys[1]); @@ -28,9 +28,9 @@ AesBlock128 __fastcall raw_aes128_encrypt_block( return _mm_aesenclast_si128(plain, key_schedule->keys[10]); } -AesBlock128 __fastcall raw_aes128_decrypt_block( - AesBlock128 cipher, - Aes128KeySchedule* inverted_schedule) +AesNI_Block128 __fastcall aesni_raw_decrypt_block128( + AesNI_Block128 cipher, + AesNI_KeySchedule128* inverted_schedule) { cipher = _mm_xor_si128(cipher, inverted_schedule->keys[0]); cipher = _mm_aesdec_si128(cipher, inverted_schedule->keys[1]); @@ -45,11 +45,11 @@ AesBlock128 __fastcall raw_aes128_decrypt_block( return _mm_aesdeclast_si128(cipher, inverted_schedule->keys[10]); } -static AesBlock128 __fastcall aes128_keygen_assist( - AesBlock128 prev, - AesBlock128 hwgen) +static AesNI_Block128 __fastcall aes128_keygen_assist( + AesNI_Block128 prev, + AesNI_Block128 hwgen) { - AesBlock128 tmp = prev; + AesNI_Block128 tmp = prev; tmp = _mm_slli_si128(tmp, 4); prev = _mm_xor_si128(prev, tmp); @@ -64,11 +64,11 @@ static AesBlock128 __fastcall aes128_keygen_assist( return prev; } -void __fastcall raw_aes128_expand_key_schedule( - AesBlock128 key, - Aes128KeySchedule* key_schedule) +void __fastcall aesni_raw_expand_key_schedule128( + AesNI_Block128 key, + AesNI_KeySchedule128* key_schedule) { - AesBlock128 prev = key_schedule->keys[0] = key; + AesNI_Block128 prev = key_schedule->keys[0] = key; prev = key_schedule->keys[1] = aes128_keygen_assist(prev, _mm_aeskeygenassist_si128(prev, 0x01)); prev = key_schedule->keys[2] = aes128_keygen_assist(prev, _mm_aeskeygenassist_si128(prev, 0x02)); prev = key_schedule->keys[3] = aes128_keygen_assist(prev, _mm_aeskeygenassist_si128(prev, 0x04)); @@ -81,9 +81,9 @@ void __fastcall raw_aes128_expand_key_schedule( prev = key_schedule->keys[10] = aes128_keygen_assist(prev, _mm_aeskeygenassist_si128(prev, 0x36)); } -void __fastcall raw_aes128_invert_key_schedule( - Aes128KeySchedule* key_schedule, - Aes128KeySchedule* inverted_schedule) +void __fastcall aesni_raw_invert_key_schedule128( + AesNI_KeySchedule128* key_schedule, + AesNI_KeySchedule128* inverted_schedule) { inverted_schedule->keys[0] = key_schedule->keys[10]; inverted_schedule->keys[1] = _mm_aesimc_si128(key_schedule->keys[9]); diff --git a/src/c/aes192.c b/src/c/aes192.c index fec8f06..c0d410a 100644 --- a/src/c/aes192.c +++ b/src/c/aes192.c @@ -11,9 +11,9 @@ #include <emmintrin.h> #include <wmmintrin.h> -AesBlock128 __fastcall raw_aes192_encrypt_block( - AesBlock128 plain, - Aes192KeySchedule* key_schedule) +AesNI_Block128 __fastcall aesni_raw_encrypt_block192( + AesNI_Block128 plain, + AesNI_KeySchedule192* key_schedule) { plain = _mm_xor_si128(plain, key_schedule->keys[0]); plain = _mm_aesenc_si128(plain, key_schedule->keys[1]); @@ -30,9 +30,9 @@ AesBlock128 __fastcall raw_aes192_encrypt_block( return _mm_aesenclast_si128(plain, key_schedule->keys[12]); } -AesBlock128 __fastcall raw_aes192_decrypt_block( - AesBlock128 cipher, - Aes192KeySchedule* inverted_schedule) +AesNI_Block128 __fastcall aesni_raw_decrypt_block192( + AesNI_Block128 cipher, + AesNI_KeySchedule192* inverted_schedule) { cipher = _mm_xor_si128(cipher, inverted_schedule->keys[0]); cipher = _mm_aesdec_si128(cipher, inverted_schedule->keys[1]); @@ -50,11 +50,11 @@ AesBlock128 __fastcall raw_aes192_decrypt_block( } static void __fastcall aes192_keygen_assist( - AesBlock128* prev_lo, - AesBlock128* prev_hi, - AesBlock128 hwgen) + AesNI_Block128* prev_lo, + AesNI_Block128* prev_hi, + AesNI_Block128 hwgen) { - AesBlock128 tmp = *prev_lo; + AesNI_Block128 tmp = *prev_lo; tmp = _mm_slli_si128(tmp, 4); *prev_lo = _mm_xor_si128(*prev_lo, tmp); @@ -74,10 +74,10 @@ static void __fastcall aes192_keygen_assist( *prev_hi = _mm_xor_si128(*prev_hi, tmp); } -void __fastcall raw_aes192_expand_key_schedule( - AesBlock128 key_lo, - AesBlock128 key_hi, - Aes192KeySchedule* key_schedule) +void __fastcall aesni_raw_expand_key_schedule192( + AesNI_Block128 key_lo, + AesNI_Block128 key_hi, + AesNI_KeySchedule192* key_schedule) { key_schedule->keys[0] = key_lo; key_schedule->keys[1] = key_hi; @@ -114,9 +114,9 @@ void __fastcall raw_aes192_expand_key_schedule( key_schedule->keys[12] = key_lo; } -void __fastcall raw_aes192_invert_key_schedule( - Aes192KeySchedule* key_schedule, - Aes192KeySchedule* inverted_schedule) +void __fastcall aesni_raw_invert_key_schedule192( + AesNI_KeySchedule192* key_schedule, + AesNI_KeySchedule192* inverted_schedule) { inverted_schedule->keys[0] = key_schedule->keys[12]; inverted_schedule->keys[1] = _mm_aesimc_si128(key_schedule->keys[11]); diff --git a/src/c/aes256.c b/src/c/aes256.c index be4f783..a9042c6 100644 --- a/src/c/aes256.c +++ b/src/c/aes256.c @@ -11,9 +11,9 @@ #include <emmintrin.h> #include <wmmintrin.h> -AesBlock128 __fastcall raw_aes256_encrypt_block( - AesBlock128 plain, - Aes256KeySchedule* key_schedule) +AesNI_Block128 __fastcall aesni_raw_encrypt_block256( + AesNI_Block128 plain, + AesNI_KeySchedule256* key_schedule) { plain = _mm_xor_si128(plain, key_schedule->keys[0]); plain = _mm_aesenc_si128(plain, key_schedule->keys[1]); @@ -32,9 +32,9 @@ AesBlock128 __fastcall raw_aes256_encrypt_block( return _mm_aesenclast_si128(plain, key_schedule->keys[14]); } -AesBlock128 __fastcall raw_aes256_decrypt_block( - AesBlock128 cipher, - Aes256KeySchedule* inverted_schedule) +AesNI_Block128 __fastcall aesni_raw_decrypt_block256( + AesNI_Block128 cipher, + AesNI_KeySchedule256* inverted_schedule) { cipher = _mm_xor_si128(cipher, inverted_schedule->keys[0]); cipher = _mm_aesdec_si128(cipher, inverted_schedule->keys[1]); @@ -53,12 +53,12 @@ AesBlock128 __fastcall raw_aes256_decrypt_block( return _mm_aesdeclast_si128(cipher, inverted_schedule->keys[14]); } -static AesBlock128 __fastcall aes256_keygen_assist( - AesBlock128* prev_lo, - AesBlock128* prev_hi, - AesBlock128 hwgen) +static AesNI_Block128 __fastcall aes256_keygen_assist( + AesNI_Block128* prev_lo, + AesNI_Block128* prev_hi, + AesNI_Block128 hwgen) { - AesBlock128 tmp = *prev_lo; + AesNI_Block128 tmp = *prev_lo; tmp = _mm_slli_si128(tmp, 4); *prev_lo = _mm_xor_si128(*prev_lo, tmp); @@ -76,13 +76,13 @@ static AesBlock128 __fastcall aes256_keygen_assist( return *prev_hi; } -void __fastcall raw_aes256_expand_key_schedule( - AesBlock128 key_lo, - AesBlock128 key_hi, - Aes256KeySchedule* key_schedule) +void __fastcall aesni_raw_expand_key_schedule256( + AesNI_Block128 key_lo, + AesNI_Block128 key_hi, + AesNI_KeySchedule256* key_schedule) { - AesBlock128 prev_lo, prev_hi; - AesBlock128 hwgen; + AesNI_Block128 prev_lo, prev_hi; + AesNI_Block128 hwgen; prev_lo = key_schedule->keys[0] = key_lo; prev_hi = key_schedule->keys[1] = key_hi; @@ -140,9 +140,9 @@ void __fastcall raw_aes256_expand_key_schedule( key_schedule->keys[14] = aes256_keygen_assist(&prev_lo, &prev_hi, hwgen); } -void __fastcall raw_aes256_invert_key_schedule( - Aes256KeySchedule* key_schedule, - Aes256KeySchedule* inverted_schedule) +void __fastcall aesni_raw_invert_key_schedule256( + AesNI_KeySchedule256* key_schedule, + AesNI_KeySchedule256* inverted_schedule) { inverted_schedule->keys[0] = key_schedule->keys[14]; inverted_schedule->keys[1] = _mm_aesimc_si128(key_schedule->keys[13]); diff --git a/src/common.c b/src/common.c index c2e7530..e8d6e5b 100644 --- a/src/common.c +++ b/src/common.c @@ -13,36 +13,36 @@ #include <stdio.h> #include <string.h> -AesBlockString128 format_aes_block128(AesBlock128* block) +AesNI_BlockString128 aesni_format_block128(AesNI_Block128* block) { #if defined AESNI_LE_BLOCK_IO && AESNI_LE_BLOCK_IO - return format_aes_block128_le(block); + return aesni_format_block128_le(block); #else - return format_aes_block128_be(block); + return aesni_format_block128_be(block); #endif } -AesBlockString192 format_aes_block192(AesBlock192* block) +AesNI_BlockString192 aesni_format_block192(AesNI_Block192* block) { #if defined AESNI_LE_BLOCK_IO && AESNI_LE_BLOCK_IO - return format_aes_block192_le(block); + return aesni_format_block192_le(block); #else - return format_aes_block192_be(block); + return aesni_format_block192_be(block); #endif } -AesBlockString256 format_aes_block256(AesBlock256* block) +AesNI_BlockString256 aesni_format_block256(AesNI_Block256* block) { #if defined AESNI_LE_BLOCK_IO && AESNI_LE_BLOCK_IO - return format_aes_block256_le(block); + return aesni_format_block256_le(block); #else - return format_aes_block256_be(block); + return aesni_format_block256_be(block); #endif } -AesBlockString128 format_aes_block128_le(AesBlock128* block) +AesNI_BlockString128 aesni_format_block128_le(AesNI_Block128* block) { - AesBlockString128 result; + AesNI_BlockString128 result; char *cursor = result.str; for (int i = 0; i < 16; ++i, cursor += 2) @@ -52,9 +52,9 @@ AesBlockString128 format_aes_block128_le(AesBlock128* block) return result; } -AesBlockString192 format_aes_block192_le(AesBlock192* block) +AesNI_BlockString192 aesni_format_block192_le(AesNI_Block192* block) { - AesBlockString192 result; + AesNI_BlockString192 result; char *cursor = result.str; for (int i = 0; i < 8; ++i, cursor += 2) @@ -66,9 +66,9 @@ AesBlockString192 format_aes_block192_le(AesBlock192* block) return result; } -AesBlockString256 format_aes_block256_le(AesBlock256* block) +AesNI_BlockString256 aesni_format_block256_le(AesNI_Block256* block) { - AesBlockString256 result; + AesNI_BlockString256 result; char *cursor = result.str; for (int i = 0; i < 16; ++i, cursor += 2) @@ -80,9 +80,9 @@ AesBlockString256 format_aes_block256_le(AesBlock256* block) return result; } -AesBlockString128 format_aes_block128_be(AesBlock128* block) +AesNI_BlockString128 aesni_format_block128_be(AesNI_Block128* block) { - AesBlockString128 result; + AesNI_BlockString128 result; char *cursor = result.str; for (int i = 0; i < 16; ++i, cursor += 2) @@ -92,9 +92,9 @@ AesBlockString128 format_aes_block128_be(AesBlock128* block) return result; } -AesBlockString192 format_aes_block192_be(AesBlock192* block) +AesNI_BlockString192 aesni_format_block192_be(AesNI_Block192* block) { - AesBlockString192 result; + AesNI_BlockString192 result; char *cursor = result.str; for (int i = 0; i < 16; ++i, cursor += 2) @@ -106,9 +106,9 @@ AesBlockString192 format_aes_block192_be(AesBlock192* block) return result; } -AesBlockString256 format_aes_block256_be(AesBlock256* block) +AesNI_BlockString256 aesni_format_block256_be(AesNI_Block256* block) { - AesBlockString256 result; + AesNI_BlockString256 result; char *cursor = result.str; for (int i = 0; i < 16; ++i, cursor += 2) @@ -120,28 +120,28 @@ AesBlockString256 format_aes_block256_be(AesBlock256* block) return result; } -AesBlockMatrixString128 format_aes_block128_as_matrix(AesBlock128* block) +AesNI_BlockMatrixString128 aesni_format_block128_as_matrix(AesNI_Block128* block) { - return format_aes_block128_be_as_matrix(block); + return aesni_format_block128_be_as_matrix(block); } -AesBlockMatrixString192 format_aes_block192_as_matrix(AesBlock192* block) +AesNI_BlockMatrixString192 aesni_format_block192_as_matrix(AesNI_Block192* block) { - return format_aes_block192_be_as_matrix(block); + return aesni_format_block192_be_as_matrix(block); } -AesBlockMatrixString256 format_aes_block256_as_matrix(AesBlock256* block) +AesNI_BlockMatrixString256 aesni_format_block256_as_matrix(AesNI_Block256* block) { - return format_aes_block256_be_as_matrix(block); + return aesni_format_block256_be_as_matrix(block); } -AesBlockMatrixString128 format_aes_block128_be_as_matrix(AesBlock128* block) +AesNI_BlockMatrixString128 aesni_format_block128_be_as_matrix(AesNI_Block128* block) { __declspec(align(16)) unsigned char bytes[4][4]; - AesBlockMatrixString128 result; + AesNI_BlockMatrixString128 result; char* cursor = result.str; - _mm_store_si128((AesBlock128*) bytes, *block); + _mm_store_si128((AesNI_Block128*) bytes, *block); for (int i = 0; i < 4; ++i, cursor += 3) { @@ -154,14 +154,14 @@ AesBlockMatrixString128 format_aes_block128_be_as_matrix(AesBlock128* block) return result; } -AesBlockMatrixString192 format_aes_block192_be_as_matrix(AesBlock192* block) +AesNI_BlockMatrixString192 aesni_format_block192_be_as_matrix(AesNI_Block192* block) { __declspec(align(16)) unsigned char bytes[8][4]; - AesBlockMatrixString192 result; + AesNI_BlockMatrixString192 result; char* cursor = result.str; - _mm_store_si128((AesBlock128*) bytes, block->lo); - _mm_store_si128((AesBlock128*) bytes + 1, block->hi); + _mm_store_si128((AesNI_Block128*) bytes, block->lo); + _mm_store_si128((AesNI_Block128*) bytes + 1, block->hi); for (int i = 0; i < 4; ++i, cursor += 3) { @@ -174,14 +174,14 @@ AesBlockMatrixString192 format_aes_block192_be_as_matrix(AesBlock192* block) return result; } -AesBlockMatrixString256 format_aes_block256_be_as_matrix(AesBlock256* block) +AesNI_BlockMatrixString256 aesni_format_block256_be_as_matrix(AesNI_Block256* block) { __declspec(align(16)) unsigned char bytes[8][4]; - AesBlockMatrixString256 result; + AesNI_BlockMatrixString256 result; char* cursor = result.str; - _mm_store_si128((AesBlock128*) bytes, block->lo); - _mm_store_si128((AesBlock128*) bytes + 1, block->hi); + _mm_store_si128((AesNI_Block128*) bytes, block->lo); + _mm_store_si128((AesNI_Block128*) bytes + 1, block->hi); for (int i = 0; i < 4; ++i, cursor += 3) { @@ -194,139 +194,139 @@ AesBlockMatrixString256 format_aes_block256_be_as_matrix(AesBlock256* block) return result; } -void print_aes_block128(AesBlock128* block) +void aesni_print_block128(AesNI_Block128* block) { - printf("%s\n", format_aes_block128(block).str); + printf("%s\n", aesni_format_block128(block).str); } -void print_aes_block192(AesBlock192* block) +void aesni_print_block192(AesNI_Block192* block) { - printf("%s\n", format_aes_block192(block).str); + printf("%s\n", aesni_format_block192(block).str); } -void print_aes_block256(AesBlock256* block) +void aesni_print_block256(AesNI_Block256* block) { - printf("%s\n", format_aes_block256(block).str); + printf("%s\n", aesni_format_block256(block).str); } -void print_aes_block128_le(AesBlock128* block) +void aesni_print_block128_le(AesNI_Block128* block) { - printf("%s\n", format_aes_block128_le(block).str); + printf("%s\n", aesni_format_block128_le(block).str); } -void print_aes_block192_le(AesBlock192* block) +void aesni_print_block192_le(AesNI_Block192* block) { - printf("%s\n", format_aes_block192_le(block).str); + printf("%s\n", aesni_format_block192_le(block).str); } -void print_aes_block256_le(AesBlock256* block) +void aesni_print_block256_le(AesNI_Block256* block) { - printf("%s\n", format_aes_block256_le(block).str); + printf("%s\n", aesni_format_block256_le(block).str); } -void print_aes_block128_be(AesBlock128* block) +void aesni_print_block128_be(AesNI_Block128* block) { - printf("%s\n", format_aes_block128_be(block).str); + printf("%s\n", aesni_format_block128_be(block).str); } -void print_aes_block192_be(AesBlock192* block) +void aesni_print_block192_be(AesNI_Block192* block) { - printf("%s\n", format_aes_block192_be(block).str); + printf("%s\n", aesni_format_block192_be(block).str); } -void print_aes_block256_be(AesBlock256* block) +void aesni_print_block256_be(AesNI_Block256* block) { - printf("%s\n", format_aes_block256_be(block).str); + printf("%s\n", aesni_format_block256_be(block).str); } -void print_aes_block128_as_matrix(AesBlock128* block) +void aesni_print_block128_as_matrix(AesNI_Block128* block) { - printf("%s", format_aes_block128_as_matrix(block).str); + printf("%s", aesni_format_block128_as_matrix(block).str); } -void print_aes_block192_as_matrix(AesBlock192* block) +void aesni_print_block192_as_matrix(AesNI_Block192* block) { - printf("%s", format_aes_block192_as_matrix(block).str); + printf("%s", aesni_format_block192_as_matrix(block).str); } -void print_aes_block256_as_matrix(AesBlock256* block) +void aesni_print_block256_as_matrix(AesNI_Block256* block) { - printf("%s", format_aes_block256_as_matrix(block).str); + printf("%s", aesni_format_block256_as_matrix(block).str); } -void print_aes_block128_be_as_matrix(AesBlock128* block) +void aesni_print_block128_be_as_matrix(AesNI_Block128* block) { - printf("%s", format_aes_block128_be_as_matrix(block).str); + printf("%s", aesni_format_block128_be_as_matrix(block).str); } -void print_aes_block192_be_as_matrix(AesBlock192* block) +void aesni_print_block192_be_as_matrix(AesNI_Block192* block) { - printf("%s", format_aes_block192_be_as_matrix(block).str); + printf("%s", aesni_format_block192_be_as_matrix(block).str); } -void print_aes_block256_be_as_matrix(AesBlock256* block) +void aesni_print_block256_be_as_matrix(AesNI_Block256* block) { - printf("%s", format_aes_block256_be_as_matrix(block).str); + printf("%s", aesni_format_block256_be_as_matrix(block).str); } -int parse_aes_block128(AesBlock128* block, const char* src) +int aesni_parse_block128(AesNI_Block128* block, const char* src) { #if defined AESNI_LE_BLOCK_IO && AESNI_LE_BLOCK_IO - return parse_aes_block128_le(block, src); + return aesni_parse_block128_le(block, src); #else - return parse_aes_block128_be(block, src); + return aesni_parse_block128_be(block, src); #endif } -int parse_aes_block192(AesBlock192* block, const char* src) +int aesni_parse_block192(AesNI_Block192* block, const char* src) { #if defined AESNI_LE_BLOCK_IO && AESNI_LE_BLOCK_IO - return parse_aes_block192_le(block, src); + return aesni_parse_block192_le(block, src); #else - return parse_aes_block192_be(block, src); + return aesni_parse_block192_be(block, src); #endif } -int parse_aes_block256(AesBlock256* block, const char* src) +int aesni_parse_block256(AesNI_Block256* block, const char* src) { #if defined AESNI_LE_BLOCK_IO && AESNI_LE_BLOCK_IO - return parse_aes_block256_le(block, src); + return aesni_parse_block256_le(block, src); #else - return parse_aes_block256_be(block, src); + return aesni_parse_block256_be(block, src); #endif } -int parse_aes_block128_le(AesBlock128* block, const char* src) +int aesni_parse_block128_le(AesNI_Block128* block, const char* src) { int n, xs[4]; if (sscanf(src, "%8x%8x%8x%8x%n", &xs[0], &xs[1], &xs[2], &xs[3], &n) != 4 || n != strlen(src)) return 1; - *block = make_aes_block128(xs[0], xs[1], xs[2], xs[3]); + *block = aesni_make_block128(xs[0], xs[1], xs[2], xs[3]); return 0; } -int parse_aes_block192_le(AesBlock192* block, const char* src) +int aesni_parse_block192_le(AesNI_Block192* block, const char* src) { int n, xs[6]; if (sscanf(src, "%8x%8x%8x%8x%8x%8x%n", &xs[0], &xs[1], &xs[2], &xs[3], &xs[4], &xs[5], &n) != 6 || n != strlen(src)) return 1; - *block = make_aes_block192(xs[0], xs[1], xs[2], xs[3], xs[4], xs[5]); + *block = aesni_make_block192(xs[0], xs[1], xs[2], xs[3], xs[4], xs[5]); return 0; } -int parse_aes_block256_le(AesBlock256* block, const char* src) +int aesni_parse_block256_le(AesNI_Block256* block, const char* src) { int n, xs[8]; if (sscanf(src, "%8x%8x%8x%8x%8x%8x%8x%8x%n", &xs[0], &xs[1], &xs[2], &xs[3], &xs[4], &xs[5], &xs[6], &xs[7], &n) != 8 || n != strlen(src)) return 1; - *block = make_aes_block256(xs[0], xs[1], xs[2], xs[3], xs[4], xs[5], xs[6], xs[7]); + *block = aesni_make_block256(xs[0], xs[1], xs[2], xs[3], xs[4], xs[5], xs[6], xs[7]); return 0; } -int parse_aes_block128_be(AesBlock128* block, const char* src) +int aesni_parse_block128_be(AesNI_Block128* block, const char* src) { unsigned char bytes[16]; @@ -340,13 +340,13 @@ int parse_aes_block128_be(AesBlock128* block, const char* src) src += n; } - *block = _mm_loadu_si128((AesBlock128*) bytes); + *block = _mm_loadu_si128((AesNI_Block128*) bytes); return 0; } -int parse_aes_block192_be(AesBlock192* block, const char* src) +int aesni_parse_block192_be(AesNI_Block192* block, const char* src) { - AesBlock128 lo, hi; + AesNI_Block128 lo, hi; unsigned char lo_bytes[16], hi_bytes[16] = { 0 }; for (int i = 0; i < 16; ++i) @@ -359,7 +359,7 @@ int parse_aes_block192_be(AesBlock192* block, const char* src) src += n; } - lo = _mm_loadu_si128((AesBlock128*) lo_bytes); + lo = _mm_loadu_si128((AesNI_Block128*) lo_bytes); for (int i = 0; i < 8; ++i) { @@ -371,16 +371,16 @@ int parse_aes_block192_be(AesBlock192* block, const char* src) src += n; } - hi = _mm_loadu_si128((AesBlock128*) hi_bytes); + hi = _mm_loadu_si128((AesNI_Block128*) hi_bytes); block->hi = hi; block->lo = lo; return 0; } -int parse_aes_block256_be(AesBlock256* block, const char* src) +int aesni_parse_block256_be(AesNI_Block256* block, const char* src) { - AesBlock128 lo, hi; + AesNI_Block128 lo, hi; unsigned char lo_bytes[16], hi_bytes[16]; for (int i = 0; i < 16; ++i) @@ -393,7 +393,7 @@ int parse_aes_block256_be(AesBlock256* block, const char* src) src += n; } - lo = _mm_loadu_si128((AesBlock128*) lo_bytes); + lo = _mm_loadu_si128((AesNI_Block128*) lo_bytes); for (int i = 0; i < 16; ++i) { @@ -405,7 +405,7 @@ int parse_aes_block256_be(AesBlock256* block, const char* src) src += n; } - hi = _mm_loadu_si128((AesBlock128*) hi_bytes); + hi = _mm_loadu_si128((AesNI_Block128*) hi_bytes); block->hi = hi; block->lo = lo; |