| //** github.com/glycerine/fast-elliptic-curve-p256 **// |
| |
| {{Types "Apache-2.0"}} |
| |
| ############################################################################## |
| # # |
| # Portions Copyright (c) 2015 Intel Corporation # |
| # Portions Copyright (c) 2015 CloudFlare, Inc. # |
| # All rights reserved. # |
| # # |
| # This software is made available to you under your choice of the # |
| # Apache V.2.0 and/or BSD license below: # |
| # # |
| ############################################################################## |
| # # |
| # Licensed under the Apache License, Version 2.0 (the "License"); # |
| # you may not use this file except in compliance with the License. # |
| # You may obtain a copy of the License at # |
| # # |
| # http://www.apache.org/licenses/LICENSE-2.0 # |
| # # |
| # Unless required by applicable law or agreed to in writing, software # |
| # distributed under the License is distributed on an "AS IS" BASIS, # |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # |
| # See the License for the specific language governing permissions and # |
| # limitations under the License. # |
| # # |
| ############################################################################## |
| # # |
| # Redistribution and use in source and binary forms, with or without # |
| # modification, are permitted provided that the following conditions are # |
| # met: # |
| # # |
| # # Redistributions of source code must retain the above copyright # |
| # notice, this list of conditions and the following disclaimer. # |
| # # |
| # # Redistributions in binary form must reproduce the above copyright # |
| # notice, this list of conditions and the following disclaimer in the # |
| # documentation and/or other materials provided with the # |
| # distribution. # |
| # # |
| # # Neither the name of the copyright holders nor the names of its # |
| # contributors may be used to endorse or promote products derived from # |
| # this software without specific prior written permission. # |
| # # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED # |
| # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR# |
| # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR # |
| # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # |
| # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # |
| # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # |
| # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # |
| # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # |
| # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # |
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # |
| # # |
| ############################################################################## |
| # Developers and authors: # |
| # Shay Gueron (1, 2), and Vlad Krasnov (1, 3) # |
| # (1) Intel Corporation, Israel Development Center # |
| # (2) University of Haifa # |
| # (3) CloudFlare, Inc. # |
| # Reference: # |
| # S.Gueron and V.Krasnov, "Fast Prime Field Elliptic Curve Cryptography with# |
| # 256 Bit Primes" # |
| # https://eprint.iacr.org/2013/816.pdf # |
| ############################################################################## |
| |
| # Further optimization by <appro@openssl.org>: |
| # |
| # this/original with/without -DECP_NISTZ256_ASM(*) |
| # Opteron +12-49% +110-150% |
| # Bulldozer +14-45% +175-210% |
| # P4 +18-46% n/a :-( |
| # Westmere +12-34% +80-87% |
| # Sandy Bridge +9-35% +110-120% |
| # Ivy Bridge +9-35% +110-125% |
| # Haswell +8-37% +140-160% |
| # Broadwell +18-58% +145-210% |
| # Atom +15-50% +130-180% |
| # VIA Nano +43-160% +300-480% |
| # |
| # (*) "without -DECP_NISTZ256_ASM" refers to build with |
| # "enable-ec_nistp_64_gcc_128"; |
| # |
| # Ranges denote minimum and maximum improvement coefficients depending |
| # on benchmark. Lower coefficients are for ECDSA sign, relatively fastest |
| # server-side operation. Keep in mind that +100% means 2x improvement. |
| */ |