src/java.base/share/classes/sun/security/ssl/SignatureScheme.java
changeset 55353 946f7f2d321c
parent 54483 ac20c3bdc55d
child 55452 1170b6d92d1c
equal deleted inserted replaced
55352:1357c4996b2e 55353:946f7f2d321c
    24  */
    24  */
    25 
    25 
    26 package sun.security.ssl;
    26 package sun.security.ssl;
    27 
    27 
    28 import java.security.*;
    28 import java.security.*;
    29 import java.security.interfaces.ECPrivateKey;
       
    30 import java.security.spec.AlgorithmParameterSpec;
    29 import java.security.spec.AlgorithmParameterSpec;
    31 import java.security.spec.ECParameterSpec;
    30 import java.security.spec.ECParameterSpec;
    32 import java.security.spec.MGF1ParameterSpec;
    31 import java.security.spec.MGF1ParameterSpec;
    33 import java.security.spec.PSSParameterSpec;
    32 import java.security.spec.PSSParameterSpec;
    34 import java.util.ArrayList;
    33 import java.util.ArrayList;
    37 import java.util.Collections;
    36 import java.util.Collections;
    38 import java.util.EnumSet;
    37 import java.util.EnumSet;
    39 import java.util.LinkedList;
    38 import java.util.LinkedList;
    40 import java.util.List;
    39 import java.util.List;
    41 import java.util.Set;
    40 import java.util.Set;
    42 import sun.security.ssl.SupportedGroupsExtension.NamedGroup;
    41 import sun.security.ssl.NamedGroup.NamedGroupType;
    43 import sun.security.ssl.SupportedGroupsExtension.NamedGroupType;
       
    44 import sun.security.ssl.X509Authentication.X509Possession;
    42 import sun.security.ssl.X509Authentication.X509Possession;
    45 import sun.security.util.KeyUtil;
    43 import sun.security.util.KeyUtil;
    46 import sun.security.util.SignatureUtil;
    44 import sun.security.util.SignatureUtil;
    47 
    45 
    48 enum SignatureScheme {
    46 enum SignatureScheme {
   430         } else {
   428         } else {
   431             keySize = Integer.MAX_VALUE;
   429             keySize = Integer.MAX_VALUE;
   432         }
   430         }
   433         for (SignatureScheme ss : schemes) {
   431         for (SignatureScheme ss : schemes) {
   434             if (ss.isAvailable && (keySize >= ss.minimalKeySize) &&
   432             if (ss.isAvailable && (keySize >= ss.minimalKeySize) &&
   435                 ss.handshakeSupportedProtocols.contains(version) &&
   433                     ss.handshakeSupportedProtocols.contains(version) &&
   436                 keyAlgorithm.equalsIgnoreCase(ss.keyAlgorithm)) {
   434                     keyAlgorithm.equalsIgnoreCase(ss.keyAlgorithm)) {
   437                 if (ss.namedGroup != null &&
   435                 if ((ss.namedGroup != null) && (ss.namedGroup.type ==
   438                     ss.namedGroup.type == NamedGroupType.NAMED_GROUP_ECDHE) {
   436                         NamedGroupType.NAMED_GROUP_ECDHE)) {
   439                     ECParameterSpec params =
   437                     ECParameterSpec params =
   440                             x509Possession.getECParameterSpec();
   438                             x509Possession.getECParameterSpec();
   441                     if (params != null &&
   439                     if (params != null &&
   442                             ss.namedGroup == NamedGroup.valueOf(params)) {
   440                             ss.namedGroup == NamedGroup.valueOf(params)) {
   443                         return ss;
   441                         return ss;