Skip to content

Releases: AVSystem/Anjay

Anjay 3.14.0

Choose a tag to compare

@mzajac-avs mzajac-avs released this 27 May 13:56

BREAKING CHANGES:

  • Removed built-in support for TinyDTLS as a security backend.
  • Enrollment over Secure Transport (EST) now requires Anjay to be compiled
    with LwM2M 1.1 support.

Features:

  • EST Re-Enrollment is now automatically rescheduled in case of failure with
    regards to anjay_est_reenroll_config_t::sren_attempts_count
  • Added an experimental server connection error callback.
  • Added random jitter to the client-initiated Bootstrap Hold-Off Time to
    prevent multiple clients from bootstrapping simultaneously (configurable via
    ANJAY_HOLDOFF_JITTER_RANDOM_FACTOR).
  • Implemented /1/x/14 Initial Registration Delay Timer resource.

Improvements:

  • Made the demo client build independent of creating a Python virtual
    environment.

Bugfixes:

  • Fixed a bug in Anjay's reaction to a failed EST Simple Re-enrollment (SREN)
    operation. If the EST server responded with an error (or did not respond at
    all), Anjay deleted it's certificate and failed to communicate with LwM2M
    Management Server even though the certificate from Simple Enrollment (SEN)
    might have been still valid. Now Anjay has a retry policy for SREN operation
    (by default 10 attempts evenly distributed in time) and only if all of them
    fail, it fallbacks to the Bootstrap Server with factory certificate and
    performs EST SEN operation again.
  • Fixed incorrect Register payload version semantics after Bootstrap Trigger.
  • Fixed an issue where the Client Hold-Off Time resource (/0/x/11) value was
    not used when the Bootstrap-Request Trigger resource (/1/x/9) was executed.
  • Fixed a possible crash in Observe notification handling when
    stored_notification_limit was reached while another notification was being
    sent. In such cases, Anjay could attempt to drop an in-progress notification,
    which could lead to an assertion failure during payload serialization. Anjay
    now drops the newly generated excess notification instead, leaving the
    in-progress notification intact.

Anjay 3.13.1

Choose a tag to compare

@Kucmasz Kucmasz released this 02 Apr 08:05

Bugfixes

  • Tests and documentation corrections

Anjay 3.13.0

Choose a tag to compare

@mzajac-avs mzajac-avs released this 31 Mar 09:06

Features

  • Introduced experimental SSL Error API under WITH_SSL_ERROR_API for MbedTLS
    and custom TLS backends
  • Implemented FW Update Object v1.1 Resources.
  • Introduced support for LwM2M 1.2 features:
    • LwM2M CBOR format,
    • Bootstrap Pack operation,
    • Observation Attributes (carried in Observe, not in Write Attributes)
    • hqmax and edge attributes (con attribute is supported separatley from
      LwM2M 1.2, enabled with ANJAY_WITH_CON_ATTR),
    • Discover depth parameter,
    • SenML-ETCH CBOR & JSON formats for composite operations,
    • deleting Resource Instances.

Anjay 3.12.0

Choose a tag to compare

@Kucmasz Kucmasz released this 02 Feb 11:22

BREAKING CHANGES

  • PEP 668 was adopted. Using Python based tools requires a virtual environment
    and devconfig script ensures it's activated.
  • Most tools from tests/integration/framework were extracted
    into tools/test-framework-tools directory which is being installed
    in venv by devconfig

Bugfixes

  • Fixed crash in avs_coap when block transfers are disabled and outgoing
    message does not fit into the external output buffer.
  • (commercial version only) Fixed a bug that made it impossible to set a Master
    Secret which length was anything other than 16 bytes (OSCORE).
  • Fixed avs_coap tests for GCC 15

Features

  • Added traffic interceptor usage to demo application.
  • (commercial version only) Made it possible to set the maximum length of the
    Master Secret and Master Salt using the AVS_COAP_OSCORE_MASTER_SECRET_SIZE
    and AVS_COAP_OSCORE_MASTER_SALT_SIZE options, respectively.
  • Removed experimental tags from server connection status API, IPSO objects v2
    API, Software Management object API, CoAP Download retry API and
    Confirmable Notification status callback API.

Improvements

  • Reworked the help menu in Anjay Demo.
  • (commercial version only) Added support for running PKCS11 integration tests
    with OpenSSL as (D)TLS backend.
  • Migrated pymbedtls build system to pyproject.toml.

Anjay 3.11.0

Choose a tag to compare

@ferre111 ferre111 released this 26 Sep 13:54

BREAKING CHANGES

  • Default value of maximal holdoff time during Bootstrap limited from 120 sec.
    to 20 sec. The limit can still be changed using ANJAY_MAX_HOLDOFF_TIME define.
  • If the Server certificate is missing from the Data Model, Anjay falls back to
    PKIX verification, provided that a Trust Store is available, even when the
    certificate usage is set to DANE-TA or DANE-EE.
  • avs_commons 5.5.0 that is used by Anjay 3.11.0 stoped passing the trust store
    to Mbed TLS backend for Certificate Usage 2 or 3. For details on how Anjay
    handles Certificate Usage resource refer to
    Anjay Specification -> Advanced Topics -> Certificate Usage.

