docs(validation): scadabridge-sdk-compatibility README — #121 fixed, Sign leg, trust controls, ACL switch
v2-ci / unit-tests (push) Waiting to run
v2-ci / unit-tests (push) Waiting to run
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -24,9 +24,17 @@ python3 scripts/validation/scadabridge-sdk-compatibility/run.py \
|
||||
--results /absolute/fresh-consumer-evidence
|
||||
```
|
||||
|
||||
The helper runs four separate consumer/server pairs: each application version
|
||||
with None and SignAndEncrypt. None is enabled only in its own test fixture;
|
||||
the ordinary compatibility host remains strict SignAndEncrypt. The task key is
|
||||
The helper runs each application version with None, Sign and SignAndEncrypt,
|
||||
plus two trust negative controls per secure profile (server does not trust the
|
||||
client, client does not trust the server) that must fail closed. None and Sign
|
||||
are enabled only in their own test fixtures (`OPCUA_MATRIX_SERVER_SECURITY=none|sign`);
|
||||
the ordinary compatibility host remains strict SignAndEncrypt. Before each secure
|
||||
leg the probe's `prepare` step provisions the consumer identity through
|
||||
ScadaBridge's own certificate code and exports only its public certificate, which
|
||||
the runner places in the server's trusted store before the server starts.
|
||||
`OPCUA_MATRIX_ACL=off` disables the server's node-ACL check; with it on, masters
|
||||
after lmxopcua#808 deny the three UNS cases because this fixture creates the `Eq`
|
||||
folder without a deployed generation (fixture limitation, see lmxopcua#782). The task key is
|
||||
generated per process pair, issuer/trusted/rejected stores are task-local, and
|
||||
server public certificates are explicitly copied. Autoaccept remains false.
|
||||
Never commit an entire output directory: it contains the fixture's private PKI.
|
||||
@@ -37,10 +45,10 @@ and timestamps, alarm filter/ConditionRefresh and disconnect/reconnect. History
|
||||
and Part 9 acknowledgment are not exposed by the inspected consumer interfaces;
|
||||
the parent Shared/CLI matrix covers those application services instead.
|
||||
|
||||
ScadaBridge#121 is a reproduced preexisting limitation: SignAndEncrypt fails
|
||||
against **both** original and candidate servers because the consumer does not
|
||||
configure an application certificate. A matching baseline failure is evidence,
|
||||
not a secure-channel pass. The runner retains the nonzero result and each actual
|
||||
failure; it does not loosen trust or change expected results to return success.
|
||||
The current None subset and the missing secure identity must be reported
|
||||
separately. No ScadaBridge production source or user PKI is modified.
|
||||
ScadaBridge#121 (consumer never configured an application certificate) is
|
||||
fixed in ScadaBridge `ff835447`/`36c64a6b`. Re-run 2026-11-12 with ScadaBridge
|
||||
`424db155`: None, Sign and SignAndEncrypt 9/9 against the SDK 1.5.378 baseline
|
||||
(`83ed880e`), the SDK 2.0.1 candidate (`ebdc5892`) and master `182fb353` with
|
||||
ACL off; all trust negative controls failed closed. The runner retains the
|
||||
nonzero result and each actual failure; it does not loosen trust or change
|
||||
expected results to return success. No ScadaBridge production source or user PKI is modified.
|
||||
|
||||
Reference in New Issue
Block a user