New feature release with improved array support, access control features to support RBAC, ...
Overview
The main new features of this release are the reworked array handling, the additional access control function to support IEC 62351-8 compliant RBAC, support for TLS 1.3.
Please note that the data model of version 1.6 is not compatible with earlier version. Static model code has to be regenerated and code that dynamically generates the data model has to take into account that each array element has now it's own ModelNode representation.
This version also includes BETA versions for R-GOOSE/R-SV support.
Changes to version 1.6.0
New features and improvements:
- Updated array handling (every array element is now a separate ModelNode instance)
- IED server: added additional callbacks to control external access to the data model (required to implement RBAC)
- IED server: implemented write access handler for array elements and components of array elements (LIB61850-437)
- IED server: new function IedServer_handleWriteAccessForDataObject (LIB61850-437)
- IED server: added function to get timestamp of received command (ControlAction_getT) (LIB61850-422)
- IED client: added function IedClientError_toString
- Java tools: Support for time stamp Val elements
- IedServer: added configuration options to IedServerConfig to make RCB elements read-only (LIB61850-404)
- .NET API: Added functions SetReportSetting and GetReportSetting to IedServerConfig (LIB61850-404)
- IED client: added functions IedConnection_setRCBValuesAsync and IedConnection_getRCBValuesAsync (LIB61850-334)
- TLS: TLS version 1.3 can be supported when mbedtls 3.6 is used when compiling the library (using mbedtls 2.28 is still possible)
- BETA: Support for R-GOOSE and R-SV
- BETA: SNTP client code
- IED server: extended config file format to better support arrays (LIB61850-415)
Other changes:
- Ethernet(Linux): Set to promisc mode by default
- removed legacy defines for report reasons (#449)
- removed legacy compatibility functions for SV subscriner ("SVClientaSDU_")
Fixed bugs and vulnerabilities:
- Vulnerability: fixed potential stack buffer overflow in MMS client identity service and other services (LIB61850-447)
- Vulnerability: ACSE: fixed out-of-bound read in parseAarqPdu function (LIB61850-441)(#512)
- Vulnerability: ACSE: fixed out-of-bound read in parseAarePdu function (LIB61850-442)(#513)
- Vulnerability: GOOSE receiver: added additional length and plausibility checks to fix (LIB6150-440)(#509)
- MmsValue_decodeMmsData: add support for empty visible-string, mms-string, and octet-string values (#506)
- MMS client: fixed - getNameList task can get stuck in while loop when message cannot be sent (LIB61850-347)
- fix: ssl renegotiation causing handshake failure (#494)
- GOOSE publisher: fixed - publisher parameters not set correctly (I6LLCV-76)
- fixed potential memory leak when GooseReceiver is immediately stopped after start (I6PLLCV-71)
- .NET API: fixed - crash when GetDataSetDirectoryAsync returns error (LIB61850-434)
- MMS server: fixed - server is sending data set response larger than negotiated MMS PDU size (LIB61850-435)
- fixed - potential race condition when using IedConnection_installReportHandler and IedConnection_uninstallReportHandler
- fixed - IEC 61580 server: dataset is not released when RCB.Datset is set to empty string by client (LIB61850-425)
- Vulnerability: MMS client: fixed - parsing of servicecsSupported in MMS init response is off by one (LIB61850-419)(#469)
- fixed DPC status bug in beaglebone demo
- IED cllient: fixed memory leak and memory handling problem in function IedConnection_readDataSetValuesAsync (LIB61850-439)
- IED server: fixed crash when client tries to write complete SGCB structure