Implementation notes: armeabi, berry2, crypto_aead/ketjeminorv2

Computer: berry2
Microarchitecture: armeabi; Cortex-A7 (410fc075)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_aead
Primitive: ketjeminorv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1186847225 0 026153 396 816T:ARMv7Agcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
1187147225 0 024125 396 816T:ARMv7Agcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
1188587253 0 037446 384 832T:ARMv7Aclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
1199867049 0 023445 388 816T:ARMv7Agcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
1208287277 0 024905 396 816T:ARMv7Agcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
26696214865 0 044843 384 832T:generic32lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
26778611241 0 027409 388 816T:generic32lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
27620311693 0 029313 396 816T:generic32lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
28637414173 0 031041 396 816T:generic32lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
2864039633 0 025797 388 816T:generic32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
31051910309 0 027925 396 816T:generic32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
32629412905 0 029769 396 816T:generic32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
33355915225 0 033913 396 816T:generic32lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
35792613181 0 031865 396 816T:generic32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
37494813465 0 043443 384 832T:generic32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
6587428543 0 027229 396 816T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
8161923594 0 020461 396 816T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
9136583205 0 019366 388 816T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
10414413634 0 021253 396 816T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
2095574369369 564 2780381 1024 856T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
2562558348023 564 2760775 1024 856T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
4079632247884 564 2760675 1016 856T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
4134565935349 564 2748541 988 840T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107

Checksum failure

Implementation: T:compact
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
2dc4a33021c301540480716f43e636080b6952b1f02f54f2681cdc47476974b1
Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact

Test failure

Implementation: T:ARMv6M
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

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

Compiler output

Implementation: T:ARMv7M
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:254:5: error: invalid instruction, any one of the following would fix this:
KeccakP-800-u2-armv7m-le-gcc.s: ldr r4, [r1], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:254:5: note: instruction requires: thumb2
KeccakP-800-u2-armv7m-le-gcc.s: ldr r4, [r1], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:254:5: note: instruction requires: arm-mode
KeccakP-800-u2-armv7m-le-gcc.s: ldr r4, [r1], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:254:23: note: too many operands for instruction
KeccakP-800-u2-armv7m-le-gcc.s: ldr r4, [r1], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:256:5: error: invalid instruction, any one of the following would fix this:
KeccakP-800-u2-armv7m-le-gcc.s: str r2, [r0], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:256:5: note: instruction requires: arm-mode
KeccakP-800-u2-armv7m-le-gcc.s: str r2, [r0], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:256:5: note: instruction requires: thumb2
KeccakP-800-u2-armv7m-le-gcc.s: str r2, [r0], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:256:23: note: too many operands for instruction
KeccakP-800-u2-armv7m-le-gcc.s: str r2, [r0], #4
KeccakP-800-u2-armv7m-le-gcc.s: ^
KeccakP-800-u2-armv7m-le-gcc.s: KeccakP-800-u2-armv7m-le-gcc.s:264:5: error: invalid instruction, any one of the following would fix this:
KeccakP-800-u2-armv7m-le-gcc.s: ...

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

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-800-compact.c: KeccakP-800-compact.c:27:36: warning: '/*' within block comment [-Wcomment]
KeccakP-800-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-800-compact.c: ^
KeccakP-800-compact.c: 1 warning generated.

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-f.cpp: In file included from /usr/include/c++/8/vector:69,
Keccak-f.cpp: from Keccak-f.h:21,
Keccak-f.cpp: from Keccak-f.cpp:17:
Keccak-f.cpp: /usr/include/c++/8/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {long long unsigned int}; _Tp = long long unsigned int; _Alloc = std::allocator<long long unsigned int>]':
Keccak-f.cpp: /usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type 'std::vector<long long unsigned int>::iterator' {aka '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >'} changed in GCC 7.1
Keccak-f.cpp: vector<_Tp, _Alloc>::
Keccak-f.cpp: ^~~~~~~~~~~~~~~~~~~
Keccak-f.cpp: /usr/include/c++/8/bits/vector.tcc: In member function 'void KeccakF::initializeRoundConstants()':
Keccak-f.cpp: /usr/include/c++/8/bits/vector.tcc:109:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >' changed in GCC 7.1
Keccak-f.cpp: _M_realloc_insert(end(), std::forward<_Args>(__args)...);
Keccak-f.cpp: ^~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Namespace violations

