[Development] Backporting the Keccak change
Thiago Macieira
thiago.macieira at intel.com
Sun Sep 3 03:10:14 CEST 2017
On Saturday, 2 September 2017 12:03:13 PDT Oswald Buddenhagen wrote:
> On Wed, Aug 30, 2017 at 12:45:44PM -0700, Thiago Macieira wrote:
> > a) revert the 5.6 backport of 88a8feeacb9bdaff9ee06164424e407eb904cd10 so
> >
> > that 5.6.x will forever calculate Keccak, not SHA3;
> >
> > b) additionally backport 12c5264d9add1826d543c36d893db77262195fc6 to both
> > 5.6>
> > and 5.9, with the proper binary compatibility notices, so that people who
> > need to can adapt their code to calculate Keccak. It won't be pretty, but
> > it will work.
> >
> > I'm actually leaning towards (a) for 5.6 and (b) for 5.9.
>
> b) isn't legitimate for 5.9, either, as we can't add new api in a patch
> release (forward compat promise). so it would be a) for 5.9, too. the
> unfortunate effect is that this is a behavior change against 5.9.0, but
> 5.9.2+ will certainly have a longer lifetime than 5.9.x so far.
While technically correct, I think this one is worth breaking the promise.
Please note that we will break the promise anyway by adding
QOperatingSystemVersion::AndroidOreo and we did it already for 5.9.1 for
QOperatingSystemVersion::MacOSHighSierra. You can blame MSVC 2013 for this
need.
Reverting the SHA3 calculation might not be such a bad idea, though.
> if we wanted to be really conservative, we'd leave the old meaning of
> the sha3 constants and introduce realSha3 (or something to that effect)
> instead, in 5.10+. keccak aliases would be also provided for a smooth
> migration.
Yeah, we can do that and we can also provide a #define to opt-in or out-opt of
the real SHA3. Having people add a #define to their code if they need to keep
compatibility is much easier than using an enumerator that isn't yet present
in any released version.
So I agree with Ossi here. I suggest we do:
a) revert the previous enumeration values to calculate Keccak
b) accept a forwards BC break by adding new values for SHA3
c) introduce a macro so people who need algorithm compatibility across
versions can opt-in without introducing ugly #if in their code
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development
mailing list