提交 053fa39a 编写于 作者: R Richard Levitte

Conversion to UTF-8 where needed

This leaves behind files with names ending with '.iso-8859-1'.  These
should be safe to remove.  If something went wrong when re-encoding,
there will be some files with names ending with '.utf8' left behind.
Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 f608b406
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
*) Remove SSL_OP_TLS_BLOCK_PADDING_BUG. This is SSLeay legacy, we're *) Remove SSL_OP_TLS_BLOCK_PADDING_BUG. This is SSLeay legacy, we're
not aware of clients that still exhibit this bug, and the workaround not aware of clients that still exhibit this bug, and the workaround
hasn't been working properly for a while. hasn't been working properly for a while.
[Emilia Käsper] [Emilia Käsper]
*) The return type of BIO_number_read() and BIO_number_written() as well as *) The return type of BIO_number_read() and BIO_number_written() as well as
the corresponding num_read and num_write members in the BIO structure has the corresponding num_read and num_write members in the BIO structure has
...@@ -401,7 +401,7 @@ ...@@ -401,7 +401,7 @@
This parameter will be set to 1 or 0 depending on the ciphersuite selected This parameter will be set to 1 or 0 depending on the ciphersuite selected
by the SSL/TLS server library, indicating whether it can provide forward by the SSL/TLS server library, indicating whether it can provide forward
security. security.
[Emilia Käsper <emilia.kasper@esat.kuleuven.be> (Google)] [Emilia Käsper <emilia.kasper@esat.kuleuven.be> (Google)]
*) New -verify_name option in command line utilities to set verification *) New -verify_name option in command line utilities to set verification
parameters by name. parameters by name.
...@@ -488,9 +488,9 @@ ...@@ -488,9 +488,9 @@
callbacks. callbacks.
This issue was reported to OpenSSL by Robert Swiecki (Google), and This issue was reported to OpenSSL by Robert Swiecki (Google), and
independently by Hanno Böck. independently by Hanno Böck.
(CVE-2015-1789) (CVE-2015-1789)
[Emilia Käsper] [Emilia Käsper]
*) PKCS7 crash with missing EnvelopedContent *) PKCS7 crash with missing EnvelopedContent
...@@ -504,7 +504,7 @@ ...@@ -504,7 +504,7 @@
This issue was reported to OpenSSL by Michal Zalewski (Google). This issue was reported to OpenSSL by Michal Zalewski (Google).
(CVE-2015-1790) (CVE-2015-1790)
[Emilia Käsper] [Emilia Käsper]
*) CMS verify infinite loop with unknown hash function *) CMS verify infinite loop with unknown hash function
...@@ -623,7 +623,7 @@ ...@@ -623,7 +623,7 @@
This issue was reported to OpenSSL by Michal Zalewski (Google). This issue was reported to OpenSSL by Michal Zalewski (Google).
(CVE-2015-0289) (CVE-2015-0289)
[Emilia Käsper] [Emilia Käsper]
*) DoS via reachable assert in SSLv2 servers fix *) DoS via reachable assert in SSLv2 servers fix
...@@ -631,10 +631,10 @@ ...@@ -631,10 +631,10 @@
servers that both support SSLv2 and enable export cipher suites by sending servers that both support SSLv2 and enable export cipher suites by sending
a specially crafted SSLv2 CLIENT-MASTER-KEY message. a specially crafted SSLv2 CLIENT-MASTER-KEY message.
This issue was discovered by Sean Burford (Google) and Emilia Käsper This issue was discovered by Sean Burford (Google) and Emilia Käsper
(OpenSSL development team). (OpenSSL development team).
(CVE-2015-0293) (CVE-2015-0293)
[Emilia Käsper] [Emilia Käsper]
*) Empty CKE with client auth and DHE fix *) Empty CKE with client auth and DHE fix
...@@ -1139,12 +1139,12 @@ ...@@ -1139,12 +1139,12 @@
version does not match the session's version. Resuming with a different version does not match the session's version. Resuming with a different
version, while not strictly forbidden by the RFC, is of questionable version, while not strictly forbidden by the RFC, is of questionable
sanity and breaks all known clients. sanity and breaks all known clients.
[David Benjamin, Emilia Käsper] [David Benjamin, Emilia Käsper]
*) Tighten handling of the ChangeCipherSpec (CCS) message: reject *) Tighten handling of the ChangeCipherSpec (CCS) message: reject
early CCS messages during renegotiation. (Note that because early CCS messages during renegotiation. (Note that because
renegotiation is encrypted, this early CCS was not exploitable.) renegotiation is encrypted, this early CCS was not exploitable.)
[Emilia Käsper] [Emilia Käsper]
*) Tighten client-side session ticket handling during renegotiation: *) Tighten client-side session ticket handling during renegotiation:
ensure that the client only accepts a session ticket if the server sends ensure that the client only accepts a session ticket if the server sends
...@@ -1155,7 +1155,7 @@ ...@@ -1155,7 +1155,7 @@
Similarly, ensure that the client requires a session ticket if one Similarly, ensure that the client requires a session ticket if one
was advertised in the ServerHello. Previously, a TLS client would was advertised in the ServerHello. Previously, a TLS client would
ignore a missing NewSessionTicket message. ignore a missing NewSessionTicket message.
[Emilia Käsper] [Emilia Käsper]
Changes between 1.0.1i and 1.0.1j [15 Oct 2014] Changes between 1.0.1i and 1.0.1j [15 Oct 2014]
...@@ -1235,10 +1235,10 @@ ...@@ -1235,10 +1235,10 @@
with a null pointer dereference (read) by specifying an anonymous (EC)DH with a null pointer dereference (read) by specifying an anonymous (EC)DH
ciphersuite and sending carefully crafted handshake messages. ciphersuite and sending carefully crafted handshake messages.
Thanks to Felix Gröbert (Google) for discovering and researching this Thanks to Felix Gröbert (Google) for discovering and researching this
issue. issue.
(CVE-2014-3510) (CVE-2014-3510)
[Emilia Käsper] [Emilia Käsper]
*) By sending carefully crafted DTLS packets an attacker could cause openssl *) By sending carefully crafted DTLS packets an attacker could cause openssl
to leak memory. This can be exploited through a Denial of Service attack. to leak memory. This can be exploited through a Denial of Service attack.
...@@ -1275,7 +1275,7 @@ ...@@ -1275,7 +1275,7 @@
properly negotiated with the client. This can be exploited through a properly negotiated with the client. This can be exploited through a
Denial of Service attack. Denial of Service attack.
Thanks to Joonas Kuorilehto and Riku Hietamäki (Codenomicon) for Thanks to Joonas Kuorilehto and Riku Hietamäki (Codenomicon) for
discovering and researching this issue. discovering and researching this issue.
(CVE-2014-5139) (CVE-2014-5139)
[Steve Henson] [Steve Henson]
...@@ -1287,7 +1287,7 @@ ...@@ -1287,7 +1287,7 @@
Thanks to Ivan Fratric (Google) for discovering this issue. Thanks to Ivan Fratric (Google) for discovering this issue.
(CVE-2014-3508) (CVE-2014-3508)
[Emilia Käsper, and Steve Henson] [Emilia Käsper, and Steve Henson]
*) Fix ec_GFp_simple_points_make_affine (thus, EC_POINTs_mul etc.) *) Fix ec_GFp_simple_points_make_affine (thus, EC_POINTs_mul etc.)
for corner cases. (Certain input points at infinity could lead to for corner cases. (Certain input points at infinity could lead to
...@@ -1317,15 +1317,15 @@ ...@@ -1317,15 +1317,15 @@
client or server. This is potentially exploitable to run arbitrary client or server. This is potentially exploitable to run arbitrary
code on a vulnerable client or server. code on a vulnerable client or server.
Thanks to Jüri Aedla for reporting this issue. (CVE-2014-0195) Thanks to Jüri Aedla for reporting this issue. (CVE-2014-0195)
[Jüri Aedla, Steve Henson] [Jüri Aedla, Steve Henson]
*) Fix bug in TLS code where clients enable anonymous ECDH ciphersuites *) Fix bug in TLS code where clients enable anonymous ECDH ciphersuites
are subject to a denial of service attack. are subject to a denial of service attack.
Thanks to Felix Gröbert and Ivan Fratric at Google for discovering Thanks to Felix Gröbert and Ivan Fratric at Google for discovering
this issue. (CVE-2014-3470) this issue. (CVE-2014-3470)
[Felix Gröbert, Ivan Fratric, Steve Henson] [Felix Gröbert, Ivan Fratric, Steve Henson]
*) Harmonize version and its documentation. -f flag is used to display *) Harmonize version and its documentation. -f flag is used to display
compilation flags. compilation flags.
...@@ -1404,9 +1404,9 @@ ...@@ -1404,9 +1404,9 @@
Thanks go to Nadhem Alfardan and Kenny Paterson of the Information Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
Security Group at Royal Holloway, University of London Security Group at Royal Holloway, University of London
(www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and
Emilia Käsper for the initial patch. Emilia Käsper for the initial patch.
(CVE-2013-0169) (CVE-2013-0169)
[Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson] [Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson]
*) Fix flaw in AESNI handling of TLS 1.2 and 1.1 records for CBC mode *) Fix flaw in AESNI handling of TLS 1.2 and 1.1 records for CBC mode
ciphersuites which can be exploited in a denial of service attack. ciphersuites which can be exploited in a denial of service attack.
...@@ -1581,7 +1581,7 @@ ...@@ -1581,7 +1581,7 @@
EC_GROUP_new_by_curve_name() will automatically use these (while EC_GROUP_new_by_curve_name() will automatically use these (while
EC_GROUP_new_curve_GFp() currently prefers the more flexible EC_GROUP_new_curve_GFp() currently prefers the more flexible
implementations). implementations).
[Emilia Käsper, Adam Langley, Bodo Moeller (Google)] [Emilia Käsper, Adam Langley, Bodo Moeller (Google)]
*) Use type ossl_ssize_t instad of ssize_t which isn't available on *) Use type ossl_ssize_t instad of ssize_t which isn't available on
all platforms. Move ssize_t definition from e_os.h to the public all platforms. Move ssize_t definition from e_os.h to the public
...@@ -1857,7 +1857,7 @@ ...@@ -1857,7 +1857,7 @@
[Adam Langley (Google)] [Adam Langley (Google)]
*) Fix spurious failures in ecdsatest.c. *) Fix spurious failures in ecdsatest.c.
[Emilia Käsper (Google)] [Emilia Käsper (Google)]
*) Fix the BIO_f_buffer() implementation (which was mixing different *) Fix the BIO_f_buffer() implementation (which was mixing different
interpretations of the '..._len' fields). interpretations of the '..._len' fields).
...@@ -1871,7 +1871,7 @@ ...@@ -1871,7 +1871,7 @@
lock to call BN_BLINDING_invert_ex, and avoids one use of lock to call BN_BLINDING_invert_ex, and avoids one use of
BN_BLINDING_update for each BN_BLINDING structure (previously, BN_BLINDING_update for each BN_BLINDING structure (previously,
the last update always remained unused). the last update always remained unused).
[Emilia Käsper (Google)] [Emilia Käsper (Google)]
*) In ssl3_clear, preserve s3->init_extra along with s3->rbuf. *) In ssl3_clear, preserve s3->init_extra along with s3->rbuf.
[Bob Buckholz (Google)] [Bob Buckholz (Google)]
...@@ -2680,7 +2680,7 @@ ...@@ -2680,7 +2680,7 @@
*) Add RFC 3161 compliant time stamp request creation, response generation *) Add RFC 3161 compliant time stamp request creation, response generation
and response verification functionality. and response verification functionality.
[Zoltán Glózik <zglozik@opentsa.org>, The OpenTSA Project] [Zoltán Glózik <zglozik@opentsa.org>, The OpenTSA Project]
*) Add initial support for TLS extensions, specifically for the server_name *) Add initial support for TLS extensions, specifically for the server_name
extension so far. The SSL_SESSION, SSL_CTX, and SSL data structures now extension so far. The SSL_SESSION, SSL_CTX, and SSL data structures now
...@@ -3848,7 +3848,7 @@ ...@@ -3848,7 +3848,7 @@
*) BN_CTX_get() should return zero-valued bignums, providing the same *) BN_CTX_get() should return zero-valued bignums, providing the same
initialised value as BN_new(). initialised value as BN_new().
[Geoff Thorpe, suggested by Ulf Möller] [Geoff Thorpe, suggested by Ulf Möller]
*) Support for inhibitAnyPolicy certificate extension. *) Support for inhibitAnyPolicy certificate extension.
[Steve Henson] [Steve Henson]
...@@ -3867,7 +3867,7 @@ ...@@ -3867,7 +3867,7 @@
some point, these tighter rules will become openssl's default to improve some point, these tighter rules will become openssl's default to improve
maintainability, though the assert()s and other overheads will remain only maintainability, though the assert()s and other overheads will remain only
in debugging configurations. See bn.h for more details. in debugging configurations. See bn.h for more details.
[Geoff Thorpe, Nils Larsch, Ulf Möller] [Geoff Thorpe, Nils Larsch, Ulf Möller]
*) BN_CTX_init() has been deprecated, as BN_CTX is an opaque structure *) BN_CTX_init() has been deprecated, as BN_CTX is an opaque structure
that can only be obtained through BN_CTX_new() (which implicitly that can only be obtained through BN_CTX_new() (which implicitly
...@@ -3934,7 +3934,7 @@ ...@@ -3934,7 +3934,7 @@
[Douglas Stebila (Sun Microsystems Laboratories)] [Douglas Stebila (Sun Microsystems Laboratories)]
*) Add the possibility to load symbols globally with DSO. *) Add the possibility to load symbols globally with DSO.
[Götz Babin-Ebell <babin-ebell@trustcenter.de> via Richard Levitte] [Götz Babin-Ebell <babin-ebell@trustcenter.de> via Richard Levitte]
*) Add the functions ERR_set_mark() and ERR_pop_to_mark() for better *) Add the functions ERR_set_mark() and ERR_pop_to_mark() for better
control of the error stack. control of the error stack.
...@@ -4649,7 +4649,7 @@ ...@@ -4649,7 +4649,7 @@
[Steve Henson] [Steve Henson]
*) Undo Cygwin change. *) Undo Cygwin change.
[Ulf Möller] [Ulf Möller]
*) Added support for proxy certificates according to RFC 3820. *) Added support for proxy certificates according to RFC 3820.
Because they may be a security thread to unaware applications, Because they may be a security thread to unaware applications,
...@@ -4682,11 +4682,11 @@ ...@@ -4682,11 +4682,11 @@
[Stephen Henson, reported by UK NISCC] [Stephen Henson, reported by UK NISCC]
*) Use Windows randomness collection on Cygwin. *) Use Windows randomness collection on Cygwin.
[Ulf Möller] [Ulf Möller]
*) Fix hang in EGD/PRNGD query when communication socket is closed *) Fix hang in EGD/PRNGD query when communication socket is closed
prematurely by EGD/PRNGD. prematurely by EGD/PRNGD.
[Darren Tucker <dtucker@zip.com.au> via Lutz Jänicke, resolves #1014] [Darren Tucker <dtucker@zip.com.au> via Lutz Jänicke, resolves #1014]
*) Prompt for pass phrases when appropriate for PKCS12 input format. *) Prompt for pass phrases when appropriate for PKCS12 input format.
[Steve Henson] [Steve Henson]
...@@ -5148,7 +5148,7 @@ ...@@ -5148,7 +5148,7 @@
pointers passed to them whenever necessary. Otherwise it is possible pointers passed to them whenever necessary. Otherwise it is possible
the caller may have overwritten (or deallocated) the original string the caller may have overwritten (or deallocated) the original string
data when a later ENGINE operation tries to use the stored values. data when a later ENGINE operation tries to use the stored values.
[Götz Babin-Ebell <babinebell@trustcenter.de>] [Götz Babin-Ebell <babinebell@trustcenter.de>]
*) Improve diagnostics in file reading and command-line digests. *) Improve diagnostics in file reading and command-line digests.
[Ben Laurie aided and abetted by Solar Designer <solar@openwall.com>] [Ben Laurie aided and abetted by Solar Designer <solar@openwall.com>]
...@@ -7253,7 +7253,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -7253,7 +7253,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Bodo Moeller] [Bodo Moeller]
*) BN_sqr() bug fix. *) BN_sqr() bug fix.
[Ulf Möller, reported by Jim Ellis <jim.ellis@cavium.com>] [Ulf Möller, reported by Jim Ellis <jim.ellis@cavium.com>]
*) Rabin-Miller test analyses assume uniformly distributed witnesses, *) Rabin-Miller test analyses assume uniformly distributed witnesses,
so use BN_pseudo_rand_range() instead of using BN_pseudo_rand() so use BN_pseudo_rand_range() instead of using BN_pseudo_rand()
...@@ -7413,7 +7413,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -7413,7 +7413,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Bodo Moeller] [Bodo Moeller]
*) Fix OAEP check. *) Fix OAEP check.
[Ulf Möller, Bodo Möller] [Ulf Möller, Bodo Möller]
*) The countermeasure against Bleichbacher's attack on PKCS #1 v1.5 *) The countermeasure against Bleichbacher's attack on PKCS #1 v1.5
RSA encryption was accidentally removed in s3_srvr.c in OpenSSL 0.9.5 RSA encryption was accidentally removed in s3_srvr.c in OpenSSL 0.9.5
...@@ -7675,10 +7675,10 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -7675,10 +7675,10 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Bodo Moeller] [Bodo Moeller]
*) Use better test patterns in bntest. *) Use better test patterns in bntest.
[Ulf Möller] [Ulf Möller]
*) rand_win.c fix for Borland C. *) rand_win.c fix for Borland C.
[Ulf Möller] [Ulf Möller]
*) BN_rshift bugfix for n == 0. *) BN_rshift bugfix for n == 0.
[Bodo Moeller] [Bodo Moeller]
...@@ -7823,14 +7823,14 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -7823,14 +7823,14 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) New BIO_shutdown_wr macro, which invokes the BIO_C_SHUTDOWN_WR *) New BIO_shutdown_wr macro, which invokes the BIO_C_SHUTDOWN_WR
BIO_ctrl (for BIO pairs). BIO_ctrl (for BIO pairs).
[Bodo Möller] [Bodo Möller]
*) Add DSO method for VMS. *) Add DSO method for VMS.
[Richard Levitte] [Richard Levitte]
*) Bug fix: Montgomery multiplication could produce results with the *) Bug fix: Montgomery multiplication could produce results with the
wrong sign. wrong sign.
[Ulf Möller] [Ulf Möller]
*) Add RPM specification openssl.spec and modify it to build three *) Add RPM specification openssl.spec and modify it to build three
packages. The default package contains applications, application packages. The default package contains applications, application
...@@ -7848,7 +7848,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -7848,7 +7848,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Don't set the two most significant bits to one when generating a *) Don't set the two most significant bits to one when generating a
random number < q in the DSA library. random number < q in the DSA library.
[Ulf Möller] [Ulf Möller]
*) New SSL API mode 'SSL_MODE_AUTO_RETRY'. This disables the default *) New SSL API mode 'SSL_MODE_AUTO_RETRY'. This disables the default
behaviour that SSL_read may result in SSL_ERROR_WANT_READ (even if behaviour that SSL_read may result in SSL_ERROR_WANT_READ (even if
...@@ -8114,7 +8114,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8114,7 +8114,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Randomness polling function for Win9x, as described in: *) Randomness polling function for Win9x, as described in:
Peter Gutmann, Software Generation of Practically Strong Peter Gutmann, Software Generation of Practically Strong
Random Numbers. Random Numbers.
[Ulf Möller] [Ulf Möller]
*) Fix so PRNG is seeded in req if using an already existing *) Fix so PRNG is seeded in req if using an already existing
DSA key. DSA key.
...@@ -8334,7 +8334,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8334,7 +8334,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) Eliminate non-ANSI declarations in crypto.h and stack.h. *) Eliminate non-ANSI declarations in crypto.h and stack.h.
[Ulf Möller] [Ulf Möller]
*) Fix for SSL server purpose checking. Server checking was *) Fix for SSL server purpose checking. Server checking was
rejecting certificates which had extended key usage present rejecting certificates which had extended key usage present
...@@ -8366,7 +8366,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8366,7 +8366,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Bodo Moeller] [Bodo Moeller]
*) Bugfix for linux-elf makefile.one. *) Bugfix for linux-elf makefile.one.
[Ulf Möller] [Ulf Möller]
*) RSA_get_default_method() will now cause a default *) RSA_get_default_method() will now cause a default
RSA_METHOD to be chosen if one doesn't exist already. RSA_METHOD to be chosen if one doesn't exist already.
...@@ -8455,7 +8455,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8455,7 +8455,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) des_quad_cksum() byte order bug fix. *) des_quad_cksum() byte order bug fix.
[Ulf Möller, using the problem description in krb4-0.9.7, where [Ulf Möller, using the problem description in krb4-0.9.7, where
the solution is attributed to Derrick J Brashear <shadow@DEMENTIA.ORG>] the solution is attributed to Derrick J Brashear <shadow@DEMENTIA.ORG>]
*) Fix so V_ASN1_APP_CHOOSE works again: however its use is strongly *) Fix so V_ASN1_APP_CHOOSE works again: however its use is strongly
...@@ -8556,7 +8556,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8556,7 +8556,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Rolf Haberrecker <rolf@suse.de>] [Rolf Haberrecker <rolf@suse.de>]
*) Assembler module support for Mingw32. *) Assembler module support for Mingw32.
[Ulf Möller] [Ulf Möller]
*) Shared library support for HPUX (in shlib/). *) Shared library support for HPUX (in shlib/).
[Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE> and Anonymous] [Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE> and Anonymous]
...@@ -8575,7 +8575,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8575,7 +8575,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) BN_mul bugfix: In bn_mul_part_recursion() only the a>a[n] && b>b[n] *) BN_mul bugfix: In bn_mul_part_recursion() only the a>a[n] && b>b[n]
case was implemented. This caused BN_div_recp() to fail occasionally. case was implemented. This caused BN_div_recp() to fail occasionally.
[Ulf Möller] [Ulf Möller]
*) Add an optional second argument to the set_label() in the perl *) Add an optional second argument to the set_label() in the perl
assembly language builder. If this argument exists and is set assembly language builder. If this argument exists and is set
...@@ -8605,14 +8605,14 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8605,14 +8605,14 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) Fix potential buffer overrun problem in BIO_printf(). *) Fix potential buffer overrun problem in BIO_printf().
[Ulf Möller, using public domain code by Patrick Powell; problem [Ulf Möller, using public domain code by Patrick Powell; problem
pointed out by David Sacerdote <das33@cornell.edu>] pointed out by David Sacerdote <das33@cornell.edu>]
*) Support EGD <http://www.lothar.com/tech/crypto/>. New functions *) Support EGD <http://www.lothar.com/tech/crypto/>. New functions
RAND_egd() and RAND_status(). In the command line application, RAND_egd() and RAND_status(). In the command line application,
the EGD socket can be specified like a seed file using RANDFILE the EGD socket can be specified like a seed file using RANDFILE
or -rand. or -rand.
[Ulf Möller] [Ulf Möller]
*) Allow the string CERTIFICATE to be tolerated in PKCS#7 structures. *) Allow the string CERTIFICATE to be tolerated in PKCS#7 structures.
Some CAs (e.g. Verisign) distribute certificates in this form. Some CAs (e.g. Verisign) distribute certificates in this form.
...@@ -8645,7 +8645,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8645,7 +8645,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
#define OPENSSL_ALGORITHM_DEFINES #define OPENSSL_ALGORITHM_DEFINES
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
defines all pertinent NO_<algo> symbols, such as NO_IDEA, NO_RSA, etc. defines all pertinent NO_<algo> symbols, such as NO_IDEA, NO_RSA, etc.
[Richard Levitte, Ulf and Bodo Möller] [Richard Levitte, Ulf and Bodo Möller]
*) Bugfix: Tolerate fragmentation and interleaving in the SSL 3/TLS *) Bugfix: Tolerate fragmentation and interleaving in the SSL 3/TLS
record layer. record layer.
...@@ -8696,17 +8696,17 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8696,17 +8696,17 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Bug fix for BN_div_recp() for numerators with an even number of *) Bug fix for BN_div_recp() for numerators with an even number of
bits. bits.
[Ulf Möller] [Ulf Möller]
*) More tests in bntest.c, and changed test_bn output. *) More tests in bntest.c, and changed test_bn output.
[Ulf Möller] [Ulf Möller]
*) ./config recognizes MacOS X now. *) ./config recognizes MacOS X now.
[Andy Polyakov] [Andy Polyakov]
*) Bug fix for BN_div() when the first words of num and divsor are *) Bug fix for BN_div() when the first words of num and divsor are
equal (it gave wrong results if (rem=(n1-q*d0)&BN_MASK2) < d0). equal (it gave wrong results if (rem=(n1-q*d0)&BN_MASK2) < d0).
[Ulf Möller] [Ulf Möller]
*) Add support for various broken PKCS#8 formats, and command line *) Add support for various broken PKCS#8 formats, and command line
options to produce them. options to produce them.
...@@ -8714,11 +8714,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8714,11 +8714,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) New functions BN_CTX_start(), BN_CTX_get() and BT_CTX_end() to *) New functions BN_CTX_start(), BN_CTX_get() and BT_CTX_end() to
get temporary BIGNUMs from a BN_CTX. get temporary BIGNUMs from a BN_CTX.
[Ulf Möller] [Ulf Möller]
*) Correct return values in BN_mod_exp_mont() and BN_mod_exp2_mont() *) Correct return values in BN_mod_exp_mont() and BN_mod_exp2_mont()
for p == 0. for p == 0.
[Ulf Möller] [Ulf Möller]
*) Change the SSLeay_add_all_*() functions to OpenSSL_add_all_*() and *) Change the SSLeay_add_all_*() functions to OpenSSL_add_all_*() and
include a #define from the old name to the new. The original intent include a #define from the old name to the new. The original intent
...@@ -8742,7 +8742,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8742,7 +8742,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Source code cleanups: use const where appropriate, eliminate casts, *) Source code cleanups: use const where appropriate, eliminate casts,
use void * instead of char * in lhash. use void * instead of char * in lhash.
[Ulf Möller] [Ulf Möller]
*) Bugfix: ssl3_send_server_key_exchange was not restartable *) Bugfix: ssl3_send_server_key_exchange was not restartable
(the state was not changed to SSL3_ST_SW_KEY_EXCH_B, and because of (the state was not changed to SSL3_ST_SW_KEY_EXCH_B, and because of
...@@ -8787,13 +8787,13 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8787,13 +8787,13 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) New function BN_pseudo_rand(). *) New function BN_pseudo_rand().
[Ulf Möller] [Ulf Möller]
*) Clean up BN_mod_mul_montgomery(): replace the broken (and unreadable) *) Clean up BN_mod_mul_montgomery(): replace the broken (and unreadable)
bignum version of BN_from_montgomery() with the working code from bignum version of BN_from_montgomery() with the working code from
SSLeay 0.9.0 (the word based version is faster anyway), and clean up SSLeay 0.9.0 (the word based version is faster anyway), and clean up
the comments. the comments.
[Ulf Möller] [Ulf Möller]
*) Avoid a race condition in s2_clnt.c (function get_server_hello) that *) Avoid a race condition in s2_clnt.c (function get_server_hello) that
made it impossible to use the same SSL_SESSION data structure in made it impossible to use the same SSL_SESSION data structure in
...@@ -8803,25 +8803,25 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8803,25 +8803,25 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) The return value of RAND_load_file() no longer counts bytes obtained *) The return value of RAND_load_file() no longer counts bytes obtained
by stat(). RAND_load_file(..., -1) is new and uses the complete file by stat(). RAND_load_file(..., -1) is new and uses the complete file
to seed the PRNG (previously an explicit byte count was required). to seed the PRNG (previously an explicit byte count was required).
[Ulf Möller, Bodo Möller] [Ulf Möller, Bodo Möller]
*) Clean up CRYPTO_EX_DATA functions, some of these didn't have prototypes *) Clean up CRYPTO_EX_DATA functions, some of these didn't have prototypes
used (char *) instead of (void *) and had casts all over the place. used (char *) instead of (void *) and had casts all over the place.
[Steve Henson] [Steve Henson]
*) Make BN_generate_prime() return NULL on error if ret!=NULL. *) Make BN_generate_prime() return NULL on error if ret!=NULL.
[Ulf Möller] [Ulf Möller]
*) Retain source code compatibility for BN_prime_checks macro: *) Retain source code compatibility for BN_prime_checks macro:
BN_is_prime(..., BN_prime_checks, ...) now uses BN_is_prime(..., BN_prime_checks, ...) now uses
BN_prime_checks_for_size to determine the appropriate number of BN_prime_checks_for_size to determine the appropriate number of
Rabin-Miller iterations. Rabin-Miller iterations.
[Ulf Möller] [Ulf Möller]
*) Diffie-Hellman uses "safe" primes: DH_check() return code renamed to *) Diffie-Hellman uses "safe" primes: DH_check() return code renamed to
DH_CHECK_P_NOT_SAFE_PRIME. DH_CHECK_P_NOT_SAFE_PRIME.
(Check if this is true? OpenPGP calls them "strong".) (Check if this is true? OpenPGP calls them "strong".)
[Ulf Möller] [Ulf Möller]
*) Merge the functionality of "dh" and "gendh" programs into a new program *) Merge the functionality of "dh" and "gendh" programs into a new program
"dhparam". The old programs are retained for now but will handle DH keys "dhparam". The old programs are retained for now but will handle DH keys
...@@ -8877,7 +8877,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8877,7 +8877,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Add missing #ifndefs that caused missing symbols when building libssl *) Add missing #ifndefs that caused missing symbols when building libssl
as a shared library without RSA. Use #ifndef NO_SSL2 instead of as a shared library without RSA. Use #ifndef NO_SSL2 instead of
NO_RSA in ssl/s2*.c. NO_RSA in ssl/s2*.c.
[Kris Kennaway <kris@hub.freebsd.org>, modified by Ulf Möller] [Kris Kennaway <kris@hub.freebsd.org>, modified by Ulf Möller]
*) Precautions against using the PRNG uninitialized: RAND_bytes() now *) Precautions against using the PRNG uninitialized: RAND_bytes() now
has a return value which indicates the quality of the random data has a return value which indicates the quality of the random data
...@@ -8886,7 +8886,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8886,7 +8886,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
guaranteed to be unique but not unpredictable. RAND_add is like guaranteed to be unique but not unpredictable. RAND_add is like
RAND_seed, but takes an extra argument for an entropy estimate RAND_seed, but takes an extra argument for an entropy estimate
(RAND_seed always assumes full entropy). (RAND_seed always assumes full entropy).
[Ulf Möller] [Ulf Möller]
*) Do more iterations of Rabin-Miller probable prime test (specifically, *) Do more iterations of Rabin-Miller probable prime test (specifically,
3 for 1024-bit primes, 6 for 512-bit primes, 12 for 256-bit primes 3 for 1024-bit primes, 6 for 512-bit primes, 12 for 256-bit primes
...@@ -8916,7 +8916,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -8916,7 +8916,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) Honor the no-xxx Configure options when creating .DEF files. *) Honor the no-xxx Configure options when creating .DEF files.
[Ulf Möller] [Ulf Möller]
*) Add PKCS#10 attributes to field table: challengePassword, *) Add PKCS#10 attributes to field table: challengePassword,
unstructuredName and unstructuredAddress. These are taken from unstructuredName and unstructuredAddress. These are taken from
...@@ -9750,7 +9750,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -9750,7 +9750,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) More DES library cleanups: remove references to srand/rand and *) More DES library cleanups: remove references to srand/rand and
delete an unused file. delete an unused file.
[Ulf Möller] [Ulf Möller]
*) Add support for the the free Netwide assembler (NASM) under Win32, *) Add support for the the free Netwide assembler (NASM) under Win32,
since not many people have MASM (ml) and it can be hard to obtain. since not many people have MASM (ml) and it can be hard to obtain.
...@@ -9839,7 +9839,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -9839,7 +9839,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
worked. worked.
*) Fix problems with no-hmac etc. *) Fix problems with no-hmac etc.
[Ulf Möller, pointed out by Brian Wellington <bwelling@tislabs.com>] [Ulf Möller, pointed out by Brian Wellington <bwelling@tislabs.com>]
*) New functions RSA_get_default_method(), RSA_set_method() and *) New functions RSA_get_default_method(), RSA_set_method() and
RSA_get_method(). These allows replacement of RSA_METHODs without having RSA_get_method(). These allows replacement of RSA_METHODs without having
...@@ -9956,7 +9956,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -9956,7 +9956,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Ben Laurie] [Ben Laurie]
*) DES library cleanups. *) DES library cleanups.
[Ulf Möller] [Ulf Möller]
*) Add support for PKCS#5 v2.0 PBE algorithms. This will permit PKCS#8 to be *) Add support for PKCS#5 v2.0 PBE algorithms. This will permit PKCS#8 to be
used with any cipher unlike PKCS#5 v1.5 which can at most handle 64 bit used with any cipher unlike PKCS#5 v1.5 which can at most handle 64 bit
...@@ -9999,7 +9999,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -9999,7 +9999,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Christian Forster <fo@hawo.stw.uni-erlangen.de>] [Christian Forster <fo@hawo.stw.uni-erlangen.de>]
*) config now generates no-xxx options for missing ciphers. *) config now generates no-xxx options for missing ciphers.
[Ulf Möller] [Ulf Möller]
*) Support the EBCDIC character set (work in progress). *) Support the EBCDIC character set (work in progress).
File ebcdic.c not yet included because it has a different license. File ebcdic.c not yet included because it has a different license.
...@@ -10112,7 +10112,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10112,7 +10112,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Bodo Moeller] [Bodo Moeller]
*) Move openssl.cnf out of lib/. *) Move openssl.cnf out of lib/.
[Ulf Möller] [Ulf Möller]
*) Fix various things to let OpenSSL even pass ``egcc -pipe -O2 -Wall *) Fix various things to let OpenSSL even pass ``egcc -pipe -O2 -Wall
-Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes
...@@ -10169,10 +10169,10 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10169,10 +10169,10 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Ben Laurie] [Ben Laurie]
*) Support Borland C++ builder. *) Support Borland C++ builder.
[Janez Jere <jj@void.si>, modified by Ulf Möller] [Janez Jere <jj@void.si>, modified by Ulf Möller]
*) Support Mingw32. *) Support Mingw32.
[Ulf Möller] [Ulf Möller]
*) SHA-1 cleanups and performance enhancements. *) SHA-1 cleanups and performance enhancements.
[Andy Polyakov <appro@fy.chalmers.se>] [Andy Polyakov <appro@fy.chalmers.se>]
...@@ -10181,7 +10181,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10181,7 +10181,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Andy Polyakov <appro@fy.chalmers.se>] [Andy Polyakov <appro@fy.chalmers.se>]
*) Accept any -xxx and +xxx compiler options in Configure. *) Accept any -xxx and +xxx compiler options in Configure.
[Ulf Möller] [Ulf Möller]
*) Update HPUX configuration. *) Update HPUX configuration.
[Anonymous] [Anonymous]
...@@ -10214,7 +10214,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10214,7 +10214,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Bodo Moeller] [Bodo Moeller]
*) OAEP decoding bug fix. *) OAEP decoding bug fix.
[Ulf Möller] [Ulf Möller]
*) Support INSTALL_PREFIX for package builders, as proposed by *) Support INSTALL_PREFIX for package builders, as proposed by
David Harris. David Harris.
...@@ -10237,21 +10237,21 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10237,21 +10237,21 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Niels Poppe <niels@netbox.org>] [Niels Poppe <niels@netbox.org>]
*) New Configure option no-<cipher> (rsa, idea, rc5, ...). *) New Configure option no-<cipher> (rsa, idea, rc5, ...).
[Ulf Möller] [Ulf Möller]
*) Add the PKCS#12 API documentation to openssl.txt. Preliminary support for *) Add the PKCS#12 API documentation to openssl.txt. Preliminary support for
extension adding in x509 utility. extension adding in x509 utility.
[Steve Henson] [Steve Henson]
*) Remove NOPROTO sections and error code comments. *) Remove NOPROTO sections and error code comments.
[Ulf Möller] [Ulf Möller]
*) Partial rewrite of the DEF file generator to now parse the ANSI *) Partial rewrite of the DEF file generator to now parse the ANSI
prototypes. prototypes.
[Steve Henson] [Steve Henson]
*) New Configure options --prefix=DIR and --openssldir=DIR. *) New Configure options --prefix=DIR and --openssldir=DIR.
[Ulf Möller] [Ulf Möller]
*) Complete rewrite of the error code script(s). It is all now handled *) Complete rewrite of the error code script(s). It is all now handled
by one script at the top level which handles error code gathering, by one script at the top level which handles error code gathering,
...@@ -10280,7 +10280,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10280,7 +10280,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) Move the autogenerated header file parts to crypto/opensslconf.h. *) Move the autogenerated header file parts to crypto/opensslconf.h.
[Ulf Möller] [Ulf Möller]
*) Fix new 56-bit DES export ciphersuites: they were using 7 bytes instead of *) Fix new 56-bit DES export ciphersuites: they were using 7 bytes instead of
8 of keying material. Merlin has also confirmed interop with this fix 8 of keying material. Merlin has also confirmed interop with this fix
...@@ -10298,13 +10298,13 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10298,13 +10298,13 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Andy Polyakov <appro@fy.chalmers.se>] [Andy Polyakov <appro@fy.chalmers.se>]
*) Change functions to ANSI C. *) Change functions to ANSI C.
[Ulf Möller] [Ulf Möller]
*) Fix typos in error codes. *) Fix typos in error codes.
[Martin Kraemer <Martin.Kraemer@MchP.Siemens.De>, Ulf Möller] [Martin Kraemer <Martin.Kraemer@MchP.Siemens.De>, Ulf Möller]
*) Remove defunct assembler files from Configure. *) Remove defunct assembler files from Configure.
[Ulf Möller] [Ulf Möller]
*) SPARC v8 assembler BIGNUM implementation. *) SPARC v8 assembler BIGNUM implementation.
[Andy Polyakov <appro@fy.chalmers.se>] [Andy Polyakov <appro@fy.chalmers.se>]
...@@ -10341,7 +10341,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10341,7 +10341,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) New Configure option "rsaref". *) New Configure option "rsaref".
[Ulf Möller] [Ulf Möller]
*) Don't auto-generate pem.h. *) Don't auto-generate pem.h.
[Bodo Moeller] [Bodo Moeller]
...@@ -10389,7 +10389,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10389,7 +10389,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) New functions DSA_do_sign and DSA_do_verify to provide access to *) New functions DSA_do_sign and DSA_do_verify to provide access to
the raw DSA values prior to ASN.1 encoding. the raw DSA values prior to ASN.1 encoding.
[Ulf Möller] [Ulf Möller]
*) Tweaks to Configure *) Tweaks to Configure
[Niels Poppe <niels@netbox.org>] [Niels Poppe <niels@netbox.org>]
...@@ -10399,11 +10399,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10399,11 +10399,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) New variables $(RANLIB) and $(PERL) in the Makefiles. *) New variables $(RANLIB) and $(PERL) in the Makefiles.
[Ulf Möller] [Ulf Möller]
*) New config option to avoid instructions that are illegal on the 80386. *) New config option to avoid instructions that are illegal on the 80386.
The default code is faster, but requires at least a 486. The default code is faster, but requires at least a 486.
[Ulf Möller] [Ulf Möller]
*) Got rid of old SSL2_CLIENT_VERSION (inconsistently used) and *) Got rid of old SSL2_CLIENT_VERSION (inconsistently used) and
SSL2_SERVER_VERSION (not used at all) macros, which are now the SSL2_SERVER_VERSION (not used at all) macros, which are now the
...@@ -10942,7 +10942,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10942,7 +10942,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
Hagino <itojun@kame.net>] Hagino <itojun@kame.net>]
*) File was opened incorrectly in randfile.c. *) File was opened incorrectly in randfile.c.
[Ulf Möller <ulf@fitug.de>] [Ulf Möller <ulf@fitug.de>]
*) Beginning of support for GeneralizedTime. d2i, i2d, check and print *) Beginning of support for GeneralizedTime. d2i, i2d, check and print
functions. Also ASN1_TIME suite which is a CHOICE of UTCTime or functions. Also ASN1_TIME suite which is a CHOICE of UTCTime or
...@@ -10952,7 +10952,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -10952,7 +10952,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
[Steve Henson] [Steve Henson]
*) Correct Linux 1 recognition in config. *) Correct Linux 1 recognition in config.
[Ulf Möller <ulf@fitug.de>] [Ulf Möller <ulf@fitug.de>]
*) Remove pointless MD5 hash when using DSA keys in ca. *) Remove pointless MD5 hash when using DSA keys in ca.
[Anonymous <nobody@replay.com>] [Anonymous <nobody@replay.com>]
...@@ -11099,7 +11099,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ...@@ -11099,7 +11099,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
*) Fix the RSA header declarations that hid a bug I fixed in 0.9.0b but *) Fix the RSA header declarations that hid a bug I fixed in 0.9.0b but
was already fixed by Eric for 0.9.1 it seems. was already fixed by Eric for 0.9.1 it seems.
[Ben Laurie - pointed out by Ulf Möller <ulf@fitug.de>] [Ben Laurie - pointed out by Ulf Möller <ulf@fitug.de>]
*) Autodetect FreeBSD3. *) Autodetect FreeBSD3.
[Ben Laurie] [Ben Laurie]
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
# the undertaken effort was that it appeared that in tight IA-32 # the undertaken effort was that it appeared that in tight IA-32
# register window little-endian flavor could achieve slightly higher # register window little-endian flavor could achieve slightly higher
# Instruction Level Parallelism, and it indeed resulted in up to 15% # Instruction Level Parallelism, and it indeed resulted in up to 15%
# better performance on most recent µ-archs... # better performance on most recent µ-archs...
# #
# Third version adds AES_cbc_encrypt implementation, which resulted in # Third version adds AES_cbc_encrypt implementation, which resulted in
# up to 40% performance imrovement of CBC benchmark results. 40% was # up to 40% performance imrovement of CBC benchmark results. 40% was
...@@ -224,7 +224,7 @@ sub _data_word() { my $i; while(defined($i=shift)) { &data_word($i,$i); } } ...@@ -224,7 +224,7 @@ sub _data_word() { my $i; while(defined($i=shift)) { &data_word($i,$i); } }
$speed_limit=512; # chunks smaller than $speed_limit are $speed_limit=512; # chunks smaller than $speed_limit are
# processed with compact routine in CBC mode # processed with compact routine in CBC mode
$small_footprint=1; # $small_footprint=1 code is ~5% slower [on $small_footprint=1; # $small_footprint=1 code is ~5% slower [on
# recent µ-archs], but ~5 times smaller! # recent µ-archs], but ~5 times smaller!
# I favor compact code to minimize cache # I favor compact code to minimize cache
# contention and in hope to "collect" 5% back # contention and in hope to "collect" 5% back
# in real-life applications... # in real-life applications...
...@@ -565,7 +565,7 @@ sub enctransform() ...@@ -565,7 +565,7 @@ sub enctransform()
# Performance is not actually extraordinary in comparison to pure # Performance is not actually extraordinary in comparison to pure
# x86 code. In particular encrypt performance is virtually the same. # x86 code. In particular encrypt performance is virtually the same.
# Decrypt performance on the other hand is 15-20% better on newer # Decrypt performance on the other hand is 15-20% better on newer
# µ-archs [but we're thankful for *any* improvement here], and ~50% # µ-archs [but we're thankful for *any* improvement here], and ~50%
# better on PIII:-) And additionally on the pros side this code # better on PIII:-) And additionally on the pros side this code
# eliminates redundant references to stack and thus relieves/ # eliminates redundant references to stack and thus relieves/
# minimizes the pressure on the memory bus. # minimizes the pressure on the memory bus.
......
...@@ -891,7 +891,7 @@ ret?: ; B0 holds rounds or zero ...@@ -891,7 +891,7 @@ ret?: ; B0 holds rounds or zero
MVC B0,ILC MVC B0,ILC
|| SUB B0,1,B0 || SUB B0,1,B0
GMPY4 $K[0],A24,$Kx9[0] ; 0x09 GMPY4 $K[0],A24,$Kx9[0] ; ·0x09
|| GMPY4 $K[1],A24,$Kx9[1] || GMPY4 $K[1],A24,$Kx9[1]
|| MVK 0x00000D0D,A25 || MVK 0x00000D0D,A25
|| MVK 0x00000E0E,B25 || MVK 0x00000E0E,B25
...@@ -900,14 +900,14 @@ ret?: ; B0 holds rounds or zero ...@@ -900,14 +900,14 @@ ret?: ; B0 holds rounds or zero
|| MVKH 0x0D0D0000,A25 || MVKH 0x0D0D0000,A25
|| MVKH 0x0E0E0000,B25 || MVKH 0x0E0E0000,B25
GMPY4 $K[0],B24,$KxB[0] ; 0x0B GMPY4 $K[0],B24,$KxB[0] ; ·0x0B
|| GMPY4 $K[1],B24,$KxB[1] || GMPY4 $K[1],B24,$KxB[1]
GMPY4 $K[2],B24,$KxB[2] GMPY4 $K[2],B24,$KxB[2]
|| GMPY4 $K[3],B24,$KxB[3] || GMPY4 $K[3],B24,$KxB[3]
SPLOOP 11 ; InvMixColumns SPLOOP 11 ; InvMixColumns
;;==================================================================== ;;====================================================================
GMPY4 $K[0],A25,$KxD[0] ; 0x0D GMPY4 $K[0],A25,$KxD[0] ; ·0x0D
|| GMPY4 $K[1],A25,$KxD[1] || GMPY4 $K[1],A25,$KxD[1]
|| SWAP2 $Kx9[0],$Kx9[0] ; rotate by 16 || SWAP2 $Kx9[0],$Kx9[0] ; rotate by 16
|| SWAP2 $Kx9[1],$Kx9[1] || SWAP2 $Kx9[1],$Kx9[1]
...@@ -924,7 +924,7 @@ ret?: ; B0 holds rounds or zero ...@@ -924,7 +924,7 @@ ret?: ; B0 holds rounds or zero
|| [B0] LDW *${KPA}[6],$K[2] || [B0] LDW *${KPA}[6],$K[2]
|| [B0] LDW *${KPB}[7],$K[3] || [B0] LDW *${KPB}[7],$K[3]
GMPY4 $s[0],B25,$KxE[0] ; 0x0E GMPY4 $s[0],B25,$KxE[0] ; ·0x0E
|| GMPY4 $s[1],B25,$KxE[1] || GMPY4 $s[1],B25,$KxE[1]
|| XOR $Kx9[0],$KxB[0],$KxB[0] || XOR $Kx9[0],$KxB[0],$KxB[0]
|| XOR $Kx9[1],$KxB[1],$KxB[1] || XOR $Kx9[1],$KxB[1],$KxB[1]
...@@ -944,7 +944,7 @@ ret?: ; B0 holds rounds or zero ...@@ -944,7 +944,7 @@ ret?: ; B0 holds rounds or zero
XOR $KxE[0],$KxD[0],$KxE[0] XOR $KxE[0],$KxD[0],$KxE[0]
|| XOR $KxE[1],$KxD[1],$KxE[1] || XOR $KxE[1],$KxD[1],$KxE[1]
|| [B0] GMPY4 $K[0],A24,$Kx9[0] ; 0x09 || [B0] GMPY4 $K[0],A24,$Kx9[0] ; ·0x09
|| [B0] GMPY4 $K[1],A24,$Kx9[1] || [B0] GMPY4 $K[1],A24,$Kx9[1]
|| ADDAW $KPA,4,$KPA || ADDAW $KPA,4,$KPA
XOR $KxE[2],$KxD[2],$KxE[2] XOR $KxE[2],$KxD[2],$KxE[2]
...@@ -955,7 +955,7 @@ ret?: ; B0 holds rounds or zero ...@@ -955,7 +955,7 @@ ret?: ; B0 holds rounds or zero
XOR $KxB[0],$KxE[0],$KxE[0] XOR $KxB[0],$KxE[0],$KxE[0]
|| XOR $KxB[1],$KxE[1],$KxE[1] || XOR $KxB[1],$KxE[1],$KxE[1]
|| [B0] GMPY4 $K[0],B24,$KxB[0] ; 0x0B || [B0] GMPY4 $K[0],B24,$KxB[0] ; ·0x0B
|| [B0] GMPY4 $K[1],B24,$KxB[1] || [B0] GMPY4 $K[1],B24,$KxB[1]
XOR $KxB[2],$KxE[2],$KxE[2] XOR $KxB[2],$KxE[2],$KxE[2]
|| XOR $KxB[3],$KxE[3],$KxE[3] || XOR $KxB[3],$KxE[3],$KxE[3]
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# referred below, which improves ECDH and ECDSA verify benchmarks # referred below, which improves ECDH and ECDSA verify benchmarks
# by 18-40%. # by 18-40%.
# #
# Cmara, D.; Gouva, C. P. L.; Lpez, J. & Dahab, R.: Fast Software # Câmara, D.; Gouvêa, C. P. L.; López, J. & Dahab, R.: Fast Software
# Polynomial Multiplication on ARM Processors using the NEON Engine. # Polynomial Multiplication on ARM Processors using the NEON Engine.
# #
# http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf # http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf
...@@ -148,7 +148,7 @@ ___ ...@@ -148,7 +148,7 @@ ___
################ ################
# void bn_GF2m_mul_2x2(BN_ULONG *r, # void bn_GF2m_mul_2x2(BN_ULONG *r,
# BN_ULONG a1,BN_ULONG a0, # BN_ULONG a1,BN_ULONG a0,
# BN_ULONG b1,BN_ULONG b0); # r[3..0]=a1a0b1b0 # BN_ULONG b1,BN_ULONG b0); # r[3..0]=a1a0·b1b0
{ {
$code.=<<___; $code.=<<___;
.global bn_GF2m_mul_2x2 .global bn_GF2m_mul_2x2
...@@ -171,7 +171,7 @@ $code.=<<___; ...@@ -171,7 +171,7 @@ $code.=<<___;
mov $mask,#7<<2 mov $mask,#7<<2
sub sp,sp,#32 @ allocate tab[8] sub sp,sp,#32 @ allocate tab[8]
bl mul_1x1_ialu @ a1b1 bl mul_1x1_ialu @ a1·b1
str $lo,[$ret,#8] str $lo,[$ret,#8]
str $hi,[$ret,#12] str $hi,[$ret,#12]
...@@ -181,13 +181,13 @@ $code.=<<___; ...@@ -181,13 +181,13 @@ $code.=<<___;
eor r2,r2,$a eor r2,r2,$a
eor $b,$b,r3 eor $b,$b,r3
eor $a,$a,r2 eor $a,$a,r2
bl mul_1x1_ialu @ a0b0 bl mul_1x1_ialu @ a0·b0
str $lo,[$ret] str $lo,[$ret]
str $hi,[$ret,#4] str $hi,[$ret,#4]
eor $a,$a,r2 eor $a,$a,r2
eor $b,$b,r3 eor $b,$b,r3
bl mul_1x1_ialu @ (a1+a0)(b1+b0) bl mul_1x1_ialu @ (a1+a0)·(b1+b0)
___ ___
@r=map("r$_",(6..9)); @r=map("r$_",(6..9));
$code.=<<___; $code.=<<___;
......
...@@ -120,26 +120,26 @@ _bn_GF2m_mul_2x2: ...@@ -120,26 +120,26 @@ _bn_GF2m_mul_2x2:
.asmfunc .asmfunc
MVK 0xFF,$xFF MVK 0xFF,$xFF
___ ___
&mul_1x1_upper($a0,$b0); # a0b0 &mul_1x1_upper($a0,$b0); # a0·b0
$code.=<<___; $code.=<<___;
|| MV $b1,$B || MV $b1,$B
MV $a1,$A MV $a1,$A
___ ___
&mul_1x1_merged("A28","B28",$A,$B); # a0b0/a1b1 &mul_1x1_merged("A28","B28",$A,$B); # a0·b0/a1·b1
$code.=<<___; $code.=<<___;
|| XOR $b0,$b1,$B || XOR $b0,$b1,$B
XOR $a0,$a1,$A XOR $a0,$a1,$A
___ ___
&mul_1x1_merged("A31","B31",$A,$B); # a1b1/(a0+a1)(b0+b1) &mul_1x1_merged("A31","B31",$A,$B); # a1·b1/(a0+a1)·(b0+b1)
$code.=<<___; $code.=<<___;
XOR A28,A31,A29 XOR A28,A31,A29
|| XOR B28,B31,B29 ; a0b0+a1b1 || XOR B28,B31,B29 ; a0·b0+a1·b1
___ ___
&mul_1x1_lower("A30","B30"); # (a0+a1)(b0+b1) &mul_1x1_lower("A30","B30"); # (a0+a1)·(b0+b1)
$code.=<<___; $code.=<<___;
|| BNOP B3 || BNOP B3
XOR A29,A30,A30 XOR A29,A30,A30
|| XOR B29,B30,B30 ; (a0+a1)(b0+b1)-a0b0-a1b1 || XOR B29,B30,B30 ; (a0+a1)·(b0+b1)-a0·b0-a1·b1
XOR B28,A30,A30 XOR B28,A30,A30
|| STW A28,*${rp}[0] || STW A28,*${rp}[0]
XOR B30,A31,A31 XOR B30,A31,A31
......
...@@ -568,7 +568,7 @@ bn_sqr_comba8: ...@@ -568,7 +568,7 @@ bn_sqr_comba8:
// I've estimated this routine to run in ~120 ticks, but in reality // I've estimated this routine to run in ~120 ticks, but in reality
// (i.e. according to ar.itc) it takes ~160 ticks. Are those extra // (i.e. according to ar.itc) it takes ~160 ticks. Are those extra
// cycles consumed for instructions fetch? Or did I misinterpret some // cycles consumed for instructions fetch? Or did I misinterpret some
// clause in Itanium µ-architecture manual? Comments are welcomed and // clause in Itanium µ-architecture manual? Comments are welcomed and
// highly appreciated. // highly appreciated.
// //
// On Itanium 2 it takes ~190 ticks. This is because of stalls on // On Itanium 2 it takes ~190 ticks. This is because of stalls on
......
...@@ -172,19 +172,19 @@ ___ ...@@ -172,19 +172,19 @@ ___
if ($SIZE_T==8) { if ($SIZE_T==8) {
my @r=map("%r$_",(6..9)); my @r=map("%r$_",(6..9));
$code.=<<___; $code.=<<___;
bras $ra,_mul_1x1 # a1b1 bras $ra,_mul_1x1 # a1·b1
stmg $lo,$hi,16($rp) stmg $lo,$hi,16($rp)
lg $a,`$stdframe+128+4*$SIZE_T`($sp) lg $a,`$stdframe+128+4*$SIZE_T`($sp)
lg $b,`$stdframe+128+6*$SIZE_T`($sp) lg $b,`$stdframe+128+6*$SIZE_T`($sp)
bras $ra,_mul_1x1 # a0b0 bras $ra,_mul_1x1 # a0·b0
stmg $lo,$hi,0($rp) stmg $lo,$hi,0($rp)
lg $a,`$stdframe+128+3*$SIZE_T`($sp) lg $a,`$stdframe+128+3*$SIZE_T`($sp)
lg $b,`$stdframe+128+5*$SIZE_T`($sp) lg $b,`$stdframe+128+5*$SIZE_T`($sp)
xg $a,`$stdframe+128+4*$SIZE_T`($sp) xg $a,`$stdframe+128+4*$SIZE_T`($sp)
xg $b,`$stdframe+128+6*$SIZE_T`($sp) xg $b,`$stdframe+128+6*$SIZE_T`($sp)
bras $ra,_mul_1x1 # (a0+a1)(b0+b1) bras $ra,_mul_1x1 # (a0+a1)·(b0+b1)
lmg @r[0],@r[3],0($rp) lmg @r[0],@r[3],0($rp)
xgr $lo,$hi xgr $lo,$hi
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# the time being... Except that it has three code paths: pure integer # the time being... Except that it has three code paths: pure integer
# code suitable for any x86 CPU, MMX code suitable for PIII and later # code suitable for any x86 CPU, MMX code suitable for PIII and later
# and PCLMULQDQ suitable for Westmere and later. Improvement varies # and PCLMULQDQ suitable for Westmere and later. Improvement varies
# from one benchmark and -arch to another. Below are interval values # from one benchmark and µ-arch to another. Below are interval values
# for 163- and 571-bit ECDH benchmarks relative to compiler-generated # for 163- and 571-bit ECDH benchmarks relative to compiler-generated
# code: # code:
# #
...@@ -226,22 +226,22 @@ if ($sse2) { ...@@ -226,22 +226,22 @@ if ($sse2) {
&push ("edi"); &push ("edi");
&mov ($a,&wparam(1)); &mov ($a,&wparam(1));
&mov ($b,&wparam(3)); &mov ($b,&wparam(3));
&call ("_mul_1x1_mmx"); # a1b1 &call ("_mul_1x1_mmx"); # a1·b1
&movq ("mm7",$R); &movq ("mm7",$R);
&mov ($a,&wparam(2)); &mov ($a,&wparam(2));
&mov ($b,&wparam(4)); &mov ($b,&wparam(4));
&call ("_mul_1x1_mmx"); # a0b0 &call ("_mul_1x1_mmx"); # a0·b0
&movq ("mm6",$R); &movq ("mm6",$R);
&mov ($a,&wparam(1)); &mov ($a,&wparam(1));
&mov ($b,&wparam(3)); &mov ($b,&wparam(3));
&xor ($a,&wparam(2)); &xor ($a,&wparam(2));
&xor ($b,&wparam(4)); &xor ($b,&wparam(4));
&call ("_mul_1x1_mmx"); # (a0+a1)(b0+b1) &call ("_mul_1x1_mmx"); # (a0+a1)·(b0+b1)
&pxor ($R,"mm7"); &pxor ($R,"mm7");
&mov ($a,&wparam(0)); &mov ($a,&wparam(0));
&pxor ($R,"mm6"); # (a0+a1)(b0+b1)-a1b1-a0b0 &pxor ($R,"mm6"); # (a0+a1)·(b0+b1)-a1·b1-a0·b0
&movq ($A,$R); &movq ($A,$R);
&psllq ($R,32); &psllq ($R,32);
...@@ -266,13 +266,13 @@ if ($sse2) { ...@@ -266,13 +266,13 @@ if ($sse2) {
&mov ($a,&wparam(1)); &mov ($a,&wparam(1));
&mov ($b,&wparam(3)); &mov ($b,&wparam(3));
&call ("_mul_1x1_ialu"); # a1b1 &call ("_mul_1x1_ialu"); # a1·b1
&mov (&DWP(8,"esp"),$lo); &mov (&DWP(8,"esp"),$lo);
&mov (&DWP(12,"esp"),$hi); &mov (&DWP(12,"esp"),$hi);
&mov ($a,&wparam(2)); &mov ($a,&wparam(2));
&mov ($b,&wparam(4)); &mov ($b,&wparam(4));
&call ("_mul_1x1_ialu"); # a0b0 &call ("_mul_1x1_ialu"); # a0·b0
&mov (&DWP(0,"esp"),$lo); &mov (&DWP(0,"esp"),$lo);
&mov (&DWP(4,"esp"),$hi); &mov (&DWP(4,"esp"),$hi);
...@@ -280,7 +280,7 @@ if ($sse2) { ...@@ -280,7 +280,7 @@ if ($sse2) {
&mov ($b,&wparam(3)); &mov ($b,&wparam(3));
&xor ($a,&wparam(2)); &xor ($a,&wparam(2));
&xor ($b,&wparam(4)); &xor ($b,&wparam(4));
&call ("_mul_1x1_ialu"); # (a0+a1)(b0+b1) &call ("_mul_1x1_ialu"); # (a0+a1)·(b0+b1)
&mov ("ebp",&wparam(0)); &mov ("ebp",&wparam(0));
@r=("ebx","ecx","edi","esi"); @r=("ebx","ecx","edi","esi");
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
# undef mul_add # undef mul_add
/*- /*-
* "m"(a), "+m"(r) is the way to favor DirectPath -code; * "m"(a), "+m"(r) is the way to favor DirectPath µ-code;
* "g"(0) let the compiler to decide where does it * "g"(0) let the compiler to decide where does it
* want to keep the value of zero; * want to keep the value of zero;
*/ */
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
# in bn_gf2m.c. It's kind of low-hanging mechanical port from C for # in bn_gf2m.c. It's kind of low-hanging mechanical port from C for
# the time being... Except that it has two code paths: code suitable # the time being... Except that it has two code paths: code suitable
# for any x86_64 CPU and PCLMULQDQ one suitable for Westmere and # for any x86_64 CPU and PCLMULQDQ one suitable for Westmere and
# later. Improvement varies from one benchmark and -arch to another. # later. Improvement varies from one benchmark and µ-arch to another.
# Vanilla code path is at most 20% faster than compiler-generated code # Vanilla code path is at most 20% faster than compiler-generated code
# [not very impressive], while PCLMULQDQ - whole 85%-160% better on # [not very impressive], while PCLMULQDQ - whole 85%-160% better on
# 163- and 571-bit ECDH benchmarks on Intel CPUs. Keep in mind that # 163- and 571-bit ECDH benchmarks on Intel CPUs. Keep in mind that
...@@ -184,13 +184,13 @@ ___ ...@@ -184,13 +184,13 @@ ___
$code.=<<___; $code.=<<___;
movdqa %xmm0,%xmm4 movdqa %xmm0,%xmm4
movdqa %xmm1,%xmm5 movdqa %xmm1,%xmm5
pclmulqdq \$0,%xmm1,%xmm0 # a1b1 pclmulqdq \$0,%xmm1,%xmm0 # a1·b1
pxor %xmm2,%xmm4 pxor %xmm2,%xmm4
pxor %xmm3,%xmm5 pxor %xmm3,%xmm5
pclmulqdq \$0,%xmm3,%xmm2 # a0b0 pclmulqdq \$0,%xmm3,%xmm2 # a0·b0
pclmulqdq \$0,%xmm5,%xmm4 # (a0+a1)(b0+b1) pclmulqdq \$0,%xmm5,%xmm4 # (a0+a1)·(b0+b1)
xorps %xmm0,%xmm4 xorps %xmm0,%xmm4
xorps %xmm2,%xmm4 # (a0+a1)(b0+b1)-a0b0-a1b1 xorps %xmm2,%xmm4 # (a0+a1)·(b0+b1)-a0·b0-a1·b1
movdqa %xmm4,%xmm5 movdqa %xmm4,%xmm5
pslldq \$8,%xmm4 pslldq \$8,%xmm4
psrldq \$8,%xmm5 psrldq \$8,%xmm5
...@@ -225,13 +225,13 @@ $code.=<<___; ...@@ -225,13 +225,13 @@ $code.=<<___;
mov \$0xf,$mask mov \$0xf,$mask
mov $a1,$a mov $a1,$a
mov $b1,$b mov $b1,$b
call _mul_1x1 # a1b1 call _mul_1x1 # a1·b1
mov $lo,16(%rsp) mov $lo,16(%rsp)
mov $hi,24(%rsp) mov $hi,24(%rsp)
mov 48(%rsp),$a mov 48(%rsp),$a
mov 64(%rsp),$b mov 64(%rsp),$b
call _mul_1x1 # a0b0 call _mul_1x1 # a0·b0
mov $lo,0(%rsp) mov $lo,0(%rsp)
mov $hi,8(%rsp) mov $hi,8(%rsp)
...@@ -239,7 +239,7 @@ $code.=<<___; ...@@ -239,7 +239,7 @@ $code.=<<___;
mov 56(%rsp),$b mov 56(%rsp),$b
xor 48(%rsp),$a xor 48(%rsp),$a
xor 64(%rsp),$b xor 64(%rsp),$b
call _mul_1x1 # (a0+a1)(b0+b1) call _mul_1x1 # (a0+a1)·(b0+b1)
___ ___
@r=("%rbx","%rcx","%rdi","%rsi"); @r=("%rbx","%rcx","%rdi","%rsi");
$code.=<<___; $code.=<<___;
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
# processes one byte in 8.45 cycles, A9 - in 10.2, A15 - in 7.63, # processes one byte in 8.45 cycles, A9 - in 10.2, A15 - in 7.63,
# Snapdragon S4 - in 9.33. # Snapdragon S4 - in 9.33.
# #
# Cmara, D.; Gouva, C. P. L.; Lpez, J. & Dahab, R.: Fast Software # Câmara, D.; Gouvêa, C. P. L.; López, J. & Dahab, R.: Fast Software
# Polynomial Multiplication on ARM Processors using the NEON Engine. # Polynomial Multiplication on ARM Processors using the NEON Engine.
# #
# http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf # http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf
...@@ -449,12 +449,12 @@ gcm_ghash_neon: ...@@ -449,12 +449,12 @@ gcm_ghash_neon:
veor $IN,$Xl @ inp^=Xi veor $IN,$Xl @ inp^=Xi
.Lgmult_neon: .Lgmult_neon:
___ ___
&clmul64x64 ($Xl,$Hlo,"$IN#lo"); # H.loXi.lo &clmul64x64 ($Xl,$Hlo,"$IN#lo"); # H.lo·Xi.lo
$code.=<<___; $code.=<<___;
veor $IN#lo,$IN#lo,$IN#hi @ Karatsuba pre-processing veor $IN#lo,$IN#lo,$IN#hi @ Karatsuba pre-processing
___ ___
&clmul64x64 ($Xm,$Hhl,"$IN#lo"); # (H.lo+H.hi)(Xi.lo+Xi.hi) &clmul64x64 ($Xm,$Hhl,"$IN#lo"); # (H.lo+H.hi)·(Xi.lo+Xi.hi)
&clmul64x64 ($Xh,$Hhi,"$IN#hi"); # H.hiXi.hi &clmul64x64 ($Xh,$Hhi,"$IN#hi"); # H.hi·Xi.hi
$code.=<<___; $code.=<<___;
veor $Xm,$Xm,$Xl @ Karatsuba post-processing veor $Xm,$Xm,$Xl @ Karatsuba post-processing
veor $Xm,$Xm,$Xh veor $Xm,$Xm,$Xh
......
...@@ -153,7 +153,7 @@ ___ ...@@ -153,7 +153,7 @@ ___
# 8/2 S1 L1x S2 | .... # 8/2 S1 L1x S2 | ....
#####... ................|............ #####... ................|............
$code.=<<___; $code.=<<___;
XORMPY $H0,$xia,$H0x ; 0 ; H(Xi[i]<<1) XORMPY $H0,$xia,$H0x ; 0 ; H·(Xi[i]<<1)
|| XORMPY $H01u,$xib,$H01y || XORMPY $H01u,$xib,$H01y
|| [A0] LDBU *--${xip},$x0 || [A0] LDBU *--${xip},$x0
XORMPY $H1,$xia,$H1x ; 1 XORMPY $H1,$xia,$H1x ; 1
...@@ -162,7 +162,7 @@ $code.=<<___; ...@@ -162,7 +162,7 @@ $code.=<<___;
XORMPY $H3,$xia,$H3x ; 3 XORMPY $H3,$xia,$H3x ; 3
|| XORMPY $H3u,$xib,$H3y || XORMPY $H3u,$xib,$H3y
||[!A0] MVK.D 15,A0 ; *--${xip} counter ||[!A0] MVK.D 15,A0 ; *--${xip} counter
XOR.L $H0x,$Z0,$Z0 ; 4 ; Z^=H(Xi[i]<<1) XOR.L $H0x,$Z0,$Z0 ; 4 ; Z^=H·(Xi[i]<<1)
|| [A0] SUB.S A0,1,A0 || [A0] SUB.S A0,1,A0
XOR.L $H1x,$Z1,$Z1 ; 5 XOR.L $H1x,$Z1,$Z1 ; 5
|| AND.D $H01y,$FF000000,$H0z || AND.D $H01y,$FF000000,$H0z
......
...@@ -379,7 +379,7 @@ gcm_init_vis3: ...@@ -379,7 +379,7 @@ gcm_init_vis3:
or $V,%lo(0xA0406080),$V or $V,%lo(0xA0406080),$V
or %l0,%lo(0x20C0E000),%l0 or %l0,%lo(0x20C0E000),%l0
sllx $V,32,$V sllx $V,32,$V
or %l0,$V,$V ! (0xE0i)&0xff=0xA040608020C0E000 or %l0,$V,$V ! (0xE0·i)&0xff=0xA040608020C0E000
stx $V,[%i0+16] stx $V,[%i0+16]
ret ret
...@@ -399,7 +399,7 @@ gcm_gmult_vis3: ...@@ -399,7 +399,7 @@ gcm_gmult_vis3:
mov 0xE1,%l7 mov 0xE1,%l7
sllx %l7,57,$xE1 ! 57 is not a typo sllx %l7,57,$xE1 ! 57 is not a typo
ldx [$Htable+16],$V ! (0xE0i)&0xff=0xA040608020C0E000 ldx [$Htable+16],$V ! (0xE0·i)&0xff=0xA040608020C0E000
xor $Hhi,$Hlo,$Hhl ! Karatsuba pre-processing xor $Hhi,$Hlo,$Hhl ! Karatsuba pre-processing
xmulx $Xlo,$Hlo,$C0 xmulx $Xlo,$Hlo,$C0
...@@ -411,9 +411,9 @@ gcm_gmult_vis3: ...@@ -411,9 +411,9 @@ gcm_gmult_vis3:
xmulx $Xhi,$Hhi,$Xhi xmulx $Xhi,$Hhi,$Xhi
sll $C0,3,$sqr sll $C0,3,$sqr
srlx $V,$sqr,$sqr ! 0xE0 [implicit &(7<<3)] srlx $V,$sqr,$sqr ! ·0xE0 [implicit &(7<<3)]
xor $C0,$sqr,$sqr xor $C0,$sqr,$sqr
sllx $sqr,57,$sqr ! ($C00xE1)<<1<<56 [implicit &0x7f] sllx $sqr,57,$sqr ! ($C0·0xE1)<<1<<56 [implicit &0x7f]
xor $C0,$C1,$C1 ! Karatsuba post-processing xor $C0,$C1,$C1 ! Karatsuba post-processing
xor $Xlo,$C2,$C2 xor $Xlo,$C2,$C2
...@@ -423,7 +423,7 @@ gcm_gmult_vis3: ...@@ -423,7 +423,7 @@ gcm_gmult_vis3:
xor $Xhi,$C2,$C2 xor $Xhi,$C2,$C2
xor $Xhi,$C1,$C1 xor $Xhi,$C1,$C1
xmulxhi $C0,$xE1,$Xlo ! 0xE1<<1<<56 xmulxhi $C0,$xE1,$Xlo ! ·0xE1<<1<<56
xor $C0,$C2,$C2 xor $C0,$C2,$C2
xmulx $C1,$xE1,$C0 xmulx $C1,$xE1,$C0
xor $C1,$C3,$C3 xor $C1,$C3,$C3
...@@ -453,7 +453,7 @@ gcm_ghash_vis3: ...@@ -453,7 +453,7 @@ gcm_ghash_vis3:
mov 0xE1,%l7 mov 0xE1,%l7
sllx %l7,57,$xE1 ! 57 is not a typo sllx %l7,57,$xE1 ! 57 is not a typo
ldx [$Htable+16],$V ! (0xE0i)&0xff=0xA040608020C0E000 ldx [$Htable+16],$V ! (0xE0·i)&0xff=0xA040608020C0E000
and $inp,7,$shl and $inp,7,$shl
andn $inp,7,$inp andn $inp,7,$inp
...@@ -490,9 +490,9 @@ gcm_ghash_vis3: ...@@ -490,9 +490,9 @@ gcm_ghash_vis3:
xmulx $Xhi,$Hhi,$Xhi xmulx $Xhi,$Hhi,$Xhi
sll $C0,3,$sqr sll $C0,3,$sqr
srlx $V,$sqr,$sqr ! 0xE0 [implicit &(7<<3)] srlx $V,$sqr,$sqr ! ·0xE0 [implicit &(7<<3)]
xor $C0,$sqr,$sqr xor $C0,$sqr,$sqr
sllx $sqr,57,$sqr ! ($C00xE1)<<1<<56 [implicit &0x7f] sllx $sqr,57,$sqr ! ($C0·0xE1)<<1<<56 [implicit &0x7f]
xor $C0,$C1,$C1 ! Karatsuba post-processing xor $C0,$C1,$C1 ! Karatsuba post-processing
xor $Xlo,$C2,$C2 xor $Xlo,$C2,$C2
...@@ -502,7 +502,7 @@ gcm_ghash_vis3: ...@@ -502,7 +502,7 @@ gcm_ghash_vis3:
xor $Xhi,$C2,$C2 xor $Xhi,$C2,$C2
xor $Xhi,$C1,$C1 xor $Xhi,$C1,$C1
xmulxhi $C0,$xE1,$Xlo ! 0xE1<<1<<56 xmulxhi $C0,$xE1,$Xlo ! ·0xE1<<1<<56
xor $C0,$C2,$C2 xor $C0,$C2,$C2
xmulx $C1,$xE1,$C0 xmulx $C1,$xE1,$C0
xor $C1,$C3,$C3 xor $C1,$C3,$C3
......
...@@ -358,7 +358,7 @@ $S=12; # shift factor for rem_4bit ...@@ -358,7 +358,7 @@ $S=12; # shift factor for rem_4bit
# effective address calculation and finally merge of value to Z.hi. # effective address calculation and finally merge of value to Z.hi.
# Reference to rem_4bit is scheduled so late that I had to >>4 # Reference to rem_4bit is scheduled so late that I had to >>4
# rem_4bit elements. This resulted in 20-45% procent improvement # rem_4bit elements. This resulted in 20-45% procent improvement
# on contemporary µ-archs. # on contemporary µ-archs.
{ {
my $cnt; my $cnt;
my $rem_4bit = "eax"; my $rem_4bit = "eax";
......
...@@ -576,15 +576,15 @@ $code.=<<___ if (0 || (&reduction_alg9($Xhi,$Xi)&&0)); ...@@ -576,15 +576,15 @@ $code.=<<___ if (0 || (&reduction_alg9($Xhi,$Xi)&&0));
# experimental alternative. special thing about is that there # experimental alternative. special thing about is that there
# no dependency between the two multiplications... # no dependency between the two multiplications...
mov \$`0xE1<<1`,%eax mov \$`0xE1<<1`,%eax
mov \$0xA040608020C0E000,%r10 # ((7..0)0xE0)&0xff mov \$0xA040608020C0E000,%r10 # ((7..0)·0xE0)&0xff
mov \$0x07,%r11d mov \$0x07,%r11d
movq %rax,$T1 movq %rax,$T1
movq %r10,$T2 movq %r10,$T2
movq %r11,$T3 # borrow $T3 movq %r11,$T3 # borrow $T3
pand $Xi,$T3 pand $Xi,$T3
pshufb $T3,$T2 # ($Xi&7)0xE0 pshufb $T3,$T2 # ($Xi&7)·0xE0
movq %rax,$T3 movq %rax,$T3
pclmulqdq \$0x00,$Xi,$T1 # (0xE1<<1) pclmulqdq \$0x00,$Xi,$T1 # ·(0xE1<<1)
pxor $Xi,$T2 pxor $Xi,$T2
pslldq \$15,$T2 pslldq \$15,$T2
paddd $T2,$T2 # <<(64+56+1) paddd $T2,$T2 # <<(64+56+1)
...@@ -657,7 +657,7 @@ $code.=<<___; ...@@ -657,7 +657,7 @@ $code.=<<___;
je .Lskip4x je .Lskip4x
sub \$0x30,$len sub \$0x30,$len
mov \$0xA040608020C0E000,%rax # ((7..0)0xE0)&0xff mov \$0xA040608020C0E000,%rax # ((7..0)·0xE0)&0xff
movdqu 0x30($Htbl),$Hkey3 movdqu 0x30($Htbl),$Hkey3
movdqu 0x40($Htbl),$Hkey4 movdqu 0x40($Htbl),$Hkey4
......
...@@ -118,9 +118,9 @@ $code=<<___; ...@@ -118,9 +118,9 @@ $code=<<___;
le?vperm $IN,$IN,$IN,$lemask le?vperm $IN,$IN,$IN,$lemask
vxor $zero,$zero,$zero vxor $zero,$zero,$zero
vpmsumd $Xl,$IN,$Hl # H.loXi.lo vpmsumd $Xl,$IN,$Hl # H.lo·Xi.lo
vpmsumd $Xm,$IN,$H # H.hiXi.lo+H.loXi.hi vpmsumd $Xm,$IN,$H # H.hi·Xi.lo+H.lo·Xi.hi
vpmsumd $Xh,$IN,$Hh # H.hiXi.hi vpmsumd $Xh,$IN,$Hh # H.hi·Xi.hi
vpmsumd $t2,$Xl,$xC2 # 1st phase vpmsumd $t2,$Xl,$xC2 # 1st phase
...@@ -178,11 +178,11 @@ $code=<<___; ...@@ -178,11 +178,11 @@ $code=<<___;
.align 5 .align 5
Loop: Loop:
subic $len,$len,16 subic $len,$len,16
vpmsumd $Xl,$IN,$Hl # H.loXi.lo vpmsumd $Xl,$IN,$Hl # H.lo·Xi.lo
subfe. r0,r0,r0 # borrow?-1:0 subfe. r0,r0,r0 # borrow?-1:0
vpmsumd $Xm,$IN,$H # H.hiXi.lo+H.loXi.hi vpmsumd $Xm,$IN,$H # H.hi·Xi.lo+H.lo·Xi.hi
and r0,r0,$len and r0,r0,$len
vpmsumd $Xh,$IN,$Hh # H.hiXi.hi vpmsumd $Xh,$IN,$Hh # H.hi·Xi.hi
add $inp,$inp,r0 add $inp,$inp,r0
vpmsumd $t2,$Xl,$xC2 # 1st phase vpmsumd $t2,$Xl,$xC2 # 1st phase
......
...@@ -144,10 +144,10 @@ gcm_gmult_v8: ...@@ -144,10 +144,10 @@ gcm_gmult_v8:
#endif #endif
vext.8 $IN,$t1,$t1,#8 vext.8 $IN,$t1,$t1,#8
vpmull.p64 $Xl,$H,$IN @ H.loXi.lo vpmull.p64 $Xl,$H,$IN @ H.lo·Xi.lo
veor $t1,$t1,$IN @ Karatsuba pre-processing veor $t1,$t1,$IN @ Karatsuba pre-processing
vpmull2.p64 $Xh,$H,$IN @ H.hiXi.hi vpmull2.p64 $Xh,$H,$IN @ H.hi·Xi.hi
vpmull.p64 $Xm,$Hhl,$t1 @ (H.lo+H.hi)(Xi.lo+Xi.hi) vpmull.p64 $Xm,$Hhl,$t1 @ (H.lo+H.hi)·(Xi.lo+Xi.hi)
vext.8 $t1,$Xl,$Xh,#8 @ Karatsuba post-processing vext.8 $t1,$Xl,$Xh,#8 @ Karatsuba post-processing
veor $t2,$Xl,$Xh veor $t2,$Xl,$Xh
...@@ -235,7 +235,7 @@ $code.=<<___; ...@@ -235,7 +235,7 @@ $code.=<<___;
#endif #endif
vext.8 $In,$t1,$t1,#8 vext.8 $In,$t1,$t1,#8
veor $IN,$IN,$Xl @ I[i]^=Xi veor $IN,$IN,$Xl @ I[i]^=Xi
vpmull.p64 $Xln,$H,$In @ HIi+1 vpmull.p64 $Xln,$H,$In @ H·Ii+1
veor $t1,$t1,$In @ Karatsuba pre-processing veor $t1,$t1,$In @ Karatsuba pre-processing
vpmull2.p64 $Xhn,$H,$In vpmull2.p64 $Xhn,$H,$In
b .Loop_mod2x_v8 b .Loop_mod2x_v8
...@@ -244,14 +244,14 @@ $code.=<<___; ...@@ -244,14 +244,14 @@ $code.=<<___;
.Loop_mod2x_v8: .Loop_mod2x_v8:
vext.8 $t2,$IN,$IN,#8 vext.8 $t2,$IN,$IN,#8
subs $len,$len,#32 @ is there more data? subs $len,$len,#32 @ is there more data?
vpmull.p64 $Xl,$H2,$IN @ H^2.loXi.lo vpmull.p64 $Xl,$H2,$IN @ H^2.lo·Xi.lo
cclr $inc,lo @ is it time to zero $inc? cclr $inc,lo @ is it time to zero $inc?
vpmull.p64 $Xmn,$Hhl,$t1 vpmull.p64 $Xmn,$Hhl,$t1
veor $t2,$t2,$IN @ Karatsuba pre-processing veor $t2,$t2,$IN @ Karatsuba pre-processing
vpmull2.p64 $Xh,$H2,$IN @ H^2.hiXi.hi vpmull2.p64 $Xh,$H2,$IN @ H^2.hi·Xi.hi
veor $Xl,$Xl,$Xln @ accumulate veor $Xl,$Xl,$Xln @ accumulate
vpmull2.p64 $Xm,$Hhl,$t2 @ (H^2.lo+H^2.hi)(Xi.lo+Xi.hi) vpmull2.p64 $Xm,$Hhl,$t2 @ (H^2.lo+H^2.hi)·(Xi.lo+Xi.hi)
vld1.64 {$t0},[$inp],$inc @ load [rotated] I[i+2] vld1.64 {$t0},[$inp],$inc @ load [rotated] I[i+2]
veor $Xh,$Xh,$Xhn veor $Xh,$Xh,$Xhn
...@@ -276,7 +276,7 @@ $code.=<<___; ...@@ -276,7 +276,7 @@ $code.=<<___;
vext.8 $In,$t1,$t1,#8 vext.8 $In,$t1,$t1,#8
vext.8 $IN,$t0,$t0,#8 vext.8 $IN,$t0,$t0,#8
veor $Xl,$Xm,$t2 veor $Xl,$Xm,$t2
vpmull.p64 $Xln,$H,$In @ HIi+1 vpmull.p64 $Xln,$H,$In @ H·Ii+1
veor $IN,$IN,$Xh @ accumulate $IN early veor $IN,$IN,$Xh @ accumulate $IN early
vext.8 $t2,$Xl,$Xl,#8 @ 2nd phase of reduction vext.8 $t2,$Xl,$Xl,#8 @ 2nd phase of reduction
...@@ -300,10 +300,10 @@ $code.=<<___; ...@@ -300,10 +300,10 @@ $code.=<<___;
veor $IN,$IN,$Xl @ inp^=Xi veor $IN,$IN,$Xl @ inp^=Xi
veor $t1,$t0,$t2 @ $t1 is rotated inp^Xi veor $t1,$t0,$t2 @ $t1 is rotated inp^Xi
vpmull.p64 $Xl,$H,$IN @ H.loXi.lo vpmull.p64 $Xl,$H,$IN @ H.lo·Xi.lo
veor $t1,$t1,$IN @ Karatsuba pre-processing veor $t1,$t1,$IN @ Karatsuba pre-processing
vpmull2.p64 $Xh,$H,$IN @ H.hiXi.hi vpmull2.p64 $Xh,$H,$IN @ H.hi·Xi.hi
vpmull.p64 $Xm,$Hhl,$t1 @ (H.lo+H.hi)(Xi.lo+Xi.hi) vpmull.p64 $Xm,$Hhl,$t1 @ (H.lo+H.hi)·(Xi.lo+Xi.hi)
vext.8 $t1,$Xl,$Xh,#8 @ Karatsuba post-processing vext.8 $t1,$Xl,$Xh,#8 @ Karatsuba post-processing
veor $t2,$Xl,$Xh veor $t2,$Xl,$Xh
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
# Sandy Bridge 5.0/+8% # Sandy Bridge 5.0/+8%
# Atom 12.6/+6% # Atom 12.6/+6%
# VIA Nano 6.4/+9% # VIA Nano 6.4/+9%
# Ivy Bridge 4.9/0% # Ivy Bridge 4.9/±0%
# Bulldozer 4.9/+15% # Bulldozer 4.9/+15%
# #
# (*) PIII can actually deliver 6.6 cycles per byte with MMX code, # (*) PIII can actually deliver 6.6 cycles per byte with MMX code,
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
# achieves respectful 432MBps on 2.8GHz processor now. For reference. # achieves respectful 432MBps on 2.8GHz processor now. For reference.
# If executed on Xeon, current RC4_CHAR code-path is 2.7x faster than # If executed on Xeon, current RC4_CHAR code-path is 2.7x faster than
# RC4_INT code-path. While if executed on Opteron, it's only 25% # RC4_INT code-path. While if executed on Opteron, it's only 25%
# slower than the RC4_INT one [meaning that if CPU -arch detection # slower than the RC4_INT one [meaning that if CPU µ-arch detection
# is not implemented, then this final RC4_CHAR code-path should be # is not implemented, then this final RC4_CHAR code-path should be
# preferred, as it provides better *all-round* performance]. # preferred, as it provides better *all-round* performance].
......
...@@ -66,9 +66,9 @@ ...@@ -66,9 +66,9 @@
# switch to AVX alone improves performance by as little as 4% in # switch to AVX alone improves performance by as little as 4% in
# comparison to SSSE3 code path. But below result doesn't look like # comparison to SSSE3 code path. But below result doesn't look like
# 4% improvement... Trouble is that Sandy Bridge decodes 'ro[rl]' as # 4% improvement... Trouble is that Sandy Bridge decodes 'ro[rl]' as
# pair of µ-ops, and it's the additional µ-ops, two per round, that # pair of µ-ops, and it's the additional µ-ops, two per round, that
# make it run slower than Core2 and Westmere. But 'sh[rl]d' is decoded # make it run slower than Core2 and Westmere. But 'sh[rl]d' is decoded
# as single µ-op by Sandy Bridge and it's replacing 'ro[rl]' with # as single µ-op by Sandy Bridge and it's replacing 'ro[rl]' with
# equivalent 'sh[rl]d' that is responsible for the impressive 5.1 # equivalent 'sh[rl]d' that is responsible for the impressive 5.1
# cycles per processed byte. But 'sh[rl]d' is not something that used # cycles per processed byte. But 'sh[rl]d' is not something that used
# to be fast, nor does it appear to be fast in upcoming Bulldozer # to be fast, nor does it appear to be fast in upcoming Bulldozer
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
# SHA256 block transform for x86. September 2007. # SHA256 block transform for x86. September 2007.
# #
# Performance improvement over compiler generated code varies from # Performance improvement over compiler generated code varies from
# 10% to 40% [see below]. Not very impressive on some -archs, but # 10% to 40% [see below]. Not very impressive on some µ-archs, but
# it's 5 times smaller and optimizies amount of writes. # it's 5 times smaller and optimizies amount of writes.
# #
# May 2012. # May 2012.
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
# #
# IALU code-path is optimized for elder Pentiums. On vanilla Pentium # IALU code-path is optimized for elder Pentiums. On vanilla Pentium
# performance improvement over compiler generated code reaches ~60%, # performance improvement over compiler generated code reaches ~60%,
# while on PIII - ~35%. On newer -archs improvement varies from 15% # while on PIII - ~35%. On newer µ-archs improvement varies from 15%
# to 50%, but it's less important as they are expected to execute SSE2 # to 50%, but it's less important as they are expected to execute SSE2
# code-path, which is commonly ~2-3x faster [than compiler generated # code-path, which is commonly ~2-3x faster [than compiler generated
# code]. SSE2 code-path is as fast as original sha512-sse2.pl, even # code]. SSE2 code-path is as fast as original sha512-sse2.pl, even
......
...@@ -127,7 +127,7 @@ OPENSSL_wipe_cpu: ...@@ -127,7 +127,7 @@ OPENSSL_wipe_cpu:
fmovs %f1,%f3 fmovs %f1,%f3
fmovs %f0,%f2 fmovs %f0,%f2
add %fp,BIAS,%i0 ! return pointer to callers top of stack add %fp,BIAS,%i0 ! return pointer to caller´s top of stack
ret ret
restore restore
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
# table]. I stick to value of 2 for two reasons: 1. smaller table # table]. I stick to value of 2 for two reasons: 1. smaller table
# minimizes cache trashing and thus mitigates the hazard of side- # minimizes cache trashing and thus mitigates the hazard of side-
# channel leakage similar to AES cache-timing one; 2. performance # channel leakage similar to AES cache-timing one; 2. performance
# gap among different -archs is smaller. # gap among different µ-archs is smaller.
# #
# Performance table lists rounded amounts of CPU cycles spent by # Performance table lists rounded amounts of CPU cycles spent by
# whirlpool_block_mmx routine on single 64 byte input block, i.e. # whirlpool_block_mmx routine on single 64 byte input block, i.e.
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* Contributed to the OpenSSL Project 2004 by Richard Levitte * Contributed to the OpenSSL Project 2004 by Richard Levitte
* (richard@levitte.org) * (richard@levitte.org)
*/ */
/* Copyright (c) 2004 Kungliga Tekniska Hgskolan /* Copyright (c) 2004 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* Contributed to the OpenSSL Project 2004 by Richard Levitte * Contributed to the OpenSSL Project 2004 by Richard Levitte
* (richard@levitte.org) * (richard@levitte.org)
*/ */
/* Copyright (c) 2004 Kungliga Tekniska Högskolan /* Copyright (c) 2004 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
......
...@@ -62,4 +62,4 @@ As noted above, easy_tls.c will be changed to become a library one ...@@ -62,4 +62,4 @@ As noted above, easy_tls.c will be changed to become a library one
day, which means that future revisions will not be fully compatible to day, which means that future revisions will not be fully compatible to
the current version. the current version.
Bodo Möller <bodo@openssl.org> Bodo Möller <bodo@openssl.org>
...@@ -57,7 +57,7 @@ BEGIN ...@@ -57,7 +57,7 @@ BEGIN
VALUE "ProductVersion", "$version\\0" VALUE "ProductVersion", "$version\\0"
// Optional: // Optional:
//VALUE "Comments", "\\0" //VALUE "Comments", "\\0"
VALUE "LegalCopyright", "Copyright 1998-2006 The OpenSSL Project. Copyright 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0" VALUE "LegalCopyright", "Copyright © 1998-2006 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
//VALUE "LegalTrademarks", "\\0" //VALUE "LegalTrademarks", "\\0"
//VALUE "PrivateBuild", "\\0" //VALUE "PrivateBuild", "\\0"
//VALUE "SpecialBuild", "\\0" //VALUE "SpecialBuild", "\\0"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册