Bugfix/secure read range codec (#957)

* Secured ReadRange service codecs. Added ReadRange unit testing. Secured ReadRange-ACK handler to enable APDU size checking.
This commit is contained in:
Steve Karg
2025-04-03 09:14:08 -05:00
committed by GitHub
parent 921264b2c2
commit 31af2507fb
13 changed files with 828 additions and 440 deletions
+78 -67
View File
@@ -12,70 +12,81 @@ jobs:
job_bsc_tests_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create Build Environment
run: |
sudo apt-get update -qq
sudo apt-get install -qq libconfig-dev
sudo apt-get install -qq libcap-dev
sudo apt-get install -qq libssl-dev
sudo apt-get install -qq libuv1-dev
git clone --branch v4.3-stable https://github.com/warmcat/libwebsockets.git
bash -c 'cd libwebsockets;mkdir build;cd build;cmake .. -DLWS_WITH_LIBUV=ON -DLWS_WITH_MINIMAL_EXAMPLES=0 -DLWS_MAX_SMP=32;make'
sudo bash -c 'cd libwebsockets;cd build;make install'
- name: Build and run bsc_event test
run: |
cd ./test/ports/linux/bsc_event
mkdir build
cd build
cmake ..
make
./test_bsc_event
- name: Build and run bvlc-sc test
run: |
cd ./test/bacnet/datalink/bvlc-sc
mkdir build
cd build
cmake ..
make
./test_bvlc-sc
- name: Build and run websockets test
run: |
cd ./test/bacnet/datalink/websockets
mkdir build
cd build
cmake ..
make
./test_websockets
- name: Build and run bsc-socket test
run: |
cd ./test/bacnet/datalink/bsc-socket
mkdir build
cd build
cmake ..
make
./test_bsc-socket
- name: Build and run hub-sc test
run: |
cd ./test/bacnet/datalink/hub-sc
mkdir build
cd build
cmake ..
make
./test_hub-sc
- name: Build and run bsc-node test
run: |
cd ./test/bacnet/datalink/bsc-node
mkdir build
cd build
cmake ..
make
./test_bsc-node
- name: Build and run bsc-datalink test
run: |
cd ./test/bacnet/datalink/bsc-datalink
mkdir build
cd build
cmake ..
make
./test_bsc-datalink
- name: Checkout BACnet Stack
uses: actions/checkout@v4
- name: Checkout libwebsockets
uses: actions/checkout@v4
with:
repository: warmcat/libwebsockets
ref: v4.3-stable
path: libwebsockets
- name: Create Build Environment
run: |
sudo apt-get update -qq
sudo apt-get install -qq libconfig-dev
sudo apt-get install -qq libcap-dev
sudo apt-get install -qq libssl-dev
sudo apt-get install -qq libuv1-dev
bash -c 'cd libwebsockets;mkdir build;cd build;cmake .. -DLWS_WITH_LIBUV=ON -DLWS_WITH_MINIMAL_EXAMPLES=0 -DLWS_MAX_SMP=32;make'
sudo bash -c 'cd libwebsockets;cd build;make install'
- name: Build and run bsc_event test
run: |
pwd
cd ./test/ports/linux/bsc_event
mkdir build
cd build
cmake ..
make
./test_bsc_event
- name: Build and run bvlc-sc test
run: |
pwd
cd ./test/bacnet/datalink/bvlc-sc
mkdir build
cd build
cmake ..
make
./test_bvlc-sc
- name: Build and run websockets test
run: |
pwd
cd ./test/bacnet/datalink/websockets
mkdir build
cd build
cmake ..
make
./test_websockets
- name: Build and run bsc-socket test
run: |
pwd
cd ./test/bacnet/datalink/bsc-socket
mkdir build
cd build
cmake ..
make
./test_bsc-socket
- name: Build and run hub-sc test
run: |
pwd
cd ./test/bacnet/datalink/hub-sc
mkdir build
cd build
cmake ..
make
./test_hub-sc
- name: Build and run bsc-node test
run: |
cd ./test/bacnet/datalink/bsc-node
mkdir build
cd build
cmake ..
make
./test_bsc-node
- name: Build and run bsc-datalink test
run: |
cd ./test/bacnet/datalink/bsc-datalink
mkdir build
cd build
cmake ..
make
./test_bsc-datalink
+3 -8
View File
@@ -1,12 +1,7 @@
name: BACNet/SC windows tests
on:
push:
branches:
- master
pull_request:
branches:
- '*'
workflow_dispatch:
jobs:
job_bsc_tests_windows:
@@ -35,7 +30,7 @@ jobs:
Copy-Item -Path .\pkg\lib -Destination c:\vcpkg\installed\x64-windows-custom -Recurse -Force
Copy-Item -Path .\pkg\share -Destination c:\vcpkg\installed\x64-windows-custom -Recurse -Force
cd ../../
- name: Setup MSBuild
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
with:
msbuild-architecture: x64
@@ -63,7 +58,7 @@ jobs:
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-custom
msbuild build/test_bsc-socket.sln /Property:Configuration=Release
./build/Release/test_bsc-socket.exe
# (Link target) ->
# (Link target) ->
# bacreal.obj : error LNK2019: unresolved external symbol big_endian referenced in function decode_double [D:\a\bacnet-stack-upstream\bacnet-stack-upstream\test\bacnet\datalink\hub-sc\build\test_hub-sc.vcxproj]
# - name: Build and run hub-sc test
# run: |
+20 -4
View File
@@ -80,7 +80,14 @@ jobs:
bacnet-sc-hub:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout BACnet Stack
uses: actions/checkout@v4
- name: Checkout libwebsockets
uses: actions/checkout@v4
with:
repository: warmcat/libwebsockets
ref: v4.3-stable
path: libwebsockets
- name: Create BACnet/SC Build Environment
run: |
sudo apt-get update -qq
@@ -88,19 +95,27 @@ jobs:
sudo apt-get install -qq libcap-dev
sudo apt-get install -qq libssl-dev
sudo apt-get install -qq libuv1-dev
git clone --branch v4.3-stable https://github.com/warmcat/libwebsockets.git
bash -c 'cd libwebsockets;mkdir build;cd build;cmake .. -DLWS_WITH_LIBUV=ON -DLWS_WITH_MINIMAL_EXAMPLES=0 -DLWS_MAX_SMP=32;make'
sudo bash -c 'cd libwebsockets;cd build;make install'
- name: Build BACnet/SC Hub Demo
run: |
gcc --version
pwd
ls -al
make clean
make sc-hub
router:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout BACnet Stack
uses: actions/checkout@v4
- name: Checkout libwebsockets
uses: actions/checkout@v4
with:
repository: warmcat/libwebsockets
ref: v4.3-stable
path: libwebsockets
- name: Create Build Environment
run: |
sudo apt-get update -qq
@@ -108,12 +123,13 @@ jobs:
sudo apt-get install -qq libcap-dev
sudo apt-get install -qq libssl-dev
sudo apt-get install -qq libuv1-dev
git clone --branch v4.3-stable https://github.com/warmcat/libwebsockets.git
bash -c 'cd libwebsockets;mkdir build;cd build;cmake .. -DLWS_WITH_LIBUV=ON -DLWS_WITH_MINIMAL_EXAMPLES=0 -DLWS_MAX_SMP=32;make'
sudo bash -c 'cd libwebsockets;cd build;make install'
- name: Build Router Demo
run: |
gcc --version
pwd
ls -al
make clean
make LEGACY=true router
+23 -3
View File
@@ -85,14 +85,34 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Create Build Environment
run: |
sudo apt-get update -qq
sudo apt-get install -qq lcov
- name: Run Unit Test with Code Coverage
run: make test
unittest-secure-connect:
runs-on: ubuntu-latest
steps:
- name: Checkout BACnet Stack
uses: actions/checkout@v4
- name: Checkout libwebsockets
uses: actions/checkout@v4
with:
repository: warmcat/libwebsockets
ref: v4.3-stable
path: libwebsockets
- name: Create BACnet/SC Build Environment
run: |
sudo apt-get update -qq
sudo apt-get install -qq lcov
sudo apt-get install -qq libssl-dev
sudo apt-get install -qq libcap-dev
sudo apt-get install -qq libuv1-dev
git clone --branch v4.3-stable https://github.com/warmcat/libwebsockets.git
bash -c 'cd libwebsockets;mkdir build;cd build;cmake .. -DLWS_WITH_LIBUV=ON -DLWS_WITH_MINIMAL_EXAMPLES=0 -DLWS_MAX_SMP=32;make'
sudo bash -c 'cd libwebsockets;cd build;make install'
- name: Run Unit Test with Code Coverage
run: make test
- name: Run BACnet/SC Unit Test with Code Coverage
run: |
pwd
ls -al
echo "make test-bsc"