Changeset 11130 in ntrip for trunk/BNC/tests/README.md


Ignore:
Timestamp:
Oct 28, 2026, 9:32:30 AM (2 weeks ago)
Author:
stuerze
Message:

Some fixes from security point of view

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/tests/README.md

    r11127 r11130  
    3131| `tools/ssr_harness.sh` | builds `tools/ssr_harness.cpp` with the SSR decoders under ASan/UBSan and runs it |
    3232| `tools/ssl_check.py` | TLS checks of the Ntrip 2s client and upload (not part of `run_tests.py`) |
     33| `tools/net_check.py` | UDP/RTP sender filter and upload status checks on loopback (not part of `run_tests.py`) |
    3334| `work/` | scratch output, not versioned |
    3435
    … …  
    100101  coefficients are C(d,o) = (100*d+o)/200 TECU and S = -C, both `.ssr` files
    101102  are identical apart from the station ID. These frames overflowed the
    102   coefficient and name arrays; the 4-layer VTEC crashed BNC.
     103  coefficient and name arrays; the 4-layer VTEC crashed BNC. Also two RTCM
     104  1033: a complete one and one whose receiver descriptor length runs beyond
     105  the message (rejected; before, stale buffer content was logged).
     106
     107* `rawfile_hostile`: raw file with hostile chunk headers from
     108  `tools/mkcrafted.py --rawfile`: the station ID `../ESCAPE0` must give
     109  `Output/.._ESCAPE0_*.ssr` (no file outside the output directory), a chunk
     110  header announcing 2000000000 bytes is rejected with a log message.
    103111
    104112## Sanitizer check of the SSR decoders
    … …  
    115123also covers the new RTCM-SSR metadata (message 60 in
    116124`crafted_limits.raw`: 7 entries with additional parameters of 40 and 0 bits,
    117 and 31 entries, which must be rejected), which `RTCM3Decoder.cpp` does not
    118 dispatch at present. Every decoded VTEC and metadata message is encoded
    119 again with the `Make*` function of the same class and decoded once more; the
    120 result must be identical. Exit code 0 only without sanitizer errors and
     125and 31 entries, which must be rejected) and satellite antenna messages
     126(BDS with mask bits in all four 16-bit quarters, GPS with shared blocks),
     127which `RTCM3Decoder.cpp` does not dispatch at present. Every decoded VTEC, metadata and antenna message is
     128encoded again with the `Make*` function of the same class and decoded once
     129more; the result must be identical, for the antenna messages also the bytes. Exit code 0 only without sanitizer errors and
    121130differences.
    122131
    … …  
    135144certificate for another host name (rejected) and a client certificate
    136145required by the caster, with and without `sslIgnoreErrors`. Takes about 3 min.
     146
     147## Network check
     148
     149```
     150tests/tools/net_check.py [--bnc PATH]
     151```
     152
     153Runs BNC live against fake servers on loopback addresses (no root needed).
     154A second sender on another address sends spoofed datagrams to BNC's port: in
     155the modes 'U' (Ntrip 2 UDP) and 'R' (RTSP/RTP) and in 'UN' with a sender
     156address in the URL, BNC's raw output must contain only the server's data;
     157'UN' with 127.0.0.1 accepts any sender, as before. An Ntrip 1 caster sending an endless
     158response header is cut off, a normal Ntrip 1 stream still works. An upload
     159answered with `HTTP/1.1 401` and a header containing `200` must be reported
     160as broken. Takes about 2 min.
    137161
    138162## Adding a replay case
Note: See TracChangeset for help on using the changeset viewer.