Version 8.0 of the C Object Access Library (core-c-dof-oal) has been released and is available for download here.

This release includes the following changes:

– The optional dependency for dof-cipher-plugins was removed. There is now a required dependency for dof-cipher-plugins-dev which defines the interface for cipher plugins
– Support was added for the following cipher algorithms: Advanced Encryption Standard (AES), Twofish, and SMS4
– DOFCIPHERALGORITHM_TWOFISH was added as a DOFCipherAlgorithm
– DOFCIPHERALGORITHM_SMS4 was added as a DOFCipherAlgorithm
– To use a cipher, an application must now call DOFCipherRegistry\_Register() to indicate what cipher implementation should be used
– As part of moving the cipher interface to dof-cipher-plugins-dev, blockcipher.h was removed from the dof-oal
– The callback structure was changed for all callbacks, there is now a single structure with each callback function belonging to that structure
– The transport interface as defined in transport.h was modified to include a function that provides a way to get a string representation of the address. This is an optional function that a transport may choose to implement
– The DOFSECURITYSCOPE_ALL_SCOPES_ID define was added
– Functions for building a DOFInterface were added
– Functions for examining a DOFInterface were added

The following functions were changed or added in this release:

– DOFPermissionBindingBuilder\_AddActions was modified to return a boolean
– DOF\_GetSystems was removed and replaced by DOF\_CreateSystemList
– DOF\_GetAuthenticators was removed and replaced by DOF\_CreateAuthenticatorList
– DOF\_GetDomains was removed and replaced by DOF\_CreateDomainList
– DOFSystem\_GetProviderInterfaces was removed and replaced by DOFSystem\_CreateProviderInterfaceList
– DOFObject\_GetInterfaces was removed and replaced by DOFObject\_CreateInterfaceList
– DOFRuntime\_GetProvidingConnections was removed and replaced by DOFRuntime\_CreateProvidingConnectionList
– DOFRuntime\_GetConnections was removed and replaced by DOFRuntime\_CreateConnectionList
– DOFRuntime\_GetServers was removed and replaced by DOFRuntime\_CreateServerList
– DOFAddress\_GetString was added
– DOFCipherRegistry\_Register was changed to accept the DOFBlockCipher type
– DOFCipherRegistry\_Get was changed to return the DOFBlockCipher type
– DOFInterfaceID\_GetMarshalSize was added
– DOFInterfaceID\_Marshal was added
– DOFInterfaceID\_Unmarshal was added
– DOFInterface\_GetMarshalSize was added
– DOFInterface\_Marshal was added
– DOFInterface\_Unmarshal was added
– DOFObjectID\_GetMarshalSize was added
– DOFObjectID\_Marshal was added
– DOFObjectID\_Unmarshal was added
– DOFValue\_GetMarshalSize was added
– DOFValue\_Marshal was added
– DOFType\_CreateInstance was added
– DOFPermission\_GetMarshalSize the const qualifier was added to the DOFPermission parameter
– DOFPermission\_Marshal the const qualifier was added to the DOFPermission parameter
– DOFPermission\_Create\_Unmarshal was renamed to DOFPermission\_Unmarshal
– DOFPermissionSet\_GetMarshalSize the const qualifier was added to the DOFPermissionSet parameter
– DOFPermissionSet\_Marshal the const qualifier was added to the DOFPermissionSet parameter
– DOFPermissionSet\_Create\_Unmarshal was renamed to DOFPermissionSet\_Unmarshal
– DOFSecurityMode\_Unmarshal was added
– DOFInterfaceBuilder\_Create was added
– DOFInterfaceBuilder\_AddProperty was added
– DOFInterfaceBuilder\_AddEvent was added
– DOFInterfaceBuilder\_AddMethod was added
– DOFInterfaceBuilder\_AddException was added
– DOFInterfaceBuilder\_Build was added
– DOFInterfaceBuilder\_BuildAndDestroy was added
– DOFInterfaceBuilder\_Destroy was added
– DOFInterface\_CreatePropertyList was added
– DOFInterfaceProperty\_IsReadable was added
– DOFInterfaceProperty\_IsWritable was added
– DOFInterfaceProperty\_GetDOFType was added
– DOFInterface\_CreateEventList was added
– DOFInterfaceEvent\_GetParameterCount was added
– DOFInterfaceEvent\_GetParameters was added
– DOFInterface\_CreateMethodList was added
– DOFInterfaceMethod\_GetInputParameterCount was added
– DOFInterfaceMethod\_GetInputParameters was added
– DOFInterfaceMethod\_GetOutputParameterCount was added
– DOFInterfaceMethod\_GetOutputParameters was added
– DOFInterface\_CreateExceptionList was added
– DOFInterfaceException\_GetParameterCount was added
– DOFInterfaceException\_GetParameters was added
– DOFInterfacePropertyList\_Destroy was added
– DOFInterfaceEventList\_Destroy was added
– DOFInterfaceMethodList\_Destroy was added
– DOFInterfaceExceptionList\_Destroy was added
– DOFInterfaceID\_Create\_StandardString was added
– DOFCredentials\_Create\_Bytes the const qualifier was added to the buffer parameter

