[openssl-commits] Still FAILED build of OpenSSL branch master with options -d --strict-warnings no-md5

2018-07-26 Thread OpenSSL run-checker
Platform and configuration command:

$ uname -a
Linux run 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 
x86_64 x86_64 GNU/Linux
$ CC=clang ../openssl/config -d --strict-warnings no-md5

Commit log since last time:

a75be9f Improve backwards compat for SSL_get_servername()
45a2353 Fix ossl_shim SNI handling
9d91530 EC GFp ladder
793f19e 00-base-templates.conf: engage x25519-ppc64 module.
8e83072 Add ec/asm/x25519-ppc64.pl module.
70a579a bn/bn_mod.c: harmonize BN_mod_add_quick with original implementation.
06deb93 apps/apps.c: harmonize print_bignum_var output with coding style.
b9e54e9 Fix inconsisten use of bit vs bits
9e4c977 Fix a trivial coding style nit in sm2_sign.c
feac7a1 Make number of Miller-Rabin tests for a prime tests depend on the 
security level of the prime
74ee379 Change the number of Miller-Rabin test for DSA generation to 64

Build log ended with (last 100 lines):

$ CC=clang ../openssl/config -d --strict-warnings no-md5
Operating system: x86_64-whatever-linux2

Failure!  build file wasn't produced.
Please read INSTALL and associated NOTES files.  You may also have to look over
your available compiler tool chain or change your configuration.

* Unsupported options: no-md5
$ make clean
make: *** No rule to make target 'clean'.  Stop.
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] Build completed: openssl master.19141

2018-07-26 Thread AppVeyor


Build openssl master.19141 completed



Commit a75be9fd34 by Benjamin Kaduk on 7/26/2018 8:06 PM:

Improve backwards compat for SSL_get_servername()


Configure your notification preferences

_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] [openssl] master update

2018-07-26 Thread kaduk
The branch master has been updated
   via  a75be9fd34b5d66f349186f21cd8d063d2fa87a4 (commit)
   via  45a2353056da3f357a924131578ad0a4a2e5fbb7 (commit)
  from  9d91530d2d7da1447b7be8631b269599023430e7 (commit)


- Log -
commit a75be9fd34b5d66f349186f21cd8d063d2fa87a4
Author: Benjamin Kaduk 
Date:   Wed Jul 25 21:00:45 2018 -0500

Improve backwards compat for SSL_get_servername()

Commit 1c4aa31d79821dee9be98e915159d52cc30d8403 changed how we process
and store SNI information during the handshake, so that a hostname is
only saved in the SSL_SESSION structure if that SNI value has actually
been negotiated.  SSL_get_servername() was adjusted to match, with a new
conditional being added to handle the case when the handshake processing
is ongoing, and a different location should be consulted for the offered
SNI value.  This was done in an attempt to preserve the historical
behavior of SSL_get_servername(), a function whose behavior only mostly
matches its documentation, and whose documentation is both lacking and
does not necessarily reflect the actual desired behavior for such an
API.  Unfortunately, sweeping changes that would bring more sanity to
this space are not possible until OpenSSL 1.2.0, for ABI compatibility
reasons, so we must attempt to maintain the existing behavior to the
extent possible.

The above-mentioned commit did not take into account the behavior
of SSL_get_servername() during resumption handshakes for TLS 1.2 and
prior, where no SNI negotiation is performed.  In that case we would
not properly parse the incoming SNI and erroneously return NULL as
the servername, when instead the logical session is associated with
the SNI value cached in the SSL_SESSION.  (Note that in some cases an
SNI callback may not need to do anything in a TLS 1.2 or prior resumption
flow, but we are calling the callbacks and did not provide any guidance
that they should no-op if the connection is being resumed, so we must
handle this case in a usable fashion.)  Update our behavior accordingly to
return the session's cached value during the handshake, when resuming.
This fixes the boringssl tests.

[extended tests]

