Hanno Becker
5c8ea307b8
Reduce number of local MPIs in ECP mixed point addition
...
`ecp_add_mixed()` and `ecp_double_jac()` are the core subroutines
for elliptic curve arithmetic, and as such crucial for the performance
of ECP primitives like ECDHE and ECDSA.
This commit provides a very slight simplification and performance and
memory usage improvement to `ecp_add_mixed()` by removing the use of
three temporary MPIs used for coordinate calculations.
Where those variables were used, the code now writes directly to the
coordinate MPIs of the target elliptic curve point.
This is a valid change even if there is aliasing between input and
output, since at the time any of the coordinate MPIs in question is
written, the corresponding coordinates of both inputs are no longer
read.
(The analogous change in `ecp_double_jac()` can not be made since
this property does not hold for `ecp_double_jac()`.)
Signed-off-by: Hanno Becker <hanno.becker@arm.com>
2022-01-01 06:16:16 +00:00
..
2021-12-15 12:55:33 +01:00
2021-09-27 16:22:08 +02:00
2021-03-10 12:52:37 +00:00
2021-06-28 09:24:07 +01:00
2021-08-19 09:55:42 +01:00
2021-01-26 13:57:46 +01:00
2021-08-19 09:56:47 +01:00
2021-11-26 17:20:02 +01:00
2021-12-06 17:50:53 +00:00
2021-09-22 18:31:35 +01:00
2021-08-19 09:55:41 +01:00
2021-10-21 11:33:37 +02:00
2021-08-19 09:56:47 +01:00
2021-08-19 09:56:47 +01:00
2021-03-25 14:25:46 +01:00
2021-10-27 10:42:31 +02:00
2021-06-28 09:24:07 +01:00
2021-12-13 17:01:25 +01:00
2021-03-02 10:18:08 +01:00
2021-12-17 10:01:53 +00:00
2021-10-28 10:26:13 +08:00
2021-11-26 17:25:14 +01:00
2021-11-26 17:25:14 +01:00
2021-11-26 17:25:14 +01:00
2021-08-23 11:52:28 +01:00
2021-06-17 21:46:29 +02:00
2021-09-27 16:22:08 +02:00
2021-08-19 09:56:47 +01:00
2021-12-10 13:47:55 +01:00
2021-12-10 13:47:55 +01:00
2021-06-25 00:46:22 +02:00
2021-08-23 11:52:28 +01:00
2021-06-25 12:46:40 +01:00
2021-06-28 09:24:07 +01:00
2021-06-03 18:10:04 +02:00
2022-01-01 06:16:16 +00:00
2021-06-28 09:28:33 +01:00
2021-06-28 09:28:33 +01:00
2021-06-18 16:35:58 +01:00
2021-11-22 22:22:37 +01:00
2020-08-19 10:35:41 +02:00
2021-06-08 16:45:41 +02:00
2021-12-17 10:01:53 +00:00
2021-08-19 09:31:55 +01:00
2021-06-28 09:24:07 +01:00
2021-06-16 10:34:25 +02:00
2020-08-19 10:35:41 +02:00
2021-04-07 12:45:35 +01:00
2021-03-29 14:20:18 +01:00
2021-12-10 13:47:55 +01:00
2021-03-29 14:20:18 +01:00
2021-12-10 13:47:55 +01:00
2021-04-07 12:45:35 +01:00
2021-06-28 09:28:33 +01:00
2021-11-24 10:44:13 +01:00
2021-06-16 10:34:25 +02:00
2021-03-10 12:52:37 +00:00
2021-06-28 09:24:07 +01:00
2021-06-08 16:45:41 +02:00
2021-06-25 00:46:22 +02:00
2021-06-29 09:43:17 +02:00
2021-06-25 00:46:22 +02:00
2021-04-15 11:19:47 +01:00
2021-12-02 18:03:12 +00:00
2021-08-31 13:05:12 +02:00
2021-04-21 12:31:43 +02:00
2021-07-13 12:23:12 +02:00
2020-08-19 10:35:41 +02:00
2021-08-19 09:57:41 +01:00
2021-12-09 14:49:42 +01:00
2021-09-28 11:16:27 +01:00
2021-12-14 10:58:18 +01:00
2021-12-14 10:58:18 +01:00
2021-06-17 11:43:58 +02:00
2021-09-08 22:04:13 +05:30
2021-12-14 18:11:06 +01:00
2021-12-14 10:58:18 +01:00
2021-12-06 07:50:27 +01:00
2021-12-06 07:50:27 +01:00
2021-12-06 07:50:27 +01:00
2021-12-06 07:50:27 +01:00
2021-06-28 09:24:07 +01:00
2020-11-25 13:10:50 +01:00
2021-12-06 07:50:27 +01:00
2021-12-06 07:50:27 +01:00
2021-02-16 18:55:05 +01:00
2021-12-06 07:50:27 +01:00
2021-12-06 07:50:27 +01:00
2020-08-19 10:35:41 +02:00
2021-06-28 09:24:07 +01:00
2021-09-20 22:20:16 +02:00
2021-04-01 14:05:41 +02:00
2021-08-19 09:31:55 +01:00
2021-02-15 14:26:44 +01:00
2021-12-14 10:58:18 +01:00
2021-08-19 09:57:41 +01:00
2021-08-19 09:31:55 +01:00
2021-03-10 12:52:37 +00:00
2021-06-28 09:24:07 +01:00
2021-12-13 12:37:55 +01:00
2021-08-19 09:31:55 +01:00
2021-08-19 09:31:55 +01:00
2021-08-19 09:56:47 +01:00
2021-05-14 14:55:15 +01:00
2021-12-10 13:47:55 +01:00
2021-12-03 18:55:33 +01:00
2021-12-13 12:35:08 +01:00
2021-12-16 10:04:58 +01:00
2021-12-10 13:47:55 +01:00
2021-12-13 10:51:27 +00:00
2021-12-03 18:55:33 +01:00
2021-08-31 22:54:27 +02:00
2021-12-15 12:56:54 +01:00
2021-12-10 13:47:55 +01:00
2021-12-10 13:47:55 +01:00
2021-12-02 06:36:27 +00:00
2021-12-15 12:56:54 +01:00
2021-12-13 14:38:40 +01:00
2021-06-28 09:28:33 +01:00
2021-06-28 09:28:33 +01:00
2020-08-19 10:35:41 +02:00
2020-08-19 10:35:41 +02:00
2021-04-28 17:31:55 +01:00
2021-06-23 16:06:12 +01:00
2021-04-28 17:31:55 +01:00
2021-04-28 17:31:55 +01:00
2021-08-19 09:57:41 +01:00
2021-06-25 00:46:22 +02:00