CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-22.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-22.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-24.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-24.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-22.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-22.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-24.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, clang, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-24.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-22.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-22.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-24.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=Off], ubuntu-24.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-22.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-22.04-arm) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-24.04) (push) Has been cancelled
CI / CMake (-DCMAKE_BUILD_TYPE=Release, gcc, -DLTC_CFLAGS="-DLTC_NO_ASM", map[CMAKEOPTIONS:-DBUILD_SHARED_LIBS=On], ubuntu-24.04-arm) (push) Has been cancelled
Gemini proposed this to convert
```
import json
import requests
def to_c_hex(hex_str):
if not hex_str: return "NULL"
bytes_list = [f"0x{hex_str[i:i+2]}" for i in range(0, len(hex_str), 2)]
return "{" + ",".join(bytes_list) + "}"
url = "https://raw.githubusercontent.com/C2SP/wycheproof/main/testvectors_v1/aes_siv_cmac_test.json"
data = requests.get(url).json()
print("#include <stdint.h>\n#include <stddef.h>\n")
print("typedef struct { int tcId; const char* comment; uint8_t key[64]; size_t keyLen; const uint8_t* aad; size_t aadLen; const uint8_t* msg; size_t msgLen; const uint8_t* ct; size_t ctLen; const char* result; } aes_siv_test_case;\n")
for group in data['testGroups']:
for test in group['tests']:
tid = test['tcId']
if test['aad']: print(f"static const uint8_t aad_{tid}[] = {to_c_hex(test['aad'])};")
if test['msg']: print(f"static const uint8_t msg_{tid}[] = {to_c_hex(test['msg'])};")
if test['ct']: print(f"static const uint8_t ct_{tid}[] = {to_c_hex(test['ct'])};")
print("\nstatic const aes_siv_test_case aes_siv_tests[] = {")
for group in data['testGroups']:
for test in group['tests']:
tid = test['tcId']
key_hex = to_c_hex(test['key'])
aad_ptr = f"aad_{tid}" if test['aad'] else "NULL"
msg_ptr = f"msg_{tid}" if test['msg'] else "NULL"
ct_ptr = f"ct_{tid}" if test['ct'] else "NULL"
print(f" {{ {tid}, \"{test['comment']}\", {key_hex}, {len(test['key'])//2}, {aad_ptr}, {len(test['aad'])//2}, {msg_ptr}, {len(test['msg'])//2}, {ct_ptr}, {len(test['ct'])//2}, \"{test['result']}\" }},")
print("};")
```
I manually modified the result type to be an enum.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
* add `ltc` wrapper script for installed demos
* rework demos/CMakeLists.txt and add some more bells and whistles
* prefix installed demos with `ltc-`
Currently this makes the standard makefiles and CMake results diverge, but
we can fix that later if required.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
SM4 (formerly SMS4)[1] is a block cipher used in the Chinese
National Standard for Wireless LAN WAPI (Wired Authentication
and Privacy Infrastructure).
--from wikipedia
`aes_desc` and `aes_enc_desc` now do auto-detection of the best suitable
AES implementation for the platform.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>