#6 Synchronize OpenJDK 11 packages with rolling OpenJDK
Merged 4 months ago by pmikova. Opened 4 months ago by pmikova.
Unknown source nss-drop  into  master

file modified
+27 -16

@@ -3,8 +3,8 @@

  #

  # Example:

  # When used from local repo set REPO_ROOT pointing to file:// with your repo

- # if your local repo follows upstream forests conventions, you may be enough by setting OPENJDK_URL

- # if you wont to use local copy of patch PR2126 set path to it to PR2126 variable

+ # If your local repo follows upstream forests conventions, it may be enough to set OPENJDK_URL

+ # If you want to use a local copy of patch PR3755, set the path to it in the PR3755 variable

  #

  # In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:

  # PROJECT_NAME=jdk

@@ -26,9 +26,9 @@

  # level folder, name is created, based on parameter

  #

  

- if [ ! "x$PR2126" = "x" ] ; then

-   if [ ! -f "$PR2126" ] ; then

-     echo "You have specified PR2126 as $PR2126 but it does not exists. exiting"

+ if [ ! "x$PR3755" = "x" ] ; then

+   if [ ! -f "$PR3755" ] ; then

+     echo "You have specified PR3755 as $PR3755 but it does not exist. Exiting"

      exit 1

    fi

  fi

@@ -46,9 +46,8 @@

      echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})"

      echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})"

      echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"

-     echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"

      echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"

-     echo "PR2126 - the path to the PR2126 patch to apply (optional; downloaded if unavailable)"

+     echo "PR3755 - the path to the PR3755 patch to apply (optional; downloaded if unavailable)"

      exit 1;

  fi

  

@@ -116,17 +115,29 @@

          pushd openjdk

              echo "Removing EC source code we don't build"

              CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl

-             rm -vrf $CRYPTO_PATH

+ 	    rm -vf ${CRYPTO_PATH}/ec2.h

+ 	    rm -vf ${CRYPTO_PATH}/ec2_163.c

+ 	    rm -vf ${CRYPTO_PATH}/ec2_193.c

+ 	    rm -vf ${CRYPTO_PATH}/ec2_233.c

+ 	    rm -vf ${CRYPTO_PATH}/ec2_aff.c

+ 	    rm -vf ${CRYPTO_PATH}/ec2_mont.c

+ 	    rm -vf ${CRYPTO_PATH}/ecp_192.c

+ 	    rm -vf ${CRYPTO_PATH}/ecp_224.c

+ 

              echo "Syncing EC list with NSS"

-             if [ "x$PR2126" = "x" ] ; then

-                 # orriginally for 8:

-                 # get pr2126.patch (from http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most correct tag

-                 # Do not push it or publish it (see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)

-                 # there is currnetly no "upstram version of this patch, hardcoding custom version

-                 PR2126="../../pr2126-synchronise_elliptic_curves_in_sun_security_ec_namedcurve_with_those_listed_by_nss.patch"

+             if [ "x$PR3755" = "x" ] ; then

+                 # originally for 8:

+                 # get pr3755.patch (from http://icedtea.classpath.org/hg/icedtea11) from most correct tag

+                 # Do not push it or publish it (see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3755)

+ 		echo "PR3755 not found. Downloading..."

+ 		wget http://icedtea.classpath.org/hg/icedtea13/raw-file/tip/patches/pr3755.patch

+ 	        echo "Applying ${PWD}/pr3755.patch"

+ 		patch -Np1 < pr3755.patch

+ 		rm pr3755.patch

+ 	    else

+ 		echo "Applying ${PR3755}"

+ 		patch -Np1 < $PR3755

              fi;

-             echo "Applying ${PR2126}"

-             patch -Np1 < $PR2126

              find . -name '*.orig' -exec rm -vf '{}' ';'

          popd

      fi

file modified
+48 -76

@@ -121,10 +121,12 @@

  %endif

  

  %if %{bootstrap_build}

- %global targets bootcycle-images docs

+ %global release_targets bootcycle-images docs-zip

  %else

- %global targets images docs

+ %global release_targets images docs-zip

  %endif

+ # No docs nor bootcycle for debug builds

+ %global debug_targets images

  

  

  # Filter out flags from the optflags macro that cause problems with the OpenJDK build

@@ -141,14 +143,6 @@

  # looks like openjdk RPM specific bug

  # Always set this so the nss.cfg file is not broken

  %global NSS_LIBDIR %(pkg-config --variable=libdir nss)

- %global NSS_LIBS %(pkg-config --libs nss)

- %global NSS_CFLAGS %(pkg-config --cflags nss-softokn)

- # see https://bugzilla.redhat.com/show_bug.cgi?id=1332456

- %global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : )

- %global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : )

- # this is workaround for processing of requires during srpm creation

- %global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi)

- %global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSS_BUILDTIME_NUMBER}" ;fi)

  

  # In some cases, the arch used by the JDK does

  # not match _arch.

@@ -225,7 +219,7 @@

  %global top_level_dir_name   %{origin}

  %global minorver        0

  %global buildver        33

- %global rpmrelease      2

+ %global rpmrelease      3

  # priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit

  %if %is_system_jdk

  %global priority %( printf '%02d%02d%02d%02d' %{majorver} %{minorver} %{securityver} %{buildver} )

@@ -865,9 +859,6 @@

  Requires: javapackages-filesystem

  # Require zone-info data provided by tzdata-java sub-package

  Requires: tzdata-java >= 2015d

- # there is a need to depend on the exact version of NSS

- Requires: nss%{?_isa} %{NSS_BUILDTIME_VERSION}

- Requires: nss-softokn%{?_isa} %{NSSSOFTOKN_BUILDTIME_VERSION}

  # tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it,

  # not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be

  # considered as regression

@@ -1047,8 +1038,6 @@

  Patch3:    rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch

  # Follow system wide crypto policy RHBZ#1249083

  Patch4:    pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch

- # System NSS via SunEC Provider

- Patch5:    pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk12.patch

  # Depend on pcs-lite-libs instead of pcs-lite-devel as this is only in optional repo

  Patch6: rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch

  

@@ -1060,12 +1049,11 @@

  BuildRequires: desktop-file-utils

  # elfutils only are OK for build without AOT

  BuildRequires: elfutils-devel

- BuildRequires: fontconfig

+ BuildRequires: fontconfig-devel

  BuildRequires: freetype-devel

  BuildRequires: giflib-devel

  BuildRequires: gcc-c++

  BuildRequires: gdb

- BuildRequires: gtk3-devel

  BuildRequires: lcms2-devel

  BuildRequires: libjpeg-devel

  BuildRequires: libpng-devel

@@ -1073,6 +1061,8 @@

  BuildRequires: libX11-devel

  BuildRequires: libXi-devel

  BuildRequires: libXinerama-devel

+ BuildRequires: libXrandr-devel

+ BuildRequires: libXrender-devel

  BuildRequires: libXt-devel

  BuildRequires: libXtst-devel

  # Requirements for setting up the nss.cfg

@@ -1089,8 +1079,6 @@

  BuildRequires: tzdata-java >= 2015d

  # Earlier versions have a bug in tree vectorization on PPC

  BuildRequires: gcc >= 4.8.3-8

- # Build requirements for SunEC system NSS support

- BuildRequires: nss-softokn-freebl-devel >= 3.16.1

  

  %if %{with_systemtap}

  BuildRequires: systemtap-sdt-devel

@@ -1223,6 +1211,7 @@

  %package javadoc

  Summary: %{origin_nice} %{majorver} API documentation

  Requires: javapackages-filesystem

+ Obsoletes: javadoc-slowdebug < 1:13.0.0.33-1.rolling

  

  %{java_javadoc_rpo %{nil}}

  

@@ -1232,38 +1221,16 @@

  

  %if %{include_normal_build}

  %package javadoc-zip

- Summary: %{origin_nice} %{majorver} API documentation compressed in single archive

+ Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive

  Requires: javapackages-filesystem

+ Obsoletes: javadoc-zip-slowdebug < 1:13.0.0.33-1.rolling

  

  %{java_javadoc_rpo %{nil}}

  

  %description javadoc-zip

- The %{origin_nice} %{majorver} API documentation compressed in single archive.

+ The %{origin_nice} %{majorver} API documentation compressed in a single archive.

  %endif

  

- %if %{include_debug_build}

- %package javadoc-slowdebug

- Summary: %{origin_nice} %{majorver} API documentation %{for_debug}

- Requires: javapackages-filesystem

- 

- %{java_javadoc_rpo -- %{debug_suffix_unquoted}}

- 

- %description javadoc-slowdebug

- The %{origin_nice} %{majorver} API documentation %{for_debug}.

- %endif

- 

- %if %{include_debug_build}

- %package javadoc-zip-slowdebug

- Summary: %{origin_nice} %{majorver} API documentation compressed in single archive %{for_debug}

- Requires: javapackages-filesystem

- 

- %{java_javadoc_rpo -- %{debug_suffix_unquoted}}

- 

- %description javadoc-zip-slowdebug

- The %{origin_nice} %{majorver} API documentation compressed in single archive %{for_debug}.

- %endif

- 

- 

  %prep

  if [ %{include_normal_build} -eq 0 -o  %{include_normal_build} -eq 1 ] ; then

    echo "include_normal_build is %{include_normal_build}"

@@ -1298,7 +1265,6 @@

  %patch2 -p1

  %patch3 -p1

  %patch4 -p1

- %patch5 -p1

  %patch6 -p1

  popd # openjdk

  

@@ -1406,7 +1372,6 @@

      --with-debug-level=$debugbuild \

      --with-native-debug-symbols=internal \

      --enable-unlimited-crypto \

-     --enable-system-nss \

      --with-zlib=system \

      --with-libjpeg=system \

      --with-giflib=system \

@@ -1423,16 +1388,18 @@

  %endif

      --disable-warnings-as-errors

  

- # use --no-print-directory as workaround for build failure

- # https://bugs.openjdk.java.net/browse/JDK-8215213

- make --no-print-directory \

+ # Debug builds don't need same targets as release for

+ # build speed-up

+ maketargets="%{release_targets}"

+ if echo $debugbuild | grep -q "debug" ; then

+   maketargets="%{debug_targets}"

+ fi

+ make \

      JAVAC_FLAGS=-g \

      LOG=trace \

      WARNINGS_ARE_ERRORS="-Wno-error" \

      CFLAGS_WARNINGS_ARE_ERRORS="-Wno-error" \

-     %{targets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs cat && false )

- 

- make docs-zip

+     $maketargets || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs cat && false )

  

  # the build (erroneously) removes read permissions from some jars

  # this is a regression in OpenJDK 7 (our compiler):

@@ -1618,11 +1585,12 @@

  

  popd

  

- 

- # Install Javadoc documentation

- install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}

- cp -a %{buildoutputdir -- $suffix}/images/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}

- cp -a %{buildoutputdir -- $suffix}/bundles/jdk-%{majorver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip

+ if ! echo $suffix | grep -q "debug" ; then

+   # Install Javadoc documentation

+   install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}

+   cp -a %{buildoutputdir -- $suffix}/images/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}

+   cp -a %{buildoutputdir -- $suffix}/bundles/jdk-%{majorver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip

+ fi

  

  # Install icons and menu entries

  for s in 16 24 32 48 ; do

@@ -1771,18 +1739,6 @@

  

  %posttrans  devel-slowdebug

  %{posttrans_devel -- %{debug_suffix_unquoted}}

- 

- %post javadoc-slowdebug

- %{post_javadoc -- %{debug_suffix_unquoted}}

- 

- %postun javadoc-slowdebug

- %{postun_javadoc -- %{debug_suffix_unquoted}}

- 

- %post javadoc-zip-slowdebug

- %{post_javadoc_zip -- %{debug_suffix_unquoted}}

- 

- %postun javadoc-zip-slowdebug

- %{postun_javadoc_zip -- %{debug_suffix_unquoted}}

  %endif

  

  %if %{include_normal_build}

@@ -1842,16 +1798,32 @@

  

  %files src-slowdebug

  %{files_src -- %{debug_suffix_unquoted}}

- 

- %files javadoc-slowdebug

- %{files_javadoc -- %{debug_suffix_unquoted}}

- 

- %files javadoc-zip-slowdebug

- %{files_javadoc_zip -- %{debug_suffix_unquoted}}

  %endif

  

  

  %changelog

+ * Wed Oct 16 2019 Petra Alice Mikova <pmikova@redhat.com> - 1:13.0.0.33-3.rolling

+ - synced up generate tarball script with other OpenJDK packages

+ - dropped pr2126-synchronise_elliptic_curves_in_sun_security_ec_namedcurve_with_those_listed_by_nss.patch from the sources

+ - regenerated sources with the updated script

+ 

+ * Wed Oct 02 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:13.0.0.33-3.rolling

+ - Switch to in-tree SunEC code, dropping NSS runtime dependencies and patches to link against it.

+ 

+ * Wed Oct 02 2019 Andrew John Hughes <gnu.andrew@redhat.com> -  1:13.0.0.33-3.rolling

+ - Drop unnecessary build requirement on gtk3-devel, as OpenJDK searches for Gtk+ at runtime.

+ - Add missing build requirement for libXrender-devel, previously masked by Gtk3+ dependency

+ - Add missing build requirement for libXrandr-devel, previously masked by Gtk3+ dependency

+ - fontconfig build requirement should be fontconfig-devel, previously masked by Gtk3+ dependency

+ 

+ * Wed Oct 02 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:13.0.0.33-3.rolling

+ - Obsolete javadoc-slowdebug and javadoc-slowdebug-zip packages via javadoc and javadoc-zip respectively.

+ 

+ * Tue Oct 01 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:13.0.0.33-2.rolling

+ - Don't produce javadoc/javadoc-zip sub packages for the

+   debug variant build.

+ - Don't perform a bootcycle build for the debug variant build.

+ 

  * Mon Sep 30 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:13.0.0.33-2.rolling

  - Fix vendor version as JDK 13 has been GA'ed September 2019: 19.3 => 19.9

  

@@ -1,649 +0,0 @@

- diff --git a/make/autoconf/jdk-options.m4 b/make/autoconf/jdk-options.m4

- --- a/make/autoconf/jdk-options.m4

- +++ b/make/autoconf/jdk-options.m4

- @@ -267,9 +267,10 @@

-  #

-  AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],

-  [

- +  AC_REQUIRE([LIB_SETUP_MISC_LIBS])

-    AC_MSG_CHECKING([if elliptic curve crypto implementation is present])

-  

- -  if test -d "${TOPDIR}/src/jdk.crypto.ec/share/native/libsunec/impl"; then

- +  if test "x${system_nss}" = "xyes" -o -d "${TOPDIR}/src/jdk.crypto.ec/share/native/libsunec/impl"; then

-      ENABLE_INTREE_EC=true

-      AC_MSG_RESULT([yes])

-    else

- diff --git a/make/autoconf/libraries.m4 b/make/autoconf/libraries.m4

- --- a/make/autoconf/libraries.m4

- +++ b/make/autoconf/libraries.m4

- @@ -178,6 +178,48 @@

-    AC_SUBST(LIBDL)

-    LIBS="$save_LIBS"

- 

- +  ###############################################################################

- +  #

- +  # Check for the NSS libraries

- +  #

- +

- +  AC_MSG_CHECKING([whether to build the Sun EC provider against the system NSS libraries])

- +

- +  # default is bundled

- +  DEFAULT_SYSTEM_NSS=no

- +

- +  AC_ARG_ENABLE([system-nss], [AS_HELP_STRING([--enable-system-nss],

- +     [build the SunEC provider using the system NSS libraries @<:@disabled@:>@])],

- +  [

- +    case "${enableval}" in

- +      yes)

- +        system_nss=yes

- +        ;;

- +      *)

- +        system_nss=no

- +        ;;

- +    esac

- +  ],

