Skip to content

Commit e94a96a

Browse files
committed
refactor(core): remove quadword usage from secret implementation
[no changelog]
1 parent 384ce72 commit e94a96a

1 file changed

Lines changed: 8 additions & 18 deletions

File tree

core/embed/sec/secret/stm32u5/secret.c

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,10 @@ static secbool secret_ensure_initialized(void) {
144144
secbool secret_write(const uint8_t *data, uint32_t offset, uint32_t len) {
145145
mpu_mode_t mpu_mode = mpu_reconfig(MPU_MODE_SECRET);
146146
ensure(flash_unlock_write(), "secret write");
147-
for (int i = 0; i < len / 16; i++) {
148-
if (sectrue != flash_area_write_quadword(&SECRET_AREA, offset + (i * 16),
149-
(uint32_t *)&data[(i * 16)])) {
150-
ensure(flash_lock_write(), "secret write");
151-
mpu_restore(mpu_mode);
152-
return secfalse;
153-
}
154-
}
147+
secbool result = flash_area_write_data(&SECRET_AREA, offset, data, len);
155148
ensure(flash_lock_write(), "secret write");
156149
mpu_restore(mpu_mode);
157-
return sectrue;
150+
return result;
158151
}
159152

160153
secbool secret_read(uint8_t *data, uint32_t offset, uint32_t len) {
@@ -435,16 +428,13 @@ void secret_bhk_regenerate(void) {
435428

436429
ensure(flash_area_erase(&BHK_AREA, NULL), "Failed regenerating BHK");
437430
ensure(flash_unlock_write(), "Failed regenerating BHK");
438-
for (int i = 0; i < 2; i++) {
439-
uint32_t val[4] = {0};
440-
for (int j = 0; j < 4; j++) {
441-
val[j] = rng_get();
442-
}
443-
secbool res =
444-
flash_area_write_quadword(&BHK_AREA, i * 4 * sizeof(uint32_t), val);
445-
memzero(val, sizeof(val));
446-
ensure(res, "Failed regenerating BHK");
431+
uint32_t val[8] = {0};
432+
for (int j = 0; j < ARRAY_LENGTH(val); j++) {
433+
val[j] = rng_get();
447434
}
435+
secbool res = flash_area_write_data(&BHK_AREA, 0, val, sizeof(val));
436+
memzero(val, sizeof(val));
437+
ensure(res, "Failed regenerating BHK");
448438

449439
mpu_restore(mpu_mode);
450440

0 commit comments

Comments
 (0)