aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Replace ClientFindServers with unified Client, use trust store directoriesThomas Vanbesien3 days41-1002/+876
| | | | | | | | | | | | | | | | | | | | | | Replace the single-purpose ClientFindServers program with a unified Client that supports three operations via CLI: find-servers, get-endpoints, and read-time. This simplifies the architecture by using one client binary with a single config file instead of a monolithic program that did everything in one run. Split the ServerRegister config into separate server and client config files so the LDS-registration credentials are isolated from the server's own settings. The discovery URL moves from config to a CLI argument. Replace repeated trustList config entries with a single trustStore directory path. Each program now points to a directory under certs/trust/ containing .der files, so adding or removing trust is a file-copy operation rather than editing every config file. Add loadTrustStore()/freeTrustStore() to common.c and remove the now-unused configGetAll() from the config parser. Simplify the test matrix from 6 to 4 cases (security and auth are orthogonal, so the full 3x2 matrix is unnecessary). Update run_test.sh to invoke the new Client three times and use port-polling instead of sleep.
* Use Aes256_Sha256_RsaPss as default security policyThomas Vanbesien3 days2-3/+3
|
* Rename project from OpcUaDiscovery to OpcUaCThomas Vanbesien3 days1-1/+1
|
* Decouple LDS and server clients in ClientFindServersThomas Vanbesien3 days8-118/+272
| | | | | | | | | | | | | Create two independent UA_Client instances in client_find_servers.c: one for LDS discovery calls (FindServers, GetEndpoints) and one for server session calls (readServerTime). This allows different security modes, policies, auth, and trust lists for the LDS vs discovered servers. Config keys are now prefixed: discovery* for LDS connection settings, server* for discovered server settings. All config files updated accordingly with split trust lists (discoveryTrustList for LDS cert, serverTrustList for server cert).
* Fix CMakeLists.txt header comment to survive cmake-formatThomas Vanbesien3 days2-55/+44
|
* Add comments to build files and shell scripts, fix minor inconsistenciesThomas Vanbesien3 days5-7/+62
| | | | | | | | | | | | | - CMakeLists.txt: add file-level comment, section banners, target docs, and test-section explanation - cmake/BuildDeps.cmake: add file-level comment describing the configure/build/install workflow - tools/generate_certificate.sh: document arguments and outputs in header block, comment set -euo pipefail - src/config.h: move include guard before Doxygen block (match common.h) - src/server_register.c: add comment to empty anonymous-auth block (match client_find_servers.c)
* Replace verbose .clang-format with BasedOnStyle: GNUThomas Vanbesien3 days1-297/+1
|
* Remove CLAUDE.md from version controlThomas Vanbesien3 days2-197/+3
| | | | | Keep the file locally but gitignore it so project-specific Claude Code instructions are not pushed to the repository.
* Keep PEM certificate after generationThomas Vanbesien3 days1-2/+2
| | | | | Stop deleting the PEM certificate so it remains available alongside the DER files. Fix the output listing to show the PEM path.
* Add configurable log level as optional CLI argumentThomas Vanbesien3 days7-30/+123
| | | | | | | | | All three programs now accept an optional second argument [log-level] (trace, debug, info, warning, error, fatal) defaulting to info. The level is applied by setting the logger context pointer directly, avoiding a memory leak that would occur from overwriting the heap-allocated logger struct. Also documents the ASan leak-check workflow in CLAUDE.md.
* Replace CLI arguments with config-file parser and add integration testsThomas Vanbesien3 days30-312/+1179
| | | | | | | | Introduce a reusable key=value config parser (config.h/c) and convert all three programs to read their settings from config files instead of positional command-line arguments. Add example config files in config/ and 6 CTest integration tests covering None/Basic256Sha256/Aes128 with anonymous and user authentication. Remove the now-obsolete launch.sh.
* Improve comments in server_register.cThomas Vanbesien3 days1-1/+6
| | | | | | Remove a useless comment on an empty branch and add intent comments before the manual event loop startup, the periodic re-registration loop, and the shutdown deregistration block.
* Make authentication mode and credentials configurable via CLIThomas Vanbesien3 days4-49/+212
| | | | | | | | | | | | | Replace hardcoded user/password credentials with a new <auth-mode> parameter that accepts "anonymous" or "user". When "user" is chosen, two additional <username> <password> arguments are required. ServerRegister accepts two independent auth modes: one for its own server-side access control and one for authenticating to the LDS when registering. ClientFindServers passes credentials to readServerTime, which selects UA_Client_connectUsername or UA_Client_connect accordingly. Update CLAUDE.md running examples and add an auth modes table.
* Add username/password authentication to servers and clientThomas Vanbesien3 days3-1/+36
| | | | | | | | | Disallow anonymous sessions on both the LDS and registering server by configuring UA_AccessControl_default with a hardcoded user/password credential pair. Set UA_ClientConfig_setAuthenticationUsername on the client configs used for register, re-register, and deregister calls. Use UA_Client_connectUsername in the FindServers client when reading server time.
* Initial commit: OPC UA discovery projectThomas Vanbesien3 days14-0/+1651
CMake-based C project using open62541 for OPC UA discovery. Includes Local Discovery Server, register server, and find servers client with OpenSSL encryption support.