aboutsummaryrefslogtreecommitdiff
path: root/modexp.c
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2020-03-04 17:06:26 -0500
committerPaul Selkirk <paul@psgd.org>2020-03-04 17:06:26 -0500
commitc1ef4b322756753251d5ff4125d819a156dd16e7 (patch)
tree14b59299cb80742f7275cd97163b20d1cfb455d3 /modexp.c
parentb983fd7369f0c09cf80657d25dc37bfce38b9606 (diff)
Take advantage of ModExpNG core's blinding factor mutation.
Diffstat (limited to 'modexp.c')
-rw-r--r--modexp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/modexp.c b/modexp.c
index d8e2904..8fea2ea 100644
--- a/modexp.c
+++ b/modexp.c
@@ -391,6 +391,7 @@ hal_error_t hal_modexpng(hal_modexpng_arg_t *a)
goto fail;
}
else {
+ /* set blinding factors to (1,1) */
uint8_t one[a->mod_len]; memset(one, 0, sizeof(one)); one[sizeof(one) - 1] = 1;
if ((err = set_buffer(a->core, MODEXPNG_ADDR_BANK_X, one, sizeof(one))) != HAL_OK ||
(err = set_buffer(a->core, MODEXPNG_ADDR_BANK_Y, one, sizeof(one))) != HAL_OK)
@@ -417,7 +418,10 @@ hal_error_t hal_modexpng(hal_modexpng_arg_t *a)
if ((err = hal_io_zero(a->core)) != HAL_OK ||
(err = hal_io_next(a->core)) != HAL_OK ||
(err = hal_io_wait_valid(a->core)) != HAL_OK ||
- (err = get_buffer(a->core, MODEXPNG_ADDR_BANK_S, a->result, a->result_len)) != HAL_OK)
+ (err = get_buffer(a->core, MODEXPNG_ADDR_BANK_S, a->result, a->result_len)) != HAL_OK ||
+ ((a->bf != NULL && a->ubf != NULL) &&
+ ((err = get_buffer(a->core, MODEXPNG_ADDR_BANK_XM, a->ubf, a->ubf_len)) != HAL_OK ||
+ (err = get_buffer(a->core, MODEXPNG_ADDR_BANK_YM, a->bf, a->bf_len)) != HAL_OK)))
goto fail;
fail: