Bugfix and performance

This commit is contained in:
Peter D. Gray 2022-03-11 12:09:29 -05:00
parent 2c0e7a4914
commit eb9f8132d8
No known key found for this signature in database
GPG Key ID: F0E6CC6AFC16CF7B
2 changed files with 11 additions and 4 deletions

View File

@ -1062,9 +1062,16 @@ pin_fetch_secret(pinAttempt_t *args)
if(kn < 0) return EPIN_RANGE_ERR;
// read out the secret that corresponds to pin
rv = ae_encrypted_read(kn, KEYNUM_main_pin, digest, tmp, AE_SECRET_LEN);
if(rv) goto fail;
rv = ae_encrypted_read32(KEYNUM_check_secret, 0, KEYNUM_main_pin, digest, check);
// - seeing occasional comms failures here, so retry
for(int retry=0; retry<3; retry++) {
rv = ae_encrypted_read(kn, KEYNUM_main_pin, digest, tmp, AE_SECRET_LEN);
if(rv) continue;
rv = ae_encrypted_read32(KEYNUM_check_secret, 0, KEYNUM_main_pin, digest, check);
if(rv) continue;
break;
}
if(rv) goto fail;
// decrypt via a complex process.

View File

@ -90,7 +90,7 @@ rng_buffer(uint8_t *result, int len)
void
rng_delay(void)
{
uint32_t r = rng_sample() % 20;
uint32_t r = rng_sample() % 8;
uint32_t cnt = (1<<r);
while(cnt) {