hsw-nbt 1.2.0
OPTIGA Authenticate NBT Host Library for C
nbt-cmd-config.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) 2024-2026 Infineon Technologies AG
2// SPDX-License-Identifier: MIT
3
8#ifndef NBT_CMD_CONFIG_H
9#define NBT_CMD_CONFIG_H
10
13#include "infineon/ifx-utils.h"
15#include "infineon/nbt-apdu.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21/* Function identifiers */
22
26#define NBT_GET_CONFIGURATION UINT8_C(0x01)
27
31#define NBT_SET_CONFIGURATION UINT8_C(0x02)
32
36#define NBT_SELECT_CONFIGURATOR UINT8_C(0x03)
37
42typedef enum
43{
45 UINT16_C(0xC020),
48 UINT16_C(0xC021),
51 UINT16_C(0xC022),
53 NBT_TAG_FLASH_LOADER = UINT16_C(0xC02F),
55 NBT_TAG_GPIO_FUNCTION = UINT16_C(0xC030),
58 UINT16_C(0xC031),
61 UINT16_C(0xC032),
63 NBT_TAG_GPIO_PULL_TYPE = UINT16_C(0xC033),
66 UINT16_C(0xC040),
69 UINT16_C(0xC041),
71 NBT_TAG_I2C_SPEED = UINT16_C(0xC042),
74 UINT16_C(0xC034),
77 UINT16_C(0xC050),
79 NBT_TAG_NFC_WTX_MODE = UINT16_C(0xC051),
82 UINT16_C(0xC052),
85 UINT16_C(0xC053),
88 UINT16_C(0xC060),
91 UINT16_C(0xC061),
95 UINT16_C(0xC062)
97
101typedef enum
102{
104 UINT16_C(0xC33C),
107 0x5AA5)
109
117typedef enum
118{
120 UINT16_C(0xAC95),
123 UINT16_C(0xFFFF)
125
144
148typedef enum
149{
151 UINT8_C(0x01),
154 UINT8_C(0x02),
156
160typedef enum
161{
163 UINT8_C(0x01),
166 UINT8_C(0x02),
168
172typedef enum
173{
175 UINT8_C(0x01),
178 UINT8_C(0x02),
181 UINT8_C(0x03)
183
199
203typedef enum
204{
206 UINT8_C(0x01),
209 UINT8_C(0x02)
211
215typedef enum
216{
218 UINT8_C(0x01),
221 UINT8_C(0x02)
223
227typedef enum
228{
230 UINT8_C(0x00),
233 NBT_NFC_UID_RANDOM_4_BYTE = UINT8_C(0x01),
236
254
266
285 const ifx_blob_t *config_value);
286
304 uint8_t config_value);
305
320ifx_status_t nbt_get_configuration(nbt_cmd_t *self, uint16_t config_tag);
321
322#ifdef __cplusplus
323}
324
325#endif /* __cplusplus */
326#endif /* NBT_CMD_CONFIG_H */
Generic protocol API for exchanging APDUs with secure elements.
uint32_t ifx_status_t
Custom return code type used by all Infineon host software libraries.
Definition ifx-error.h:91
Generic protocol API (ISO/OSI stack).
Provides utility functions and macros.
Provides the library and module identifiers code of the library.
NBT protocol API for exchanging APDUs with NBT product.
ifx_status_t nbt_select_configurator_application(nbt_cmd_t *self)
Selects the NBT configurator application.
nbt_i2c_speed_tags
Enumeration defines the tag values of I2C speed.
@ NBT_I2C_SPEED_400_KHZ
@ NBT_I2C_SPEED_1000_KHZ
nbt_nfc_uid_type_for_anti_collision_tags
Enumeration defines the tag values of NFC UID type for anti collision.
@ NBT_NFC_UID_RANDOM_4_BYTE
@ NBT_NFC_UID_UNIQUE_DEV_SPECIFIC_7_BYTE
ifx_status_t nbt_set_configuration(nbt_cmd_t *self, uint16_t config_tag, uint8_t config_value)
Issues the set configuration command with configuration data as byte.
nbt_communication_interface_tags
Enumeration defines the tag values of communication interface.
@ NBT_COMM_INTF_NFC_DISABLED_I2C_ENABLED
@ NBT_COMM_INTF_NFC_ENABLED_I2C_ENABLED
@ NBT_COMM_INTF_NFC_ENABLED_I2C_DISABLED
nbt_tag_configurations
Enumeration defines the list of tags available for configuration option.
@ NBT_TAG_I2C_IDLE_TIMEOUT
@ NBT_TAG_NFC_UID_TYPE_FOR_ANTI_COLLISION
@ NBT_TAG_NFC_RF_HW_CONFIG
@ NBT_TAG_GPIO_PULL_TYPE
@ NBT_TAG_NFC_WTX_MODE
@ NBT_TAG_NFC_IRQ_EVENT_TYPE
@ NBT_TAG_GPIO_OUTPUT_TYPE
@ NBT_TAG_FLASH_LOADER
@ NBT_TAG_GPIO_ASSERT_LEVEL
@ NBT_TAG_PRODUCT_LIFE_CYCLE
@ NBT_TAG_GPIO_FUNCTION
@ NBT_TAG_I2C_SPEED
@ NBT_TAG_PM_CURRENT_LIMIT_CONFIG
@ NBT_TAG_PRODUCT_SHORT_NAME
@ NBT_TAG_NFC_ATS_CONFIG
@ NBT_TAG_I2C_DRIVE_STRENGTH
@ NBT_TAG_PM_CURRENT_LIMIT_ENABLE
@ NBT_TAG_SW_VERSION_INFO
@ NBT_TAG_COMMUNICATION_INTERFACE_ENABLE
nbt_product_life_cycle_tags
Enumeration defines the tag values of product life cycle.
@ NBT_PRODUCT_LIFE_CYCLE_PERSONALIZATION
@ NBT_PRODUCT_LIFE_CYCLE_OPERATIONAL
nbt_gpio_assert_tags
Enumeration defines the tag values of GPIO assert level.
@ NBT_GPIO_ASSERT_HIGH_LEVEL_ACTIVE
@ NBT_GPIO_ASSERT_LOW_LEVEL_ACTIVE
nbt_i2c_drive_strength_tags
Enumeration defines the tag values of I2C drive strength.
@ NBT_I2C_DRIVE_STRENGTH_STRONG
@ NBT_I2C_DRIVE_STRENGTH_WEAK
nbt_gpio_function_tags
Enumeration defines the tag values of GPIO function.
@ NBT_GPIO_FUNCTION_I2C_DATA_READY_IRQ_OUTPUT
@ NBT_GPIO_FUNCTION_NFC_I2C_PASS_THROUGH_IRQ_OUTPUT
@ NBT_GPIO_FUNCTION_NFC_IRQ_OUTPUT
@ NBT_GPIO_FUNCTION_DISABLED
nbt_gpio_pull_tags
Enumeration defines the tag values of GPIO pull type.
@ NBT_GPIO_PULL_UP
@ NBT_GPIO_PULL_DOWN
@ NBT_GPIO_NO_PULL
ifx_status_t nbt_get_configuration(nbt_cmd_t *self, uint16_t config_tag)
Issues the get configuration command.
nbt_gpio_output_tags
Enumeration defines the tag values of GPIO output type.
@ NBT_GPIO_OUTPUT_TYPE_OPEN_DRAIN
@ NBT_GPIO_OUTPUT_TYPE_PUSH_PULL
ifx_status_t nbt_set_configuration_bytes(nbt_cmd_t *self, uint16_t config_tag, const ifx_blob_t *config_value)
Issues the set configuration command with configuration data as byte array.
nbt_nfc_irq_event_tags
Enumeration defines the tag values of NFC IRQ event.
@ NBT_NFC_IRQ_EVENT_SIGNAL_FIELD_PRESENCE
@ NBT_NFC_IRQ_EVENT_SIGNAL_LAYER_4_ENTRY
@ NBT_NFC_IRQ_EVENT_SIGNAL_APDU_PROCESSING_STAGE
nbt_flash_loader_tags
Enumeration defines the tag values of Flash Loader.
@ NBT_FLASH_LOADER_ENABLE
@ NBT_FLASH_LOADER_DISABLE
Data storage for data and data length where both are required as parameters.
Definition ifx-utils.h:189
Generic NBT command set structure for building and performing NBT commands.
Definition nbt-apdu.h:76