Skip to content
Open
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
2478810
Add Transparent Reader Support (TRS)
sidcha Jul 11, 2026
1b6420b
trs: Accept Mode-Set without the optional config byte
sidcha Jul 14, 2026
bc6ca72
cp: Never retransmit a NAK'd transparent-card command
sidcha Jul 17, 2026
740b634
cp: Tolerate REPLY_XRD outside a TRS session
sidcha Jul 17, 2026
0488b3f
trs: Raise APDU capacity for PIV-class exchanges
sidcha Jul 17, 2026
e474886
tests: Add an emulated PIV card and end-to-end TRS scenarios
sidcha Jul 17, 2026
62ba4fc
tests: Run the TRS and BUSY suites under zero-copy too
sidcha Jul 17, 2026
9924a16
cp: Surface out-of-session XRD card sightings as events
sidcha Jul 19, 2026
34b4cc1
trs: Add background card presence scan
sidcha Jul 19, 2026
05cbc3e
trs: Restore mode 00 even when the mode-set reply is lost
sidcha Jul 19, 2026
2903063
tests: Cover the TRS presence scan end to end
sidcha Jul 21, 2026
ef9212a
trs: Cap the sighting hold at a fixed budget
sidcha Jul 29, 2026
b8b9061
trs: Ask the reader whether the card is still there
sidcha Jul 29, 2026
3e6f653
trs: Name the zero value of the card-status enum
sidcha Jul 29, 2026
0ac5124
trs: Report presence changes, not presence
sidcha Jul 29, 2026
4f9d101
trs: Report that the reader declined the card scan
sidcha Jul 29, 2026
34461e7
cp: Expose the effective max C-APDU length
sidcha Jul 29, 2026
a46a8de
cp: Admit ENTER_PIN's APDU against the packet size
sidcha Jul 29, 2026
b973e82
cp: Warn about a missing smart-card reader when capabilities arrive
sidcha Jul 29, 2026
088cacb
pd: Restore transparent mode off when the CP link restarts
sidcha Jul 29, 2026
c8df7eb
trs: Raise the presence-scan dwell defaults
sidcha Jul 29, 2026
7a44e12
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
7 changes: 6 additions & 1 deletion .github/workflows/reusable-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,17 @@ jobs:

Test:
runs-on: ubuntu-latest
strategy:
matrix:
# TRS is off by default; run the suite both ways so the transparent
# reader sources and their tests are built and exercised too.
trs: [ OFF, ON ]
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: Configure
run: cmake -DCMAKE_BUILD_TYPE=Debug .
run: cmake -DCMAKE_BUILD_TYPE=Debug -DOPT_BUILD_OSDP_TRS=${{ matrix.trs }} .
- name: Run unit-tests
run: cmake --build . --parallel 7 --target check

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