Reviewed-by: Richard Levitte 
(Merged from https://github.com/openssl/openssl/pull/6792)

commit 45a2353056da3f357a924131578ad0a4a2e5fbb7
Author: Benjamin Kaduk 
Date:   Wed Jul 25 14:48:30 2018 -0500

Fix ossl_shim SNI handling

To start with, actually set an SNI callback (copied from bssl_shim); we
weren't actually testing much otherwise (and just happened to have been
passing due to buggy libssl behavior prior to
commit 1c4aa31d79821dee9be98e915159d52cc30d8403).

Also use proper C++ code for handling C strings -- when a C API
(SSL_get_servername()) returns NULL instead of a string, special-case
that instead of blindly trying to compare NULL against a std::string,
and perform the comparsion using the std::string operators instead of
falling back to pointer comparison.

Reviewed-by: Richard Levitte 
(Merged from https://github.com/openssl/openssl/pull/6792)

---

Summary of changes:
 ssl/ssl_lib.c   |  5 -
 test/ossl_shim/ossl_shim.cc | 21 -
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 10a7694..15380e1 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -2618,8 +2618,11 @@ const char *SSL_get_servername(const SSL *s, const int 
type)
  * peer send" and "what was actually negotiated"; we should have
  * a clear distinction amongst those three.
  */
-if (SSL_in_init(s))
+if (SSL_in_init(s)) {
+if (s->hit)
+return s->session->ext.hostname;
 return s->ext.hostname;
+}
 return (s->session != NULL && s->ext.hostname == NULL) ?
 s->session->ext.hostname : s->ext.hostname;
 }
diff --git a/test/ossl_shim/ossl_shim.cc b/test/ossl_shim/ossl_shim.cc
index b1067e8..90d1f1e 100644
--- a/test/ossl_shim/ossl_shim.cc
+++ b/test/ossl_shim/ossl_shim.cc
@@ -459,6 +459,20 @@ static int CustomExtensionParseCallback(SSL *ssl, unsigned 
extension_value,
   return 1;
 }
 
+static int ServerNameCallback(SSL *ssl, int *out_alert, void *arg) {
+  // SNI must be accessible from the SNI callback.
+  const TestConfig *config = GetTestConfig(ssl);
+  const char *server_name = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
+  if (server_name == nullptr ||
+  std::string(server_name) != config->expected_server_name) {
+fprintf(stderr, "servername mismatch (got %s; want %s)\n", server_name,
+config->expected_server_name.c_str());
+return SSL_TLSEXT_ERR_ALERT_FATAL;
+  }
+
+  return SSL_TLSEXT_ERR_OK;
+}
+
 // Connect returns 

[openssl-commits] [web] master update

2018-07-26 Thread Rich Salz
The branch master has been updated
   via  45331ed59e3bd3c16808ceed54e35a98a3fea79b (commit)
  from  3c0d5cabf30bc2367a5574b3b9bfd5639396533f (commit)


- Log -
commit 45331ed59e3bd3c16808ceed54e35a98a3fea79b
Author: Rich Salz 
Date:   Thu Jul 26 15:00:58 2018 -0400

Add GeneralName question

Reviewed-by: Viktor Dukhovni 
(Merged from https://github.com/openssl/openssl/pull/64)

---

Summary of changes:
 docs/faq-3-prog.txt | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/docs/faq-3-prog.txt b/docs/faq-3-prog.txt
index a471f5e..bb6790a 100644
--- a/docs/faq-3-prog.txt
+++ b/docs/faq-3-prog.txt
@@ -154,6 +154,25 @@ Rules (DER): these uniquely specify how a given structure 
is encoded.
 Therefore, because DER is a special case of BER, DER is an acceptable encoding
 for BER.
 
+* The encoding for GeneralName is wrong; why is the SEQUENCE tag missing?
+
+In RFC 5280 GeneralName is defined in the module in Appendix A.2, and that
+module specifies the use of IMPLICIT tagging. This means that there is not an
+explicit SEQUENCE (30) tag following the A0 tag (you just know from the ASN.1
+that what follows the A1 tag is a SEQUENCE). This is in contrast to the value
+field within OtherName (test@kerberose-domain.internal), where the tag for
+UTF8String (0C) follows the A0 tag, since EXPLICIT tagging is specified for
+that particular field.
+
+You will notice the same thing if you look at other choices within
+GeneralName. If you look at the DNS names encoded in the subjectAltName
+extension, the 82 tag (corresponding to [2]) is not followed by a tag for
+IA5String (22). It is not needed since the ASN.1 indicates that what follows
+the 82 tag is an IA5String. However, if the module specified EXPLICIT
+encoding, then there would be a 16 tag after the 82 tag.
+
+(Thanks to David Cooper for this text.)
+
 * I tried to set a cipher list with a valid cipher, but the call fails, why?
 
 OpenSSL 1.1.0 introduced the concept of a security level, 
allowing
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] Build failed: openssl master.19140

