Skip to content
Oct 15, 2020
Anjay 2.7.0
- Changed signature of anjay_security_config_from_dm() and expected lifetime of
  anjay_security_config_t; removed anjay_fw_update_load_security_from_dm()
  compatibility alias

Note: For a more detailed information about breaking changes and how your code
needs to be updated, see:

- New anjay_download_set_next_block_offset() API that allows skipping parts of
- (commercial version only) Support for configuring certificate security from
  external sources during the Factory Bootstrap phase, including initial support
  for PKCS11-based hardware security
- (commercial version only) Support for TCP in the NSH testing shell

- Fixed support for older versions of Mbed TLS
- More graceful error handling in anjay_security_object_add_instance()
- Made the option to disable bootstrap support work again
- Other bug fixes, partially found using fuzz testing

Also updates avs_commons to version 4.4 which introduces the following changes:

- Significant refactor of avs_crypto_security_info_union_t family of types
  (compatibility aliases are available)

- Initial support for PKCS11-based hardware security
- New APIs:
  - avs_crypto_certificate_chain_info_array_persistence()
  - avs_crypto_certificate_chain_info_from_engine()
  - avs_crypto_certificate_chain_info_list_persistence()
  - avs_crypto_certificate_chain_info_persist()
  - avs_crypto_cert_revocation_list_info_array_persistence()
  - avs_crypto_cert_revocation_list_info_list_persistence()
  - avs_crypto_cert_revocation_list_info_persist()
  - avs_crypto_private_key_info_copy()
  - avs_crypto_private_key_info_from_engine()
  - avs_crypto_private_key_info_persistence()
  - avs_net_socket_dane_tlsa_array_copy()
  - avs_stream_copy()
  - avs_stream_offset()
- Added scripts simplifying unit test code coverage calculation
Aug 31, 2020
Anjay 2.6.1
- Added documentation for the LwM2M testing shell (NSH) - note that the shell
  itself is only available in the commercial version

- Refactored security key loading flow

- Fixed testing scripts to make them work on macOS and Raspberry Pi OS again
- Added __odr_asan to the list of permitted symbols so that "make check"
  succeeds when the library is built with AddressSanitizer enabled
- (applicable to commercial version only) Fixed a bug in
  anjay_server_object_set_lifetime() that could lead to sending the Update
  message twice afterwards

Also updates avs_commons to version 4.3.1 which introduces the following

- Replaced the test PKCS#7 file in unit tests with a more modern one, that can
  be loaded properly with newest releases of Mbed TLS

- Made the library compile again with Mbed TLS configured without CRL support
  or without file system support
- Fixed some testing code to make it work on macOS and Raspberry Pi OS again
- Added __odr_asan to the list of permitted symbols so that "make check"
  succeeds when the library is built with AddressSanitizer enabled
Aug 25, 2020
Anjay 2.6.0
- Added compile-time option to disable plaintext and TLV format support
- Added compile-time option to disable usage of the Deregister message
- Added support for DANE TLSA entries for downloads
- Added support for Security and Server (and OSCORE in commercial version)
  persistence to the demo client
- (commercial version only) More complete support for Enrollment over Secure
  Transports (EST-coaps), including:
  - Support for /est/sren and /est/crts operations
  - Persistence of EST data
  - Support for application/pkcs7-mime;smime-type=certs-only content format
- (commercial version only) Implemented OSCORE object persistence
- (commercial version only) Support for Matching Type and Certificate Usage
  Resources in the LwM2M Security object
- (commercial version only) LwM2M Security object Resources that has previously
  been only supported through Bootstrap Write, are now also exposed through

- Anjay can now be used on platforms that do not support handling 64-bit
  integers through printf() and scanf()
- Stricter command line option parsing in the demo client
- Improved help message formatting in the demo client
- (commercial version only) Various improvements to TLV and CBOR handling in
  the nsh tool

- Fixed a bug that could lead to a blocking receive with infinite timeout when
  DTLS is in use and handshake messages had to be retransmitted
  - NOTE: This, strictly speaking, introduces a BREAKING CHANGE in semantics of
    anjay_serve() and avs_coap_*_handle_incoming_packet() - as they no longer
    wait for the first message to arrive, but handle it in a non-blocking
    manner. However, this should not matter in practice if recommended patterns
    of these functions' usage are followed, and in the worst case scenario it
    may cause poorly written event loop code to behave as a busy loop, but it
    should not prevent the code from working.
- Stricter parsing of TLV payloads
- Fixed calculation of block size when resuming CoAP downloads which did not
  use the ETag option
- Made tests related to X.509 certificate mode pass with the OpenSSL backend
- More graceful error handling in downloader when required callbacks are not
- Fixed various compilation warnings
- (commercial version only) Fixed a bug that could lead to crash if offline
  mode was toggled during same-socket CoAP download and another LwM2M exchange
  was also scheduled
- (commercial version only) Fixed CMake option dependencies for the EST feature

Also updates avs_commons to version 4.3 which introduces the following changes:

- Improved trust store handling, including:
  - Support for configuring usage of system-wide trust store
  - Support for trusted certificate arrays and lists in addition to single
  - Support for CRLs
- Support for DANE TLSA entries
- Support for loading certs-only PKCS#7 files
- New avs_crypto_client_cert_expiration_date() API
- Removed dtls_echo_server tool that has been unused since version 4.1

- Fixed a bug that prevented compiling avs_commons without TLS support
- Fixed missing error handling in avs_persistence_sized_buffer()
- Fixed a bug in safe_add_int64_t() that could cause a crash if the result of
  addition was INT64_MIN
- Fixed various compilation warnings
Jul 14, 2020
Anjay 2.5.0
- Updated AvsCommons to 4.2.1
- Added new API for etag allocation
- (commercial version only) Added initial support for Enrollment Over Secure Transport (EST)

- Fixed segfault in CoAP downloads caused by cancellation in the middle of the transfer
- Fixed building tests on CentOS
- Fixed compilation when WITH_ANJAY_LOGS=OFF is used
- Fixed handling of transactional LwM2M Write
- (commercial version only) Fixed download suspension for downloads over shared socket
Jul 1, 2020
Anjay 2.4.4
- Updated avs_commons to version 4.2.0
- (commercial version) Added API for run-time Lifetime management

- (commercial version) Fixed corner case handling of Last Bootstrapped Resource
Jun 25, 2020
Anjay 2.4.3
- Added workarounds for non-deterministic operation of time-sensitive
  integration tests

- Fixed a critical bug in error handling of notification sending
- Fixed some bugs in Docker and Travis integration
- (commercial version only) Fixed a bug in anjay_transport_*() functions that
  prevented them from working correctly with NIDD transport
Jun 17, 2020
Anjay 2.4.2
- (commercial version only) Implemented NIDD MTU management, allowing to
  configure maximum message size to be sent, and the maximum message to be
- (commercial version only) Added binding mode deduction from URI scheme to
  demo client

- Added Dockerfile to simplify compiling & launching Anjay demo client on
  various systems
- Improved error reporting when executing Registration Update Trigger

- Fixed incorrect condition in time_object_notify in tutorials' code
- Fixed compilation issues of pymbedtls on newer GCC versions
- Fixed compilation of the demo client on Windows
May 29, 2020
Anjay 2.4.1
- NOTE: The endpoint name and server URI arguments to the demo client are now

- Fixed various compilation warnings in certain configurations
- Updated documentation, readme and examples to mention the new Try Anjay
- Added some missing information in "Porting guide for non-POSIX platforms"
  documentation article
- Additional script for testing Docker configurations used by Travis locally

- Updated avs_commons to version 4.1.3, with more fixes in CMake scripts for
  corner cases when searching for mbed TLSa, and fix for allowing compilation
  on platforms that define macros that conflict with avs_log verbosity levels
  (DEBUG, ERROR etc.)
- Removed the .clang-format file that relied on features specific to an
  unpublished custom fork of clang-format
May 22, 2020


Anjay 2.4a
Updated avs_commons to version 4.1.2, which fixes interoperability
problem with CMake versions older than 3.11.
May 21, 2020


Anjay 2.4
- Added anjay_ongoing_registration_exists() API
- Added anjay_server_get_ssids() API for the default implementation of the
  Server object
- Made offline mode configurable independently per transport (UDP, TCP; in
  commercial version also SMS and NIDD) and respected by downloads (including
  firmware update)
- Network integration layer (in commercial version, also SMS and NIDD drivers)
  may now use avs_errno(AVS_ENODEV) as a special error condition that will NOT
  trigger connection reset
- (commercial version only) Added avs_send_deferrable() API
- (commercial version only) Support for reporting State and Result changes using
  LwM2M Send messages in the fw_update module
- (commercial version only) Ability to perform CoAP(S) downloads (including
  firmware update) over the same socket that is already used for LwM2M
  communication. In particular, this allows downloads over SMS and NIDD.

- fw_update module now allows reset of the state machine during download
- Ability to report successful firmware update without reboot through the
  fw_update module is now officially supported
- (commercial verison only) OSCORE implementation now properly supports kid_ctx
  negotiation as specified by RFC 8613 Appendix B.2
- (commercial version only) Improvements to NIDD handling, to make sure that
  different packet size limits may be used for incoming and outgoing messages
  (NOTE: For the commercial version, this includes BREAKING CHANGES)

- Made some payload processing errors (including text/plain base64 decoding
  errors) return 4.00 Bad Request properly instead of 5.00 Internal Server Error
- The default Disable timeout in the default implementation of the Server object
  is now 86400 as mandated by the spec instead of infinity
- (commercial version only) Fixed a bug in timeout handling that sometimes
  caused the bg96_nidd driver to report spurious errors

Also updates avs_commons to version 4.1.1, which includes the following changes:

- Fixed a bug in CMake scripts that caused link errors when using statically
  linked versions of mbed TLS
You can’t perform that action at this time.