Skip to content

Commit bac1bf8

Browse files
committed
1)Code clean up
2)Changes to trustm_Open 3)renamed p_local_util and p_local_crypt to me_util and me_crypt
1 parent 066f04b commit bac1bf8

File tree

1 file changed

+43
-52
lines changed

1 file changed

+43
-52
lines changed

src/platform/Infineon/crypto/trustm/CHIPCryptoPALHsm_utils_trustm.cpp

+43-52
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
#include "pal_os_timer.h"
3737
#include <FreeRTOS.h>
3838

39-
optiga_crypt_t * p_local_crypt = NULL;
40-
optiga_util_t * p_local_util = NULL;
39+
optiga_crypt_t * me_crypt = NULL;
40+
optiga_util_t * me_util = NULL;
4141
static bool trustm_isOpen = false;
4242
#define ENABLE_HMAC_MULTI_STEP (0)
4343
#define OPTIGA_UTIL_DER_BITSTRING_TAG (0x03)
@@ -57,7 +57,6 @@ void vApplicationTickHook(void);
5757

5858
void vApplicationTickHook(void)
5959
{
60-
pal_os_event_trigger_registered_callback();
6160
}
6261

6362
#define WAIT_FOR_COMPLETION(ret) \
@@ -112,45 +111,47 @@ void trustm_Open(void)
112111
{
113112
uint16_t dOptigaOID = 0xE0C4;
114113
// Maximum Power, Minimum Current limitation
115-
uint8_t cCurrentLimit = 15;
114+
const uint8_t current_limit [] = {
115+
0x0F,
116+
};
116117

117118
if (!trustm_isOpen)
118119
{
119120
optiga_lib_status_t return_status;
120121
do
121122
{
122123
// Create Optiga crypt instance
123-
if (p_local_crypt == NULL)
124+
if (me_crypt == NULL)
124125
{
125-
p_local_crypt = optiga_crypt_create(0, optiga_crypt_callback, NULL);
126-
if (NULL == p_local_crypt)
126+
me_crypt = optiga_crypt_create(0, optiga_crypt_callback, NULL);
127+
if (NULL == me_crypt)
127128
{
128129
break;
129130
}
130131
}
131132
else
132133
{
133-
printf("Error: p_local_crypt already initialised\n");
134+
printf("Error: me_crypt already initialised\n");
134135
}
135136
// Create Optiga Util instance
136-
if (p_local_util == NULL)
137+
if (me_util == NULL)
137138
{
138-
p_local_util = optiga_util_create(0, optiga_util_callback, NULL);
139-
if (NULL == p_local_util)
139+
me_util = optiga_util_create(0, optiga_util_callback, NULL);
140+
if (NULL == me_util)
140141
{
141142
break;
142143
}
143144
}
144145
else
145146
{
146-
printf("Error: p_local_crypt already initialised\n");
147+
printf("Error: me_crypt already initialised\n");
147148
}
148149
/**
149150
* Open the application on OPTIGA which is a precondition to perform any other operations
150151
* using optiga_util_open_application
151152
*/
152153
optiga_lib_status = OPTIGA_LIB_BUSY;
153-
return_status = optiga_util_open_application(p_local_util, 0); // skip restore
154+
return_status = optiga_util_open_application(me_util, 0); // skip restore
154155
if (OPTIGA_LIB_SUCCESS != return_status)
155156
{
156157
printf("optiga_util_open_application api returns error %02X\n", return_status);
@@ -165,27 +166,17 @@ void trustm_Open(void)
165166
printf("optiga_util_open_application failed\n");
166167
break;
167168
}
169+
trustm_isOpen = true;
170+
168171
// Only run once for initialisation
169-
if (init)
172+
if (!init)
170173
{
171-
return_status = optiga_util_write_data(p_local_util, dOptigaOID, OPTIGA_UTIL_WRITE_ONLY, 0, &cCurrentLimit, 1);
172-
if (OPTIGA_LIB_SUCCESS != return_status)
173-
{
174-
printf("optiga_util_write_data api returns error %02X\n", return_status);
175-
break;
176-
}
177-
WAIT_FOR_COMPLETION(return_status);
178-
if (OPTIGA_LIB_SUCCESS != return_status)
179-
{
180-
printf("optiga_util_write_data returns error\n");
181-
break;
182-
}
174+
// Set current limit for high performance
175+
write_data(dOptigaOID, current_limit, sizeof(current_limit));
183176
// Set init to true
184177
init = true;
185178
}
186179
} while (0);
187-
188-
trustm_isOpen = true;
189180
}
190181
}
191182