2018-07-26 Thread AppVeyor



Build openssl master.19140 failed


Commit 9d91530d2d by Billy Brumley on 7/26/2018 5:41 PM:

EC GFp ladder


Configure your notification preferences

_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] [openssl] master update

2018-07-26 Thread Andy Polyakov
The branch master has been updated
   via  9d91530d2d7da1447b7be8631b269599023430e7 (commit)
  from  793f19e47c69558e39c702da75c27e0509baf379 (commit)


- Log -
commit 9d91530d2d7da1447b7be8631b269599023430e7
Author: Billy Brumley 
Date:   Thu Jul 19 11:16:07 2018 +0300

EC GFp ladder

This commit leverages the Montgomery ladder scaffold introduced in #6690
(alongside a specialized Lopez-Dahab ladder for binary curves) to
provide a specialized differential addition-and-double implementation to
speedup prime curves, while keeping all the features of
`ec_scalar_mul_ladder` against SCA attacks.

The arithmetic in ladder_pre, ladder_step and ladder_post is auto
generated with tooling, from the following formulae:

- `ladder_pre`: Formula 3 for doubling from Izu-Takagi "A fast parallel
  elliptic curve multiplication resistant against side channel attacks",
  as described at
  
https://hyperelliptic.org/EFD/g1p/auto-shortw-xz.html#doubling-dbl-2002-it-2
- `ladder_step`: differential addition-and-doubling Eq. (8) and (10)
  from Izu-Takagi "A fast parallel elliptic curve multiplication
  resistant against side channel attacks", as described at
  
https://hyperelliptic.org/EFD/g1p/auto-shortw-xz.html#ladder-ladd-2002-it-3
- `ladder_post`: y-coordinate recovery using Eq. (8) from Brier-Joye
  "Weierstrass Elliptic Curves and Side-Channel Attacks", modified to
  work in projective coordinates.

Co-authored-by: Nicola Tuveri 

Reviewed-by: Andy Polyakov 
Reviewed-by: Rich Salz 
(Merged from https://github.com/openssl/openssl/pull/6772)

---

Summary of changes:
 CHANGES  |  11 ++-
 crypto/ec/ec_lcl.h   |  13 ++-
 crypto/ec/ecp_mont.c |   6 +-
 crypto/ec/ecp_nist.c |   6 +-
 crypto/ec/ecp_smpl.c | 228 +--
 5 files changed, 249 insertions(+), 15 deletions(-)

diff --git a/CHANGES b/CHANGES
index cab58c0..7805912 100644
--- a/CHANGES
+++ b/CHANGES
@@ -9,6 +9,15 @@
 
  Changes between 1.1.0h and 1.1.1 [xx XXX ]
 
+  *) Use the new ec_scalar_mul_ladder scaffold to implement a specialized 
ladder
+ step for prime curves. The new implementation is based on formulae from
+ differential addition-and-doubling in homogeneous projective coordinates
+ from Izu-Takagi "A fast parallel elliptic curve multiplication resistant
+ against side channel attacks" and Brier-Joye "Weierstrass Elliptic Curves
+ and Side-Channel Attacks" Eq. (8) for y-coordinate recovery, modified
+ to work in projective coordinates.
+ [Billy Bob Brumley, Nicola Tuveri]
+
   *) Change generating and checking of primes so that the error rate of not
  being prime depends on the intended use based on the size of the input.
  For larger primes this will result in more rounds of Miller-Rabin.
@@ -30,7 +39,7 @@
  [Andy Polyakov]
 
   *) Use the new ec_scalar_mul_ladder scaffold to implement a specialized 
ladder
- step for binary curves. The new implementation is based on formulas from
+ step for binary curves. The new implementation is based on formulae from
  differential addition-and-doubling in mixed Lopez-Dahab projective
  coordinates, modified to independently blind the operands.
  [Billy Bob Brumley, Sohaib ul Hassan, Nicola Tuveri]
diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h
index 217392e..c706a84 100644
--- a/crypto/ec/ec_lcl.h
+++ b/crypto/ec/ec_lcl.h
@@ -301,7 +301,6 @@ struct ec_point_st {
  * special case */
 };
 
-
 static ossl_inline int ec_point_is_compat(const EC_POINT *point,
   const EC_GROUP *group)
 {
@@ -314,7 +313,6 @@ static ossl_inline int ec_point_is_compat(const EC_POINT 
*point,
 return 1;
 }
 
-
 NISTP224_PRE_COMP *EC_nistp224_pre_comp_dup(NISTP224_PRE_COMP *);
 NISTP256_PRE_COMP *EC_nistp256_pre_comp_dup(NISTP256_PRE_COMP *);
 NISTP521_PRE_COMP *EC_nistp521_pre_comp_dup(NISTP521_PRE_COMP *);
@@ -394,7 +392,16 @@ int ec_GFp_simple_field_mul(const EC_GROUP *, BIGNUM *r, 
const BIGNUM *a,
 int ec_GFp_simple_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
 BN_CTX *);
 int ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT *p,
-   BN_CTX *ctx);
+BN_CTX *ctx);
+int ec_GFp_simple_ladder_pre(const EC_GROUP *group,
+ EC_POINT *r, EC_POINT *s,
+ EC_POINT *p, BN_CTX *ctx);
+int ec_GFp_simple_ladder_step(const EC_GROUP *group,
+  EC_POINT *r, EC_POINT *s,
+  EC_POINT *p, BN_CTX *ctx);
+int ec_GFp_simple_ladder_post(const EC_GROUP *group,
+  

[openssl-commits] [openssl] OpenSSL_1_1_0-stable update

2018-07-26 Thread Andy Polyakov
The branch OpenSSL_1_1_0-stable has been updated
   via  2f19065bd35dc84492c4c47ff5b706340300866f (commit)
   via  b7862891fed4cfb5ec36a31d35e14b51bf26d01e (commit)
  from  616153f2f9c07f51212fb5e85170e89a4ebaadbb (commit)


- Log -
commit 2f19065bd35dc84492c4c47ff5b706340300866f
Author: Andy Polyakov 
Date:   Fri Jul 6 15:13:15 2018 +0200

bn/bn_{mont|exp}.c: switch to zero-padded intermediate vectors.

Note that exported functions maintain original behaviour, so that
external callers won't observe difference. While internally we can
now perform Montogomery multiplication on fixed-length vectors, fixed
at modulus size. The new functions, bn_to_mont_fixed_top and
bn_mul_mont_fixed_top, are declared in bn_int.h, because one can use
them even outside bn, e.g. in RSA, DSA, ECDSA...

Reviewed-by: Rich Salz 
(Merged from https://github.com/openssl/openssl/pull/6707)

(cherry picked from commit 71883868ea5b33416ae8283bcc38dd2d97e5006b)

Resolved conflicts:
crypto/bn/bn_exp.c
crypto/bn/bn_mont.c
crypto/include/internal/bn_int.h

commit b7862891fed4cfb5ec36a31d35e14b51bf26d01e
Author: Andy Polyakov 
Date:   Fri Jul 6 15:02:29 2018 +0200

bn/bn_lib.c: add BN_FLG_FIXED_TOP flag.

The new flag marks vectors that were not treated with bn_correct_top,
in other words such vectors are permitted to be zero padded. For now
it's BN_DEBUG-only flag, as initial use case for zero-padded vectors
would be controlled Montgomery multiplication/exponentiation, not
general purpose. For general purpose use another type might be more
appropriate. Advantage of this suggestion is that it's possible to
back-port it...

bn/bn_div.c: fix memory sanitizer problem.
bn/bn_sqr.c: harmonize with BN_mul.

Reviewed-by: Rich Salz 
(Merged from https://github.com/openssl/openssl/pull/6707)

(cherry picked from commit 305b68f1a2b6d4d0aa07a6ab47ac372f067a40bb)

Resolved conflicts:
crypto/bn/bn_lcl.h

---

Summary of changes:
 crypto/bn/bn_div.c   |  1 +
 crypto/bn/bn_exp.c   | 47 ++--
 crypto/bn/bn_lcl.h   | 21 ++
 crypto/bn/bn_lib.c   | 15 +
 crypto/bn/bn_mont.c  | 45 --
 crypto/bn/bn_sqr.c   | 10 ++---
 crypto/include/internal/bn_int.h | 11 ++
 7 files changed, 102 insertions(+), 48 deletions(-)

diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c
index 5e620b2..aa13ce6 100644
--- a/crypto/bn/bn_div.c
+++ b/crypto/bn/bn_div.c
@@ -240,6 +240,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const 
BIGNUM *divisor,
 wnum.neg = 0;
 wnum.d = &(snum->d[loop]);
 wnum.top = div_n;
+wnum.flags = BN_FLG_STATIC_DATA;
 /*
  * only needed when BN_ucmp messes up the values between top and max
  */
diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c
index dac3640..a6ad475 100644
--- a/crypto/bn/bn_exp.c
+++ b/crypto/bn/bn_exp.c
@@ -371,17 +371,17 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const 
BIGNUM *p,
 ret = 1;
 goto err;
 }
-if (!BN_to_montgomery(val[0], aa, mont, ctx))
+if (!bn_to_mont_fixed_top(val[0], aa, mont, ctx))
 goto err;   /* 1 */
 
 window = BN_window_bits_for_exponent_size(bits);
 if (window > 1) {
-if (!BN_mod_mul_montgomery(d, val[0], val[0], mont, ctx))
+if (!bn_mul_mont_fixed_top(d, val[0], val[0], mont, ctx))
 goto err;   /* 2 */
 j = 1 << (window - 1);
 for (i = 1; i < j; i++) {
 if (((val[i] = BN_CTX_get(ctx)) == NULL) ||
-!BN_mod_mul_montgomery(val[i], val[i - 1], d, mont, ctx))
+!bn_mul_mont_fixed_top(val[i], val[i - 1], d, mont, ctx))
 goto err;
 }
 }
@@ -403,19 +403,15 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const 
BIGNUM *p,
 for (i = 1; i < j; i++)
 r->d[i] = (~m->d[i]) & BN_MASK2;
 r->top = j;
-/*
- * Upper words will be zero if the corresponding words of 'm' were
- * 0xfff[...], so decrement r->top accordingly.
- */
-bn_correct_top(r);
+r->flags |= BN_FLG_FIXED_TOP;
 } else
 #endif
-if (!BN_to_montgomery(r, BN_value_one(), mont, ctx))
+if (!bn_to_mont_fixed_top(r, BN_value_one(), mont, ctx))
 goto err;
 for (;;) {
 if (BN_is_bit_set(p, wstart) == 0) {
 if (!start) {
-if (!BN_mod_mul_montgomery(r, r, r, mont, ctx))
+if (!bn_mul_mont_fixed_top(r, r, r, mont, ctx))
 goto err;
 }
 if (wstart == 0)
@@ -446,12 +442,12 @@ 

[openssl-commits] [openssl] master update

2018-07-26 Thread Andy Polyakov
The branch master has been updated
   via  793f19e47c69558e39c702da75c27e0509baf379 (commit)
   via  8e8307231014bded6eb9562262ef09a76d4bfe87 (commit)
  from  70a579ae2f37437a1e02331eeaa84e1b68ba021e (commit)


- Log -
commit 793f19e47c69558e39c702da75c27e0509baf379
Author: Andy Polyakov 
Date:   Wed Jul 25 10:24:42 2018 +0200

00-base-templates.conf: engage x25519-ppc64 module.

Reviewed-by: Rich Salz 
Reviewed-by: Richard Levitte 
(Merged from https://github.com/openssl/openssl/pull/6782)

commit 8e8307231014bded6eb9562262ef09a76d4bfe87
Author: Andy Polyakov 
Date:   Wed Jul 25 10:24:09 2018 +0200

Add ec/asm/x25519-ppc64.pl module.

Reviewed-by: Rich Salz 
Reviewed-by: Richard Levitte 
(Merged from https://github.com/openssl/openssl/pull/6782)

---

Summary of changes:
 Configurations/00-base-templates.conf |   2 +-
 crypto/ec/asm/x25519-ppc64.pl | 824 ++
 crypto/ec/build.info  |   1 +
 3 files changed, 826 insertions(+), 1 deletion(-)
 create mode 100755 crypto/ec/asm/x25519-ppc64.pl

diff --git a/Configurations/00-base-templates.conf 
b/Configurations/00-base-templates.conf
index 4a1645f..516e3cd 100644
--- a/Configurations/00-base-templates.conf
+++ b/Configurations/00-base-templates.conf
@@ -344,7 +344,7 @@ my %targets=(
 ppc64_asm => {
inherit_from=> [ "ppc32_asm" ],
template=> 1,
-   ec_asm_src  => "ecp_nistz256.c ecp_nistz256-ppc64.s",
+   ec_asm_src  => "ecp_nistz256.c ecp_nistz256-ppc64.s x25519-ppc64.s",
keccak1600_asm_src  => "keccak1600-ppc64.s",
 },
 );
diff --git a/crypto/ec/asm/x25519-ppc64.pl b/crypto/ec/asm/x25519-ppc64.pl
new file mode 100755
index 000..3773cb2
--- /dev/null
+++ b/crypto/ec/asm/x25519-ppc64.pl
@@ -0,0 +1,824 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+#
+# 
+# Written by Andy Polyakov  for the OpenSSL
+# project. The module is, however, dual licensed under OpenSSL and
+# CRYPTOGAMS licenses depending on where you obtain it. For further
+# details see http://www.openssl.org/~appro/cryptogams/.
+# 
+#
+# X25519 lower-level primitives for PPC64.
+#
+# July 2018.
+#
+# Base 2^64 is faster than base 2^51 on pre-POWER8, most notably ~15%
+# faster on PPC970/G5. POWER8 on the other hand seems to trip on own
+# shoelaces when handling longer carry chains. As base 2^51 has just
+# single-carry pairs, it's 25% faster than base 2^64. Since PPC970 is
+# pretty old, base 2^64 implementation is not engaged. Comparison to
+# compiler-generated code is complicated by the fact that not all
+# compilers support 128-bit integers. When compiler doesn't, like xlc,
+# this module delivers more than 2x improvement, and when it does,
+# from 12% to 30% improvement was measured...
+
+$flavour = shift;
+while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {}
+
+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
+( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or
+( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or
+die "can't locate ppc-xlate.pl";
+
+open OUT,"| \"$^X\" $xlate $flavour $output";
+*STDOUT=*OUT;
+
+my $sp = "r1";
+my ($rp,$ap,$bp) = map("r$_",3..5);
+
+### base 2^64
+if (0) {
+my ($bi,$a0,$a1,$a2,$a3,$t0,$t1, $t2,$t3,
+$acc0,$acc1,$acc2,$acc3,$acc4,$acc5,$acc6,$acc7) =
+map("r$_",(6..12,22..31));
+my $zero = "r0";
+my $FRAME = 16*8;
+
+$code.=<<___;
+.text
+
+.globl x25519_fe64_mul
+.type  x25519_fe64_mul,\@function
+.align 5
+x25519_fe64_mul:
+   stdu$sp,-$FRAME($sp)
+   std r22,`$FRAME-8*10`($sp)
+   std r23,`$FRAME-8*9`($sp)
+   std r24,`$FRAME-8*8`($sp)
+   std r25,`$FRAME-8*7`($sp)
+   std r26,`$FRAME-8*6`($sp)
+   std r27,`$FRAME-8*5`($sp)
+   std r28,`$FRAME-8*4`($sp)
+   std r29,`$FRAME-8*3`($sp)
+   std r30,`$FRAME-8*2`($sp)
+   std r31,`$FRAME-8*1`($sp)
+
+   ld  $bi,0($bp)
+   ld  $a0,0($ap)
+   xor $zero,$zero,$zero
+   ld  $a1,8($ap)
+   ld  $a2,16($ap)
+   ld  $a3,24($ap)
+
+   mulld   $acc0,$a0,$bi   # a[0]*b[0]
+   mulhdu  $t0,$a0,$bi
+   mulld   $acc1,$a1,$bi   # a[1]*b[0]
+   mulhdu  $t1,$a1,$bi
+   mulld   $acc2,$a2,$bi   # a[2]*b[0]
+   mulhdu  $t2,$a2,$bi
+   mulld   $acc3,$a3,$bi

[openssl-commits] [openssl] master update

2018-07-26 Thread Andy Polyakov
The branch master has been updated
   via  70a579ae2f37437a1e02331eeaa84e1b68ba021e (commit)
  from  06deb93286ac5f125fc81ddc9260b9de2311c7f3 (commit)


- Log -
commit 70a579ae2f37437a1e02331eeaa84e1b68ba021e
Author: Andy Polyakov 
Date:   Wed Jul 25 10:29:51 2018 +0200

bn/bn_mod.c: harmonize BN_mod_add_quick with original implementation.

New implementation failed to correctly reset r->neg flag. Spotted by
OSSFuzz.

Reviewed-by: Rich Salz 
(Merged from https://github.com/openssl/openssl/pull/6783)

---

Summary of changes:
 crypto/bn/bn_mod.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crypto/bn/bn_mod.c b/crypto/bn/bn_mod.c
index 463d2d6..d8e2e12 100644
--- a/crypto/bn/bn_mod.c
+++ b/crypto/bn/bn_mod.c
@@ -83,6 +83,7 @@ int bn_mod_add_fixed_top(BIGNUM *r, const BIGNUM *a, const 
BIGNUM *b,
 ((volatile BN_ULONG *)tp)[i] = 0;
 }
 r->top = mtop;
+r->neg = 0;
 
 if (tp != storage)
 OPENSSL_free(tp);
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] [openssl] master update

2018-07-26 Thread Andy Polyakov
The branch master has been updated
   via  06deb93286ac5f125fc81ddc9260b9de2311c7f3 (commit)
  from  b9e54e98066c1ff8adab5d68b6c114b14d2f74e5 (commit)


- Log -
commit 06deb93286ac5f125fc81ddc9260b9de2311c7f3
Author: Andy Polyakov 
Date:   Wed Jul 25 11:13:58 2018 +0200

apps/apps.c: harmonize print_bignum_var output with coding style.

Reviewed-by: Rich Salz 

---

Summary of changes:
 apps/apps.c | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/apps/apps.c b/apps/apps.c
index 2740275..4090e60 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -1188,16 +1188,15 @@ void print_bignum_var(BIO *out, const BIGNUM *in, const 
char *var,
 {
 BIO_printf(out, "static unsigned char %s_%d[] = {", var, len);
 if (BN_is_zero(in)) {
-BIO_printf(out, "\n\t0x00");
+BIO_printf(out, "\n0x00");
 } else {
 int i, l;
 
 l = BN_bn2bin(in, buffer);
 for (i = 0; i < l; i++) {
-if ((i % 10) == 0)
-BIO_printf(out, "\n\t");
+BIO_printf(out, (i % 10) == 0 ? "\n" : " ");
 if (i < l - 1)
-BIO_printf(out, "0x%02X, ", buffer[i]);
+BIO_printf(out, "0x%02X,", buffer[i]);
 else
 BIO_printf(out, "0x%02X", buffer[i]);
 }
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] [openssl] OpenSSL_1_0_2-stable update

2018-07-26 Thread Kurt Roeckx
The branch OpenSSL_1_0_2-stable has been updated
   via  d69f31fcc38878769c8c917f8724c5aef10fd847 (commit)
  from  be4e1f79f631e49c76d02fe4644b52f907c374b2 (commit)


- Log -
commit d69f31fcc38878769c8c917f8724c5aef10fd847
Author: Kurt Roeckx 
Date:   Thu Jul 26 11:10:24 2018 +0200

Fix inconsistent use of bit vs bits

Reviewed-by: Tim Hudson 
GH: #6794
(cherry picked from commit b9e54e98066c1ff8adab5d68b6c114b14d2f74e5)

---

Summary of changes:
 doc/crypto/BN_generate_prime.pod | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/crypto/BN_generate_prime.pod b/doc/crypto/BN_generate_prime.pod
index 0079f17..003d123 100644
--- a/doc/crypto/BN_generate_prime.pod
+++ b/doc/crypto/BN_generate_prime.pod
@@ -92,8 +92,8 @@ probabilistic primality test with B iterations. If
 B, a number of iterations is used that
 yields a false positive rate of at most 2^-64 for random input.
 The error rate depends on the size of the prime and goes down for bigger 
primes.
-The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bit, 2^-128 at 1080 bits,
-2^-192 at 3747 bit and 2^-256 at 6394 bit.
+The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bits, 2^-128 at 1080 
bits,
+2^-192 at 3747 bits and 2^-256 at 6394 bits.
 
 When the source of the prime is not random or not trusted, the number
 of checks needs to be much higher to reach the same level of assurance:
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] [openssl] OpenSSL_1_1_0-stable update

2018-07-26 Thread Kurt Roeckx
The branch OpenSSL_1_1_0-stable has been updated
   via  616153f2f9c07f51212fb5e85170e89a4ebaadbb (commit)
  from  707efcd64129c8010e192bd209bace0bc6d18ac9 (commit)


- Log -
commit 616153f2f9c07f51212fb5e85170e89a4ebaadbb
Author: Kurt Roeckx 
Date:   Thu Jul 26 11:10:24 2018 +0200

Fix inconsistent use of bit vs bits

Reviewed-by: Tim Hudson 
GH: #6794
(cherry picked from commit b9e54e98066c1ff8adab5d68b6c114b14d2f74e5)

---

Summary of changes:
 doc/crypto/BN_generate_prime.pod | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/crypto/BN_generate_prime.pod b/doc/crypto/BN_generate_prime.pod
index 4adc3c8..849df07 100644
--- a/doc/crypto/BN_generate_prime.pod
+++ b/doc/crypto/BN_generate_prime.pod
@@ -102,8 +102,8 @@ probabilistic primality test with B iterations. If
 B, a number of iterations is used that
 yields a false positive rate of at most 2^-64 for random input.
 The error rate depends on the size of the prime and goes down for bigger 
primes.
-The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bit, 2^-128 at 1080 bits,
-2^-192 at 3747 bit and 2^-256 at 6394 bit.
+The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bits, 2^-128 at 1080 
bits,
+2^-192 at 3747 bits and 2^-256 at 6394 bits.
 
 When the source of the prime is not random or not trusted, the number
 of checks needs to be much higher to reach the same level of assurance:
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits


[openssl-commits] [openssl] master update

2018-07-26 Thread Kurt Roeckx
The branch master has been updated
   via  b9e54e98066c1ff8adab5d68b6c114b14d2f74e5 (commit)
  from  9e4c97774861949f6f987772c0b579fe8a9c7d5a (commit)


- Log -
commit b9e54e98066c1ff8adab5d68b6c114b14d2f74e5
Author: Kurt Roeckx 
Date:   Thu Jul 26 11:10:24 2018 +0200

Fix inconsisten use of bit vs bits

Reviewed-by: Tim Hudson 
GH: #6794

---

Summary of changes:
 doc/man3/BN_generate_prime.pod | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/man3/BN_generate_prime.pod b/doc/man3/BN_generate_prime.pod
index 4b085e7..7cfa96e 100644
--- a/doc/man3/BN_generate_prime.pod
+++ b/doc/man3/BN_generate_prime.pod
@@ -103,8 +103,8 @@ probabilistic primality test with B iterations. If
 B, a number of iterations is used that
 yields a false positive rate of at most 2^-64 for random input.
 The error rate depends on the size of the prime and goes down for bigger 
primes.
-The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bit, 2^-128 at 1080 bits,
-2^-192 at 3747 bit and 2^-256 at 6394 bit.
+The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bits, 2^-128 at 1080 
bits,
+2^-192 at 3747 bits and 2^-256 at 6394 bits.
 
 When the source of the prime is not random or not trusted, the number
 of checks needs to be much higher to reach the same level of assurance:
_
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits