src/java.base/share/classes/sun/security/ssl/SignatureScheme.java
changeset 59214 e7df7c86eda1
parent 58951 d6e682e8fcc3
equal deleted inserted replaced
59213:229aa067e4cc 59214:e7df7c86eda1
   272         this.supportedProtocols = Arrays.asList(supportedProtocols);
   272         this.supportedProtocols = Arrays.asList(supportedProtocols);
   273         this.handshakeSupportedProtocols =
   273         this.handshakeSupportedProtocols =
   274                 Arrays.asList(handshakeSupportedProtocols);
   274                 Arrays.asList(handshakeSupportedProtocols);
   275 
   275 
   276         boolean mediator = true;
   276         boolean mediator = true;
   277         if (signAlgParams != null) {
   277         // HACK CODE
   278             mediator = signAlgParams.isAvailable;
   278         //
   279         } else {
   279         // An EC provider, for example the SunEC provider, may support
   280             try {
   280         // AlgorithmParameters but not KeyPairGenerator or Signature.
   281                 Signature.getInstance(algorithm);
   281         if ("EC".equals(keyAlgorithm)) {
   282             } catch (Exception e) {
   282             mediator = JsseJce.isEcAvailable();
   283                 mediator = false;
   283         }
   284                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
   284 
   285                     SSLLogger.warning(
   285         // Check the specific algorithm and parameters.
   286                         "Signature algorithm, " + algorithm +
   286         if (mediator) {
   287                         ", is not supported by the underlying providers");
   287             if (signAlgParams != null) {
       
   288                 mediator = signAlgParams.isAvailable;
       
   289             } else {
       
   290                 try {
       
   291                     Signature.getInstance(algorithm);
       
   292                 } catch (Exception e) {
       
   293                     mediator = false;
       
   294                     if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
       
   295                         SSLLogger.warning(
       
   296                             "Signature algorithm, " + algorithm +
       
   297                             ", is not supported by the underlying providers");
       
   298                     }
   288                 }
   299                 }
   289             }
   300             }
   290         }
   301         }
   291 
   302 
   292         if (mediator && ((id >> 8) & 0xFF) == 0x03) {   // SHA224
   303         if (mediator && ((id >> 8) & 0xFF) == 0x03) {   // SHA224