Implementation: T:ARMv7A
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_AddByte T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_AddBytes T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_ExtractAndAddBytes T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_ExtractBytes T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_Initialize T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_OverwriteBytes T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_OverwriteWithZeroes T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_Permute_12rounds T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_Permute_22rounds T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_Permute_Nrounds T
KeccakP-800-u2-armv7a-le-gcc.o KeccakP800_StaticInitialize T
KeccakP-800-u2-armv7a-le-gcc.o _SAS a
KeccakP-800-u2-armv7a-le-gcc.o _ba a
KeccakP-800-u2-armv7a-le-gcc.o _be a
KeccakP-800-u2-armv7a-le-gcc.o _bi a
KeccakP-800-u2-armv7a-le-gcc.o _bo a
KeccakP-800-u2-armv7a-le-gcc.o _bu a
KeccakP-800-u2-armv7a-le-gcc.o _ga a
KeccakP-800-u2-armv7a-le-gcc.o _ge a
KeccakP-800-u2-armv7a-le-gcc.o _gi a
KeccakP-800-u2-armv7a-le-gcc.o _go a
KeccakP-800-u2-armv7a-le-gcc.o _gu a
KeccakP-800-u2-armv7a-le-gcc.o _ka a
KeccakP-800-u2-armv7a-le-gcc.o _ke a
KeccakP-800-u2-armv7a-le-gcc.o _ki a
KeccakP-800-u2-armv7a-le-gcc.o _ko a
KeccakP-800-u2-armv7a-le-gcc.o _ku a
KeccakP-800-u2-armv7a-le-gcc.o _ma a
KeccakP-800-u2-armv7a-le-gcc.o _me a
KeccakP-800-u2-armv7a-le-gcc.o _mi a
KeccakP-800-u2-armv7a-le-gcc.o _mo a
KeccakP-800-u2-armv7a-le-gcc.o _mu a
KeccakP-800-u2-armv7a-le-gcc.o _sa a
KeccakP-800-u2-armv7a-le-gcc.o _se a
KeccakP-800-u2-armv7a-le-gcc.o _si a
KeccakP-800-u2-armv7a-le-gcc.o _so a
KeccakP-800-u2-armv7a-le-gcc.o _su a
KetMn.o KetMn_FeedAssociatedDataBlocks T
KetMn.o KetMn_StateAddByte T
KetMn.o KetMn_StateExtractByte T
KetMn.o KetMn_StateOverwrite T
KetMn.o KetMn_StateTwistIndexes R
KetMn.o KetMn_Step T
KetMn.o KetMn_UnwrapBlocks T
KetMn.o KetMn_WrapBlocks T
KetjeMn.o KetjeMn_FeedAssociatedData T
KetjeMn.o KetjeMn_GetTag T
KetjeMn.o KetjeMn_Initialize T
KetjeMn.o KetjeMn_UnwrapCiphertext T
KetjeMn.o KetjeMn_WrapPlaintext T

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

Namespace violations

Implementation: T:compact
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakP-800-compact.o KeccakP800_AddByte T
KeccakP-800-compact.o KeccakP800_AddBytes T
KeccakP-800-compact.o KeccakP800_ExtractAndAddBytes T
KeccakP-800-compact.o KeccakP800_ExtractBytes T
KeccakP-800-compact.o KeccakP800_Initialize T
KeccakP-800-compact.o KeccakP800_Mod5 R
KeccakP-800-compact.o KeccakP800_OverwriteBytes T
KeccakP-800-compact.o KeccakP800_OverwriteWithZeroes T
KeccakP-800-compact.o KeccakP800_Permute_12rounds T
KeccakP-800-compact.o KeccakP800_Permute_22rounds T
KeccakP-800-compact.o KeccakP800_Permute_Nrounds T
KeccakP-800-compact.o KeccakP800_PiLane R
KeccakP-800-compact.o KeccakP800_RotationConstants R
KetMn.o KetMn_FeedAssociatedDataBlocks T
KetMn.o KetMn_StateAddByte T
KetMn.o KetMn_StateExtractByte T
KetMn.o KetMn_StateOverwrite T
KetMn.o KetMn_StateTwistIndexes R
KetMn.o KetMn_Step T
KetMn.o KetMn_UnwrapBlocks T
KetMn.o KetMn_WrapBlocks T
KetjeMn.o KetjeMn_FeedAssociatedData T
KetjeMn.o KetjeMn_GetTag T
KetjeMn.o KetjeMn_Initialize T
KetjeMn.o KetjeMn_UnwrapCiphertext T
KetjeMn.o KetjeMn_WrapPlaintext T

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

Namespace violations

Implementation: T:generic32
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-800-opt32.o KeccakF800RoundConstants R
KeccakP-800-opt32.o KeccakF800_FastLoop_Absorb T
KeccakP-800-opt32.o KeccakP800_AddByte T
KeccakP-800-opt32.o KeccakP800_AddBytes T
KeccakP-800-opt32.o KeccakP800_ExtractAndAddBytes T
KeccakP-800-opt32.o KeccakP800_ExtractBytes T
KeccakP-800-opt32.o KeccakP800_Initialize T
KeccakP-800-opt32.o KeccakP800_OverwriteBytes T
KeccakP-800-opt32.o KeccakP800_OverwriteWithZeroes T
KeccakP-800-opt32.o KeccakP800_Permute_12rounds T
KeccakP-800-opt32.o KeccakP800_Permute_22rounds T
KeccakP-800-opt32.o KeccakP800_Permute_Nrounds T
KetMn.o KetMn_FeedAssociatedDataBlocks T
KetMn.o KetMn_StateAddByte T
KetMn.o KetMn_StateExtractByte T
KetMn.o KetMn_StateOverwrite T
KetMn.o KetMn_StateTwistIndexes R
KetMn.o KetMn_Step T
KetMn.o KetMn_UnwrapBlocks T
KetMn.o KetMn_WrapBlocks T
KetjeMn.o KetjeMn_FeedAssociatedData T
KetjeMn.o KetjeMn_GetTag T
KetjeMn.o KetjeMn_Initialize T
KetjeMn.o KetjeMn_UnwrapCiphertext T
KetjeMn.o KetjeMn_WrapPlaintext T

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

Namespace violations

Implementation: T:generic32lc
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-800-opt32.o KeccakF800RoundConstants R
KeccakP-800-opt32.o KeccakF800_FastLoop_Absorb T
KeccakP-800-opt32.o KeccakP800LaneComplement R
KeccakP-800-opt32.o KeccakP800_AddByte T
KeccakP-800-opt32.o KeccakP800_AddBytes T
KeccakP-800-opt32.o KeccakP800_ExtractAndAddBytes T
KeccakP-800-opt32.o KeccakP800_ExtractBytes T
KeccakP-800-opt32.o KeccakP800_Initialize T
KeccakP-800-opt32.o KeccakP800_OverwriteBytes T
KeccakP-800-opt32.o KeccakP800_OverwriteWithZeroes T
KeccakP-800-opt32.o KeccakP800_Permute_12rounds T
KeccakP-800-opt32.o KeccakP800_Permute_22rounds T
KeccakP-800-opt32.o KeccakP800_Permute_Nrounds T
KetMn.o KetMn_FeedAssociatedDataBlocks T
KetMn.o KetMn_StateAddByte T
KetMn.o KetMn_StateExtractByte T
KetMn.o KetMn_StateOverwrite T
KetMn.o KetMn_StateTwistIndexes R
KetMn.o KetMn_Step T
KetMn.o KetMn_UnwrapBlocks T
KetMn.o KetMn_WrapBlocks T
KetjeMn.o KetjeMn_FeedAssociatedData T
KetjeMn.o KetjeMn_GetTag T
KetjeMn.o KetjeMn_Initialize T
KetjeMn.o KetjeMn_UnwrapCiphertext T
KetjeMn.o KetjeMn_WrapPlaintext T

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