David Woodhouse 2e94723c1b Fix ubsan 'left shift of negative value -1' error in satsub64be()
Baroque, almost uncommented code triggers behaviour which is undefined
by the C standard. You might quite reasonably not care that the code was
broken on ones-complement machines, but if we support a ubsan build then
we need to at least pretend to care.

It looks like the special-case code for 64-bit big-endian is going to
behave differently (and wrongly) on wrap-around, because it treats the
values as signed. That seems wrong, and allows replay and other attacks.
Surely you need to renegotiate and start a new epoch rather than
wrapping around to sequence number zero again?

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
2016-08-04 20:56:24 +01:00
..
2016-07-29 14:09:57 +01:00
2016-06-29 09:56:39 -04:00
2016-05-17 14:19:19 -04:00
2016-05-17 14:19:19 -04:00
2016-08-04 20:56:23 +01:00
2016-05-17 14:19:19 -04:00
2016-06-22 00:26:10 +02:00
2016-06-29 09:56:39 -04:00
2016-07-16 12:32:34 -04:00
2016-05-17 14:19:19 -04:00
2016-06-22 00:26:10 +02:00
2016-05-17 14:19:19 -04:00
2016-05-17 14:19:19 -04:00
2016-05-17 14:19:19 -04:00