{"id":18346425,"url":"https://github.com/infineon/optiga-trust-m","last_synced_at":"2026-05-25T07:02:02.985Z","repository":{"id":41196152,"uuid":"171871329","full_name":"Infineon/optiga-trust-m","owner":"Infineon","description":"OPTIGA™ Trust M Host Library for C","archived":false,"fork":false,"pushed_at":"2026-04-21T09:26:52.000Z","size":93261,"stargazers_count":141,"open_issues_count":4,"forks_count":53,"subscribers_count":23,"default_branch":"main","last_synced_at":"2026-04-21T11:26:54.126Z","etag":null,"topics":["aes","brainpool","cryptography","ecc","ecdhe","ecdsa","hardware-acceleration","hardware-security","hsm","protected-i2c","public-key-cryptography","rsa","security-chip"],"latest_commit_sha":null,"homepage":"https://infineon.github.io/optiga-trust-m/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Infineon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-02-21T12:52:52.000Z","updated_at":"2026-04-15T12:49:45.000Z","dependencies_parsed_at":"2023-02-01T02:45:45.131Z","dependency_job_id":"d0190c44-55e5-4856-91e0-9e645392ed04","html_url":"https://github.com/Infineon/optiga-trust-m","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/Infineon/optiga-trust-m","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infineon%2Foptiga-trust-m","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infineon%2Foptiga-trust-m/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infineon%2Foptiga-trust-m/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infineon%2Foptiga-trust-m/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Infineon","download_url":"https://codeload.github.com/Infineon/optiga-trust-m/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infineon%2Foptiga-trust-m/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33464012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T06:32:55.349Z","status":"ssl_error","status_checked_at":"2026-05-25T06:32:35.322Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes","brainpool","cryptography","ecc","ecdhe","ecdsa","hardware-acceleration","hardware-security","hsm","protected-i2c","public-key-cryptography","rsa","security-chip"],"created_at":"2024-11-05T21:11:29.812Z","updated_at":"2026-05-25T07:02:02.979Z","avatar_url":"https://github.com/Infineon.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n# Infineon OPTIGA™ Trust M Host Library for C\r\n\r\nThis is the [OPTIGA™ Trust M](https://www.infineon.com/optiga-trust) Host Library for C. It is a reference implementation that allows the use of the [OPTIGA™ Trust M](https://www.infineon.com/optiga-trust) via a high-level API and serves as a basis of our example host applications.\r\n\r\n## Quick navigation\r\n\r\n- [Infineon OPTIGA™ Trust M Host Library for C](#infineon-optiga-trust-m-host-library-for-c)\r\n  - [Quick navigation](#quick-navigation)\r\n  - [Getting started](#getting-started)\r\n    - [Getting the Host Library](#getting-the-host-library)\r\n    - [Building and testing the Host Library](#building-and-testing-the-host-library)\r\n    - [Porting the Host library](#porting-the-host-library)\r\n    - [Examples using Host Library](#examples-using-host-library)\r\n    - [Configuring Mbed TLS library](#configuring-mbed-tls-library)\r\n  - [Host library overview](#host-library-overview)\r\n  - [Host Applications](#host-applications)\r\n  - [Contributing](#contributing)\r\n  - [Licensing](#licensing)\r\n\r\n## Getting started\r\n\r\nInformation on the Product including Documentation, GetStarted Guides or Application Notes can be found in OPTIGA\u0026trade; Trust M Overview Repository [here](https://github.com/Infineon/optiga-trust-m-overview)\r\n\r\n### Getting the Host Library\r\n\r\nBelow are the instructions to get the OPTIGA\u0026trade; Trust M Host Library for C.\r\n\r\nThe OPTIGA\u0026trade; Trust M Host Library for C can be cloned using git command :\r\n\r\n    git clone --recurse-submodules https://github.com/Infineon/optiga-trust-m.git\r\n\r\n### Building and testing the Host Library\r\n\r\nInstructions on how to build and test the host library can be found [here](tests/README.md)\r\n\r\n### Porting the Host library \r\n\r\nInstructions on how to port the host library to a specific platform can be found [here](extras/pal/README.md)\r\n\r\n### Examples using Host Library\r\n\r\nExamples to demonstrate basic functionality of the security chip can be found [here](examples/README.md)\r\n\r\n### Configuring Mbed TLS library\r\n\r\nThe OPTIGA\u0026trade; Trust M Host Library for C relies on Mbed TLS.\r\n\r\nThe OPTIGA\u0026trade; Trust M Host Library for C supports both MbedTLS 2.x and MbedTLS 3.x, the later will be referred to as \"mbedtls-3.x\".\r\n\r\nThis library is cloned from a submodule under [external/mbedtls](external/mbedtls/) for Mbedtls 2.x and [external/mbedtls-3.x](external/mbedtls-3.x/) for MbedTLS 3.x folder. It comes with a default configuration that needs to be modified to the application purpose. \r\n\r\nUnder [config/mbedtls_default_config.h](config/mbedtls_default_config.h) a default configuration for MbedTLS 2.x is provided and should be changed depending on need.\r\n\r\nUnder [config/mbedtls_3.x_default_config.h](config/mbedtls_3.x_default_config.h) a default configuration for MbedTLS 3.x is provided and should be changed depending on need.\r\n\r\nDuring compilation, the following define needs to be added:\r\n\r\n\u003e During compilation, the following define needs to be added :\r\n```\r\nMBEDTLS_USER_CONFIG_FILE=\"config/mbedtls_default_config.h\"\r\n```\r\nor\r\n```\r\nMBEDTLS_USER_CONFIG_FILE=\"config/mbedtls_3.x_default_config.h\"\r\n```\r\n\r\nfor Makefile :\r\n\r\n```\r\n-DMBEDTLS_USER_CONFIG_FILE=\"config/mbedtls_default_config.h\"\r\n```\r\nor\r\n```\r\n-DMBEDTLS_USER_CONFIG_FILE=\"config/mbedtls_3.x_default_config.h\"\r\n```\r\n\r\nfor CMake :\r\n\r\n```\r\ntarget_compile_definitions(app PRIVATE MBEDTLS_USER_CONFIG_FILE=\"${CMAKE_CURRENT_SOURCE_DIR}/config/mbedtls_user_config.h\")\r\n```\r\nor\r\n```\r\ntarget_compile_definitions(app PRIVATE MBEDTLS_USER_CONFIG_FILE=\"${CMAKE_CURRENT_SOURCE_DIR}/config/mbedtls_3.x_user_config.h\")\r\n```\r\n\r\n## Host library overview\r\n\r\n![](docs/images/optiga_trust_m_system_block_diagram.png)\r\n\r\nThe following documentation is available for the host library.\r\n\r\n| Topic | Link to documentation                                                                                                                                              |\r\n| ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| API Documentation (High Level) | [OPTIGA™ Trust M API - High Level](https://github.com/Infineon/optiga-trust-m-overview/blob/main/docs/pdf/OPTIGA_Trust_M_Solution_Reference_Manual_v3.60.pdf)                           |\r\n| API Documentation (Code)  | [OPTIGA™ Trust M API - Code](https://infineon.github.io/optiga-trust-m/index.html)                                |\r\n| I2C Interface Documenation   | [I2C Interface Documenation](https://github.com/Infineon/optiga-trust-m-overview/blob/main/docs/pdf/Infineon_I2C_Protocol_v2.03.pdf) |\r\n\r\n\r\n\r\nFor more information please refer to the [Wiki page](https://github.com/Infineon/optiga-trust-m/wiki) of this project\r\n\r\n## Host Applications\r\n\r\n| Host application                                                                                                                                                       | Operating System | Status |\r\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------ |\r\n| [OPTIGA™ Trust M Cryptography](https://github.com/Infineon/mtb-example-optiga-crypto)                                                                                  | Native           | Active |\r\n| [OPTIGA™ Trust M MQTT Client](https://github.com/Infineon/mtb-example-optiga-mqtt-client)                                                                              | FreeRTOS         | Active |\r\n| [OPTIGA™ Trust M Power management](https://github.com/Infineon/mtb-example-optiga-power-management)                                                                    | Native           | Active |\r\n| [OPTIGA™ Trust M Data management](https://github.com/Infineon/mtb-example-optiga-data-management)                                                                      | Native           | Active |\r\n| [OPTIGA™ Trust M TLS with mbedTLS](https://github.com/Infineon/mbedtls-optiga-trust-m)                                                                                 | Native           | Active |\r\n| [OPTIGA™ Trust M AWS FreeRTOS](https://github.com/Infineon/amazon-freertos-optiga-trust)                                                                               | FreeRTOS         | Active |\r\n| [OPTIGA™ Trust M Microsoft Azure IoT](https://github.com/Infineon/azure-esp32-optiga-trust/)                                                                           | FreeRTOS         | Active |\r\n| [OPTIGA™ Trust M PKCS#11 interface](https://github.com/Infineon/pkcs11-optiga-trust-m)                                                                                 | Linux            | Active |\r\n| [OPTIGA™ Trust M Matter integration](https://github.com/project-chip/connectedhomeip/tree/master/examples/lock-app/infineon/psoc6#building-with-optiga-trust-m-as-hsm) | Linux            | Active |\r\n| [OPTIGA™ Trust M Zephyr PAL \u0026 Application](https://github.com/Infineon/optiga-trust-m-zephyr)                                                                          | Zephyr           | Active |\r\n\r\n\r\n## Contributing\r\n\r\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\r\n\r\n## Licensing\r\n   \r\nPlease see our [LICENSE](LICENSE) for copyright and license information.\r\n   \r\nThis project follows the REUSE approach, so copyright and licensing information is available for every file (including third party components) either in the file header, an individual *.license file or the .reuse/dep5 file. All licenses can be found in the [LICENSES](LICENSES) folder.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfineon%2Foptiga-trust-m","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfineon%2Foptiga-trust-m","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfineon%2Foptiga-trust-m/lists"}