OPTIGA™ Trust M
Host Library Documentation
example_optiga_util_protected_update.h
Go to the documentation of this file.
1 
38 #include <stdint.h>
39 
40 #include "data_object.h"
41 #ifdef EXAMPLE_OPTIGA_UTIL_PROTECTED_UPDATE_CONFIDENTIALITY_ENABLED
43 #endif
44 #ifdef EXAMPLE_OPTIGA_UTIL_PROTECTED_UPDATE_OBJECT_KEY_ENABLED
48 #endif
49 #ifdef EXAMPLE_OPTIGA_UTIL_PROTECTED_UPDATE_OBJECT_METADATA_ENABLED
51 #endif
52 
54 #define INTEGRITY_PROTECTED (0x00)
55 #ifdef EXAMPLE_OPTIGA_UTIL_PROTECTED_UPDATE_CONFIDENTIALITY_ENABLED
56 
57 #define CONFIDENTIALITY_PROTECTED (0x01)
58 #endif
59 #ifdef EXAMPLE_OPTIGA_UTIL_PROTECTED_UPDATE_OBJECT_KEY_ENABLED
60 
61 #define AES_KEY_UPDATE (0x02)
62 
63 #define ECC_KEY_UPDATE (0x03)
64 
65 #define RSA_KEY_UPDATE (0x04)
66 #endif
67 #ifdef EXAMPLE_OPTIGA_UTIL_PROTECTED_UPDATE_OBJECT_METADATA_ENABLED
68 
69 #define METADATA_UPDATE (0x05)
70 #endif
71 
76 {
80  const uint8_t * manifest_data;
82  uint16_t manifest_length;
84  const uint8_t * continue_fragment_data;
88  const uint8_t * final_fragment_data;
92 
93 #ifdef INTEGRITY_PROTECTED
94 
98  {
99  0x01,
100  manifest_int,
101  sizeof(manifest_int),
106  };
107 #endif
108 
109 #ifdef CONFIDENTIALITY_PROTECTED
110 
113 optiga_protected_update_manifest_fragment_configuration_t data_confidentiality_configuration =
114  {
115  0x01,
117  sizeof(manifest_int_conf),
122  };
123 #endif
124 
125 #ifdef AES_KEY_UPDATE
126 
130  {
131  0x01,
133  sizeof(manifest_aes_key),
134  NULL,
135  0,
138  };
139 #endif
140 
141 #ifdef ECC_KEY_UPDATE
142 
146  {
147  0x01,
149  sizeof(manifest_ecc_key),
150  NULL,
151  0,
154  };
155 #endif
156 
157 #ifdef RSA_KEY_UPDATE
158 
162  {
163  0x01,
165  sizeof(manifest_rsa_key),
166  NULL,
167  0,
170  };
171 #endif
172 
173 #ifdef METADATA_UPDATE
174 
177 optiga_protected_update_manifest_fragment_configuration_t metadata_update_configuration =
178  {
179  0x01,
181  sizeof(manifest_metadata),
182  NULL,
183  0,
186  };
187 #endif
188 
193 {
195  uint16_t target_oid;
197  const uint8_t * target_oid_metadata;
203  const char * set_prot_example_string;
205 
206 
207 
optiga_lib_config.h
This file is defines the compilation switches to build code with required features.
optiga_protected_update_manifest_fragment_configuration::manifest_data
const uint8_t * manifest_data
Pointer to a buffer where manifest data is stored.
Definition: example_optiga_util_protected_update.h:80
optiga_protected_update_manifest_fragment_configuration::manifest_version
uint8_t manifest_version
Manifest version.
Definition: example_optiga_util_protected_update.h:78
rsa_key_final_fragment_array
const uint8_t rsa_key_final_fragment_array[]
Definition: rsa_key_object_confidentiality.h:189
optiga_protected_update_manifest_fragment_configuration::continue_fragment_length
uint16_t continue_fragment_length
Continue fragment length.
Definition: example_optiga_util_protected_update.h:86
int_final_fragment_array
const uint8_t int_final_fragment_array[]
Definition: data_object.h:185
optiga_protected_update_manifest_fragment_configuration_t
struct optiga_protected_update_manifest_fragment_configuration optiga_protected_update_manifest_fragment_configuration_t
Specifies the structure for protected update manifest and fragment configuration.
optiga_protected_update_data_configuration::set_prot_example_string
const char * set_prot_example_string
Pointer to a protected update example string.
Definition: example_optiga_util_protected_update.h:203
manifest_metadata
const uint8_t manifest_metadata[]
Definition: metadata_object_confidentiality.h:41
optiga_protected_update_data_configuration::target_oid
uint16_t target_oid
Target OID.
Definition: example_optiga_util_protected_update.h:195
ecc_key_object_confidentiality.h
This file provides the data set for protected update of ecc key object with confidentiality.
manifest_rsa_key
const uint8_t manifest_rsa_key[]
Definition: rsa_key_object_confidentiality.h:43
int_conf_final_fragment_array
const uint8_t int_conf_final_fragment_array[]
Definition: data_object_confidentiality.h:238
optiga_protected_update_manifest_fragment_configuration::final_fragment_length
uint16_t final_fragment_length
Final fragment length.
Definition: example_optiga_util_protected_update.h:90
int_conf_continue_fragment_array
const uint8_t int_conf_continue_fragment_array[]
Definition: data_object_confidentiality.h:191
rsa_key_object_confidentiality.h
This file provides the data set for protected update of rsa key object with confidentiality.
optiga_protected_update_manifest_fragment_configuration::final_fragment_data
const uint8_t * final_fragment_data
Pointer to a buffer where final fragment data is stored.
Definition: example_optiga_util_protected_update.h:88
data_object_confidentiality.h
This file provides the data set for protected update of data object with confidentiality.
aes_key_object_confidentiality.h
This file provides the data set for protected update of aes key object with confidentiality.
optiga_protected_update_manifest_fragment_configuration::continue_fragment_data
const uint8_t * continue_fragment_data
Pointer to a buffer where continue fragment data is stored.
Definition: example_optiga_util_protected_update.h:84
optiga_protected_update_manifest_fragment_configuration::manifest_length
uint16_t manifest_length
Manifest length.
Definition: example_optiga_util_protected_update.h:82
metadata_final_fragment_array
const uint8_t metadata_final_fragment_array[]
Definition: metadata_object_confidentiality.h:186
manifest_int_conf
const uint8_t manifest_int_conf[]
Definition: data_object_confidentiality.h:43
optiga_protected_update_manifest_fragment_configuration
Specifies the structure for protected update manifest and fragment configuration.
Definition: example_optiga_util_protected_update.h:76
optiga_protected_update_data_configuration::data_config
const optiga_protected_update_manifest_fragment_configuration_t * data_config
Pointer to a buffer where continue fragment data is stored.
Definition: example_optiga_util_protected_update.h:201
optiga_protected_update_data_configuration_t
struct optiga_protected_update_data_configuration optiga_protected_update_data_configuration_t
Specifies the structure for protected update data configuration.
manifest_aes_key
const uint8_t manifest_aes_key[]
Definition: aes_key_object_confidentiality.h:43
optiga_protected_update_data_configuration::target_oid_metadata
const uint8_t * target_oid_metadata
Target OID metadata.
Definition: example_optiga_util_protected_update.h:197
optiga_protected_update_data_configuration
Specifies the structure for protected update data configuration.
Definition: example_optiga_util_protected_update.h:193
ecc_key_final_fragment_array
const uint8_t ecc_key_final_fragment_array[]
Definition: ecc_key_object_confidentiality.h:189
aes_key_final_fragment_array
const uint8_t aes_key_final_fragment_array[]
Definition: aes_key_object_confidentiality.h:188
manifest_int
const uint8_t manifest_int[]
Definition: data_object.h:43
metadata_object_confidentiality.h
This file provides the data set for protected update of metadata object with confidentiality.
manifest_ecc_key
const uint8_t manifest_ecc_key[]
Definition: ecc_key_object_confidentiality.h:43
optiga_protected_update_data_configuration::target_oid_metadata_length
uint16_t target_oid_metadata_length
Target OID metadata length.
Definition: example_optiga_util_protected_update.h:199
data_integrity_configuration
optiga_protected_update_manifest_fragment_configuration_t data_integrity_configuration
Definition: example_optiga_util_protected_update.h:97
data_object.h
int_continue_fragment_array
const uint8_t int_continue_fragment_array[]
Definition: data_object.h:136