[11u] RFR: 8208698: Improved ECC Implementation
Langer, Christoph
christoph.langer at sap.com
Thu Jun 27 09:30:09 UTC 2019
Dang, you're right!
I'll open an issue and put it out for review. I guess you'll want to push it in your closed repository?
BTW: I just reported another regression which affects 11.0.4 as well: https://bugs.openjdk.java.net/browse/JDK-8226876 It's "just" a Java level assert but maybe we'll need to take some (backout?) action here for 11.0.4, too...
Thanks
Christoph
> -----Original Message-----
> From: Andrew John Hughes <gnu.andrew at redhat.com>
> Sent: Donnerstag, 27. Juni 2019 06:09
> To: Langer, Christoph <christoph.langer at sap.com>; jdk-updates-
> dev at openjdk.java.net
> Cc: security-dev <security-dev at openjdk.java.net>
> Subject: Re: [11u] RFR: 8208698: Improved ECC Implementation
>
> On 28/05/2019 08:21, Langer, Christoph wrote:
> > Hi,
> >
> > please review this backport of JDK-8208698: Improved ECC
> Implementation.
> >
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8208698
> > Original Change: http://hg.openjdk.java.net/jdk/jdk/rev/752e57845ad2
> > Webrev: http://cr.openjdk.java.net/~clanger/webrevs/8208698.11u/
> >
> > The patch did not apply cleanly because there were conflicts in
> src/jdk.crypto.ec/share/classes/sun/security/ec/ECDHKeyAgreement.java
> due to JDK-8205476 which is part of jdk/jdk but not of jdk11u-dev.
> Unfortunately, JDK-8205476 can not be downported as prerequisite because
> it brings a behavioral change and is associated with a CSR. So I resolved the
> rejects manually. I add the rejects below.
> >
> > Thanks
> > Christoph
> >
> >
>
> I'm just looking over this in backporting to 8u. You mention not being
> able to include the JDK-8205476 change, but then it is included in the
> patch.
>
> JDK-8205476 is essentially:
>
> @@ -127,7 +127,9 @@
>
> try {
>
> - return deriveKey(s, publicValue, encodedParams);
> + byte[] result = deriveKey(s, publicValue, encodedParams);
> + publicValue = null;
> + return result;
>
> } catch (GeneralSecurityException e) {
> throw new ProviderException("Could not derive key", e);
>
> The same change is made in 11u by adopting the line in the 8208698 patch
> verbatim:
>
> - try {
> -
> - return deriveKey(s, publicValue, encodedParams);
> -
> - } catch (GeneralSecurityException e) {
> - throw new ProviderException("Could not derive key", e);
> - }
> -
> + Optional<byte[]> resultOpt = deriveKeyImpl(privateKey, publicKey);
> + byte[] result = resultOpt.orElseGet(
> + () -> deriveKeyNative(privateKey, publicKey)
> + );
> + publicKey = null;
> + return result;
>
> I think this should actually be:
>
> return resultOpt.orElseGet(() -> deriveKeyNative(privateKey, publicKey));
>
> if we want to avoid the JDK-8205476 change of nulling publicKey.
>
> Thanks,
> --
> Andrew :)
>
> Senior Free Java Software Engineer
> Red Hat, Inc. (http://www.redhat.com)
>
> PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
> Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222
> https://keybase.io/gnu_andrew
More information about the jdk-updates-dev
mailing list