Implementation notes: amd64, hydra8, crypto_aead/aes256cpfbv1

Computer: hydra8
Microarchitecture: amd64; IB+AES (306a9)
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20230530
Operation: crypto_aead
Primitive: aes256cpfbv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2373815598 0 038477 804 1088T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
2620316729 0 037952 860 1024T:aesniclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
2642916626 0 039800 860 1024T:aesniclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
350429514 0 031149 804 1088T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
359899020 0 030116 796 1088T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
360538908 0 028474 852 1024T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
370479658 0 029544 860 1024T:aesniclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
916374093 0 027581 804 1088T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
974022460 0 025032 860 1024T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
978842515 0 026232 860 1024T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
978872515 0 024288 860 1024T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
1018071880 0 022026 852 1024T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
1262913050 0 025293 804 1088T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
1263002101 0 022552 860 1024T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
1327642225 0 023964 796 1088T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
14903616449 0 035800 780 1056T:gladmangcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
15168717404 0 038973 804 1088T:gladmangcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
15432316544 0 039656 860 1024T:gladmanclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
15538716571 0 038536 860 1024T:gladmanclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
15688016544 0 037712 860 1024T:gladmanclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
15835718565 0 041357 804 1088T:gladmangcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
15842416335 0 036208 860 1024T:gladmanclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
16526416544 0 036082 852 1024T:gladmanclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
17572217465 0 038468 796 1088T:gladmangcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
1766101891 0 021944 780 1056T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
18342320999 0 043893 804 1088T:aesrefgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
19044616840 0 037956 796 1088T:aesrefgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
19091017360 0 039368 860 1024T:aesrefclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
19107317346 0 040504 860 1024T:aesrefclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
19178817014 0 038677 804 1088T:aesrefgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530
19185715810 0 037024 860 1024T:aesrefclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
19256415329 0 034914 852 1024T:aesrefclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
19930215533 0 035424 860 1024T:aesrefclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023053020230530
25972516080 0 035544 780 1056T:aesrefgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023053020230530

Compiler output

Implementation: T:aesni
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
cpfbkey.c: cpfbkey.c:50:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
cpfbkey.c: temp2 = _mm_aeskeygenassist_si128 (temp1,0x1);
cpfbkey.c: ^
cpfbkey.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
cpfbkey.c: ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
cpfbkey.c: ^
cpfbkey.c: cpfbkey.c:52:6: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_128_Key_Expansion_and_encryption' that is compiled without support for 'aes'
cpfbkey.c: k1 = _mm_aesenc_si128(k1,temp1);
cpfbkey.c: ^
cpfbkey.c: cpfbkey.c:53:6: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_128_Key_Expansion_and_encryption' that is compiled without support for 'aes'
cpfbkey.c: k2 = _mm_aesenc_si128(k2,temp1);
cpfbkey.c: ^
cpfbkey.c: cpfbkey.c:54:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
cpfbkey.c: temp2 = _mm_aeskeygenassist_si128 (temp1,0x2);
cpfbkey.c: ^
cpfbkey.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
cpfbkey.c: ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
cpfbkey.c: ^
cpfbkey.c: cpfbkey.c:56:6: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_128_Key_Expansion_and_encryption' that is compiled without support for 'aes'
cpfbkey.c: k1 = _mm_aesenc_si128(k1,temp1);
cpfbkey.c: ^
cpfbkey.c: cpfbkey.c:57:6: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_128_Key_Expansion_and_encryption' that is compiled without support for 'aes'
cpfbkey.c: k2 = _mm_aesenc_si128(k2,temp1);
cpfbkey.c: ^
cpfbkey.c: cpfbkey.c:58:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
cpfbkey.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni

Compiler output

Implementation: T:aesni
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_aes256cpfbv1.a(encrypt.o): in function `crypto_aead_aes256cpfbv1_aesni_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `safe_store_partial'
try.c: /usr/bin/ld: libcrypto_aead_aes256cpfbv1.a(cpfbkey.o): in function `AES_128_Key_Expansion_and_encryption':
try.c: cpfbkey.c:(.text+0x...): undefined reference to `key_expansion_128'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `key_expansion_128'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `key_expansion_128'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `key_expansion_128'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `key_expansion_128'
try.c: /usr/bin/ld: libcrypto_aead_aes256cpfbv1.a(cpfbkey.o):cpfbkey.c:(.text+0x...): more undefined references to `key_expansion_128' follow
try.c: /usr/bin/ld: libcrypto_aead_aes256cpfbv1.a(cpfbkey.o): in function `AES_256_Key_Expansion':
try.c: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_2'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_2'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_2'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_2'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_2'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_2'
try.c: /usr/bin/ld: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: /usr/bin/ld: libcrypto_aead_aes256cpfbv1.a(cpfbkey.o): in function `AES_256_Key_Expansion_2':
try.c: cpfbkey.c:(.text+0x...): undefined reference to `KEY_256_ASSIST_1'
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aesni

Compiler output

Implementation: T:evp
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:170:89: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: static void gen_kappa(unsigned char* nonce, unsigned char* kappa, EVP_CIPHER_CTX ctx_key[1]){
encrypt.c: ^
encrypt.c: /usr/include/openssl/types.h:102:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:188:25: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: EVP_CIPHER_CTX ctx_k[1];
encrypt.c: ^
encrypt.c: /usr/include/openssl/types.h:102:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:189:31: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: EVP_CIPHER_CTX ctx_kappa_0[1];
encrypt.c: ^
encrypt.c: /usr/include/openssl/types.h:102:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:190:31: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: EVP_CIPHER_CTX ctx_kappa_m[1];
encrypt.c: ^
encrypt.c: /usr/include/openssl/types.h:102:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:330:25: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:evp
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:evp
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:evp
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:evp
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:evp

Compiler output

Implementation: T:evp
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: encrypt.c:170:82: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: 170 | static void gen_kappa(unsigned char* nonce, unsigned char* kappa, EVP_CIPHER_CTX ctx_key[1]){
encrypt.c: | ^~~~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_aes256cpfbv1_evp_timingleaks_encrypt':
encrypt.c: encrypt.c:188:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: 188 | EVP_CIPHER_CTX ctx_k[1];
encrypt.c: | ^~~~~
encrypt.c: encrypt.c:189:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: 189 | EVP_CIPHER_CTX ctx_kappa_0[1];
encrypt.c: | ^~~~~~~~~~~
encrypt.c: encrypt.c:190:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: 190 | EVP_CIPHER_CTX ctx_kappa_m[1];
encrypt.c: | ^~~~~~~~~~~
encrypt.c: encrypt.c:204:31: error: type of formal parameter 3 is incomplete
encrypt.c: 204 | gen_kappa(nonce, kappa_0, ctx_k);
encrypt.c: | ^~~~~
encrypt.c: encrypt.c:265:35: error: type of formal parameter 3 is incomplete
encrypt.c: 265 | gen_kappa(nonce, kappa_m, ctx_k);
encrypt.c: | ^~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_aes256cpfbv1_evp_timingleaks_decrypt':
encrypt.c: encrypt.c:330:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: 330 | EVP_CIPHER_CTX ctx_k[1];
encrypt.c: | ^~~~~
encrypt.c: encrypt.c:331:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: 331 | EVP_CIPHER_CTX ctx_kappa_0[1];
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:evp
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:evp
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:evp
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:evp