@@ -200,7 +191,7 @@ void trustm_close(void)
200191
* using optiga_util_close_application
201192
*/
202193
optiga_lib_status = OPTIGA_LIB_BUSY;
203-
return_status = optiga_util_close_application(p_local_util, 0);
194+
return_status = optiga_util_close_application(me_util, 0);
204195
if (OPTIGA_LIB_SUCCESS != return_status)
205196
{
206197
printf("optiga_util_close_application api returns error %02X\n", return_status);
@@ -217,11 +208,11 @@ void trustm_close(void)
217208
}
218209

219210
// destroy util and crypt instances
220-
optiga_util_destroy(p_local_util);
221-
optiga_crypt_destroy(p_local_crypt);
211+
optiga_util_destroy(me_util);
212+
optiga_crypt_destroy(me_crypt);
222213
pal_os_event_destroy(NULL);
223-
p_local_util = NULL;
224-
p_local_crypt = NULL;
214+
me_util = NULL;
215+
me_crypt = NULL;
225216
trustm_isOpen = false;
226217
return_status = OPTIGA_LIB_SUCCESS;
227218
} while (0);
@@ -241,7 +232,7 @@ void read_certificate_from_optiga(uint16_t optiga_oid, char * cert_pem, uint16_t
241232
do
242233
{
243234
optiga_lib_status = OPTIGA_LIB_BUSY;
244-
return_status = optiga_util_read_data(p_local_util, optiga_oid, 0, ifx_cert_hex, &ifx_cert_hex_len);
235+
return_status = optiga_util_read_data(me_util, optiga_oid, 0, ifx_cert_hex, &ifx_cert_hex_len);
245236
if (OPTIGA_LIB_SUCCESS != return_status)
246237
{
247238
printf("optiga_util_read_data api returns error %02X\n", return_status);
@@ -292,7 +283,7 @@ void write_data(uint16_t optiga_oid, const uint8_t * p_data, uint16_t length)
292283
do
293284
{
294285
optiga_lib_status = OPTIGA_LIB_BUSY;
295-
return_status = optiga_util_write_data(p_local_util, optiga_oid, OPTIGA_UTIL_ERASE_AND_WRITE, 0, p_data, length);
286+
return_status = optiga_util_write_data(me_util, optiga_oid, OPTIGA_UTIL_ERASE_AND_WRITE, 0, p_data, length);
296287
if (OPTIGA_LIB_SUCCESS != return_status)
297288
{
298289
printf("optiga_util_write_data api returns error %02X\n", return_status);
@@ -316,7 +307,7 @@ void write_metadata(uint16_t optiga_oid, const uint8_t * p_data, uint8_t length)
316307
do
317308
{
318309
optiga_lib_status = OPTIGA_LIB_BUSY;
319-
return_status = optiga_util_write_metadata(p_local_util, optiga_oid, p_data, length);
310+
return_status = optiga_util_write_metadata(me_util, optiga_oid, p_data, length);
320311
if (OPTIGA_LIB_SUCCESS != return_status)
321312
{
322313
printf("optiga_util_write_metadata api returns error %02X\n", return_status);
@@ -339,7 +330,7 @@ optiga_lib_status_t deriveKey_HKDF(const uint8_t * salt, uint16_t salt_length, c
339330
do
340331
{
341332
optiga_lib_status = OPTIGA_LIB_BUSY;
342-
return_status = optiga_crypt_hkdf(p_local_crypt, OPTIGA_HKDF_SHA_256, TRUSTM_HKDF_OID_KEY, /* Input secret OID */
333+
return_status = optiga_crypt_hkdf(me_crypt, OPTIGA_HKDF_SHA_256, TRUSTM_HKDF_OID_KEY, /* Input secret OID */
343334
salt, salt_length, info, info_length, derived_key_length, TRUE, derived_key);
344335
if (OPTIGA_LIB_SUCCESS != return_status)
345336
{
@@ -369,7 +360,7 @@ optiga_lib_status_t hmac_sha256(optiga_hmac_type_t type, const uint8_t * input_d
369360
// If the size is less than the max length supported
370361
if (input_data_length <= MAX_MAC_DATA_LEN)
371362
{
372-
return_status = optiga_crypt_hmac(p_local_crypt, type, TRUSTM_HMAC_OID_KEY, input_data, input_data_length, mac, mac_length);
363+
return_status = optiga_crypt_hmac(me_crypt, type, TRUSTM_HMAC_OID_KEY, input_data, input_data_length, mac, mac_length);
373364
if (OPTIGA_LIB_SUCCESS != return_status)
374365
{
375366
// optiga_crypt_hmac returns error !!!
@@ -391,7 +382,7 @@ optiga_lib_status_t hmac_sha256(optiga_hmac_type_t type, const uint8_t * input_d
391382
uint32_t dataLenTemp = 0;
392383
uint32_t remainingLen = input_data_length;
393384
// Start the HMAC Operation
394-
return_status = optiga_crypt_hmac_start(p_local_crypt, type, TRUSTM_HMAC_OID_KEY, input_data, MAX_MAC_DATA_LEN);
385+
return_status = optiga_crypt_hmac_start(me_crypt, type, TRUSTM_HMAC_OID_KEY, input_data, MAX_MAC_DATA_LEN);
395386
if (OPTIGA_LIB_SUCCESS != return_status)
396387
{
397388
// optiga_crypt_hmac returns error !!!
@@ -415,7 +406,7 @@ optiga_lib_status_t hmac_sha256(optiga_hmac_type_t type, const uint8_t * input_d
415406
{
416407
optiga_lib_status = OPTIGA_LIB_BUSY;
417408
return_status =
418-
optiga_crypt_hmac_update(p_local_crypt, (input_data + (input_data_length - remainingLen)), dataLenTemp);
409+
optiga_crypt_hmac_update(me_crypt, (input_data + (input_data_length - remainingLen)), dataLenTemp);
419410
if (OPTIGA_LIB_SUCCESS != return_status)
420411
{
421412
// optiga_crypt_hmac_update returns error !!!
@@ -436,7 +427,7 @@ optiga_lib_status_t hmac_sha256(optiga_hmac_type_t type, const uint8_t * input_d
436427
// End HMAC sequence and return the MAC generated
437428
// printf("HMAC Finalize\n");
438429
optiga_lib_status = OPTIGA_LIB_BUSY;
439-
return_status = optiga_crypt_hmac_finalize(p_local_crypt, (input_data + (input_data_length - remainingLen)),
430+
return_status = optiga_crypt_hmac_finalize(me_crypt, (input_data + (input_data_length - remainingLen)),
440431
dataLenTemp, mac, mac_length);
441432
if (OPTIGA_LIB_SUCCESS != return_status)
442433
{
@@ -456,7 +447,7 @@ optiga_lib_status_t hmac_sha256(optiga_hmac_type_t type, const uint8_t * input_d
456447
}
457448
#else
458449

459-
return_status = optiga_crypt_hmac(p_local_crypt, type, TRUSTM_HMAC_OID_KEY, input_data, input_data_length, mac, mac_length);
450+
return_status = optiga_crypt_hmac(me_crypt, type, TRUSTM_HMAC_OID_KEY, input_data, input_data_length, mac, mac_length);
460451
if (OPTIGA_LIB_SUCCESS != return_status)
461452
{
462453
// optiga_crypt_hmac returns error !!!
@@ -482,7 +473,7 @@ optiga_lib_status_t optiga_crypt_rng(uint8_t * random_data, uint16_t random_data
482473
do
483474
{
484475
optiga_lib_status = OPTIGA_LIB_BUSY;
485-
return_status = optiga_crypt_random(p_local_crypt, OPTIGA_RNG_TYPE_DRNG, random_data, random_data_length);
476+
return_status = optiga_crypt_random(me_crypt, OPTIGA_RNG_TYPE_DRNG, random_data, random_data_length);
486477
if (OPTIGA_LIB_SUCCESS != return_status)
487478
{
488479
// optiga_crypt_random returns error !!!
@@ -514,7 +505,7 @@ optiga_lib_status_t trustm_ecc_keygen(uint16_t optiga_key_id, uint8_t key_type,
514505
do
515506
{
516507
optiga_lib_status = OPTIGA_LIB_BUSY;
517-
return_status = optiga_crypt_ecc_generate_keypair(p_local_crypt, curve_id, key_type, FALSE, &optiga_key_id, (pubkey + i),
508+
return_status = optiga_crypt_ecc_generate_keypair(me_crypt, curve_id, key_type, FALSE, &optiga_key_id, (pubkey + i),
518509
pubkey_length);
519510
if (OPTIGA_LIB_SUCCESS != return_status)
520511
{
@@ -541,7 +532,7 @@ void trustmGetKey(uint16_t optiga_oid, uint8_t * pubkey, uint16_t * pubkeyLen)
541532
do
542533
{
543534
optiga_lib_status = OPTIGA_LIB_BUSY;
544-
return_status = optiga_util_read_data(p_local_util, optiga_oid, offset, pubkey, pubkeyLen);
535+
return_status = optiga_util_read_data(me_util, optiga_oid, offset, pubkey, pubkeyLen);
545536
if (OPTIGA_LIB_SUCCESS != return_status)
546537
{
547538
// optiga_util_read_data api returns error !!!
@@ -566,7 +557,7 @@ optiga_lib_status_t trustm_hash(uint8_t * msg, uint16_t msg_length, uint8_t * di
566557
hash_data_host.buffer = msg;
567558
hash_data_host.length = msg_length;
568559
optiga_lib_status = OPTIGA_LIB_BUSY;
569-
return_status = optiga_crypt_hash(p_local_crypt, OPTIGA_HASH_TYPE_SHA_256, OPTIGA_CRYPT_HOST_DATA, &hash_data_host, digest);
560+
return_status = optiga_crypt_hash(me_crypt, OPTIGA_HASH_TYPE_SHA_256, OPTIGA_CRYPT_HOST_DATA, &hash_data_host, digest);
570561
if (OPTIGA_LIB_SUCCESS != return_status)
571562
{
572563
// optiga_crypt_hash api returns error !!!
@@ -592,7 +583,7 @@ optiga_lib_status_t trustm_ecdsa_sign(optiga_key_id_t optiga_key_id, uint8_t * d
592583
do
593584
{
594585
optiga_lib_status = OPTIGA_LIB_BUSY;
595-
return_status = optiga_crypt_ecdsa_sign(p_local_crypt, digest, digest_length, optiga_key_id, signature, signature_length);
586+
return_status = optiga_crypt_ecdsa_sign(me_crypt, digest, digest_length, optiga_key_id, signature, signature_length);
596587
if (OPTIGA_LIB_SUCCESS != return_status)
597588
{
598589
// optiga_crypt_ecdsa_sign api returns error !!!
@@ -657,7 +648,7 @@ optiga_lib_status_t trustm_ecdsa_verify(uint8_t * digest, uint8_t digest_length,
657648
}
658649

659650
optiga_lib_status = OPTIGA_LIB_BUSY;
660-
return_status = optiga_crypt_ecdsa_verify(p_local_crypt, digest, digest_length, signature, signature_length,
651+
return_status = optiga_crypt_ecdsa_verify(me_crypt, digest, digest_length, signature, signature_length,
661652
OPTIGA_CRYPT_HOST_DATA, &public_key_details);
662653
if (OPTIGA_LIB_SUCCESS != return_status)
663654
{
@@ -690,7 +681,7 @@ CHIP_ERROR trustmGetCertificate(uint16_t optiga_oid, uint8_t * buf, uint16_t * b
690681
do
691682
{
692683
optiga_lib_status = OPTIGA_LIB_BUSY;
693-
return_status = optiga_util_read_data(p_local_util, optiga_oid, 0, ifx_cert_hex, &ifx_cert_hex_len);
684+
return_status = optiga_util_read_data(me_util, optiga_oid, 0, ifx_cert_hex, &ifx_cert_hex_len);
694685
if (OPTIGA_LIB_SUCCESS != return_status)
695686
{
696687
// optiga_util_read_data api returns error !!!
@@ -730,7 +721,7 @@ optiga_lib_status_t trustm_ecdh_derive_secret(optiga_key_id_t optiga_key_id, uin
730721
do
731722
{
732723
optiga_lib_status = OPTIGA_LIB_BUSY;
733-
return_status = optiga_crypt_ecdh(p_local_crypt, optiga_key_id, &public_key_details, TRUE, shared_secret);
724+
return_status = optiga_crypt_ecdh(me_crypt, optiga_key_id, &public_key_details, TRUE, shared_secret);
734725
if (OPTIGA_LIB_SUCCESS != return_status)
735726
{
736727
// optiga_util_read_data api returns error !!!
@@ -764,7 +755,7 @@ optiga_lib_status_t trustm_PBKDF2_HMAC(const unsigned char * salt, size_t slen,
764755
// Calculate U1, U1 ends up in work
765756
optiga_lib_status = OPTIGA_LIB_BUSY;
766757
return_status =
767-
optiga_crypt_hmac(p_local_crypt, OPTIGA_HMAC_SHA_256, TRUSTM_HMAC_OID_KEY, salt, (uint32_t) slen, work, &work_len);
758+
optiga_crypt_hmac(me_crypt, OPTIGA_HMAC_SHA_256, TRUSTM_HMAC_OID_KEY, salt, (uint32_t) slen, work, &work_len);
768759
if (OPTIGA_LIB_SUCCESS != return_status)
769760
{
770761
// optiga_crypt_hmac api returns error !!!
@@ -782,7 +773,7 @@ optiga_lib_status_t trustm_PBKDF2_HMAC(const unsigned char * salt, size_t slen,
782773
{
783774
optiga_lib_status = OPTIGA_LIB_BUSY;
784775
// Calculated subsequent U, which ends up in md1
785-
return_status = optiga_crypt_hmac(p_local_crypt, OPTIGA_HMAC_SHA_256, TRUSTM_HMAC_OID_KEY, md1, md1_len, md1, &md1_len);
776+
return_status = optiga_crypt_hmac(me_crypt, OPTIGA_HMAC_SHA_256, TRUSTM_HMAC_OID_KEY, md1, md1_len, md1, &md1_len);
786777
if (OPTIGA_LIB_SUCCESS != return_status)
787778
{
788779
// optiga_crypt_hmac api returns error !!!

0 commit comments

Comments
 (0)