src/java.base/share/classes/sun/security/ssl/SignatureScheme.java
changeset 54483 ac20c3bdc55d
parent 54417 f87041131515
child 55353 946f7f2d321c
child 58678 9cf78a70fa4f
equal deleted inserted replaced
54481:f847a42ddc01 54483:ac20c3bdc55d
    41 import java.util.Set;
    41 import java.util.Set;
    42 import sun.security.ssl.SupportedGroupsExtension.NamedGroup;
    42 import sun.security.ssl.SupportedGroupsExtension.NamedGroup;
    43 import sun.security.ssl.SupportedGroupsExtension.NamedGroupType;
    43 import sun.security.ssl.SupportedGroupsExtension.NamedGroupType;
    44 import sun.security.ssl.X509Authentication.X509Possession;
    44 import sun.security.ssl.X509Authentication.X509Possession;
    45 import sun.security.util.KeyUtil;
    45 import sun.security.util.KeyUtil;
       
    46 import sun.security.util.SignatureUtil;
    46 
    47 
    47 enum SignatureScheme {
    48 enum SignatureScheme {
    48     // EdDSA algorithms
    49     // EdDSA algorithms
    49     ED25519                 (0x0807, "ed25519", "ed25519",
    50     ED25519                 (0x0807, "ed25519", "ed25519",
    50                                     "ed25519",
    51                                     "ed25519",
   469             return null;
   470             return null;
   470         }
   471         }
   471 
   472 
   472         Signature signer = Signature.getInstance(algorithm);
   473         Signature signer = Signature.getInstance(algorithm);
   473         if (key instanceof PublicKey) {
   474         if (key instanceof PublicKey) {
   474             signer.initVerify((PublicKey)(key));
   475             SignatureUtil.initVerifyWithParam(signer, (PublicKey)key,
       
   476                     signAlgParameter);
   475         } else {
   477         } else {
   476             signer.initSign((PrivateKey)key);
   478             SignatureUtil.initSignWithParam(signer, (PrivateKey)key,
   477         }
   479                     signAlgParameter, null);
   478 
       
   479         // Important note:  Please don't set the parameters before signature
       
   480         // or verification initialization, so that the crypto provider can
       
   481         // be selected properly.
       
   482         if (signAlgParameter != null) {
       
   483             signer.setParameter(signAlgParameter);
       
   484         }
   480         }
   485 
   481 
   486         return signer;
   482         return signer;
   487     }
   483     }
   488 }
   484 }