8268967: Update java.security to use switch expressions

Reviewed-by: xuelei
This commit is contained in:
Patrick Concannon 2021-06-25 16:34:18 +00:00
parent b565459f83
commit 35c4702055
3 changed files with 46 additions and 107 deletions

View file

@ -447,12 +447,8 @@ public abstract class MessageDigest extends MessageDigestSpi {
PrintStream p = new PrintStream(baos); PrintStream p = new PrintStream(baos);
p.print(algorithm+" Message Digest from "+getProviderName()+", "); p.print(algorithm+" Message Digest from "+getProviderName()+", ");
switch (state) { switch (state) {
case INITIAL: case INITIAL -> p.print("<initialized>");
p.print("<initialized>"); case IN_PROGRESS -> p.print("<in progress>");
break;
case IN_PROGRESS:
p.print("<in progress>");
break;
} }
p.println(); p.println();
return (baos.toString()); return (baos.toString());

View file

@ -947,18 +947,12 @@ public abstract class Signature extends SignatureSpi {
* @return a string representation of this signature object. * @return a string representation of this signature object.
*/ */
public String toString() { public String toString() {
String initState = ""; String initState = switch (state) {
switch (state) { case UNINITIALIZED -> "<not initialized>";
case UNINITIALIZED: case VERIFY -> "<initialized for verifying>";
initState = "<not initialized>"; case SIGN -> "<initialized for signing>";
break; default -> "";
case VERIFY: };
initState = "<initialized for verifying>";
break;
case SIGN:
initState = "<initialized for signing>";
break;
}
return "Signature object: " + getAlgorithm() + initState; return "Signature object: " + getAlgorithm() + initState;
} }
@ -1317,26 +1311,13 @@ public abstract class Signature extends SignatureSpi {
AlgorithmParameterSpec params, SecureRandom random) AlgorithmParameterSpec params, SecureRandom random)
throws InvalidKeyException, InvalidAlgorithmParameterException { throws InvalidKeyException, InvalidAlgorithmParameterException {
switch (type) { switch (type) {
case I_PUB: case I_PUB -> spi.engineInitVerify((PublicKey) key);
spi.engineInitVerify((PublicKey)key); case I_PUB_PARAM -> spi.engineInitVerify((PublicKey) key, params);
break; case I_PRIV -> spi.engineInitSign((PrivateKey) key);
case I_PUB_PARAM: case I_PRIV_SR -> spi.engineInitSign((PrivateKey) key, random);
spi.engineInitVerify((PublicKey)key, params); case I_PRIV_PARAM_SR -> spi.engineInitSign((PrivateKey) key, params, random);
break; case S_PARAM -> spi.engineSetParameter(params);
case I_PRIV: default -> throw new AssertionError("Internal error: " + type);
spi.engineInitSign((PrivateKey)key);
break;
case I_PRIV_SR:
spi.engineInitSign((PrivateKey)key, random);
break;
case I_PRIV_PARAM_SR:
spi.engineInitSign((PrivateKey)key, params, random);
break;
case S_PARAM:
spi.engineSetParameter(params);
break;
default:
throw new AssertionError("Internal error: " + type);
} }
} }

View file

@ -889,29 +889,16 @@ public class X509CertSelector implements CertSelector {
debug.println("X509CertSelector.makeGeneralNameInterface() " debug.println("X509CertSelector.makeGeneralNameInterface() "
+ "name is String: " + nameAsString); + "name is String: " + nameAsString);
} }
switch (type) { result = switch (type) {
case NAME_RFC822: case NAME_RFC822 -> new RFC822Name(nameAsString);
result = new RFC822Name(nameAsString); case NAME_DNS -> new DNSName(nameAsString);
break; case NAME_DIRECTORY -> new X500Name(nameAsString);
case NAME_DNS: case NAME_URI -> new URIName(nameAsString);
result = new DNSName(nameAsString); case NAME_IP -> new IPAddressName(nameAsString);
break; case NAME_OID -> new OIDName(nameAsString);
case NAME_DIRECTORY: default -> throw new IOException("unable to parse String names of type "
result = new X500Name(nameAsString); + type);
break; };
case NAME_URI:
result = new URIName(nameAsString);
break;
case NAME_IP:
result = new IPAddressName(nameAsString);
break;
case NAME_OID:
result = new OIDName(nameAsString);
break;
default:
throw new IOException("unable to parse String names of type "
+ type);
}
if (debug != null) { if (debug != null) {
debug.println("X509CertSelector.makeGeneralNameInterface() " debug.println("X509CertSelector.makeGeneralNameInterface() "
+ "result: " + result.toString()); + "result: " + result.toString());
@ -923,38 +910,19 @@ public class X509CertSelector implements CertSelector {
("X509CertSelector.makeGeneralNameInterface() is byte[]"); ("X509CertSelector.makeGeneralNameInterface() is byte[]");
} }
switch (type) { result = switch (type) {
case NAME_ANY: case NAME_ANY -> new OtherName(val);
result = new OtherName(val); case NAME_RFC822 -> new RFC822Name(val);
break; case NAME_DNS -> new DNSName(val);
case NAME_RFC822: case NAME_X400 -> new X400Address(val);
result = new RFC822Name(val); case NAME_DIRECTORY -> new X500Name(val);
break; case NAME_EDI -> new EDIPartyName(val);
case NAME_DNS: case NAME_URI -> new URIName(val);
result = new DNSName(val); case NAME_IP -> new IPAddressName(val);
break; case NAME_OID -> new OIDName(val);
case NAME_X400: default -> throw new IOException("unable to parse byte array names of "
result = new X400Address(val); + "type " + type);
break; };
case NAME_DIRECTORY:
result = new X500Name(val);
break;
case NAME_EDI:
result = new EDIPartyName(val);
break;
case NAME_URI:
result = new URIName(val);
break;
case NAME_IP:
result = new IPAddressName(val);
break;
case NAME_OID:
result = new OIDName(val);
break;
default:
throw new IOException("unable to parse byte array names of "
+ "type " + type);
}
if (debug != null) { if (debug != null) {
debug.println("X509CertSelector.makeGeneralNameInterface() result: " debug.println("X509CertSelector.makeGeneralNameInterface() result: "
+ result.toString()); + result.toString());
@ -1928,20 +1896,14 @@ public class X509CertSelector implements CertSelector {
private static Extension getExtensionObject(X509Certificate cert, KnownOIDs extId) private static Extension getExtensionObject(X509Certificate cert, KnownOIDs extId)
throws IOException { throws IOException {
if (cert instanceof X509CertImpl impl) { if (cert instanceof X509CertImpl impl) {
switch (extId) { return switch (extId) {
case PrivateKeyUsage: case PrivateKeyUsage -> impl.getPrivateKeyUsageExtension();
return impl.getPrivateKeyUsageExtension(); case SubjectAlternativeName -> impl.getSubjectAlternativeNameExtension();
case SubjectAlternativeName: case NameConstraints -> impl.getNameConstraintsExtension();
return impl.getSubjectAlternativeNameExtension(); case CertificatePolicies -> impl.getCertificatePoliciesExtension();
case NameConstraints: case extendedKeyUsage -> impl.getExtendedKeyUsageExtension();
return impl.getNameConstraintsExtension(); default -> null;
case CertificatePolicies: };
return impl.getCertificatePoliciesExtension();
case extendedKeyUsage:
return impl.getExtendedKeyUsageExtension();
default:
return null;
}
} }
byte[] rawExtVal = cert.getExtensionValue(extId.value()); byte[] rawExtVal = cert.getExtensionValue(extId.value());
if (rawExtVal == null) { if (rawExtVal == null) {