- +  [

- +    system_nss=${DEFAULT_SYSTEM_NSS}

- +  ])

- +  AC_MSG_RESULT([$system_nss])

- +

- +  if test "x${system_nss}" = "xyes"; then

- +      PKG_CHECK_MODULES(NSS_SOFTTKN, nss-softokn >= 3.16.1, [NSS_SOFTOKN_FOUND=yes], [NSS_SOFTOKN_FOUND=no])

- +      PKG_CHECK_MODULES(NSS, nss >= 3.16.1, [NSS_FOUND=yes], [NSS_FOUND=no])

- +      if test "x${NSS_SOFTOKN_FOUND}" = "xyes" -a "x${NSS_FOUND}" = "xyes"; then

- +          NSS_LIBS="$NSS_SOFTOKN_LIBS $NSS_LIBS -lfreebl";

- +	  USE_EXTERNAL_NSS=true

- +      else

- +	  AC_MSG_ERROR([--enable-system-nss specified, but NSS not found.])

- +      fi

- +  else

- +      USE_EXTERNAL_NSS=false

- +  fi

- +  AC_SUBST(USE_EXTERNAL_NSS)

- +

- +

-    # Control if libzip can use mmap. Available for purposes of overriding.

-    LIBZIP_CAN_USE_MMAP=true

-    AC_SUBST(LIBZIP_CAN_USE_MMAP)

- diff --git a/make/autoconf/spec.gmk.in b/make/autoconf/spec.gmk.in

- --- a/make/autoconf/spec.gmk.in

- +++ b/make/autoconf/spec.gmk.in

- @@ -795,6 +795,10 @@

-  # Libraries

-  #

-  

- +USE_EXTERNAL_NSS:=@USE_EXTERNAL_NSS@

- +NSS_LIBS:=@NSS_LIBS@

- +NSS_CFLAGS:=@NSS_CFLAGS@

- +

-  USE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@

-  LCMS_CFLAGS:=@LCMS_CFLAGS@

-  LCMS_LIBS:=@LCMS_LIBS@

- diff --git a/make/lib/Lib-jdk.crypto.ec.gmk b/make/lib/Lib-jdk.crypto.ec.gmk

- --- a/make/lib/Lib-jdk.crypto.ec.gmk

- +++ b/make/lib/Lib-jdk.crypto.ec.gmk

- @@ -28,19 +28,26 @@

-  ################################################################################

-  

-  ifeq ($(ENABLE_INTREE_EC), true)

- +  ifeq ($(USE_EXTERNAL_NSS), true)

- +    BUILD_LIBSUNEC_CFLAGS_JDKLIB := $(NSS_CFLAGS) -DSYSTEM_NSS -DNSS_ENABLE_ECC

- +    BUILD_LIBSUNEC_CXXFLAGS_JDKLIB := $(NSS_CFLAGS) -DSYSTEM_NSS -DNSS_ENABLE_ECC

- +  endif

- +

-    $(eval $(call SetupJdkLibrary, BUILD_LIBSUNEC, \

-        NAME := sunec, \

-        TOOLCHAIN := TOOLCHAIN_LINK_CXX, \

-        OPTIMIZATION := LOW, \

- -      CFLAGS := $(CFLAGS_JDKLIB) \

- +      CFLAGS := $(BUILD_LIBSUNEC_CFLAGS_JDKLIB) $(CFLAGS_JDKLIB) \

-            -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \

- -      CXXFLAGS := $(CXXFLAGS_JDKLIB), \

- +      CXXFLAGS := $(BUILD_LIBSUNEC_CXXFLAGS_JDKLIB) $(CXXFLAGS_JDKLIB), \

-        DISABLED_WARNINGS_gcc := sign-compare implicit-fallthrough unused-value, \

-        DISABLED_WARNINGS_clang := sign-compare, \

-        DISABLED_WARNINGS_microsoft := 4101 4244 4146 4018, \

- -      LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \

- +      LDFLAGS := $(subst -Xlinker --as-needed,, \

- +                 $(subst -Wl$(COMMA)--as-needed,, $(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK), \

-        LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \

-        LIBS := $(LIBCXX), \

- +      LIBS_linux := -lc $(NSS_LIBS), \

-    ))

-  

-    TARGETS += $(BUILD_LIBSUNEC)

- diff --git a/src/java.base/unix/native/include/jni_md.h b/src/java.base/unix/native/include/jni_md.h

- --- a/src/java.base/unix/native/include/jni_md.h

- +++ b/src/java.base/unix/native/include/jni_md.h

- @@ -41,6 +41,11 @@

-    #define JNIEXPORT

-    #define JNIIMPORT

-  #endif

- +#if (defined(__GNUC__)) || __has_attribute(unused)

- +  #define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))

- +#else

- +  #define UNUSED(x) UNUSED_ ## x

- +#endif

-  

-  #define JNICALL

-  

- diff --git a/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java b/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java

- --- a/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java

- +++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java

- @@ -61,6 +61,7 @@

-              AccessController.doPrivileged(new PrivilegedAction<Void>() {

-                  public Void run() {

-                      System.loadLibrary("sunec"); // check for native library

- +                    initialize();

-                      return null;

-                  }

-              });

- @@ -293,6 +294,11 @@

-              "ECDH", "sun.security.ec.ECDHKeyAgreement", null, ATTRS));

-      }

-  

- +    /**

- +     * Initialize the native code.

- +     */

- +    private static native void initialize();

- +

-      private void putXDHEntries() {

-  

-          HashMap<String, String> ATTRS = new HashMap<>(1);

- diff --git a/src/jdk.crypto.ec/share/native/libsunec/ECC_JNI.cpp b/src/jdk.crypto.ec/share/native/libsunec/ECC_JNI.cpp

- --- a/src/jdk.crypto.ec/share/native/libsunec/ECC_JNI.cpp

- +++ b/src/jdk.crypto.ec/share/native/libsunec/ECC_JNI.cpp

- @@ -25,7 +25,11 @@

-  

-  #include <jni.h>

-  #include "jni_util.h"

- +#ifdef SYSTEM_NSS

- +#include "ecc_impl.h"

- +#else

-  #include "impl/ecc_impl.h"

- +#endif

-  #include "sun_security_ec_ECDHKeyAgreement.h"

-  #include "sun_security_ec_ECKeyPairGenerator.h"

-  #include "sun_security_ec_ECDSASignature.h"

- @@ -33,6 +37,13 @@

-  #define INVALID_PARAMETER_EXCEPTION \

-          "java/security/InvalidParameterException"

-  #define KEY_EXCEPTION   "java/security/KeyException"

- +#define INTERNAL_ERROR "java/lang/InternalError"

- +

- +#ifdef SYSTEM_NSS

- +#define SYSTEM_UNUSED(x) UNUSED(x)

- +#else

- +#define SYSTEM_UNUSED(x) x

- +#endif

-  

-  extern "C" {

-  

- @@ -55,8 +66,13 @@

-  /*

-   * Deep free of the ECParams struct

-   */

- -void FreeECParams(ECParams *ecparams, jboolean freeStruct)

- +void FreeECParams(ECParams *ecparams, jboolean SYSTEM_UNUSED(freeStruct))

-  {

- +#ifdef SYSTEM_NSS

- +    // Needs to be freed using the matching method to the one

- +    // that allocated it. PR_TRUE means the memory is zeroed.

- +    PORT_FreeArena(ecparams->arena, PR_TRUE);

- +#else

-      // Use B_FALSE to free the SECItem->data element, but not the SECItem itself

-      // Use B_TRUE to free both

-  

- @@ -70,6 +86,7 @@

-      SECITEM_FreeItem(&ecparams->curveOID, B_FALSE);

-      if (freeStruct)

-          free(ecparams);

- +#endif

-  }

-  

-  jbyteArray getEncodedBytes(JNIEnv *env, SECItem *hSECItem)

- @@ -139,7 +156,7 @@

-   */

-  JNIEXPORT jobjectArray

-  JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair

- -  (JNIEnv *env, jclass clazz, jint keySize, jbyteArray encodedParams, jbyteArray seed)

- +  (JNIEnv *env, jclass UNUSED(clazz), jint UNUSED(keySize), jbyteArray encodedParams, jbyteArray seed)

-  {

-      ECPrivateKey *privKey = NULL; // contains both public and private values

-      ECParams *ecparams = NULL;

- @@ -171,8 +188,17 @@

-      env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);

-  

-      // Generate the new keypair (using the supplied seed)

- +#ifdef SYSTEM_NSS

- +    if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength)

- +        != SECSuccess) {

- +        ThrowException(env, KEY_EXCEPTION);

- +        goto cleanup;

- +    }

- +    if (EC_NewKey(ecparams, &privKey) != SECSuccess) {    

- +#else    

-      if (EC_NewKey(ecparams, &privKey, (unsigned char *) pSeedBuffer,

-          jSeedLength, 0) != SECSuccess) {

- +#endif

-          ThrowException(env, KEY_EXCEPTION);

-          goto cleanup;

-      }

- @@ -219,10 +245,15 @@

-          }

-          if (privKey) {

-              FreeECParams(&privKey->ecParams, false);

- +#ifndef SYSTEM_NSS

- +	    // The entire ECPrivateKey is allocated in the arena

- +	    // when using system NSS, so only the in-tree version

- +	    // needs to clear these manually.

-              SECITEM_FreeItem(&privKey->version, B_FALSE);

-              SECITEM_FreeItem(&privKey->privateValue, B_FALSE);

-              SECITEM_FreeItem(&privKey->publicValue, B_FALSE);

-              free(privKey);

- +#endif

-          }

-  

-          if (pSeedBuffer) {

- @@ -240,7 +271,7 @@

-   */

-  JNIEXPORT jbyteArray

-  JNICALL Java_sun_security_ec_ECDSASignature_signDigest

- -  (JNIEnv *env, jclass clazz, jbyteArray digest, jbyteArray privateKey, jbyteArray encodedParams, jbyteArray seed, jint timing)

- +  (JNIEnv *env, jclass UNUSED(clazz), jbyteArray digest, jbyteArray privateKey, jbyteArray encodedParams, jbyteArray seed, jint timing)

-  {

-      jbyte* pDigestBuffer = NULL;

-      jint jDigestLength = env->GetArrayLength(digest);

- @@ -299,8 +330,18 @@

-      env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);

-  

-      // Sign the digest (using the supplied seed)

- +#ifdef SYSTEM_NSS

- +    if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength)

- +        != SECSuccess) {

- +        ThrowException(env, KEY_EXCEPTION);

- +        goto cleanup;

- +    }

- +    if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item)

- +        != SECSuccess) {    

- +#else    

-      if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item,

-          (unsigned char *) pSeedBuffer, jSeedLength, 0, timing) != SECSuccess) {

- +#endif

-          ThrowException(env, KEY_EXCEPTION);

-          goto cleanup;

-      }

- @@ -349,7 +390,7 @@

-   */

-  JNIEXPORT jboolean

-  JNICALL Java_sun_security_ec_ECDSASignature_verifySignedDigest

- -  (JNIEnv *env, jclass clazz, jbyteArray signedDigest, jbyteArray digest, jbyteArray publicKey, jbyteArray encodedParams)

- +  (JNIEnv *env, jclass UNUSED(clazz), jbyteArray signedDigest, jbyteArray digest, jbyteArray publicKey, jbyteArray encodedParams)

-  {

-      jboolean isValid = false;

-  

- @@ -406,9 +447,10 @@

-  

-  cleanup:

-      {

- -        if (params_item.data)

- +        if (params_item.data) {

-              env->ReleaseByteArrayElements(encodedParams,

-                  (jbyte *) params_item.data, JNI_ABORT);

- +	}

-  

-          if (pubKey.publicValue.data)

-              env->ReleaseByteArrayElements(publicKey,

- @@ -434,7 +476,7 @@

-   */

-  JNIEXPORT jbyteArray

-  JNICALL Java_sun_security_ec_ECDHKeyAgreement_deriveKey

- -  (JNIEnv *env, jclass clazz, jbyteArray privateKey, jbyteArray publicKey, jbyteArray encodedParams)

- +  (JNIEnv *env, jclass UNUSED(clazz), jbyteArray privateKey, jbyteArray publicKey, jbyteArray encodedParams)

-  {

-      jbyteArray jSecret = NULL;

-      ECParams *ecparams = NULL;

- @@ -510,9 +552,10 @@

-              env->ReleaseByteArrayElements(publicKey,

-                  (jbyte *) publicValue_item.data, JNI_ABORT);

-  

- -        if (params_item.data)

- +        if (params_item.data) {

-              env->ReleaseByteArrayElements(encodedParams,

-                  (jbyte *) params_item.data, JNI_ABORT);

- +	}

-  

-          if (ecparams)

-              FreeECParams(ecparams, true);

- @@ -521,4 +564,28 @@

-      return jSecret;

-  }

-  

- +JNIEXPORT void

- +JNICALL Java_sun_security_ec_SunEC_initialize

- +  (JNIEnv *env, jclass UNUSED(clazz))

- +{

- +#ifdef SYSTEM_NSS

- +    if (SECOID_Init() != SECSuccess) {

- +        ThrowException(env, INTERNAL_ERROR);

- +    }

- +    if (RNG_RNGInit() != SECSuccess) {

- +        ThrowException(env, INTERNAL_ERROR);

- +    }

- +#endif

- +}

- +

- +JNIEXPORT void

- +JNICALL JNI_OnUnload

- +  (JavaVM *vm, void *reserved)

- +{

- +#ifdef SYSTEM_NSS

- +    RNG_RNGShutdown();

- +    SECOID_Shutdown();

- +#endif

- +}

- +

-  } /* extern "C" */

- diff --git a/src/jdk.crypto.ec/share/native/libsunec/ecc_impl.h b/src/jdk.crypto.ec/share/native/libsunec/ecc_impl.h

- new file mode 100644

- --- /dev/null

- +++ b/src/jdk.crypto.ec/share/native/libsunec/ecc_impl.h

- @@ -0,0 +1,298 @@

- +/*

- + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.

- + * Use is subject to license terms.

- + *

- + * This library is free software; you can redistribute it and/or

- + * modify it under the terms of the GNU Lesser General Public

- + * License as published by the Free Software Foundation; either

- + * version 2.1 of the License, or (at your option) any later version.

- + *

- + * This library is distributed in the hope that it will be useful,

- + * but WITHOUT ANY WARRANTY; without even the implied warranty of

- + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

- + * Lesser General Public License for more details.

- + *

- + * You should have received a copy of the GNU Lesser General Public License

- + * along with this library; if not, write to the Free Software Foundation,

- + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

- + *

- + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA

- + * or visit www.oracle.com if you need additional information or have any

- + * questions.

- + */

- +

- +/* *********************************************************************

- + *

- + * The Original Code is the Netscape security libraries.

- + *

- + * The Initial Developer of the Original Code is

- + * Netscape Communications Corporation.

- + * Portions created by the Initial Developer are Copyright (C) 1994-2000

- + * the Initial Developer. All Rights Reserved.

- + *

- + * Contributor(s):

- + *   Dr Vipul Gupta <vipul.gupta@sun.com> and

- + *   Douglas Stebila <douglas@stebila.ca>, Sun Microsystems Laboratories

- + *

- + * Last Modified Date from the Original Code: May 2017

- + *********************************************************************** */

- +

- +#ifndef _ECC_IMPL_H

- +#define _ECC_IMPL_H

- +

- +#ifdef __cplusplus

- +extern "C" {

- +#endif

- +

- +#include <sys/types.h>

- +

- +#ifdef SYSTEM_NSS

- +#include <secitem.h>

- +#include <secerr.h>

- +#include <keythi.h>

- +#ifdef LEGACY_NSS

- +#include <softoken.h>

- +#else

- +#include <blapi.h>

- +#endif

- +#else

- +#include "ecl-exp.h"

- +#endif

- +

- +/*

- + * Multi-platform definitions

- + */

- +#ifdef __linux__

- +#define B_FALSE FALSE

- +#define B_TRUE TRUE

- +typedef unsigned char uint8_t;

- +typedef unsigned long ulong_t;

- +typedef enum { B_FALSE, B_TRUE } boolean_t;

- +#endif /* __linux__ */

- +

- +#ifdef _ALLBSD_SOURCE

- +#include <stdint.h>

- +#define B_FALSE FALSE

- +#define B_TRUE TRUE

- +typedef unsigned long ulong_t;

- +typedef enum boolean { B_FALSE, B_TRUE } boolean_t;

- +#endif /* _ALLBSD_SOURCE */

- +

- +#ifdef AIX

- +#define B_FALSE FALSE

- +#define B_TRUE TRUE

- +typedef unsigned char uint8_t;

- +typedef unsigned long ulong_t;

- +#endif /* AIX */

- +

- +#ifdef _WIN32

- +typedef unsigned char uint8_t;

- +typedef unsigned long ulong_t;

- +typedef enum boolean { B_FALSE, B_TRUE } boolean_t;

- +#define strdup _strdup          /* Replace POSIX name with ISO C++ name */

- +#endif /* _WIN32 */

- +

- +#ifndef _KERNEL

- +#include <stdlib.h>

- +#endif  /* _KERNEL */

- +

- +#define EC_MAX_DIGEST_LEN 1024  /* max digest that can be signed */

- +#define EC_MAX_POINT_LEN 145    /* max len of DER encoded Q */

- +#define EC_MAX_VALUE_LEN 72     /* max len of ANSI X9.62 private value d */

- +#define EC_MAX_SIG_LEN 144      /* max signature len for supported curves */

- +#define EC_MIN_KEY_LEN  112     /* min key length in bits */

- +#define EC_MAX_KEY_LEN  571     /* max key length in bits */

- +#define EC_MAX_OID_LEN 10       /* max length of OID buffer */

- +

- +/*

- + * Various structures and definitions from NSS are here.

- + */

- +

- +#ifndef SYSTEM_NSS

- +#ifdef _KERNEL

- +#define PORT_ArenaAlloc(a, n, f)        kmem_alloc((n), (f))

- +#define PORT_ArenaZAlloc(a, n, f)       kmem_zalloc((n), (f))

- +#define PORT_ArenaGrow(a, b, c, d)      NULL

- +#define PORT_ZAlloc(n, f)               kmem_zalloc((n), (f))

- +#define PORT_Alloc(n, f)                kmem_alloc((n), (f))

- +#else

- +#define PORT_ArenaAlloc(a, n, f)        malloc((n))

- +#define PORT_ArenaZAlloc(a, n, f)       calloc(1, (n))

- +#define PORT_ArenaGrow(a, b, c, d)      NULL

- +#define PORT_ZAlloc(n, f)               calloc(1, (n))

- +#define PORT_Alloc(n, f)                malloc((n))

- +#endif

- +

- +#define PORT_NewArena(b)                (char *)12345

- +#define PORT_ArenaMark(a)               NULL

- +#define PORT_ArenaUnmark(a, b)

- +#define PORT_ArenaRelease(a, m)

- +#define PORT_FreeArena(a, b)

- +#define PORT_Strlen(s)                  strlen((s))

- +#define PORT_SetError(e)

- +

- +#define PRBool                          boolean_t

- +#define PR_TRUE                         B_TRUE

- +#define PR_FALSE                        B_FALSE

- +

- +#ifdef _KERNEL

- +#define PORT_Assert                     ASSERT

- +#define PORT_Memcpy(t, f, l)            bcopy((f), (t), (l))

- +#else

- +#define PORT_Assert                     assert

- +#define PORT_Memcpy(t, f, l)            memcpy((t), (f), (l))

- +#endif

- +

- +#endif

- +

- +#define CHECK_OK(func) if (func == NULL) goto cleanup

- +#define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup

- +

- +#ifndef SYSTEM_NSS

- +typedef enum {

- +        siBuffer = 0,

- +        siClearDataBuffer = 1,

- +        siCipherDataBuffer = 2,

- +        siDERCertBuffer = 3,

- +        siEncodedCertBuffer = 4,

- +        siDERNameBuffer = 5,

- +        siEncodedNameBuffer = 6,

- +        siAsciiNameString = 7,

- +        siAsciiString = 8,

- +        siDEROID = 9,

- +        siUnsignedInteger = 10,

- +        siUTCTime = 11,

- +        siGeneralizedTime = 12

- +} SECItemType;

- +

- +typedef struct SECItemStr SECItem;

- +

- +struct SECItemStr {

- +        SECItemType type;

- +        unsigned char *data;

- +        unsigned int len;

- +};

- +

- +typedef SECItem SECKEYECParams;

- +

- +typedef enum { ec_params_explicit,

- +               ec_params_named

- +} ECParamsType;

- +

- +typedef enum { ec_field_GFp = 1,

- +               ec_field_GF2m

- +} ECFieldType;

- +

- +struct ECFieldIDStr {

- +    int         size;   /* field size in bits */

- +    ECFieldType type;

- +    union {

- +        SECItem  prime; /* prime p for (GFp) */

- +        SECItem  poly;  /* irreducible binary polynomial for (GF2m) */

- +    } u;

- +    int         k1;     /* first coefficient of pentanomial or

- +                         * the only coefficient of trinomial

- +                         */

- +    int         k2;     /* two remaining coefficients of pentanomial */

- +    int         k3;

- +};

- +typedef struct ECFieldIDStr ECFieldID;

- +

- +struct ECCurveStr {

- +        SECItem a;      /* contains octet stream encoding of

- +                         * field element (X9.62 section 4.3.3)

- +                         */

- +        SECItem b;

- +        SECItem seed;

- +};

- +typedef struct ECCurveStr ECCurve;

- +

- +typedef void PRArenaPool;

- +

- +struct ECParamsStr {

- +    PRArenaPool * arena;

- +    ECParamsType  type;

- +    ECFieldID     fieldID;

- +    ECCurve       curve;

- +    SECItem       base;

- +    SECItem       order;

- +    int           cofactor;

- +    SECItem       DEREncoding;

- +    ECCurveName   name;

- +    SECItem       curveOID;

- +};

- +typedef struct ECParamsStr ECParams;

- +

- +struct ECPublicKeyStr {

- +    ECParams ecParams;

- +    SECItem publicValue;   /* elliptic curve point encoded as

- +                            * octet stream.

- +                            */

- +};

- +typedef struct ECPublicKeyStr ECPublicKey;

- +

- +struct ECPrivateKeyStr {

- +    ECParams ecParams;

- +    SECItem publicValue;   /* encoded ec point */

- +    SECItem privateValue;  /* private big integer */

- +    SECItem version;       /* As per SEC 1, Appendix C, Section C.4 */

- +};

- +typedef struct ECPrivateKeyStr ECPrivateKey;

- +

- +typedef enum _SECStatus {

- +        SECBufferTooSmall = -3,

- +        SECWouldBlock = -2,

- +        SECFailure = -1,

- +        SECSuccess = 0

- +} SECStatus;

- +#endif

- +

- +#ifdef _KERNEL

- +#define RNG_GenerateGlobalRandomBytes(p,l) ecc_knzero_random_generator((p), (l))

- +#else

- +/*

- + This function is no longer required because the random bytes are now

- + supplied by the caller. Force a failure.

- +*/

- +#ifndef SYSTEM_NSS

- +#define RNG_GenerateGlobalRandomBytes(p,l) SECFailure

- +#endif

- +#endif

- +#define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup

- +#define MP_TO_SEC_ERROR(err)

- +

- +#define SECITEM_TO_MPINT(it, mp)                                        \

- +        CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))

- +

- +extern int ecc_knzero_random_generator(uint8_t *, size_t);

- +extern ulong_t soft_nzero_random_generator(uint8_t *, ulong_t);

- +

- +#ifdef SYSTEM_NSS

- +#define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)

- +#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)

- +#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)

- +#else

- +extern SECStatus EC_DecodeParams(const SECItem *, ECParams **, int);

- +

- +extern SECItem * SECITEM_AllocItem(PRArenaPool *, SECItem *, unsigned int, int);

- +extern SECStatus SECITEM_CopyItem(PRArenaPool *, SECItem *, const SECItem *,

- +    int);

- +extern void SECITEM_FreeItem(SECItem *, boolean_t);

- +

- +/* This function has been modified to accept an array of random bytes */

- +extern SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey,

- +    const unsigned char* random, int randomlen, int);

- +/* This function has been modified to accept an array of random bytes */

- +extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,

- +    const unsigned char* random, int randomlen, int, int timing);

- +extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,

- +    const SECItem *, int);

- +extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,

- +    SECItem *, int);

- +#endif

- +

- +#ifdef  __cplusplus

- +}

- +#endif

- +

- +#endif /* _ECC_IMPL_H */ 

@@ -1,705 +0,0 @@

- diff -r b7f68ddec66f src/java.base/share/classes/sun/security/ssl/NamedGroup.java

- --- a/src/java.base/share/classes/sun/security/ssl/NamedGroup.java	Tue Jun 25 10:50:59 2019 +0100

- +++ b/src/java.base/share/classes/sun/security/ssl/NamedGroup.java	Wed Jul 03 16:36:37 2019 +0200

- @@ -50,97 +50,6 @@

-      // Elliptic Curves (RFC 4492)

-      //

-      // See sun.security.util.CurveDB for the OIDs

- -    // NIST K-163

- -

- -    SECT163_K1(0x0001, "sect163k1", "1.3.132.0.1",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECT163_R1(0x0002, "sect163r1", "1.3.132.0.2",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST B-163

- -    SECT163_R2(0x0003, "sect163r2", "1.3.132.0.15",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECT193_R1(0x0004, "sect193r1", "1.3.132.0.24",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECT193_R2(0x0005, "sect193r2", "1.3.132.0.25",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST K-233

- -    SECT233_K1(0x0006, "sect233k1", "1.3.132.0.26",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST B-233

- -    SECT233_R1(0x0007, "sect233r1", "1.3.132.0.27",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECT239_K1(0x0008, "sect239k1", "1.3.132.0.3",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST K-283

- -    SECT283_K1(0x0009, "sect283k1", "1.3.132.0.16",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST B-283

- -    SECT283_R1(0x000A, "sect283r1", "1.3.132.0.17",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST K-409

- -    SECT409_K1(0x000B, "sect409k1", "1.3.132.0.36",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST B-409

- -    SECT409_R1(0x000C, "sect409r1", "1.3.132.0.37",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST K-571

- -    SECT571_K1(0x000D, "sect571k1", "1.3.132.0.38",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST B-571

- -    SECT571_R1(0x000E, "sect571r1", "1.3.132.0.39",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECP160_K1(0x000F, "secp160k1", "1.3.132.0.9",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECP160_R1(0x0010, "secp160r1", "1.3.132.0.8",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECP160_R2(0x0011, "secp160r2", "1.3.132.0.30",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECP192_K1(0x0012, "secp192k1", "1.3.132.0.31",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST P-192

- -    SECP192_R1(0x0013, "secp192r1", "1.2.840.10045.3.1.1",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECP224_K1(0x0014, "secp224k1", "1.3.132.0.32",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

- -    // NIST P-224

- -    SECP224_R1(0x0015, "secp224r1", "1.3.132.0.33",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -    SECP256_K1(0x0016, "secp256k1", "1.3.132.0.10",

- -            NamedGroupType.NAMED_GROUP_ECDHE,

- -            ProtocolVersion.PROTOCOLS_TO_12),

- -

-      // NIST P-256

-      SECP256_R1(0x0017, "secp256r1", "1.2.840.10045.3.1.7",

-              NamedGroupType.NAMED_GROUP_ECDHE,

- diff -r b7f68ddec66f src/java.base/share/classes/sun/security/ssl/SupportedGroupsExtension.java

- --- a/src/java.base/share/classes/sun/security/ssl/SupportedGroupsExtension.java	Tue Jun 25 10:50:59 2019 +0100

- +++ b/src/java.base/share/classes/sun/security/ssl/SupportedGroupsExtension.java	Wed Jul 03 16:36:37 2019 +0200

- @@ -214,17 +214,6 @@

-                          // Secondary XDH curves

-                          NamedGroup.X448,

-  

- -                        // Secondary NIST curves

- -                        NamedGroup.SECT283_K1,

- -                        NamedGroup.SECT283_R1,

- -                        NamedGroup.SECT409_K1,

- -                        NamedGroup.SECT409_R1,

- -                        NamedGroup.SECT571_K1,

- -                        NamedGroup.SECT571_R1,

- -

- -                        // non-NIST curves

- -                        NamedGroup.SECP256_K1,

- -

-                          // FFDHE (RFC 7919)

-                          NamedGroup.FFDHE_2048,

-                          NamedGroup.FFDHE_3072,

- diff -r b7f68ddec66f src/java.base/share/classes/sun/security/util/CurveDB.java

- --- a/src/java.base/share/classes/sun/security/util/CurveDB.java	Tue Jun 25 10:50:59 2019 +0100

- +++ b/src/java.base/share/classes/sun/security/util/CurveDB.java	Wed Jul 03 16:36:37 2019 +0200

- @@ -168,114 +168,6 @@

-          Pattern nameSplitPattern = Pattern.compile(SPLIT_PATTERN);

-  

-          /* SEC2 prime curves */

- -        add("secp112r1", "1.3.132.0.6", P,

- -            "DB7C2ABF62E35E668076BEAD208B",

- -            "DB7C2ABF62E35E668076BEAD2088",

- -            "659EF8BA043916EEDE8911702B22",

- -            "09487239995A5EE76B55F9C2F098",

- -            "A89CE5AF8724C0A23E0E0FF77500",

- -            "DB7C2ABF62E35E7628DFAC6561C5",

- -            1, nameSplitPattern);

- -

- -        add("secp112r2", "1.3.132.0.7", P,

- -            "DB7C2ABF62E35E668076BEAD208B",

- -            "6127C24C05F38A0AAAF65C0EF02C",

- -            "51DEF1815DB5ED74FCC34C85D709",

- -            "4BA30AB5E892B4E1649DD0928643",

- -            "adcd46f5882e3747def36e956e97",

- -            "36DF0AAFD8B8D7597CA10520D04B",

- -            4, nameSplitPattern);

- -

- -        add("secp128r1", "1.3.132.0.28", P,

- -            "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF",

- -            "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC",

- -            "E87579C11079F43DD824993C2CEE5ED3",

- -            "161FF7528B899B2D0C28607CA52C5B86",

- -            "CF5AC8395BAFEB13C02DA292DDED7A83",

- -            "FFFFFFFE0000000075A30D1B9038A115",

- -            1, nameSplitPattern);

- -

- -        add("secp128r2", "1.3.132.0.29", P,

- -            "FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF",

- -            "D6031998D1B3BBFEBF59CC9BBFF9AEE1",

- -            "5EEEFCA380D02919DC2C6558BB6D8A5D",

- -            "7B6AA5D85E572983E6FB32A7CDEBC140",

- -            "27B6916A894D3AEE7106FE805FC34B44",

- -            "3FFFFFFF7FFFFFFFBE0024720613B5A3",

- -            4, nameSplitPattern);

- -

- -        add("secp160k1", "1.3.132.0.9", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73",

- -            "0000000000000000000000000000000000000000",

- -            "0000000000000000000000000000000000000007",

- -            "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB",

- -            "938CF935318FDCED6BC28286531733C3F03C4FEE",

- -            "0100000000000000000001B8FA16DFAB9ACA16B6B3",

- -            1, nameSplitPattern);

- -

- -        add("secp160r1", "1.3.132.0.8", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC",

- -            "1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45",

- -            "4A96B5688EF573284664698968C38BB913CBFC82",

- -            "23A628553168947D59DCC912042351377AC5FB32",

- -            "0100000000000000000001F4C8F927AED3CA752257",

- -            1, nameSplitPattern);

- -

- -        add("secp160r2", "1.3.132.0.30", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC70",

- -            "B4E134D3FB59EB8BAB57274904664D5AF50388BA",

- -            "52DCB034293A117E1F4FF11B30F7199D3144CE6D",

- -            "FEAFFEF2E331F296E071FA0DF9982CFEA7D43F2E",

- -            "0100000000000000000000351EE786A818F3A1A16B",

- -            1, nameSplitPattern);

- -

- -        add("secp192k1", "1.3.132.0.31", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37",

- -            "000000000000000000000000000000000000000000000000",

- -            "000000000000000000000000000000000000000000000003",

- -            "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D",

- -            "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D",

- -            "FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D",

- -            1, nameSplitPattern);

- -

- -        add("secp192r1 [NIST P-192, X9.62 prime192v1]", "1.2.840.10045.3.1.1", PD,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC",

- -            "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1",

- -            "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012",

- -            "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811",

- -            "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831",

- -            1, nameSplitPattern);

- -

- -        add("secp224k1", "1.3.132.0.32", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D",

- -            "00000000000000000000000000000000000000000000000000000000",

- -            "00000000000000000000000000000000000000000000000000000005",

- -            "A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C",

- -            "7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5",

- -            "010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7",

- -            1, nameSplitPattern);

- -

- -        add("secp224r1 [NIST P-224]", "1.3.132.0.33", PD,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE",

- -            "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4",

- -            "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21",

- -            "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D",

- -            1, nameSplitPattern);

- -

- -        add("secp256k1", "1.3.132.0.10", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F",

- -            "0000000000000000000000000000000000000000000000000000000000000000",

- -            "0000000000000000000000000000000000000000000000000000000000000007",

- -            "79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798",

- -            "483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141",

- -            1, nameSplitPattern);

- -

-          add("secp256r1 [NIST P-256, X9.62 prime256v1]", "1.2.840.10045.3.1.7", PD,

-              "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF",

-              "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC",

- @@ -303,435 +195,6 @@

-              "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409",

-              1, nameSplitPattern);

-  

- -        /* ANSI X9.62 prime curves */

- -        add("X9.62 prime192v2", "1.2.840.10045.3.1.2", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC",

- -            "CC22D6DFB95C6B25E49C0D6364A4E5980C393AA21668D953",

- -            "EEA2BAE7E1497842F2DE7769CFE9C989C072AD696F48034A",

- -            "6574D11D69B6EC7A672BB82A083DF2F2B0847DE970B2DE15",

- -            "FFFFFFFFFFFFFFFFFFFFFFFE5FB1A724DC80418648D8DD31",

- -            1, nameSplitPattern);

- -

- -        add("X9.62 prime192v3", "1.2.840.10045.3.1.3", P,

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF",

- -            "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC",

- -            "22123DC2395A05CAA7423DAECCC94760A7D462256BD56916",

- -            "7D29778100C65A1DA1783716588DCE2B8B4AEE8E228F1896",

- -            "38A90F22637337334B49DCB66A6DC8F9978ACA7648A943B0",

- -            "FFFFFFFFFFFFFFFFFFFFFFFF7A62D031C83F4294F640EC13",

- -            1, nameSplitPattern);

- -

- -        add("X9.62 prime239v1", "1.2.840.10045.3.1.4", P,

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFF",

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC",

- -            "6B016C3BDCF18941D0D654921475CA71A9DB2FB27D1D37796185C2942C0A",

- -            "0FFA963CDCA8816CCC33B8642BEDF905C3D358573D3F27FBBD3B3CB9AAAF",

- -            "7DEBE8E4E90A5DAE6E4054CA530BA04654B36818CE226B39FCCB7B02F1AE",

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFF9E5E9A9F5D9071FBD1522688909D0B",

- -            1, nameSplitPattern);

- -

- -        add("X9.62 prime239v2", "1.2.840.10045.3.1.5", P,

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFF",

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC",

- -            "617FAB6832576CBBFED50D99F0249C3FEE58B94BA0038C7AE84C8C832F2C",

- -            "38AF09D98727705120C921BB5E9E26296A3CDCF2F35757A0EAFD87B830E7",

- -            "5B0125E4DBEA0EC7206DA0FC01D9B081329FB555DE6EF460237DFF8BE4BA",

- -            "7FFFFFFFFFFFFFFFFFFFFFFF800000CFA7E8594377D414C03821BC582063",

- -            1, nameSplitPattern);

- -

- -        add("X9.62 prime239v3", "1.2.840.10045.3.1.6", P,

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFF",

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC",

- -            "255705FA2A306654B1F4CB03D6A750A30C250102D4988717D9BA15AB6D3E",

- -            "6768AE8E18BB92CFCF005C949AA2C6D94853D0E660BBF854B1C9505FE95A",

- -            "1607E6898F390C06BC1D552BAD226F3B6FCFE48B6E818499AF18E3ED6CF3",

- -            "7FFFFFFFFFFFFFFFFFFFFFFF7FFFFF975DEB41B3A6057C3C432146526551",

- -            1, nameSplitPattern);

- -

- -        /* SEC2 binary curves */

- -        add("sect113r1", "1.3.132.0.4", B,

- -            "020000000000000000000000000201",

- -            "003088250CA6E7C7FE649CE85820F7",

- -            "00E8BEE4D3E2260744188BE0E9C723",

- -            "009D73616F35F4AB1407D73562C10F",

- -            "00A52830277958EE84D1315ED31886",

- -            "0100000000000000D9CCEC8A39E56F",

- -            2, nameSplitPattern);

- -

- -        add("sect113r2", "1.3.132.0.5", B,

- -            "020000000000000000000000000201",

- -            "00689918DBEC7E5A0DD6DFC0AA55C7",

- -            "0095E9A9EC9B297BD4BF36E059184F",

- -            "01A57A6A7B26CA5EF52FCDB8164797",

- -            "00B3ADC94ED1FE674C06E695BABA1D",

- -            "010000000000000108789B2496AF93",

- -            2, nameSplitPattern);

- -

- -        add("sect131r1", "1.3.132.0.22", B,

- -            "080000000000000000000000000000010D",

- -            "07A11B09A76B562144418FF3FF8C2570B8",

- -            "0217C05610884B63B9C6C7291678F9D341",

- -            "0081BAF91FDF9833C40F9C181343638399",

- -            "078C6E7EA38C001F73C8134B1B4EF9E150",

- -            "0400000000000000023123953A9464B54D",

- -            2, nameSplitPattern);

- -

- -        add("sect131r2", "1.3.132.0.23", B,

- -            "080000000000000000000000000000010D",

- -            "03E5A88919D7CAFCBF415F07C2176573B2",

- -            "04B8266A46C55657AC734CE38F018F2192",

- -            "0356DCD8F2F95031AD652D23951BB366A8",

- -            "0648F06D867940A5366D9E265DE9EB240F",

- -            "0400000000000000016954A233049BA98F",

- -            2, nameSplitPattern);

- -

- -        add("sect163k1 [NIST K-163]", "1.3.132.0.1", BD,

- -            "0800000000000000000000000000000000000000C9",

- -            "000000000000000000000000000000000000000001",

- -            "000000000000000000000000000000000000000001",

- -            "02FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE8",

- -            "0289070FB05D38FF58321F2E800536D538CCDAA3D9",

- -            "04000000000000000000020108A2E0CC0D99F8A5EF",

- -            2, nameSplitPattern);

- -

- -        add("sect163r1", "1.3.132.0.2", B,

- -            "0800000000000000000000000000000000000000C9",

- -            "07B6882CAAEFA84F9554FF8428BD88E246D2782AE2",

- -            "0713612DCDDCB40AAB946BDA29CA91F73AF958AFD9",

- -            "0369979697AB43897789566789567F787A7876A654",

- -            "00435EDB42EFAFB2989D51FEFCE3C80988F41FF883",

- -            "03FFFFFFFFFFFFFFFFFFFF48AAB689C29CA710279B",

- -            2, nameSplitPattern);

- -

- -        add("sect163r2 [NIST B-163]", "1.3.132.0.15", BD,

- -            "0800000000000000000000000000000000000000C9",

- -            "000000000000000000000000000000000000000001",

- -            "020A601907B8C953CA1481EB10512F78744A3205FD",

- -            "03F0EBA16286A2D57EA0991168D4994637E8343E36",

- -            "00D51FBC6C71A0094FA2CDD545B11C5C0C797324F1",

- -            "040000000000000000000292FE77E70C12A4234C33",

- -            2, nameSplitPattern);

- -

- -        add("sect193r1", "1.3.132.0.24", B,

- -            "02000000000000000000000000000000000000000000008001",

- -            "0017858FEB7A98975169E171F77B4087DE098AC8A911DF7B01",

- -            "00FDFB49BFE6C3A89FACADAA7A1E5BBC7CC1C2E5D831478814",

- -            "01F481BC5F0FF84A74AD6CDF6FDEF4BF6179625372D8C0C5E1",

- -            "0025E399F2903712CCF3EA9E3A1AD17FB0B3201B6AF7CE1B05",

- -            "01000000000000000000000000C7F34A778F443ACC920EBA49",

- -            2, nameSplitPattern);

- -

- -        add("sect193r2", "1.3.132.0.25", B,

- -            "02000000000000000000000000000000000000000000008001",

- -            "0163F35A5137C2CE3EA6ED8667190B0BC43ECD69977702709B",

- -            "00C9BB9E8927D4D64C377E2AB2856A5B16E3EFB7F61D4316AE",

- -            "00D9B67D192E0367C803F39E1A7E82CA14A651350AAE617E8F",

- -            "01CE94335607C304AC29E7DEFBD9CA01F596F927224CDECF6C",

- -            "010000000000000000000000015AAB561B005413CCD4EE99D5",

- -            2, nameSplitPattern);

- -

- -        add("sect233k1 [NIST K-233]", "1.3.132.0.26", BD,

- -            "020000000000000000000000000000000000000004000000000000000001",

- -            "000000000000000000000000000000000000000000000000000000000000",

- -            "000000000000000000000000000000000000000000000000000000000001",

- -            "017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD6126",

- -            "01DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3",

- -            "008000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF",

- -            4, nameSplitPattern);

- -

- -        add("sect233r1 [NIST B-233]", "1.3.132.0.27", B,

- -            "020000000000000000000000000000000000000004000000000000000001",

- -            "000000000000000000000000000000000000000000000000000000000001",

- -            "0066647EDE6C332C7F8C0923BB58213B333B20E9CE4281FE115F7D8F90AD",

- -            "00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B",

- -            "01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052",

- -            "01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7",

- -            2, nameSplitPattern);

- -

- -        add("sect239k1", "1.3.132.0.3", B,

- -            "800000000000000000004000000000000000000000000000000000000001",

- -            "000000000000000000000000000000000000000000000000000000000000",

- -            "000000000000000000000000000000000000000000000000000000000001",

- -            "29A0B6A887A983E9730988A68727A8B2D126C44CC2CC7B2A6555193035DC",

- -            "76310804F12E549BDB011C103089E73510ACB275FC312A5DC6B76553F0CA",

- -            "2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5",

- -            4, nameSplitPattern);

- -

- -        add("sect283k1 [NIST K-283]", "1.3.132.0.16", BD,

- -            "0800000000000000000000000000000000000000000000000000000000000000000010A1",

- -            "000000000000000000000000000000000000000000000000000000000000000000000000",

- -            "000000000000000000000000000000000000000000000000000000000000000000000001",

- -            "0503213F78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC2458492836",

- -            "01CCDA380F1C9E318D90F95D07E5426FE87E45C0E8184698E45962364E34116177DD2259",

- -            "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9AE2ED07577265DFF7F94451E061E163C61",

- -            4, nameSplitPattern);

- -

- -        add("sect283r1 [NIST B-283]", "1.3.132.0.17", B,

- -            "0800000000000000000000000000000000000000000000000000000000000000000010A1",

- -            "000000000000000000000000000000000000000000000000000000000000000000000001",

- -            "027B680AC8B8596DA5A4AF8A19A0303FCA97FD7645309FA2A581485AF6263E313B79A2F5",

- -            "05F939258DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B12053",

- -            "03676854FE24141CB98FE6D4B20D02B4516FF702350EDDB0826779C813F0DF45BE8112F4",

- -            "03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF90399660FC938A90165B042A7CEFADB307",

- -            2, nameSplitPattern);

- -

- -        add("sect409k1 [NIST K-409]", "1.3.132.0.36", BD,

- -            "02000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001",

- -            "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",

- -            "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",

- -            "0060F05F658F49C1AD3AB1890F7184210EFD0987E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE9023746",

- -            "01E369050B7C4E42ACBA1DACBF04299C3460782F918EA427E6325165E9EA10E3DA5F6C42E9C55215AA9CA27A5863EC48D8E0286B",

- -            "007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5F83B2D4EA20400EC4557D5ED3E3E7CA5B4B5C83B8E01E5FCF",

- -            4, nameSplitPattern);

- -

- -        add("sect409r1 [NIST B-409]", "1.3.132.0.37", B,

- -            "02000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001",

- -            "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",

- -            "0021A5C2C8EE9FEB5C4B9A753B7B476B7FD6422EF1F3DD674761FA99D6AC27C8A9A197B272822F6CD57A55AA4F50AE317B13545F",

- -            "015D4860D088DDB3496B0C6064756260441CDE4AF1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A7",

- -            "0061B1CFAB6BE5F32BBFA78324ED106A7636B9C5A7BD198D0158AA4F5488D08F38514F1FDF4B4F40D2181B3681C364BA0273C706",

- -            "010000000000000000000000000000000000000000000000000001E2AAD6A612F33307BE5FA47C3C9E052F838164CD37D9A21173",

- -            2, nameSplitPattern);

- -

- -        add("sect571k1 [NIST K-571]", "1.3.132.0.38", BD,

- -            "080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425",

- -            "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",

- -            "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",

- -            "026EB7A859923FBC82189631F8103FE4AC9CA2970012D5D46024804801841CA44370958493B205E647DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C8972",

- -            "0349DC807F4FBF374F4AEADE3BCA95314DD58CEC9F307A54FFC61EFC006D8A2C9D4979C0AC44AEA74FBEBBB9F772AEDCB620B01A7BA7AF1B320430C8591984F601CD4C143EF1C7A3",

- -            "020000000000000000000000000000000000000000000000000000000000000000000000131850E1F19A63E4B391A8DB917F4138B630D84BE5D639381E91DEB45CFE778F637C1001",

- -            4, nameSplitPattern);

- -

- -        add("sect571r1 [NIST B-571]", "1.3.132.0.39", B,

- -            "080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425",