The following functions were previously deprecated and were removed in this release:

– DOF\_SetMaxOperations – functionality removed
– DOF\_SetMaxConnections – replaced by DOF\_SetConnectionLimit
– DOFServerConfigBuilder\_SetMaxConnections – replaced by DOFServerConfigBuilder\_SetConnectionLimit
– DOFServerConfig\_GetMaxConnections – replaced by DOFServerConfig\_GetConnectionLimit
– DOFServer\_GetConfig – replaced by DOFServer\_CreateState
– DOFServerState\_GetMaxConnections – replaced by DOFServerStae\_GetConnectionLimit
– DOFConfig\_GetMaxOperations – functionality removed
– DOFConfig\_GetMaxConnections – replaced by DOFConfig\_GetConnectionLimit
– DOFConfigBuilde\r_SetMaxOperations – functionality removed
– DOFConfigBuilder\_SetMaxConnections – replaced by DOFConfigBuilder\_SetConnectionLimit
– DOFState\_GetMaxOperations – functionality removed
– DOFState\_GetMaxConnections – replaced by DOFState\_GetConnectionLimit

This release fixes the following issues:

– [COAL-9](https://issue.opendof.org/browse/COAL-9) DOFAuthenticatorConfig_GetStorage is not implemented
– [COAL-15](https://issue.opendof.org/browse/COAL-15) a secure datagram connection to an as can close after 30 seconds
– [COAL-29](https://issue.opendof.org/browse/COAL-29) The BlockCipher interface has no way of controlling life cycle of keystate
– [COAL-34](https://issue.opendof.org/browse/COAL-34) Assert hit if system fails to create successfully
– [COAL-35](https://issue.opendof.org/browse/COAL-35) DOFQueryBuilder_BuildAndDestroy can leak memory if memory cannot be allocated for the copy
– [COAL-36](https://issue.opendof.org/browse/COAL-36) DOF_CreateBridge may leak memory in some error conditions
– [COAL-37](https://issue.opendof.org/browse/COAL-37) TEP does not check for an error condition
– [COAL-46](https://issue.opendof.org/browse/COAL-46) Transport.h has some spelling errors
– [COAL-49](https://issue.opendof.org/browse/COAL-49) bridge.h has a spelling error
– [COAL-57](https://issue.opendof.org/browse/COAL-57) Install on windows fails for default location
– [COAL-70](https://issue.opendof.org/browse/COAL-70) In the OAL API documentation, the listed link to the file oal.h/pcr.h does not work
– [COAL-77](https://issue.opendof.org/browse/COAL-77) Using cmake’s find_package with a static library may have errors when linking
– [COAL-79](https://issue.opendof.org/browse/COAL-79) The docs for DOFOperationInterest_GetInterfaceID indicate the return value must be destroyed
– [COAL-80](https://issue.opendof.org/browse/COAL-80) Docs for _Get functions are inconsistent
– [COAL-83](https://issue.opendof.org/browse/COAL-83) Exceptions are sent before the provide permission is checked
– [COAL-95](https://issue.opendof.org/browse/COAL-95) Continue to update provide state if a provide has been sent
– [COAL-98](https://issue.opendof.org/browse/COAL-98) There are several spelling errors in the documentation
– [COAL-100](https://issue.opendof.org/browse/COAL-100) DOFValueString\_Create\_Buffer fails to create valid DOFValue String
– [COAL-103](https://issue.opendof.org/browse/COAL-103) DOFConnectionConfigBuilder_Build doesn’t properly create connection config with a bridge if a bridge was set in the builder

More information can be found on this project at opendof.org.