private String namedCurvesToString(Set<NamedCurve> namedCurves) {
   String output = "";
   for (NamedCurve nc : namedCurves) {
     output = output + nc.name() + " ";
   }
   return output;
 }
 private void testSupportedCurves(ProtocolVersion pv, CipherSuite cs) {
   for (NamedCurve nc : NamedCurve.values()) {
     serverConfig.setProtocolVersion(pv);
     serverConfig.setCipherSuites(Collections.singletonList(cs));
     serverConfig.setNamedCurves(Collections.singletonList(nc));
     boolean success = false;
     try {
       success = executeHandshake();
     } catch (Exception ex) {
       LOGGER.info(ex.getLocalizedMessage());
       LOGGER.debug(ex.getLocalizedMessage(), ex);
     }
     if (success) {
       supportedCurves.add(nc);
       if (lastTlsContext.getEcContext().getServerPublicKeyParameters() != null) {
         LOGGER.info(
             "EC parameter public key size: {}",
             lastTlsContext
                 .getEcContext()
                 .getServerPublicKeyParameters()
                 .getParameters()
                 .getCurve()
                 .getFieldSize());
         int groupSize =
             lastTlsContext
                 .getEcContext()
                 .getServerPublicKeyParameters()
                 .getParameters()
                 .getCurve()
                 .getFieldSize();
         if (minimumECDHGroupSize == 0 || groupSize < minimumECDHGroupSize) {
           minimumECDHGroupSize = groupSize;
         }
       }
     }
   }
 }