6a289b3ec4
This does not appear to actually pull its weight. The purpose of this logic is to switch some adds to the faster add_mixed in the wNAF code, at the cost of a rather expensive inversion. This optimization kicks in for generic curves, so P-384 and P-521: With: Did 32130 ECDSA P-384 signing operations in 30077563us (1068.2 ops/sec) Did 27456 ECDSA P-384 verify operations in 30073086us (913.0 ops/sec) Did 14122 ECDSA P-521 signing operations in 30077407us (469.5 ops/sec) Did 11973 ECDSA P-521 verify operations in 30037330us (398.6 ops/sec) Without: Did 32445 ECDSA P-384 signing operations in 30069721us (1079.0 ops/sec) Did 27056 ECDSA P-384 verify operations in 30032303us (900.9 ops/sec) Did 13905 ECDSA P-521 signing operations in 30000430us (463.5 ops/sec) Did 11433 ECDSA P-521 verify operations in 30021876us (380.8 ops/sec) For single-point multiplication, the optimization is not useful. This makes sense as we only have one table's worth of additions to convert but still pay for the inversion. For double-point multiplication, it is slightly useful for P-384 and very useful for P-521. However, the next change to stack-allocate EC_FELEMs will more than compensate for removing it. (The immediate goal here is to simplify the EC_FELEM story.) Additionally, that this optimization was not useful for single-point multiplication implies that, should we wish to recover this, a modest 8-entry pre-computed (affine) base point table should have the same effect or better. Update-Note: I do not believe anything was calling either of these functions. (If necessary, we can always add no-op stubs as whether a point is affine is not visible to external code. It previously kicked in some optimizations, but those were removed for constant-time needs anyway.) Bug: 239 Change-Id: Ic9c51b001c45595cfe592274c7d5d652f4234839 Reviewed-on: https://boringssl-review.googlesource.com/27667 Reviewed-by: Adam Langley <agl@google.com> |
||
---|---|---|
.. | ||
asn1 | ||
base64 | ||
bio | ||
bn_extra | ||
buf | ||
bytestring | ||
chacha | ||
cipher_extra | ||
cmac | ||
conf | ||
curve25519 | ||
dh | ||
digest_extra | ||
dsa | ||
ec_extra | ||
ecdh | ||
ecdsa_extra | ||
engine | ||
err | ||
evp | ||
fipsmodule | ||
hkdf | ||
hmac_extra | ||
lhash | ||
obj | ||
pem | ||
perlasm | ||
pkcs7 | ||
pkcs8 | ||
poly1305 | ||
pool | ||
rand_extra | ||
rc4 | ||
rsa_extra | ||
stack | ||
test | ||
x509 | ||
x509v3 | ||
CMakeLists.txt | ||
compiler_test.cc | ||
constant_time_test.cc | ||
cpu-aarch64-fuchsia.c | ||
cpu-aarch64-linux.c | ||
cpu-arm-linux.c | ||
cpu-arm.c | ||
cpu-intel.c | ||
cpu-ppc64le.c | ||
crypto.c | ||
ex_data.c | ||
internal.h | ||
mem.c | ||
refcount_c11.c | ||
refcount_lock.c | ||
refcount_test.cc | ||
self_test.cc | ||
thread_none.c | ||
thread_pthread.c | ||
thread_test.cc | ||
thread_win.c | ||
thread.c |