equal
deleted
inserted
replaced
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; |