mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-09 23:20:54 +02:00
a342eba578
Support AES-XTS AVX512/VAES Support AES-GCM AVX512/VAES Support AES-ECB/CBC/CTR AVX512/VAES/AVX1/AES-NI. Remove code from aes_asm.S/aes_asm.asm Add CPU defines for AVX512 and VAES Updated ASM files with new defines for AVX512. Added support for printing out the new CPU Id flags in benchmark. Added new files to Windows projects. aes.c: Supports ECB/CBC/CTR in assembly. Supports calling AVX512/VAES assembly.
72 lines
2.5 KiB
YAML
72 lines
2.5 KiB
YAML
name: WOLFSSL_API_PREFIX_MAP
|
|
|
|
# START OF COMMON SECTION
|
|
on:
|
|
push:
|
|
branches: [ 'release/**' ]
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
branches: [ '*' ]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
# END OF COMMON SECTION
|
|
|
|
jobs:
|
|
make_and_analyze:
|
|
strategy:
|
|
matrix:
|
|
config: [
|
|
'--enable-all --enable-mlkem --enable-mldsa --enable-xmss --enable-lms --enable-acert --with-sys-crypto-policy CFLAGS=-DWOLFSSL_API_PREFIX_MAP'
|
|
]
|
|
name: make and analyze
|
|
if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }}
|
|
runs-on: ubuntu-24.04
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 6
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
name: Checkout wolfSSL
|
|
|
|
- name: Test --enable-opensslcoexist and TEST_OPENSSL_COEXIST
|
|
run: |
|
|
./autogen.sh || $(exit 2)
|
|
./configure ${{ matrix.config }} || $(exit 3)
|
|
make -j 4 || $(exit 4)
|
|
# ignore properly prefixed symbols, and symbols associated with asm implementations (all internal) regardless of prefix:
|
|
readelf --symbols --wide src/.libs/libwolfssl.so | \
|
|
awk '
|
|
BEGIN {
|
|
total_public_symbols = 0;
|
|
unprefixed_public_symbols = 0;
|
|
}
|
|
{
|
|
if (($5 == "GLOBAL") && ($6 != "HIDDEN") && ($7 ~ /^[0-9]+$/)) {
|
|
++total_public_symbols;
|
|
}
|
|
}
|
|
{
|
|
if (($7 !~ /^[0-9]+$/) ||
|
|
($8 ~ /^(wc_|wolf|WOLF|__pfx|fe_|sp_[a-zA-Z090-0_]*[0-9])/) ||
|
|
($8 ~ /(_avx[12]|_AVX[12]|_sse[12]|_SSE[12]|_aesni|_AESNI|_vaes|_VAES|_avx512|_AVX512|_bmi2|_x64$)/))
|
|
{
|
|
next;
|
|
}
|
|
}
|
|
{
|
|
if (($4 == "FUNC") && ($5 == "GLOBAL") && ($6 == "DEFAULT")) {
|
|
++unprefixed_public_symbols;
|
|
print;
|
|
}
|
|
}
|
|
END {
|
|
if (unprefixed_public_symbols) {
|
|
print unprefixed_public_symbols " unprefixed public symbols found, of " total_public_symbols " total." >"/dev/stderr";
|
|
exit(1);
|
|
} else {
|
|
print total_public_symbols " public symbols found in libwolfssl, all OK.";
|
|
exit(0);
|
|
}
|
|
}' || $(exit 5)
|