Unified Automation UA SDK ANSI C -------------------------------------------------------------------------------------- The ANSI C OPC UA SDK is a compact OPC UA SDK designed for embedded devices, providing the basic infrastructure to create an OPC UA application. Unified Automation OPC UA Stack (Version 1.4.12 274) -------------------------------------------------------------------------------------- Unified Automation maintains an own version of the OPC UA Stack which was originally based on the official OPC Foundation OPC UA Stack but is now different and released independently from the OPC Foundation version. Third-Party Libraries -------------------------------------------------------------------------------------- The SDK uses third-party libraries that are used to provide certain features. Third-party software may impose additional restrictions and it is the user's responsibility to ensure that they have met the licensing requirements of the according libraries. The following enumeration lists all third-party libraries used by the SDK with additional information about version, configuration and used licenses. The third-party licenses are stored in the license folder distributed with the SDK. * OpenSSL The OpenSSL library is used by the OPC UA Stack to implement OPC UA Security (AES, RSA, SHA1, x509 certificates). The SDK requires OpenSSL pre-installed on your system. For developing you will also need the OpenSSL header files (often called openssl-devel). Please use the package system of your distribution to install the according package. For security reasons you should always use the latest release of OpenSSL in your products. NOTE: Support for OPC UA SecurityPolicies: - Aes128Sha256RsaOaep is supported only for OpenSSL V1.0.0 and higher - Aes256Sha256RsaPss is supported only for OpenSSL V1.0.2 and higher Version: The current version installed on your system Home: http://www.openssl.org License: OpenSSL License OPC UA Compliance Testing: -------------------------------------------------------------------------------------- We are following the OPC UA compliance and certification efforts of the OPC Foundation as close as possible. We participated in all UA plug fest events and most of the OPC interoperability events as first available step. We have tested the ANSI C demo server contained in this SDK release with the latest released OPC UA compliance test tool (CTT) version 1.4.9.396, using profiles: - Standard 2017 UA Server - DataAccess Server Facet - Method Server Facet - Event Subscription Server Facet - Standard Event Subscription Server Facet - ComplexType 2017 Server Facet - Auditing Server Facet The following settings and issues are known. We consider these issue as problem in the CTT and not in the SDK. * Base Info Core Structure - 001: The test expects all namespace 0 types to be there. Our SDK includes only the types that are needed or supported by the SDK. The behavior of the SDK is fine. If you disable the setting Server Test -> Fully Exposed Type System, the test is passed. * Sporadic errors caused by timing/synchronization problems: Some of the tests fail with errors sporadically in batch run due to timing/synchronization problems. But, those tests always pass when executed individually, just with excess delay warnings sometimes. Few examples of sporadically failing tests are listed below: - Subscription Services -> Subscription Basic -> 063 - Subscription Services -> Subscription Minimum 1 -> 001 - Subscription Services -> Subscription Publish Min 02 -> 003 - Subscription Services -> Subscription Publish Min 10 -> 002 * Security None - 006 and Security Basic 256Sha256 - 004 based on it: The tests attempt a DoS attack on Server by consuming SecureChannels. Those pass when executed individually or with profile "Standard 2017 UA Server". But, when all the CTT profiles listed above are executed together, the tests fail. And pass only if Server Test -> Capabilities -> Max SecureChannels in CTT settings is reduced from 100 to 89. * Session Base - 012 and tests Security None - 007 and Security Basic 256Sha256 - 005 based on it: The tests attempt to open max number of sessions the server supports. Those pass when executed individually or with profile "Standard 2017 UA Server". But, when all the CTT profiles listed above are executed together, the tests fail. And pass only if Server Test -> Capabilities -> Max Supported Sessions in CTT settings is reduced from 50 to 49. * Data Access PercentDeadBand - 006: The test modifies few monitored items to use a deadband filter of 100% and executes write with values exceeding the deadband. Then it expects those values in the Publish response if the write is accepted. The test passes when executed individually but fails when all the listed CTT profiles are executed together. The OPC Test Lab Certification of ANSI C demo server contained in this SDK was successfully finished with version 1.8.0 of the SDK. The test results with your own server implementation may have compliance issues based on different SDK implementation options used. Issues can also be caused by different timing. We will provide regular updates to the SDK after the availability of new OPC UA compliance test tool versions.