Releases: mz-automation/libiec61850
1.6.1
Maintenance release for version 1.6 with a few new features.
Overview
This release contains bug fixes for version 1.6. It is highly recommended to update to this release.
There are a few new functions and missing functions in the .NET API were added.
The tools to create the static data model and configuration files are now also available as C#/.NET versions.
Changes to version 1.6.1
New features and improvements:
- Added new function ClientConnection_abort to close a client connection from the server application code
- Added new functions ClientConnection_claimOwnerShip and ClientConnection_release to use a ClientConnection outside of callbacks (LIB61850-488)
- .NET API: SVControlBlock added
- .NET API: Added additional callbacks to control external access to the data model (required to implement RBAC)
- .NET API: IEC61850ServerAPI -> LogStorage function wrapper added.
- .NET API: MmsValue -> MmsValue_encodeMmsData and MmsValue_decodeMmsData added.
- .NET API: Fixed issue of not printing log entries in log_client and log_server examples.
- .NET Tools: in the Tools folder you can find the .net project to generate Static and Dynamic Models
- .NET API: added missing TLS related functions (LIB61850-486)
- .NET API: added support for server side log service (LIB61850-461)
- .NET API: Added properties to MmsVariableSpecification class (LIB61850-460)
- Added .NET versions of tools to create the static server model and configuration files (to replace the Java versions that are still included)
- SCLParser: also available on tools, you can load your SCL model and use it with our library
- added function MmsError_toString (LIB61850-423)
- SV Publisher: added support for optional gmIdentity field
Bug and vulnerability fixes:
- fixed BER decoder infinite length handling to avoid infinite loop while decoding (LIB61850-516)
- added some additional checks in IedServer_updateVisibleStringAttributeValue and similar functions (LIB61850-504)
- added checks to avoid buffer underflow in IedServer_getFunctionalConstrainedData (LIB61850-505)
- fixed double free in IedConnection_destroy when control object clients have not been deleted before (LIB61850-503)
- disable asn1c code stack overflow check when ASAN enabled (#539)
- fixed - GoCB client access - use after free (#537)
- TLS: fixed - certificate not validated when allow only allowed certificate is selected and certificate is matching (LIB61850-473)
- TLS: Added option to ignore validity times in certificates and CRLs (LIB61850-474)
- handle functional naming (ldName) correctly in data-entry references in reports (LIB61850-467)
- config file parser: handle case when there is no phyAddr for SVCB or GoCB (#518)
- .NET API: fixed wrong function name SqliteLogStorage_createInstanceEx to SqliteLogStorage_createInstance
- HAL (Linux): fixed problem with Hal_getTimeInNs on 32 bit systems
1.6.0
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