ecp_nistz256 update.
authorAndy Polyakov <appro@openssl.org>
Thu, 23 Oct 2014 14:08:44 +0000 (16:08 +0200)
committerAndy Polyakov <appro@openssl.org>
Thu, 23 Oct 2014 14:08:44 +0000 (16:08 +0200)
commit3ff08e1dde56747011a702a9a5aae06cfa8ae5fc
treee141a2b9454de50db73c2ef5499c819fd6a8539b
parentb06f7d9ac0752083e7443dddc9e5ac3e198063d4
ecp_nistz256 update.

Facilitate switch to custom scatter-gather routines. This modification
does not change algorithms, only makes it possible to implement
alternative. This is achieved by a) moving precompute table to assembly
(perlasm parses ecp_nistz256_table.c and is free to rearrange data to
match gathering algorithm); b) adhering to explicit scatter subroutine
(which for now is simply a memcpy). First implementations that will use
this option are 32-bit assembly implementations, ARMv4 and x86, where
equivalent of current read-whole-table-select-single-value algorithm
is too time-consuming. [On side note, switching to scatter-gather on
x86_64 would allow to improve server-side ECDSA performance by ~5%].

Reviewed-by: Bodo Moeller <bodo@openssl.org>
crypto/crypto.h
crypto/ec/asm/ecp_nistz256-avx2.pl
crypto/ec/asm/ecp_nistz256-x86_64.pl
crypto/ec/ecp_nistz256.c