6fe960d174
It actually works fine. I just forgot one of the typedefs last time. This gives a roughly 2x improvement on P-256 in clang-cl + OPENSSL_SMALL, the configuration used by Chrome. Before: Did 1302 ECDH P-256 operations in 1015000us (1282.8 ops/sec) Did 4250 ECDSA P-256 signing operations in 1047000us (4059.2 ops/sec) Did 1750 ECDSA P-256 verify operations in 1094000us (1599.6 ops/sec) After: Did 3250 ECDH P-256 operations in 1078000us (3014.8 ops/sec) Did 8250 ECDSA P-256 signing operations in 1016000us (8120.1 ops/sec) Did 3250 ECDSA P-256 verify operations in 1063000us (3057.4 ops/sec) (These were taken on a VM, so the measurements are extremely noisy, but this sort of improvement is visible regardless.) Alas, we do need a little extra bit of fiddling because division does not work (crbug.com/787617). Bug: chromium:787617 Update-Note: This removes the MSan uint128_t workaround which does not appear to be necessary anymore. Change-Id: I8361314608521e5bdaf0e7eeae7a02c33f55c69f Reviewed-on: https://boringssl-review.googlesource.com/23984 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> |
||
---|---|---|
.. | ||
asm | ||
add.c | ||
bn_test_to_fuzzer.go | ||
bn_test.cc | ||
bn_tests.txt | ||
bn.c | ||
bytes.c | ||
check_bn_tests.go | ||
cmp.c | ||
ctx.c | ||
div.c | ||
exponentiation.c | ||
gcd.c | ||
generic.c | ||
internal.h | ||
jacobi.c | ||
montgomery_inv.c | ||
montgomery.c | ||
mul.c | ||
prime.c | ||
random.c | ||
rsaz_exp.c | ||
rsaz_exp.h | ||
shift.c | ||
sqrt.c |