65#ifndef OPTIGA_TRUST_HELPERS_H_
66#define OPTIGA_TRUST_HELPERS_H_
71#include "include/common/optiga_lib_common.h"
72#include "include/optiga_crypt.h"
73#include "include/optiga_util.h"
74#include "include/pal/pal_os_timer.h"
152 uint16_t *used, uint8_t *type);
171optiga_lib_status_t
trustm_gen_ecc_keypair(uint16_t optiga_key_id, optiga_ecc_curve_t curve_id,uint8_t key_usage,
bool export_private, uint8_t * pub, uint16_t *pub_len);
181optiga_lib_status_t
trustm_ecdsa_sign(optiga_key_id_t oid,
const uint8_t *digest, uint16_t digest_len, uint8_t *sig_raw, uint16_t *sig_raw_length);
263bool optiga_generate_csr_pem(uint16_t key_oid,
const uint8_t *public_key_der, uint16_t public_key_der_len,
const char *subject,
char *csr_pem,
size_t csr_pem_len);
269#ifndef DEVICE_CERTIFICATE_OID
270#define DEVICE_CERTIFICATE_OID (0xE0E1U)
274optiga_lib_status_t
protected_update(uint16_t trust_anchor_oid, uint16_t target_key_oid, uint16_t confidentiality_oid);
optiga_lib_status_t write_device_certificate_and_verify()
void read_certificate_from_optiga(uint16_t optiga_oid, char *cert_pem, uint16_t *cert_pem_length)
bool optiga_read_device_certificate(char *cert_pem, uint16_t *cert_pem_length)
optiga_lib_status_t test_metadata_operations(void)
uint32_t optiga_get_cert_days_until_expiry(uint16_t oid)
Get days until certificate expiry.
void trustm_close(optiga_util_t *util)
bool trustm_use_device_certificate(void)
optiga_lib_status_t trustm_gen_ecc_keypair(uint16_t optiga_key_id, optiga_ecc_curve_t curve_id, uint8_t key_usage, bool export_private, uint8_t *pub, uint16_t *pub_len)
cert_source_t
Certificate source type for MQTT TLS connection.
Definition optiga_trust_helpers.h:233
@ CERT_SOURCE_FACTORY
Infineon Factory Certificate (fallback).
Definition optiga_trust_helpers.h:235
@ CERT_SOURCE_DEVICE
TESAIoT Platform Certificate (preferred).
Definition optiga_trust_helpers.h:234
struct optiga_protected_update_manifest_fragment_configuration optiga_protected_update_manifest_fragment_configuration_t
Specifies the structure for protected update manifest and fragment configuration.
bool optiga_slot_info(uint16_t oid, optiga_slot_info_t *info)
bool optiga_read_factory_certificate(char *cert_pem, uint16_t *cert_pem_length)
bool optiga_generate_device_keypair(uint16_t key_oid, uint8_t *public_key_der, uint16_t *public_key_der_len)
bool optiga_trust_open_application(void)
bool optiga_trust_init(void)
int optiga_verify_staged_model(const uint8_t *blob, uint32_t blob_len)
int optiga_verify_cert_key_pair(uint16_t cert_oid, uint16_t key_oid)
void optiga_util_callback(void *context, optiga_lib_status_t return_status)
void write_data_object(uint16_t oid, const uint8_t *p_data, uint16_t length)
uint16_t optiga_slot_manifest_anchor(uint16_t oid)
optiga_lib_status_t trustm_ecdsa_sign(optiga_key_id_t oid, const uint8_t *digest, uint16_t digest_len, uint8_t *sig_raw, uint16_t *sig_raw_length)
struct optiga_protected_update_data_configuration optiga_protected_update_data_configuration_t
Specifies the structure for protected update data configuration.
bool optiga_generate_csr_pem(uint16_t key_oid, const uint8_t *public_key_der, uint16_t public_key_der_len, const char *subject, char *csr_pem, size_t csr_pem_len)
bool trustm_use_factory_certificate(void)
void optiga_trust_close_application(void)
void read_trust_anchor_from_optiga(uint16_t oid, char *cert_pem, uint16_t *cert_pem_length)
bool optiga_read_factory_uid(char *uid_hex, size_t uid_hex_len)
bool optiga_check_certificate_validity(uint16_t oid, cert_validation_result_t *result)
Check certificate validity and extract information.
bool optiga_clear_manifest_lock(uint16_t target_oid)
optiga_lib_status_t protected_update(uint16_t trust_anchor_oid, uint16_t target_key_oid, uint16_t confidentiality_oid)
bool optiga_slot_info_raw(uint16_t oid, uint16_t *anchor, uint32_t *version, uint16_t *used, uint8_t *type)
uint32_t optiga_slot_payload_version(uint16_t oid)
volatile optiga_lib_status_t optiga_lib_status
Certificate validation result structure.
Definition optiga_trust_helpers.h:219
time_t valid_to
Certificate valid to timestamp.
Definition optiga_trust_helpers.h:225
char issuer[256]
Certificate issuer DN.
Definition optiga_trust_helpers.h:227
time_t valid_from
Certificate valid from timestamp.
Definition optiga_trust_helpers.h:224
uint32_t days_until_expiry
Days remaining until expiry (0 if expired).
Definition optiga_trust_helpers.h:223
bool is_expired
true if certificate has expired
Definition optiga_trust_helpers.h:221
bool is_valid
true if certificate is currently valid
Definition optiga_trust_helpers.h:220
bool cert_exists
true if certificate found in OID
Definition optiga_trust_helpers.h:222
char subject[256]
Certificate subject DN.
Definition optiga_trust_helpers.h:226
Specifies the structure for protected update data configuration.
Definition optiga_trust_helpers.h:99
const optiga_protected_update_manifest_fragment_configuration_t * data_config
Pointer to a buffer where continue fragment data is stored.
Definition optiga_trust_helpers.h:107
uint16_t target_oid_metadata_length
Target OID metadata length.
Definition optiga_trust_helpers.h:105
uint16_t target_oid
Target OID.
Definition optiga_trust_helpers.h:101
const char * set_prot_example_string
Pointer to a protected update example string.
Definition optiga_trust_helpers.h:109
const uint8_t * target_oid_metadata
Target OID metadata.
Definition optiga_trust_helpers.h:103
Specifies the structure for protected update manifest and fragment configuration.
Definition optiga_trust_helpers.h:79
uint16_t continue_fragment_length
Continue fragment length.
Definition optiga_trust_helpers.h:89
uint8_t manifest_version
Manifest version.
Definition optiga_trust_helpers.h:81
uint16_t final_fragment_length
Final fragment length.
Definition optiga_trust_helpers.h:93
uint16_t manifest_length
Manifest length.
Definition optiga_trust_helpers.h:85
const uint8_t * manifest_data
Pointer to a buffer where manifest data is stored.
Definition optiga_trust_helpers.h:83
const uint8_t * final_fragment_data
Pointer to a buffer where final fragment data is stored.
Definition optiga_trust_helpers.h:91
const uint8_t * continue_fragment_data
Pointer to a buffer where continue fragment data is stored.
Definition optiga_trust_helpers.h:87
Definition optiga_trust_helpers.h:141
uint16_t used_size
Definition optiga_trust_helpers.h:146
uint8_t data_type
Definition optiga_trust_helpers.h:147
uint32_t payload_version
Definition optiga_trust_helpers.h:145
uint16_t manifest_anchor_oid
Definition optiga_trust_helpers.h:144
bool valid
Definition optiga_trust_helpers.h:143
uint16_t oid
Definition optiga_trust_helpers.h:142