<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BobinkCOpcUa/tests, branch master</title>
<subtitle>OPC UA applications in C</subtitle>
<id>http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/atom?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/'/>
<updated>2026-02-18T23:26:34Z</updated>
<entry>
<title>Remove redundant FindServers step from cert_bootstrap test</title>
<updated>2026-02-18T23:26:34Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T23:26:34Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=3ba285caf93d0c44815dd507a2b5de2ac40222c3'/>
<id>urn:sha1:3ba285caf93d0c44815dd507a2b5de2ac40222c3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename client executable to bobink_opcua_client</title>
<updated>2026-02-18T23:14:25Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T23:14:25Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=a9ebc3b434b7979163fdf83984b32f1e513dacb8'/>
<id>urn:sha1:a9ebc3b434b7979163fdf83984b32f1e513dacb8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor: reduce duplication and tighten helpers</title>
<updated>2026-02-18T23:01:18Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T23:01:18Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=f3648fefe040152bb1676d651ebf7d836cb8ac9e'/>
<id>urn:sha1:f3648fefe040152bb1676d651ebf7d836cb8ac9e</id>
<content type='text'>
- Remove redundant applicationUri log in print_application_description
- Use UA_SECURITY_POLICY_NONE_URI macro instead of hardcoded string
- Extract _s_register_with_lds / _s_deregister_from_lds helpers
- Rename signal handler param 'sign' to 'sig' for consistency
- Add INT_MIN/INT_MAX bounds check to config_require_int
- Extract shared test helpers into tests/test_helpers.sh
</content>
</entry>
<entry>
<title>Rename CMake project and executable targets</title>
<updated>2026-02-18T22:36:35Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T22:36:35Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=52727a053c45f8d6c634d405742c3289a0be1f78'/>
<id>urn:sha1:52727a053c45f8d6c634d405742c3289a0be1f78</id>
<content type='text'>
Project: OpcUaC → BobinkOpcUaC
Targets: ServerLDS → bobink_opcua_discovery_server,
         ServerRegister → bobink_opcua_server,
         Client → client
</content>
</entry>
<entry>
<title>Add TOFU certificate bootstrap integration test</title>
<updated>2026-02-18T22:09:43Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T22:09:43Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=8bfd0dc6b44438ba6c5d2844ce21fbc2adfe3f1a'/>
<id>urn:sha1:8bfd0dc6b44438ba6c5d2844ce21fbc2adfe3f1a</id>
<content type='text'>
Make download-cert always use an unsecure client so it can connect to
a server's None discovery endpoint without the server certificate in
the trust store.  Add a cert_bootstrap test that verifies the full
Trust On First Use workflow: find-servers succeeds, get-endpoints fails
(untrusted cert), download-cert retrieves the certificate via None,
then get-endpoints and read-time both succeed.
</content>
</entry>
<entry>
<title>Move certificates into per-test directories</title>
<updated>2026-02-18T21:32:08Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T21:30:06Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=5f5e172cd2392952162398c85b07e6f6b7e69398'/>
<id>urn:sha1:5f5e172cd2392952162398c85b07e6f6b7e69398</id>
<content type='text'>
Each secure test now has its own certs/ subfolder with per-identity
subdirectories and a single shared trust store.  Configs reference
paths relative to the project root (e.g. tests/secure_anonymous/
certs/ServerLDS/cert.der).  Cert generation logic removed from test
scripts since certs are now pre-generated and committed.
</content>
</entry>
<entry>
<title>Add download-cert client operation with integration test</title>
<updated>2026-02-18T21:17:30Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T21:17:30Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=77e70beff33d89f30082f3e5d513cd657fa529ea'/>
<id>urn:sha1:77e70beff33d89f30082f3e5d513cd657fa529ea</id>
<content type='text'>
Retrieves the server's DER certificate via GetEndpoints and
writes it to a local file.  The test starts a secure ServerLDS,
downloads its certificate, and verifies it matches the original.
</content>
</entry>
<entry>
<title>Remove redundant config/ dir, use Aes256_Sha256_RsaPss everywhere</title>
<updated>2026-02-18T21:07:07Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T21:07:07Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=95f40458a9dd927fba35624564b64b5f973dd9fe'/>
<id>urn:sha1:95f40458a9dd927fba35624564b64b5f973dd9fe</id>
<content type='text'>
The config/ example files duplicated the test configs. Remove them and
point the Running docs at tests/secure_user/ instead.  Switch the
security policy from Basic256Sha256 to Aes256_Sha256_RsaPss in all
test configs, CMakeLists.txt, and readme.md.
</content>
</entry>
<entry>
<title>Add X509 certificate identity token authentication</title>
<updated>2026-02-18T20:44:17Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T20:44:17Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=deaabd1464784a6fddbfa9e1ac6cb0e1148a8c34'/>
<id>urn:sha1:deaabd1464784a6fddbfa9e1ac6cb0e1148a8c34</id>
<content type='text'>
Support authMode=cert alongside anonymous and user. The client
reuses its application certificate as the X509 identity token
(open62541 requires both to match). Server-side access control
advertises the certificate token policy automatically when
sessionPKI is configured.
</content>
</entry>
<entry>
<title>Extract createUnsecureClientConfig, fix None endpoint negotiation</title>
<updated>2026-02-18T19:30:33Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T19:30:33Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkCOpcUa/commit/?id=70381b3381d77845dbc04fd521b729b7098134a5'/>
<id>urn:sha1:70381b3381d77845dbc04fd521b729b7098134a5</id>
<content type='text'>
UA_ClientConfig_setDefault leaves securityMode at SignAndEncrypt,
so unsecure clients failed endpoint negotiation when the LDS only
offered None endpoints.  Extract the unsecure client setup into
createUnsecureClientConfig() which explicitly sets securityMode and
securityPolicyUri to None.

Also enable discovery-only None endpoint on ServerRegister so
unencrypted clients can discover it, and update the unsecure_anonymous
test configs to run fully without encryption.
</content>
</entry>
</feed>
