@@ -1212,26 +1212,25 @@ static void psa_key_management_operation(void)
1212
1212
size_t key_length = msg .in_size [1 ];
1213
1213
uint8_t * key = NULL ;
1214
1214
1215
- if (!psa_crypto_access_control_is_handle_permitted (psa_key_mng .handle ,
1216
- partition_id )) {
1215
+ if (!psa_crypto_access_control_is_handle_permitted (psa_key_mng .handle , partition_id )) {
1217
1216
status = PSA_ERROR_INVALID_HANDLE ;
1218
1217
break ;
1219
1218
}
1220
1219
1221
- key = mbedtls_calloc (1 , key_length );
1222
- if (key == NULL ) {
1223
- status = PSA_ERROR_INSUFFICIENT_MEMORY ;
1224
- break ;
1220
+ if (key_length > 0 ) {
1221
+ key = mbedtls_calloc (1 , key_length );
1222
+ if (key == NULL ) {
1223
+ status = PSA_ERROR_INSUFFICIENT_MEMORY ;
1224
+ break ;
1225
+ }
1225
1226
}
1226
1227
1227
1228
bytes_read = psa_read (msg .handle , 1 , key , key_length );
1228
1229
if (bytes_read != key_length ) {
1229
1230
SPM_PANIC ("SPM read length mismatch" );
1230
1231
}
1231
1232
1232
- status = psa_import_key (psa_key_mng .handle ,
1233
- psa_key_mng .type ,
1234
- key , key_length );
1233
+ status = psa_import_key (psa_key_mng .handle , psa_key_mng .type , key , key_length );
1235
1234
mbedtls_free (key );
1236
1235
break ;
1237
1236
}
@@ -1277,26 +1276,25 @@ static void psa_key_management_operation(void)
1277
1276
size_t data_length ;
1278
1277
uint8_t * key = NULL ;
1279
1278
1280
- if (!psa_crypto_access_control_is_handle_permitted (psa_key_mng .handle ,
1281
- partition_id )) {
1279
+ if (!psa_crypto_access_control_is_handle_permitted (psa_key_mng .handle , partition_id )) {
1282
1280
status = PSA_ERROR_INVALID_HANDLE ;
1283
1281
break ;
1284
1282
}
1285
1283
1286
- key = mbedtls_calloc (1 , key_length );
1287
- if (key == NULL ) {
1288
- status = PSA_ERROR_INSUFFICIENT_MEMORY ;
1289
- break ;
1284
+ if (key_length > 0 ) {
1285
+ key = mbedtls_calloc (1 , key_length );
1286
+ if (key == NULL ) {
1287
+ status = PSA_ERROR_INSUFFICIENT_MEMORY ;
1288
+ break ;
1289
+ }
1290
1290
}
1291
1291
1292
- status = psa_export_key (psa_key_mng .handle , key ,
1293
- key_length , & data_length );
1292
+ status = psa_export_key (psa_key_mng .handle , key , key_length , & data_length );
1294
1293
if (status == PSA_SUCCESS ) {
1295
1294
psa_write (msg .handle , 0 , key , data_length );
1296
1295
}
1296
+ psa_write (msg .handle , 1 , & data_length , sizeof (size_t ));
1297
1297
1298
- psa_write (msg .handle , 1 ,
1299
- & data_length , sizeof (size_t ));
1300
1298
mbedtls_free (key );
1301
1299
break ;
1302
1300
}
@@ -1306,26 +1304,25 @@ static void psa_key_management_operation(void)
1306
1304
size_t data_length ;
1307
1305
uint8_t * key = NULL ;
1308
1306
1309
- if (!psa_crypto_access_control_is_handle_permitted (psa_key_mng .handle ,
1310
- partition_id )) {
1307
+ if (!psa_crypto_access_control_is_handle_permitted (psa_key_mng .handle , partition_id )) {
1311
1308
status = PSA_ERROR_INVALID_HANDLE ;
1312
1309
break ;
1313
1310
}
1314
1311
1315
- key = mbedtls_calloc (1 , key_length );
1316
- if (key == NULL ) {
1317
- status = PSA_ERROR_INSUFFICIENT_MEMORY ;
1318
- break ;
1312
+ if (key_length > 0 ) {
1313
+ key = mbedtls_calloc (1 , key_length );
1314
+ if (key == NULL ) {
1315
+ status = PSA_ERROR_INSUFFICIENT_MEMORY ;
1316
+ break ;
1317
+ }
1319
1318
}
1320
1319
1321
- status = psa_export_public_key (psa_key_mng .handle , key ,
1322
- key_length , & data_length );
1320
+ status = psa_export_public_key (psa_key_mng .handle , key , key_length , & data_length );
1323
1321
if (status == PSA_SUCCESS ) {
1324
1322
psa_write (msg .handle , 0 , key , data_length );
1325
1323
}
1324
+ psa_write (msg .handle , 1 , & data_length , sizeof (size_t ));
1326
1325
1327
- psa_write (msg .handle , 1 ,
1328
- & data_length , sizeof (size_t ));
1329
1326
mbedtls_free (key );
1330
1327
break ;
1331
1328
}
0 commit comments