Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
0730ae5
Add Transparent Reader Support (TRS)
sidcha Jul 11, 2026
7f56f55
trs: Accept Mode-Set without the optional config byte
sidcha Jul 14, 2026
5255396
cp: Never retransmit a NAK'd transparent-card command
sidcha Jul 17, 2026
e473c4c
cp: Tolerate REPLY_XRD outside a TRS session
sidcha Jul 17, 2026
f83637f
trs: Raise APDU capacity for PIV-class exchanges
sidcha Jul 17, 2026
ceddff5
tests: Add an emulated PIV card and end-to-end TRS scenarios
sidcha Jul 17, 2026
2f0d9a2
tests: Run the TRS and BUSY suites under zero-copy too
sidcha Jul 17, 2026
f90ce50
cp: Surface out-of-session XRD card sightings as events
sidcha Jul 19, 2026
324941e
trs: Add background card presence scan
sidcha Jul 19, 2026
e45c47c
trs: Restore mode 00 even when the mode-set reply is lost
sidcha Jul 19, 2026
aefcf38
tests: Cover the TRS presence scan end to end
sidcha Jul 21, 2026
865203e
trs: Cap the sighting hold at a fixed budget
sidcha Jul 29, 2026
7e073e3
trs: Ask the reader whether the card is still there
sidcha Jul 29, 2026
748bb6e
trs: Name the zero value of the card-status enum
sidcha Jul 29, 2026
f6d1752
trs: Report presence changes, not presence
sidcha Jul 29, 2026
608164c
trs: Report that the reader declined the card scan
sidcha Jul 29, 2026
7465e92
cp: Expose the effective max C-APDU length
sidcha Jul 29, 2026
28a5c9a
cp: Admit ENTER_PIN's APDU against the packet size
sidcha Jul 29, 2026
47887b6
cp: Warn about a missing smart-card reader when capabilities arrive
sidcha Jul 29, 2026
f3da9b1
pd: Restore transparent mode off when the CP link restarts
sidcha Jul 29, 2026
d8b72d6
trs: Raise the presence-scan dwell defaults
sidcha Jul 29, 2026
b49d979
tests: Cover the card-scan presence probe
sidcha Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/reusable-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,19 @@ jobs:
- name: Run unit-tests
run: cmake --build . --parallel 7 --target check

# TRS is off in the default config, so Test above does not reach the
# transparent reader sources or their tests.
TestTRS:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: Configure
run: cmake -DCMAKE_BUILD_TYPE=Debug -DOPT_BUILD_OSDP_TRS=ON .
- name: Run unit-tests
run: cmake --build . --parallel 7 --target check

CheckPatch:
runs-on: ubuntu-latest
steps:
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ option(OPT_OSDP_STATIC "Build without dynamic memory allocation" OFF)
option(OPT_OSDP_LIB_ONLY "Only build the library" OFF)
option(OPT_BUILD_BARE_METAL "Build library for bare metal targets" OFF)
option(OPT_USE_32BIT_TICK_T "Use uint32_t tick_t on bare-metal targets" OFF)
option(OPT_BUILD_OSDP_TRS "Enable Transparent Reader Support" OFF)
set(OPT_OSDP_CRYPTO_BACKEND "auto" CACHE STRING
"Crypto backend selection: auto, openssl, mbedtls, or tinyaes")
set_property(CACHE OPT_OSDP_CRYPTO_BACKEND PROPERTY STRINGS
Expand Down
10 changes: 10 additions & 0 deletions configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ usage() {
--lib-only Only build the library
--bare-metal Enable bare-metal build paths
--use-32bit-tick-t Use uint32_t tick_t (requires --bare-metal)
--enable-trs Enable Transparent Reader Support (TRS)
--cross-compile PREFIX Use to pass a compiler prefix
--prefix PATH Install path prefix (default: /usr)
--build-dir Build output directory (default: ./build)
Expand Down Expand Up @@ -57,6 +58,7 @@ while [ $# -gt 0 ]; do
--lib-only) LIB_ONLY=1;;
--bare-metal) BARE_METAL=1;;
--use-32bit-tick-t) USE_32BIT_TICK_T=1;;
--enable-trs) ENABLE_TRS=1;;
--build-dir) BUILD_DIR=$2; shift;;
-d|--debug) DEBUG=1;;
-f|--force) FORCE=1;;
Expand Down Expand Up @@ -133,6 +135,10 @@ if [[ ! -z "${USE_32BIT_TICK_T}" ]]; then
CCFLAGS+=" -DUSE_32BIT_TICK_T"
fi

if [[ ! -z "${ENABLE_TRS}" ]]; then
CCFLAGS+=" -DOPT_BUILD_OSDP_TRS"
fi

## Repo meta data
echo "Extracting source code meta information"
PROJECT_VERSION=$(perl -ne 'print if s/^project\(libosdp VERSION ([0-9.]+)\)$/\1/' CMakeLists.txt)
Expand Down Expand Up @@ -239,6 +245,10 @@ fi

TARGETS="cp_app pd_app"

if [[ ! -z "${ENABLE_TRS}" ]]; then
LIBOSDP_SOURCES+=" src/osdp_trs.c"
fi

# Suite source files come from the shared manifest so the lean and CMake
# builds never drift; see tests/unit-tests/test-sources.list.
TEST_SOURCES=""
Expand Down
Loading