Azure C SDKs common code
Перейти к файлу
Mark Radbourne 7e452e9074 Mods to accomodate ESP BearSSL - WIP 2019-09-06 18:29:15 -07:00
adapters Mods to accomodate ESP BearSSL - WIP 2019-09-06 18:29:15 -07:00
archive/cyclonessl Rename macro_utils defines to avoid collisions 2019-03-18 19:36:48 -07:00
build Add BearSSL TLS adapter layer (#292) 2019-08-05 11:42:01 -07:00
build_all Fix some base64/32 related files. (#308) 2019-05-07 09:45:48 -07:00
configs Log to console when logging with ETW 2019-08-19 10:42:37 -07:00
deps Updating submodules (#351) 2019-08-05 13:31:29 -07:00
devdoc Add constbufferarray_create_with_move_memory tests and code 2019-07-02 12:23:03 -07:00
inc/azure_c_shared_utility Fix base32 header to correct guard (#353) 2019-08-06 11:07:05 -07:00
jenkins Add BearSSL TLS adapter layer (#292) 2019-08-05 11:42:01 -07:00
pal Update umock repo and renamed files that have changed (#297) 2019-04-10 17:36:08 -07:00
samples Merge branch 'master' into sqm_info3 2019-03-22 12:53:24 -07:00
src Add logging for ETW logging errors :-) 2019-08-19 14:27:11 -07:00
tests Updating submodules (#351) 2019-08-05 13:31:29 -07:00
testtools Updating submodules (#351) 2019-08-05 13:31:29 -07:00
tools Rename macro_utils defines to avoid collisions 2019-03-18 19:36:48 -07:00
.gitattributes Normalized linux line endings 2016-03-23 07:42:53 -07:00
.gitignore Added newer files to ignore in the gitignore file 2018-11-09 08:58:08 -08:00
.gitmodules Update umock repo and renamed files that have changed (#297) 2019-04-10 17:36:08 -07:00
CMakeLists.txt Log to console when logging with ETW 2019-08-19 10:42:37 -07:00
LICENSE Initial project commit file 2015-10-30 11:35:32 -07:00
README.md fix link in readme 2018-03-14 16:03:41 -07:00
dependencies-test.cmake Makes azure-c-shared-utility installable and a find module in CMake. Adds a flag for using installed packages instead of adding submodules. 2016-11-08 10:53:23 -08:00
dependencies.cmake Attempt to fix again dependencies 2019-05-24 13:50:45 -07:00
version.txt Replace %zu with %lu for mbed builds (#254) 2019-01-14 09:27:15 -08:00

README.md

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Azure C Shared Utility

azure-c-shared-utility is a C library providing common functionality for basic tasks (like string, list manipulation, IO, etc.).

Dependencies

azure-c-shared-utility provides 3 tlsio implementations:

  • tlsio_schannel - runs only on Windows
  • tlsio_openssl - depends on OpenSSL being installed
  • tlsio_wolfssl - depends on WolfSSL being installed

azure-c-shared-utility depends on curl for HTTPAPI for Linux.

azure-c-shared-utility uses cmake for configuring build files.

Setup

  1. Clone azure-c-shared-utility using the recursive option:
git clone --recursive https://github.com/Azure/azure-c-shared-utility.git
  1. Create a folder called cmake under azure-c-shared-utility

  2. Switch to the cmake folder and run

cmake ..
  1. Build
cmake --build .

Installation and Use

Optionally, you may choose to install azure-c-shared-utility on your machine:

  1. Switch to the cmake folder and run

    cmake -Duse_installed_dependencies=ON ../
    
    cmake --build . --target install
    

    or install using the follow commands for each platform:

    On Linux:

    sudo make install
    

    On Windows:

    msbuild /m INSTALL.vcxproj
    
  2. Use it in your project (if installed)

    find_package(azure_c_shared_utility REQUIRED CONFIG)
    target_link_library(yourlib aziotsharedutil)
    

If running tests, this requires that umock-c, azure-ctest, and azure-c-testrunnerswitcher are installed (through CMake) on your machine.

Building the tests

In order to build the tests use:

cmake .. -Drun_unittests:bool=ON

Configuration options

In order to turn on/off the tlsio implementations use the following CMAKE options:

  • -Duse_schannel:bool={ON/OFF} - turns on/off the SChannel support
  • -Duse_openssl:bool={ON/OFF} - turns on/off the OpenSSL support. If this option is use an environment variable name OpenSSLDir should be set to point to the OpenSSL folder.
  • -Duse_wolfssl:bool={ON/OFF} - turns on/off the WolfSSL support. If this option is use an environment variable name WolfSSLDir should be set to point to the WolfSSL folder.
  • -Duse_http:bool={ON/OFF} - turns on/off the HTTP API support.
  • -Duse_installed_dependencies:bool={ON/OFF} - turns on/off building azure-c-shared-utility using installed dependencies. This package may only be installed if this flag is ON.
  • -Drun_unittests:bool={ON/OFF} - enables building of unit tests. Default is OFF.

Porting to new devices

Instructions for porting the Azure IoT C SDK to new devices are located here.