public final class io.vertx.ext.auth.impl.jose.JWK extends java.lang.Object
{
private static final io.vertx.core.impl.logging.Logger LOG;
private static final java.util.Map ALG_ALIAS;
private final java.lang.String kid;
private final java.lang.String alg;
private final java.lang.String kty;
private final java.lang.String use;
private final java.lang.String label;
private java.security.PrivateKey privateKey;
private java.security.PublicKey publicKey;
private javax.crypto.Mac mac;
private static boolean validAlgAlias(java.lang.String, java.lang.String)
{
java.util.Iterator v;
java.util.Map v;
java.lang.Object v, v;
java.lang.String v, v;
boolean v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <io.vertx.ext.auth.impl.jose.JWK: java.util.Map ALG_ALIAS>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
public static java.util.List load(java.security.KeyStore, java.lang.String, java.util.Map)
{
io.vertx.ext.auth.impl.jose.JWK v, v;
java.security.GeneralSecurityException v;
java.util.Map v;
boolean v, v, v, v;
io.vertx.core.impl.logging.Logger v, v, v, v;
javax.crypto.Mac v;
java.security.KeyStore v;
java.lang.Exception v;
java.security.Key v, v;
java.util.List v, v;
java.security.cert.Certificate v;
java.lang.String[] v, v;
java.util.ArrayList v;
java.lang.String v, v, v, v, v, v, v;
java.util.Iterator v, v;
char[] v, v;
java.lang.Object v, v, v, v;
v := @parameter: java.security.KeyStore;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = newarray (java.lang.String)[3];
v[0] = "HS256";
v[1] = "HS384";
v[2] = "HS512";
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
if v != null goto label;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
label:
v = virtualinvoke v.<java.security.KeyStore: java.security.Key getKey(java.lang.String,char[])>(v, v);
if v == null goto label;
label:
v = interfaceinvoke v.<java.security.Key: java.lang.String getAlgorithm()>();
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean validAlgAlias(java.lang.String,java.lang.String)>(v, v);
if v != 0 goto label;
v = <io.vertx.ext.auth.impl.jose.JWK: io.vertx.core.impl.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The key algorithm does not match: {\u0001: \u0001}");
interfaceinvoke v.<io.vertx.core.impl.logging.Logger: void warn(java.lang.Object)>(v);
label:
goto label;
label:
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>(v);
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
v = new io.vertx.ext.auth.impl.jose.JWK;
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void <init>(java.lang.String,javax.crypto.Mac)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <io.vertx.ext.auth.impl.jose.JWK: io.vertx.core.impl.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to load key for algorithm: \u0001");
interfaceinvoke v.<io.vertx.core.impl.logging.Logger: void warn(java.lang.Object,java.lang.Throwable)>(v, v);
goto label;
label:
v = newarray (java.lang.String)[7];
v[0] = "RS256";
v[1] = "RS384";
v[2] = "RS512";
v[3] = "ES256K";
v[4] = "ES256";
v[5] = "ES384";
v[6] = "ES512";
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = virtualinvoke v.<java.security.KeyStore: java.security.cert.Certificate getCertificate(java.lang.String)>(v);
if v == null goto label;
label:
virtualinvoke v.<java.security.cert.X509Certificate: void checkValidity()>();
v = virtualinvoke v.<java.security.cert.X509Certificate: java.lang.String getSigAlgName()>();
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean validAlgAlias(java.lang.String,java.lang.String)>(v, v);
if v != 0 goto label;
v = <io.vertx.ext.auth.impl.jose.JWK: io.vertx.core.impl.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The key algorithm does not match: {\u0001: \u0001}");
interfaceinvoke v.<io.vertx.core.impl.logging.Logger: void warn(java.lang.Object)>(v);
label:
goto label;
label:
if v != null goto label;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
label:
v = virtualinvoke v.<java.security.KeyStore: java.security.Key getKey(java.lang.String,char[])>(v, v);
v = new io.vertx.ext.auth.impl.jose.JWK;
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void <init>(java.lang.String,java.security.cert.X509Certificate,java.security.PrivateKey)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <io.vertx.ext.auth.impl.jose.JWK: io.vertx.core.impl.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to load key for algorithm: \u0001");
interfaceinvoke v.<io.vertx.core.impl.logging.Logger: void warn(java.lang.Object,java.lang.Throwable)>(v, v);
goto label;
label:
return v;
catch java.security.KeyStoreException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.security.KeyStoreException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.security.KeyStoreException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.lang.ClassCastException from label to label with label;
catch java.security.KeyStoreException from label to label with label;
catch java.security.cert.CertificateExpiredException from label to label with label;
catch java.security.cert.CertificateNotYetValidException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
catch java.lang.ClassCastException from label to label with label;
catch java.security.KeyStoreException from label to label with label;
catch java.security.cert.CertificateExpiredException from label to label with label;
catch java.security.cert.CertificateNotYetValidException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
catch java.lang.ClassCastException from label to label with label;
catch java.security.KeyStoreException from label to label with label;
catch java.security.cert.CertificateExpiredException from label to label with label;
catch java.security.cert.CertificateNotYetValidException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.UnrecoverableKeyException from label to label with label;
}
public void <init>(io.vertx.ext.auth.PubSecKeyOptions)
{
byte[] v, v, v;
javax.crypto.spec.SecretKeySpec v, v, v;
java.security.GeneralSecurityException v, v, v, v;
byte v, v;
javax.crypto.Mac v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.RuntimeException v, v, v, v;
io.vertx.ext.auth.impl.jose.JWK v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.security.KeyFactory v, v, v, v;
io.vertx.core.buffer.Buffer v;
io.vertx.ext.auth.PubSecKeyOptions v;
java.nio.charset.Charset v, v, v, v;
int v, v, v;
java.lang.IllegalArgumentException v;
java.lang.Object v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: io.vertx.ext.auth.PubSecKeyOptions;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<io.vertx.ext.auth.PubSecKeyOptions: java.lang.String getAlgorithm()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
v = virtualinvoke v.<io.vertx.ext.auth.PubSecKeyOptions: java.lang.String getId()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid> = v;
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String use> = null;
v = virtualinvoke v.<io.vertx.ext.auth.PubSecKeyOptions: io.vertx.core.buffer.Buffer getBuffer()>();
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid>;
if v != null goto label;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001#\u0001");
goto label;
label:
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid>;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String label> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 69015912: goto label;
case 69016964: goto label;
case 69018667: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS384");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS512");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>("HMacSHA256");
v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac>;
v = new javax.crypto.spec.SecretKeySpec;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, "HMacSHA256");
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "oct";
return;
label:
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>("HMacSHA384");
v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac>;
v = new javax.crypto.spec.SecretKeySpec;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, "HMacSHA384");
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "oct";
return;
label:
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>("HMacSHA512");
v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac>;
v = new javax.crypto.spec.SecretKeySpec;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, "HMacSHA512");
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "oct";
return;
label:
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 66245349: goto label;
case 66246401: goto label;
case 66248104: goto label;
case 66770035: goto label;
case 76404080: goto label;
case 76405132: goto label;
case 76406835: goto label;
case 78251122: goto label;
case 78252174: goto label;
case 78253877: goto label;
case 2053605894: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS384");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS512");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS256");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS384");
if v == 0 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS512");
if v == 0 goto label;
v = 5;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES256");
if v == 0 goto label;
v = 6;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES384");
if v == 0 goto label;
v = 7;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES512");
if v == 0 goto label;
v = 8;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES256K");
if v == 0 goto label;
v = 9;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("EdDSA");
if v == 0 goto label;
v = 10;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
default: goto label;
};
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "RSA";
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("RSA");
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset US_ASCII>;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: java.lang.String toString(java.nio.charset.Charset)>(v);
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void parsePEM(java.security.KeyFactory,java.lang.String)>(v, v);
goto label;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "RSASSA";
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("RSA");
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset US_ASCII>;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: java.lang.String toString(java.nio.charset.Charset)>(v);
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void parsePEM(java.security.KeyFactory,java.lang.String)>(v, v);
goto label;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "EC";
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("EC");
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset US_ASCII>;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: java.lang.String toString(java.nio.charset.Charset)>(v);
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void parsePEM(java.security.KeyFactory,java.lang.String)>(v, v);
goto label;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "EdDSA";
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("EdDSA");
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset US_ASCII>;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: java.lang.String toString(java.nio.charset.Charset)>(v);
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void parsePEM(java.security.KeyFactory,java.lang.String)>(v, v);
goto label;
label:
v = new java.lang.IllegalArgumentException;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unknown algorithm: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.security.spec.InvalidKeySpecException from label to label with label;
catch java.security.cert.CertificateException from label to label with label;
catch java.security.NoSuchAlgorithmException from label to label with label;
}
private void parsePEM(java.security.KeyFactory, java.lang.String) throws java.security.cert.CertificateException, java.security.spec.InvalidKeySpecException
{
byte[] v, v, v, v, v;
java.lang.IllegalStateException v;
io.vertx.ext.auth.impl.jose.JWK v;
java.security.cert.CertificateFactory v;
java.util.regex.Matcher v, v;
byte v;
java.io.ByteArrayInputStream v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.security.spec.X509EncodedKeySpec v;
java.security.KeyFactory v;
java.security.cert.Certificate v;
io.vertx.core.buffer.Buffer v;
java.security.PrivateKey v;
java.util.regex.Pattern v, v;
java.lang.String[] v;
java.nio.charset.Charset v;
int v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.security.spec.PKCS8EncodedKeySpec v;
java.security.PublicKey v, v;
java.lang.IllegalArgumentException v, v, v, v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: java.security.KeyFactory;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>("\r?\n");
v = lengthof v;
if v > 2 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("PEM contains not enough lines");
throw v;
label:
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("-----BEGIN (.+?)-----");
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("-----END (.+?)-----");
v = v[0];
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("PEM first line does not match a BEGIN line");
throw v;
label:
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(1);
v = staticinvoke <io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer buffer()>();
v = 0;
v = 1;
label:
v = lengthof v;
if v >= v goto label;
v = "";
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v[v];
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
v = 1;
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(1);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("PEM END line does not match start");
throw v;
label:
v = v[v];
interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendString(java.lang.String)>(v);
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("PEM END line not found");
throw v;
label:
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1905985528: goto label;
case -862192120: goto label;
case -326720120: goto label;
case -189606537: goto label;
case -170985982: goto label;
case 1919751810: goto label;
case 2121838594: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("CERTIFICATE");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PUBLIC KEY");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PUBLIC RSA KEY");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RSA PUBLIC KEY");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PRIVATE KEY");
if v == 0 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PRIVATE RSA KEY");
if v == 0 goto label;
v = 5;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RSA PRIVATE KEY");
if v == 0 goto label;
v = 6;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
default: goto label;
};
label:
v = staticinvoke <java.security.cert.CertificateFactory: java.security.cert.CertificateFactory getInstance(java.lang.String)>("X.509");
v = new java.io.ByteArrayInputStream;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset US_ASCII>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
v = virtualinvoke v.<java.security.cert.CertificateFactory: java.security.cert.Certificate generateCertificate(java.io.InputStream)>(v);
v = virtualinvoke v.<java.security.cert.Certificate: java.security.PublicKey getPublicKey()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
return;
label:
v = new java.security.spec.X509EncodedKeySpec;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64MimeDecode(byte[])>(v);
specialinvoke v.<java.security.spec.X509EncodedKeySpec: void <init>(byte[])>(v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PublicKey generatePublic(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
return;
label:
v = new java.security.spec.PKCS8EncodedKeySpec;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64MimeDecode(byte[])>(v);
specialinvoke v.<java.security.spec.PKCS8EncodedKeySpec: void <init>(byte[])>(v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PrivateKey generatePrivate(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PrivateKey privateKey> = v;
return;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid PEM content: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
}
private void <init>(java.lang.String, javax.crypto.Mac) throws java.security.NoSuchAlgorithmException
{
io.vertx.ext.auth.impl.jose.JWK v;
javax.crypto.Mac v;
byte v;
java.security.NoSuchAlgorithmException v;
int v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: java.lang.String;
v := @parameter: javax.crypto.Mac;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid> = null;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001#\u0001");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String label> = v;
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String use> = null;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 69015912: goto label;
case 69016964: goto label;
case 69018667: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS384");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS512");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "oct";
v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac> = v;
goto label;
label:
v = new java.security.NoSuchAlgorithmException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unknown algorithm: \u0001");
specialinvoke v.<java.security.NoSuchAlgorithmException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private void <init>(java.lang.String, java.security.cert.X509Certificate, java.security.PrivateKey) throws java.security.NoSuchAlgorithmException
{
java.security.cert.X509Certificate v;
io.vertx.ext.auth.impl.jose.JWK v;
byte v;
int v, v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
java.security.PublicKey v;
java.security.PrivateKey v;
java.security.NoSuchAlgorithmException v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: java.lang.String;
v := @parameter: java.security.cert.X509Certificate;
v := @parameter: java.security.PrivateKey;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid> = null;
if v == null goto label;
v = virtualinvoke v.<java.security.cert.X509Certificate: int hashCode()>();
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int,int)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001#\u0001-\u0001");
goto label;
label:
v = virtualinvoke v.<java.security.cert.X509Certificate: int hashCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001#\u0001");
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String label> = v;
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String use> = null;
v = virtualinvoke v.<java.security.cert.X509Certificate: java.security.PublicKey getPublicKey()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PrivateKey privateKey> = v;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 66245349: goto label;
case 66246401: goto label;
case 66248104: goto label;
case 76404080: goto label;
case 76405132: goto label;
case 76406835: goto label;
case 78251122: goto label;
case 78252174: goto label;
case 78253877: goto label;
case 2053605894: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS384");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS512");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS256");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS384");
if v == 0 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS512");
if v == 0 goto label;
v = 5;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES256");
if v == 0 goto label;
v = 6;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES384");
if v == 0 goto label;
v = 7;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES512");
if v == 0 goto label;
v = 8;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES256K");
if v == 0 goto label;
v = 9;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
default: goto label;
};
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "RSA";
goto label;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "RSASSA";
goto label;
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = "EC";
goto label;
label:
v = new java.security.NoSuchAlgorithmException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unknown algorithm: \u0001");
specialinvoke v.<java.security.NoSuchAlgorithmException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public void <init>(io.vertx.core.json.JsonObject)
{
io.vertx.ext.auth.impl.jose.JWK v;
java.security.GeneralSecurityException v;
byte v, v, v, v;
io.vertx.core.json.JsonObject v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.security.NoSuchAlgorithmException v, v, v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.RuntimeException v, v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: io.vertx.core.json.JsonObject;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kid");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid> = v;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("use");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String use> = v;
label:
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kty");
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1868705855: goto label;
case 2206: goto label;
case 78324: goto label;
case 81440: goto label;
case 109856: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RSA");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RSASSA");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("EC");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("OKP");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("oct");
if v == 0 goto label;
v = 4;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kty");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = v;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String,java.lang.String)>("alg", "RS256");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 81424: goto label;
case 76404080: goto label;
case 76405132: goto label;
case 76406835: goto label;
case 78251122: goto label;
case 78252174: goto label;
case 78253877: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS1");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS256");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS384");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("RS512");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS256");
if v == 0 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS384");
if v == 0 goto label;
v = 5;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PS512");
if v == 0 goto label;
v = 6;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
default: goto label;
};
label:
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void createRSA(io.vertx.core.json.JsonObject)>(v);
goto label;
label:
v = new java.security.NoSuchAlgorithmException;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
specialinvoke v.<java.security.NoSuchAlgorithmException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kty");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = v;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String,java.lang.String)>("alg", "ES256");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 66245349: goto label;
case 66246401: goto label;
case 66248104: goto label;
case 2053605894: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES256K");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES512");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("ES384");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void createEC(io.vertx.core.json.JsonObject)>(v);
goto label;
label:
v = new java.security.NoSuchAlgorithmException;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
specialinvoke v.<java.security.NoSuchAlgorithmException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kty");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = v;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String,java.lang.String)>("alg", "EdDSA");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void createOKP(io.vertx.core.json.JsonObject)>(v);
goto label;
label:
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kty");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty> = v;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String,java.lang.String)>("alg", "HS256");
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 69015912: goto label;
case 69016964: goto label;
case 69018667: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS384");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HS512");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void createOCT(java.lang.String,io.vertx.core.json.JsonObject)>("HMacSHA256", v);
goto label;
label:
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void createOCT(java.lang.String,io.vertx.core.json.JsonObject)>("HMacSHA384", v);
goto label;
label:
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK: void createOCT(java.lang.String,io.vertx.core.json.JsonObject)>("HMacSHA512", v);
goto label;
label:
v = new java.security.NoSuchAlgorithmException;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
specialinvoke v.<java.security.NoSuchAlgorithmException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.lang.RuntimeException;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("kty");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unsupported key type: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid>;
if v == null goto label;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid>;
goto label;
label:
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: int hashCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001#\u0001");
label:
v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String label> = v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.security.NoSuchAlgorithmException from label to label with label;
catch java.security.InvalidKeyException from label to label with label;
catch java.security.spec.InvalidKeySpecException from label to label with label;
catch java.security.spec.InvalidParameterSpecException from label to label with label;
catch java.security.cert.CertificateException from label to label with label;
catch java.security.NoSuchProviderException from label to label with label;
catch java.security.SignatureException from label to label with label;
}
private void createRSA(io.vertx.core.json.JsonObject) throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException, java.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
{
java.security.cert.X509Certificate v;
byte[] v, v, v, v, v, v, v, v;
io.vertx.ext.auth.impl.jose.JWK v;
java.security.spec.RSAPublicKeySpec v;
io.vertx.core.json.JsonObject v;
java.math.BigInteger v, v, v, v, v, v, v, v;
boolean v, v, v;
java.security.KeyFactory v, v;
java.security.PrivateKey v;
java.security.spec.RSAPrivateCrtKeySpec v;
java.lang.String[] v, v;
java.util.ArrayList v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.security.PublicKey v, v;
io.vertx.core.json.JsonArray v;
java.lang.Object v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: io.vertx.core.json.JsonObject;
v = newarray (java.lang.String)[2];
v[0] = "n";
v[1] = "e";
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean jsonHasProperties(io.vertx.core.json.JsonObject,java.lang.String[])>(v, v);
if v == 0 goto label;
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("n");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("e");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("RSA");
v = new java.security.spec.RSAPublicKeySpec;
specialinvoke v.<java.security.spec.RSAPublicKeySpec: void <init>(java.math.BigInteger,java.math.BigInteger)>(v, v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PublicKey generatePublic(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
v = newarray (java.lang.String)[6];
v[0] = "d";
v[1] = "p";
v[2] = "q";
v[3] = "dp";
v[4] = "dq";
v[5] = "qi";
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean jsonHasProperties(io.vertx.core.json.JsonObject,java.lang.String[])>(v, v);
if v == 0 goto label;
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("d");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("p");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("q");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("dp");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("dq");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("qi");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("RSA");
v = new java.security.spec.RSAPrivateCrtKeySpec;
specialinvoke v.<java.security.spec.RSAPrivateCrtKeySpec: void <init>(java.math.BigInteger,java.math.BigInteger,java.math.BigInteger,java.math.BigInteger,java.math.BigInteger,java.math.BigInteger,java.math.BigInteger,java.math.BigInteger)>(v, v, v, v, v, v, v, v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PrivateKey generatePrivate(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PrivateKey privateKey> = v;
label:
v = virtualinvoke v.<io.vertx.core.json.JsonObject: boolean containsKey(java.lang.String)>("x5c");
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: io.vertx.core.json.JsonArray getJsonArray(java.lang.String)>("x5c");
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0;
label:
v = virtualinvoke v.<io.vertx.core.json.JsonArray: int size()>();
if v >= v goto label;
v = virtualinvoke v.<io.vertx.core.json.JsonArray: java.lang.String getString(int)>(v);
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWS: java.security.cert.X509Certificate parseX5c(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
staticinvoke <io.vertx.ext.auth.impl.CertificateHelper: void checkValidity(java.util.List,boolean,java.util.List)>(v, 0, null);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<java.security.cert.X509Certificate: java.security.PublicKey getPublicKey()>();
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
label:
return;
}
private void createEC(io.vertx.core.json.JsonObject) throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException, java.security.spec.InvalidParameterSpecException
{
byte[] v, v, v;
io.vertx.ext.auth.impl.jose.JWK v;
java.security.spec.ECPublicKeySpec v;
java.lang.String[] v, v;
java.security.spec.ECPrivateKeySpec v;
java.security.spec.ECGenParameterSpec v;
io.vertx.core.json.JsonObject v;
java.math.BigInteger v, v, v;
java.lang.String v, v, v, v, v;
java.security.spec.AlgorithmParameterSpec v, v;
boolean v, v;
java.security.PublicKey v;
java.security.AlgorithmParameters v;
java.security.KeyFactory v, v;
java.security.PrivateKey v;
java.security.spec.ECPoint v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: io.vertx.core.json.JsonObject;
v = staticinvoke <java.security.AlgorithmParameters: java.security.AlgorithmParameters getInstance(java.lang.String)>("EC");
v = new java.security.spec.ECGenParameterSpec;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("crv");
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: java.lang.String translateECCrv(java.lang.String)>(v);
specialinvoke v.<java.security.spec.ECGenParameterSpec: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.security.AlgorithmParameters: void init(java.security.spec.AlgorithmParameterSpec)>(v);
v = newarray (java.lang.String)[2];
v[0] = "x";
v[1] = "y";
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean jsonHasProperties(io.vertx.core.json.JsonObject,java.lang.String[])>(v, v);
if v == 0 goto label;
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("x");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("y");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("EC");
v = new java.security.spec.ECPublicKeySpec;
v = new java.security.spec.ECPoint;
specialinvoke v.<java.security.spec.ECPoint: void <init>(java.math.BigInteger,java.math.BigInteger)>(v, v);
v = virtualinvoke v.<java.security.AlgorithmParameters: java.security.spec.AlgorithmParameterSpec getParameterSpec(java.lang.Class)>(class "Ljava/security/spec/ECParameterSpec;");
specialinvoke v.<java.security.spec.ECPublicKeySpec: void <init>(java.security.spec.ECPoint,java.security.spec.ECParameterSpec)>(v, v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PublicKey generatePublic(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
label:
v = newarray (java.lang.String)[1];
v[0] = "d";
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean jsonHasProperties(io.vertx.core.json.JsonObject,java.lang.String[])>(v, v);
if v == 0 goto label;
v = new java.math.BigInteger;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("d");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<java.math.BigInteger: void <init>(int,byte[])>(1, v);
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("EC");
v = new java.security.spec.ECPrivateKeySpec;
v = virtualinvoke v.<java.security.AlgorithmParameters: java.security.spec.AlgorithmParameterSpec getParameterSpec(java.lang.Class)>(class "Ljava/security/spec/ECParameterSpec;");
specialinvoke v.<java.security.spec.ECPrivateKeySpec: void <init>(java.math.BigInteger,java.security.spec.ECParameterSpec)>(v, v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PrivateKey generatePrivate(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PrivateKey privateKey> = v;
label:
return;
}
private void createOKP(io.vertx.core.json.JsonObject) throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException
{
byte[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.vertx.ext.auth.impl.jose.JWK v;
io.vertx.core.json.JsonObject v;
boolean v, v;
java.security.spec.X509EncodedKeySpec v;
java.security.KeyFactory v, v;
io.vertx.core.buffer.Buffer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.security.PrivateKey v;
java.lang.String[] v, v;
int v, v, v, v;
java.lang.String v, v, v, v;
java.security.spec.PKCS8EncodedKeySpec v;
java.security.PublicKey v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: io.vertx.core.json.JsonObject;
v = newarray (java.lang.String)[1];
v[0] = "x";
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean jsonHasProperties(io.vertx.core.json.JsonObject,java.lang.String[])>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("x");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
v = staticinvoke <io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer buffer()>();
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("crv");
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: byte[] oidCrv(java.lang.String)>(v);
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] sequence(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendByte(byte)>(3);
v = lengthof v;
v = v + 1;
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] length(int)>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendByte(byte)>(0);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] sequence(byte[])>(v);
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("EdDSA");
v = new java.security.spec.X509EncodedKeySpec;
specialinvoke v.<java.security.spec.X509EncodedKeySpec: void <init>(byte[])>(v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PublicKey generatePublic(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey> = v;
label:
v = newarray (java.lang.String)[1];
v[0] = "d";
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: boolean jsonHasProperties(io.vertx.core.json.JsonObject,java.lang.String[])>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("d");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
v = staticinvoke <io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer buffer()>();
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendByte(byte)>(4);
v = lengthof v;
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] length(int)>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
v = staticinvoke <io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer buffer()>();
v = newarray (byte)[3];
v[0] = 2;
v[1] = 1;
v[2] = 0;
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("crv");
v = staticinvoke <io.vertx.ext.auth.impl.jose.JWK: byte[] oidCrv(java.lang.String)>(v);
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] sequence(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendByte(byte)>(4);
v = lengthof v;
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] length(int)>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: io.vertx.core.buffer.Buffer appendBytes(byte[])>(v);
v = interfaceinvoke v.<io.vertx.core.buffer.Buffer: byte[] getBytes()>();
v = staticinvoke <io.vertx.ext.auth.impl.asn.ASN1: byte[] sequence(byte[])>(v);
v = staticinvoke <java.security.KeyFactory: java.security.KeyFactory getInstance(java.lang.String)>("EdDSA");
v = new java.security.spec.PKCS8EncodedKeySpec;
specialinvoke v.<java.security.spec.PKCS8EncodedKeySpec: void <init>(byte[])>(v);
v = virtualinvoke v.<java.security.KeyFactory: java.security.PrivateKey generatePrivate(java.security.spec.KeySpec)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PrivateKey privateKey> = v;
label:
return;
}
private void createOCT(java.lang.String, io.vertx.core.json.JsonObject) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
{
byte[] v;
io.vertx.ext.auth.impl.jose.JWK v;
javax.crypto.Mac v, v;
javax.crypto.spec.SecretKeySpec v;
io.vertx.core.json.JsonObject v;
java.lang.String v, v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.json.JsonObject;
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>(v);
v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac> = v;
v = v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac>;
v = new javax.crypto.spec.SecretKeySpec;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.String getString(java.lang.String)>("k");
v = staticinvoke <io.vertx.ext.auth.impl.Codec: byte[] base64UrlDecode(java.lang.String)>(v);
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, v);
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
return;
}
public java.lang.String getAlgorithm()
{
io.vertx.ext.auth.impl.jose.JWK v;
java.lang.String v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String alg>;
return v;
}
public java.lang.String getId()
{
io.vertx.ext.auth.impl.jose.JWK v;
java.lang.String v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kid>;
return v;
}
private static java.lang.String translateECCrv(java.lang.String)
{
java.lang.IllegalArgumentException v;
byte v;
int v;
java.lang.String v, v;
boolean v, v, v, v;
v := @parameter: java.lang.String;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -845821990: goto label;
case 75272022: goto label;
case 75273074: goto label;
case 75274807: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("P-256");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("P-384");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("P-521");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("secp256k1");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
return "secp256r1";
label:
return "secp384r1";
label:
return "secp521r1";
label:
return "secp256k1";
label:
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unsupported {crv}: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
private static byte[] oidCrv(java.lang.String)
{
byte[] v, v, v, v;
java.lang.IllegalArgumentException v;
byte v;
int v;
java.lang.String v, v;
boolean v, v, v, v;
v := @parameter: java.lang.String;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1727794526: goto label;
case -276032869: goto label;
case 2673248: goto label;
case 66753689: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Ed25519");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Ed448");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("X25519");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("X448");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = newarray (byte)[5];
v[0] = 6;
v[1] = 3;
v[2] = 43;
v[3] = 101;
v[4] = 112;
return v;
label:
v = newarray (byte)[5];
v[0] = 6;
v[1] = 3;
v[2] = 43;
v[3] = 101;
v[4] = 113;
return v;
label:
v = newarray (byte)[5];
v[0] = 6;
v[1] = 3;
v[2] = 43;
v[3] = 101;
v[4] = 110;
return v;
label:
v = newarray (byte)[5];
v[0] = 6;
v[1] = 3;
v[2] = 43;
v[3] = 101;
v[4] = 111;
return v;
label:
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unsupported {crv}: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
private static transient boolean jsonHasProperties(io.vertx.core.json.JsonObject, java.lang.String[])
{
int v, v;
io.vertx.core.json.JsonObject v;
java.lang.Object v;
java.lang.String[] v;
java.lang.String v;
boolean v;
v := @parameter: io.vertx.core.json.JsonObject;
v := @parameter: java.lang.String[];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<io.vertx.core.json.JsonObject: boolean containsKey(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.json.JsonObject: java.lang.Object getValue(java.lang.String)>(v);
if v != null goto label;
label:
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
public java.lang.String use()
{
io.vertx.ext.auth.impl.jose.JWK v;
java.lang.String v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String use>;
return v;
}
public java.lang.String label()
{
io.vertx.ext.auth.impl.jose.JWK v;
java.lang.String v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String label>;
return v;
}
public java.lang.String kty()
{
io.vertx.ext.auth.impl.jose.JWK v;
java.lang.String v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.lang.String kty>;
return v;
}
public javax.crypto.Mac mac()
{
javax.crypto.Mac v;
io.vertx.ext.auth.impl.jose.JWK v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: javax.crypto.Mac mac>;
return v;
}
public java.security.PublicKey publicKey()
{
java.security.PublicKey v;
io.vertx.ext.auth.impl.jose.JWK v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PublicKey publicKey>;
return v;
}
public java.security.PrivateKey privateKey()
{
io.vertx.ext.auth.impl.jose.JWK v;
java.security.PrivateKey v;
v := @this: io.vertx.ext.auth.impl.jose.JWK;
v = v.<io.vertx.ext.auth.impl.jose.JWK: java.security.PrivateKey privateKey>;
return v;
}
static void <clinit>()
{
io.vertx.core.impl.logging.Logger v;
io.vertx.ext.auth.impl.jose.JWK$1 v;
v = staticinvoke <io.vertx.core.impl.logging.LoggerFactory: io.vertx.core.impl.logging.Logger getLogger(java.lang.Class)>(class "Lio/vertx/ext/auth/impl/jose/JWK;");
<io.vertx.ext.auth.impl.jose.JWK: io.vertx.core.impl.logging.Logger LOG> = v;
v = new io.vertx.ext.auth.impl.jose.JWK$1;
specialinvoke v.<io.vertx.ext.auth.impl.jose.JWK$1: void <init>()>();
<io.vertx.ext.auth.impl.jose.JWK: java.util.Map ALG_ALIAS> = v;
return;
}
}