Azure Iot Sdk C Versions Save

A C99 SDK for connecting devices to Microsoft Azure IoT services

LTS_02_2020_Ref02

3 years ago

Package versions: Apt/Debian: azure-iot-sdk-c - 0.2.0.0-28xenial azure-iot-sdk-c - 0.2.0.0-21bionic

This release contains a security fix affecting applications using c-utility in conjunction with OpenSSL or WolfSSL.

Additional fixes:

C Device SDK

  • Code version: 1.3.10
  • Fix for memory leak in _GetTwinAsync (gh issue #1478)
  • Fix for memory leak if destroying device client right after sending Twin reported property update
  • Fix sending get twin requests only after the response topic suback is received (#1585)
  • Fix Heap Buffer Overflow when sending message with Property (#1618)
  • Fix for lack of throttling on registration request of DPS client
  • Fix mqtt disconnect bug (#1696)

C Shared Utility

  • [mbedtls] Adding support to send larger payload (#421)
  • [tlsio_mbedtls] Fix memory leak (#422, #475)
  • Fixing socket state when DNS resolution failed. (#437)
  • Fix potential buffer overflow in crypto library
  • Fix retry bug in tlsio_wolfssl
  • Add check for overflow for BUFFER_prepend (#467)
  • Sdl bug fix (#465)
  • Fix for using correct wolfssl api in httpapi (#471)
  • Add ecc support in httpapi_compact
  • Fix for #1624 iOS 14 send temeletry fix (#477)

2020-12-09

3 years ago

This release contains a security fix affecting applications using c-utility in conjunction with OpenSSL or WolfSSL.

Package versions:

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-23bionic azure-iot-sdk-c - 0.2.0.0-30xenial

VcPkg: Port: azure-iot-sdk-c Version: 2020-12-09

Arduino:

IN PROGRESS

C Device SDK

  • Code version: 1.5.0
  • Removed ESP8266 sample
  • Added references for Embedded C SDK
  • Fixed lack of throttling on registration request of DPS client.
  • Turn on mqtt encode/decode option by default
  • Updated cross-compilation docs for Raspberry Pi 4 (gh #1093)
  • Added support for intermediate cert chains DPS X.509 flow
  • Exposed CreationTimeUtc for D2C message (#1568)
  • Included module E2E tests, both for x509 and also basic telemetry
  • Refactored and fixed bugs in MQTT common code
  • Fixed issue #1255: Disconnect without connection status callback called
  • Small fixes in code for stricter compiler options
  • Fixed samples vcproj files to load from correct vcpkg path
  • Updated cert gen script to exit on failure
  • Fixed mqtt transport disconnect bug
  • Fix issue #1698 and refactor multiblock blob upload code
  • Expanded sendHttpRequestMethod in iothub_client_edge.c to succeed on any 2xx response (#1231)
  • Fixed IoTHubMessage_SetProperty to discern out of memory issues (#1290)
  • Fixed Heap Buffer Overflow when sending message with Property (#1618)
  • Updated PnP preview string to 2020-09-30
  • Fixed min/max reporting for PnP samples
  • Added additional e2e tests for modules
  • Removed support for gcc 4.4 and gcc 4.6
  • Added general updates and fixes to documentation

C Shared Utility

  • Fixed OpenSSL and WolfSSL hostname validation. Removing ESP adapters. (PR #488)
  • Added check for kCFStreamStatusError on macos tlsio (PR #486)
  • Fixed for github issue #1624 iOS 14 send temeletry fix (PR #477)
  • Added ecc support in httpapi_compact
  • Fixed memory leak in tlsio mbedtls (PR #475)
  • Use correct wolfssl api in httpapi
  • Fixed wolfssl re-connection issue
  • Fixed retry bug in tlsio_wolfssl
  • Added check for overflow for BUFFER_prepend
  • Fixed bug in FormatMessage usage in tls layer
  • Removed support for gcc 4.4 and gcc 4.6
  • SDL bug fixes

C AMQP Library

  • Fixed potential double free of link endpoint by link.c
  • Removed support for gcc 4.4 and gcc 4.6

C MQTT Library

  • Added function for cleaning xio handle (for upper layer reconnection control)
  • Removed support for gcc 4.4 and gcc 4.6

LTS_07_2020_Ref01

3 years ago

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-27xenial azure-iot-sdk-c - 0.2.0.0-20bionic azure-iot-sdk-c - 0.2.0-27trusty

VcPkg: Port: azure-iot-sdk-c Version: 2020-07-19

C SDK code version: 1.3.9

Long-term support (LTS) release of Azure IoT C SDK, published on 07/2020. For details about LTS branches, please see our documentation.

2020-07-19

3 years ago

Package versions:

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-27xenial azure-iot-sdk-c - 0.2.0.0-20bionic azure-iot-sdk-c - 0.2.0-27trusty

VcPkg: Port: azure-iot-sdk-c Version: 2020-07-19

Arduino: azure-iot-arduino v1.3.9 azure-iot-arduino-protocol-mqtt v1.3.9 azure-iot-arduino-protocol-http v1.3.9 azure-iot-arduino-utility v1.3.9

C Device SDK

  • Code version: 1.3.9
  • Fixed potential NULL pointer dereferences
  • Updated MXChip build scripts
  • Update build scripts for new ESP sample
  • Fixed provisioning client retry after DNS failure
  • Added a maximum delay cap between re-connection attempts for iothub_client (retry policy)
  • Fixed possible buffer & arithmetic overflows
  • Fixed wrong include in prov_dev_client_sample & prov_dev_client_ll_sample
  • Fixed memory leak in iothub_ll_get_device_twin_async_callback not properly freeing queue_context
  • Fixed leaf cert extension when generating with openSSL
  • Reordered enum in iothub_client_core_common.h for backwards compatibility
  • Minor documentation updates
  • Add ModelID parameter to IoTHub Client (MQTT only)
  • Added/improved PnP Samples
  • Fixed for memory leak if destroying device client right after sending Twin reported property update
  • Fixed MQTT transport to send pending Get Twin requests only after the SUBACK is received (#1585)

C Shared Utility

  • Updated tickcounter_get_current_ms to return correct time ticks
  • Updated HTTPAPI_SetOption return value to enum
  • Updated tlsio options from BIT_NONE to BIT_TRUSTED_CERTS in tlsio_appleios.c
  • Fixed socket state when DNS resolution failed
  • Fixed various security bugs
  • Updated Raspberry Pi build scripts for new docker containers
  • Added proper handling of options retrieval in Http Proxy IO
  • Updated tlsio_openssl to send SNI on client hello

C AMQP Library

  • Fixed FLOW propagation for when endpoint links are detaching
  • Fixed security issue where allocated bytes were not zeroed out

LTS_02_2020_Ref01

4 years ago

Package versions:

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-26xenial azure-iot-sdk-c - 0.2.0.0-19bionic azure-iot-sdk-c - 0.2.0-26trusty

VcPkg: Port: azure-iot-sdk-c Version: 2020-02-04.1

C SDK code version: 1.3.8

Long-term support (LTS) release of Azure IoT C SDK, published on 02/2020. For details about LTS branches, please see our documentation.

2020-01-22

4 years ago

Package versions:

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-25xenial azure-iot-sdk-c - 0.2.0.0-18bionic azure-iot-sdk-c - 0.2.0-25trusty

VcPkg: Port: azure-iot-sdk-c Version: 2020-01-22

C Device SDK

  • Code version: 1.3.8
  • Add missing include in azure_prov_client/prov_transport.h
  • Added documentation on how to use the SDK with the latest version of TLS only and specific cyphers
  • Added documentation explaining usage of low-layer (LL) vs convenience layers (threading_notes.md)
  • Marked iothub_client.h as deprecated (please use iothub_device_client.h instead)
  • Improved coverage of Arduino on gated builds
  • Updated setup_arduino_libraries.sh to clone azure-iot-pal-arduino from correct branch
  • Fixed sample dockerfile in cross-compilation documentation (Docker_SDK_Cross_Compile.md)
  • Fixed documentation issues.

2019-12-11

4 years ago

Package versions:

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-24xenial azure-iot-sdk-c - 0.2.0.0-17bionic azure-iot-sdk-c - 0.2.0-24trusty

VcPkg: Port: azure-iot-sdk-c Version: 2019-12-11 (pending merge)

C Device SDK

  • Code version: 1.3.7
  • Added fixes needed to support releasing new cocoapods packages
  • Fixed *_GetSendStatus in AMQP transport (github issue #1039)
  • Fixed correlation id in body for upload to blob (github issue #1310)
  • Added fix to include corresponding provisioning tools according to build options.
  • Added documentation for how to configure XIO read buffer size.
  • Updated references in documentation from Device Explorer (deprecated) to Azure IoT Explorer.

C Shared Utility

  • Added support for sending larger payload when using mbedtls
  • Added control to force-close when tlsio_mbed is in Error state
  • Fixed SEGFAULT errors introduced by dns_resolver in socketio
  • Added capability to print executable file name with ETW logging
  • Added socket_async_os.h to ios pal layer
  • Fixed OptionHandler_AddOption result check in tlsio_wolfssl.c, use MU_DEFINE_ENUM_WITHOUT_INVALID in OptionHandler

LTS_07_2019_Ref01

4 years ago

This release is a refresh of the latest LTS branch (lts_07_2019) with select security fixes.

Package versions:

Apt/Debian: Not released

VcPkg: Port: azure-iot-sdk-c Version: 2019-07-01-LTS-1

C Device SDK

  • Always delete xio in MQTT cleanup (Port of 4ac2326654a77a94361bb65fc9dbb162b690b12f)
  • Fix segfault in the function message_queue_move_all_back_to_pending at message_sender.c and add UT for it. (port of 4ac2326654a77a94361bb65fc9dbb162b690b12f)
  • Mqtt twin timeout cleanup (#1234) (port of eec5e3ab522954a9a0551a125a3093f69771bcb6)

C Shared Utility

2019-10-07

4 years ago

Package versions:

Apt/Debian: azure-iot-sdk-c - 0.2.0.0-23xenial azure-iot-sdk-c - 0.2.0.0-16bionic azure-iot-sdk-c - 0.2.0-23trusty

VcPkg: Port: azure-iot-sdk-c Version: 2019-10-07.1

C Device SDK

  • Added Azure Security Center Client
  • Added missing srand() to modules that use rand()
  • Added compiler support to C18
  • Changed the fail reason from DEVICE_DISABLED to BAD_CREDENTIAL if the key or device-id is not correct in connection status callback
  • Fixed certGen.sh for devices
  • Forced single initialization of HTTPAPIEX for upload to blob
  • Fixed product info bug in AMQP transport (for Device Twin)
  • Improved MQTT transport by always deleting xio in cleanup functions
  • Exposed option for setting connection retry interval rate in AMQP and MQTT transports
  • Updated code to use macro-utils new MU_DEFINE_ENUM_STRINGS
  • Added cmake install directives for libmsr_riot.a
  • Fixed check for number of failed reconnection attempts in MQTT transport
  • Removed hardcoded key name usage from iothub_messaging_ll.c (allows to use non "iothubowner" IoT Hub strings with service client)
  • Added connection status callback invokation on MQTT ping fail
  • Fixed compilation warnings (MSVC)
  • Added new build verification jobs (Bearssl)
  • Added/improved tests
  • Added improvements to documentation in general
  • Changed reported properties and send event callback functions to store context per send, not per iothub_client handle

C Shared Utility

  • Added async DNS resolution using c-ares
  • Fixed critical socketio_win32 bug where socketio_send() would drop packets if send() returns SOCKET_ERROR and WSAEWOULDBLOCK
  • Fixed critical socketio_berkeley bug where socketio_send() would drop packets if send() returns -1 and errno=EAGAIN
  • Added better logging of the lost etw messages
  • Added constbuffer_array_batcher
  • Fixed check for lock in openssl
  • Added mbedtls support for httpapi curl
  • Added C18 compiler support.
  • Updated mbedtls to not send multiple complete messages for each send
  • Added BearSSL TLS adapter layer
  • Fixed mbed tls not to close the socket until the TLS layer notifies the peer of closure
  • Added constbufferarray_create_with_move_memory tests and code

uAMQP

  • Updated open complete to include a callback for error
  • Fixed open complete to not execute callback
  • Fixed error message on failed send
  • Fixed bug where Pending close was not getting turned off
  • Changed function to close the xio from dowork if needed

2019-07-01

4 years ago

C Device SDK

  • Exposed IoT Hub Client option OPTION_DO_WORK_FREQUENCY_IN_MS
  • Capped the maximum load of make build to 80% of number of CORES (Linux)
  • Fixed Base32/64 related calls in Unit and E2E tests (by Arthur Ma)
  • Fixed type of compileOption_C, compileOption_CXX, linkerOption in cmake files
  • Fixed AMQP transport to apply Product Info if modified after client creation
  • Internal build process improvements
  • Added tool for Uart interface control, applied to raspberry pi gated tests
  • Improved stability of Longhaul tests for Linux and Windows