Bugfixes

  • Updated avs_commons to a version without a PSK-mode vulnerability in the Mbed
    TLS backend where a client configured for PSK could connect to a server that
    did not know the PSK, due to advertising non-PSK key exchange and skipping
    certificate verification. This issue affected only TLS 1.3 connections with
    Mbed TLS versions ≥ 3.6.1.
    For details, see: https://github.com/AVSystem/avs_commons/releases/tag/5.5.0

Features

  • (commercial version only) Added support for configuring OSCORE Object for each
    Security Object in Anjay Demo.

Anjay 3.10.0

Choose a tag to compare

@Kucmasz Kucmasz released this 28 May 13:21

Features

  • Instruction how to generate packages for Anjay Demo was added to documentation.
  • Dropped support for Ubuntu 18.04 and removed tests for it.

Bugfixes

  • Fixed devconfig script which was incorrectly setting Anjay version in logs
    to "unknown".
  • Added canceling the Register or Update message exchange if it's in progress
    when Server Disable (with resource execution or by API) is called that could
    have led to disabling the server infinitely.

Improvements

  • Unified script for generating packages in integration tests, now it can also
    be used to generate packages for the Software Management object.
  • The format of the metadata for packages used in integration tests and the
    demo has been revised to be more unambiguous and unified.
  • Added confirmable_notification_status_cb handler that is called if
    acknowledgement for confirmable notification is received from the Server or
    some error has occurred.

Anjay 3.9.0

Choose a tag to compare

@Kucmasz Kucmasz released this 28 Feb 14:35

Features

  • LwM2M Gateway functionality was added. To see the feature description, API
    documentation and tutorial on its usage, see Anjay docs
  • Added a coap_downloader_retry_count and coap_downloader_retry_delay
    configuration options that allow to resume the CoAP download process in case
    of network errors.

Improvements

  • Extended the functionality of the flag enabling Connection ID to also include
    connections to the file download CoAP server, in addition to the LwM2M server
  • Migrated GitHub Actions tests on macOS to the macos-14 runner.
  • Refactored test_ghactions.py.
  • Added Github Actions test on macOS for the AppleClang.

Bugfixes

  • Ensured that Github Actions tests on macOS actually runs on LLVM installed
    from Homebrew instead of AppleClang.
  • Minor fix in the devconfig.

Anjay 3.8.1

Choose a tag to compare

@Kucmasz Kucmasz released this 13 Nov 11:57

Improvements

  • Improved the coverage script and switched to lcov.
  • In case when the LwM2M server answers with an RST message to a notification
    that is yielding an error value (e.g. failure to read), which effectively
    cancels the notification, Anjay is not infinitely trying to transmit that
    message with error value once again. New behavior is enabled by default, and
    controlled with WITH_AVS_COAP_OBSERVE_FORCE_CANCEL_ON_UNACKED_ERROR option
    of avs_coap. Existing projects have to opt-in explicitly.
  • Added --nobest flag to dnf update in Rockylinux image preparation for
    tests to solve installation candidates conflicts.

Bugfixes

  • Actually fixed compatibility with Mbed TLS 3.6.
  • Fixed compatibility of integration test framework with Mbed TLS versions that
    enabled TLS 1.3, but didn't use MBEDTLS_USE_PSA_CRYPTO.
  • The -Wformat warning appearing in some compilers has been fixed.
  • Fixed LwM2M CBOR parser incorrectly accepting inputs containing empty arrays
    as keys
  • Prevent from generating non unique session tokens when the monotonic system
    clock granulation is not fine enough.
  • Refactored how timeouts are handled in pymbedtls to be in line with use of
    mbedTLS in avs_commons.

Anjay 3.8.0

Choose a tag to compare

@Kucmasz Kucmasz released this 28 May 09:37

BREAKING CHANGES

  • Timeout in case of sending a Confirmable Notification does not cancel the
    observation anymore by default.

Features

  • Added a connection_error_is_registration_failure configuration option that
    allows handling connection errors as Register failures, including the
    automatic retry mechanism
  • Added experimental server connection status API.

Improvements

  • (commercial version only) Changed MSISDN matching method in SMS binding
    feature to allow handling messages with Short Codes as originating number

Bugfixes

  • Fixed a corner case in which a connection error during a non-first Register
    attempt could cause uncontrolled infinite retries
  • Fixed a bug in demo of Advanced Firmware Update module that prevented
    proper handling of security config for targets other than APP
  • Fixed a bug that caused anjay_next_planned_notify_trigger family APIs to
    return an invalid value after canceling observations

Anjay 3.7.0

Choose a tag to compare

@JZimnol JZimnol released this 16 Feb 10:54

Features

  • Added support for LwM2M 1.2 server object requirement for infinite lifetime
    (lifetime == 0).
  • Introduced @experimental and @deprecated Doxygen tags.
  • Added experimental IPSO objects v2 API.
  • Added experimental Software Management object API.

Improvements

  • Improved integration tests compability and framework stability
  • Added support for wget2 for validating links in documentation (for HTTP/2
    support)

Bugfixes

  • Refactored generation of blockwise Confirmable notifications to avoid a
    possible assertion failure; requests for subsequent blocks of such
    notifications are now sent as Piggybacked responses
  • Fixed a bug in the documentation of an object definition struct
  • (commercial version only) Fixed problems with running some tests on systems
    with Mbed TLS 3.x
  • Fixed a few assertion and pointer punning issues regarding calls to IPSO
    objects APIs in erroneous cases
  • Prevent from trying to store empty cert/keys on HSM