public final class io.vertx.ext.auth.impl.jose.JWK implements io.vertx.ext.auth.impl.jose.Crypto
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.vertx.ext.auth.impl.jose.JWK
super_class: java.lang.Object
{
public static final int USE_SIG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int USE_ENC;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final io.vertx.core.impl.logging.Logger LOG;
descriptor: Lio/vertx/core/impl/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String kid;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String alg;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String kty;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int use;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String label;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int len;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean symmetric;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.security.PrivateKey privateKey;
descriptor: Ljava/security/PrivateKey;
flags: (0x0002) ACC_PRIVATE
private java.security.PublicKey publicKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
private java.security.Signature signature;
descriptor: Ljava/security/Signature;
flags: (0x0002) ACC_PRIVATE
private javax.crypto.Mac mac;
descriptor: Ljavax/crypto/Mac;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/vertx/ext/auth/impl/jose/JWK;
invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
putstatic io.vertx.ext.auth.impl.jose.JWK.LOG:Lio/vertx/core/impl/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public static java.util.List<io.vertx.ext.auth.impl.jose.JWK> load(java.security.KeyStore, java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/security/KeyStore;Ljava/lang/String;Ljava/util/Map;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: new io.vertx.ext.auth.impl.jose.JWK$1
dup
invokespecial io.vertx.ext.auth.impl.jose.JWK$1.<init>:()V
astore 3
start local 3 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 2: iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "HS256"
aastore
dup
iconst_1
ldc "HS384"
aastore
dup
iconst_2
ldc "HS512"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 18
StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 4: aload 0
aload 5
aload 1
invokevirtual java.lang.String.toCharArray:()[C
invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
astore 7
start local 7 5: aload 7
ifnonnull 7
6: goto 18
7: StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List java.lang.String java.util.Iterator java.security.Key
StackMap stack:
aload 7
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
astore 8
start local 8 8: aload 3
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 9: aload 8
ifnull 10
aload 8
aload 9
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 12
10: StackMap locals: java.lang.String java.lang.String
StackMap stack:
getstatic io.vertx.ext.auth.impl.jose.JWK.LOG:Lio/vertx/core/impl/logging/Logger;
new java.lang.StringBuilder
dup
ldc "The key algorithm does not match "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;)V
11: goto 18
12: StackMap locals:
StackMap stack:
aload 8
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 10
start local 10 13: aload 10
aload 7
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
14: aload 4
new io.vertx.ext.auth.impl.jose.JWK
dup
aload 5
aload 10
invokespecial io.vertx.ext.auth.impl.jose.JWK.<init>:(Ljava/lang/String;Ljavax/crypto/Mac;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 end local 8 end local 7 15: goto 18
StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List java.lang.String java.util.Iterator
StackMap stack: java.security.GeneralSecurityException
16: astore 7
start local 7 17: getstatic io.vertx.ext.auth.impl.jose.JWK.LOG:Lio/vertx/core/impl/logging/Logger;
new java.lang.StringBuilder
dup
ldc "Failed to load key for algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 end local 5 18: StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
19: bipush 7
anewarray java.lang.String
dup
iconst_0
ldc "RS256"
aastore
dup
iconst_1
ldc "RS384"
aastore
dup
iconst_2
ldc "RS512"
aastore
dup
iconst_3
ldc "ES256K"
aastore
dup
iconst_4
ldc "ES256"
aastore
dup
iconst_5
ldc "ES384"
aastore
dup
bipush 6
ldc "ES512"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 37
StackMap locals:
StackMap stack:
20: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 21: aload 0
aload 5
invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 7
start local 7 22: aload 7
ifnonnull 24
23: goto 37
24: StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List java.lang.String java.util.Iterator java.security.cert.X509Certificate
StackMap stack:
aload 7
invokevirtual java.security.cert.X509Certificate.checkValidity:()V
25: aload 7
invokevirtual java.security.cert.X509Certificate.getSigAlgName:()Ljava/lang/String;
astore 8
start local 8 26: aload 3
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 27: aload 8
ifnull 28
aload 8
aload 9
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 30
28: StackMap locals: java.lang.String java.lang.String
StackMap stack:
getstatic io.vertx.ext.auth.impl.jose.JWK.LOG:Lio/vertx/core/impl/logging/Logger;
new java.lang.StringBuilder
dup
ldc "The key algorithm does not match "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;)V
29: goto 37
30: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 2
ifnonnull 31
aload 1
invokevirtual java.lang.String.toCharArray:()[C
goto 32
StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List java.lang.String java.util.Iterator java.security.cert.X509Certificate java.lang.String java.lang.String
StackMap stack: java.security.KeyStore java.lang.String
31: aload 2
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.toCharArray:()[C
StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List java.lang.String java.util.Iterator java.security.cert.X509Certificate java.lang.String java.lang.String
StackMap stack: java.security.KeyStore java.lang.String char[]
32: invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
checkcast java.security.PrivateKey
astore 10
start local 10 33: aload 4
new io.vertx.ext.auth.impl.jose.JWK
dup
aload 5
aload 7
aload 10
invokespecial io.vertx.ext.auth.impl.jose.JWK.<init>:(Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 end local 8 end local 7 34: goto 37
StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List java.lang.String java.util.Iterator
StackMap stack: java.lang.Exception
35: astore 7
start local 7 36: getstatic io.vertx.ext.auth.impl.jose.JWK.LOG:Lio/vertx/core/impl/logging/Logger;
new java.lang.StringBuilder
dup
ldc "Failed to load key for algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 end local 5 37: StackMap locals: java.security.KeyStore java.lang.String java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
38: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 keyStore Ljava/security/KeyStore;
0 39 1 keyStorePassword Ljava/lang/String;
0 39 2 passwordProtection Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
1 39 3 aliases Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
2 39 4 keys Ljava/util/List<Lio/vertx/ext/auth/impl/jose/JWK;>;
4 18 5 alias Ljava/lang/String;
5 15 7 secretKey Ljava/security/Key;
8 15 8 alg Ljava/lang/String;
9 15 9 expected Ljava/lang/String;
13 15 10 mac Ljavax/crypto/Mac;
17 18 7 e Ljava/security/GeneralSecurityException;
21 37 5 alias Ljava/lang/String;
22 34 7 certificate Ljava/security/cert/X509Certificate;
26 34 8 alg Ljava/lang/String;
27 34 9 expected Ljava/lang/String;
33 34 10 privateKey Ljava/security/PrivateKey;
36 37 7 e Ljava/lang/Exception;
Exception table:
from to target type
4 6 16 Class java.security.KeyStoreException
7 11 16 Class java.security.KeyStoreException
12 15 16 Class java.security.KeyStoreException
4 6 16 Class java.security.NoSuchAlgorithmException
7 11 16 Class java.security.NoSuchAlgorithmException
12 15 16 Class java.security.NoSuchAlgorithmException
4 6 16 Class java.security.UnrecoverableKeyException
7 11 16 Class java.security.UnrecoverableKeyException
12 15 16 Class java.security.UnrecoverableKeyException
4 6 16 Class java.security.InvalidKeyException
7 11 16 Class java.security.InvalidKeyException
12 15 16 Class java.security.InvalidKeyException
21 23 35 Class java.lang.ClassCastException
24 29 35 Class java.lang.ClassCastException
30 34 35 Class java.lang.ClassCastException
21 23 35 Class java.security.KeyStoreException
24 29 35 Class java.security.KeyStoreException
30 34 35 Class java.security.KeyStoreException
21 23 35 Class java.security.cert.CertificateExpiredException
24 29 35 Class java.security.cert.CertificateExpiredException
30 34 35 Class java.security.cert.CertificateExpiredException
21 23 35 Class java.security.cert.CertificateNotYetValidException
24 29 35 Class java.security.cert.CertificateNotYetValidException
30 34 35 Class java.security.cert.CertificateNotYetValidException
21 23 35 Class java.security.NoSuchAlgorithmException
24 29 35 Class java.security.NoSuchAlgorithmException
30 34 35 Class java.security.NoSuchAlgorithmException
21 23 35 Class java.security.UnrecoverableKeyException
24 29 35 Class java.security.UnrecoverableKeyException
30 34 35 Class java.security.UnrecoverableKeyException
21 23 35 Class java.security.InvalidAlgorithmParameterException
24 29 35 Class java.security.InvalidAlgorithmParameterException
30 34 35 Class java.security.InvalidAlgorithmParameterException
Signature: (Ljava/security/KeyStore;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/util/List<Lio/vertx/ext/auth/impl/jose/JWK;>;
MethodParameters:
Name Flags
keyStore
keyStorePassword
passwordProtection
public void <init>(io.vertx.ext.auth.PubSecKeyOptions);
descriptor: (Lio/vertx/ext/auth/PubSecKeyOptions;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual io.vertx.ext.auth.PubSecKeyOptions.getAlgorithm:()Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
2: aload 0
aload 1
invokevirtual io.vertx.ext.auth.PubSecKeyOptions.getId:()Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
3: aload 1
invokevirtual io.vertx.ext.auth.PubSecKeyOptions.getBuffer:()Ljava/lang/String;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 4: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
ifnonnull 5
new java.lang.StringBuilder
dup
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "#"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.String.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 6
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.ext.auth.PubSecKeyOptions java.lang.String
StackMap stack: io.vertx.ext.auth.impl.jose.JWK
5: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.ext.auth.PubSecKeyOptions java.lang.String
StackMap stack: io.vertx.ext.auth.impl.jose.JWK java.lang.String
6: putfield io.vertx.ext.auth.impl.jose.JWK.label:Ljava/lang/String;
7: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
69015912: 8
69016964: 9
69018667: 10
default: 41
}
StackMap locals: java.lang.String
StackMap stack:
8: aload 3
ldc "HS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 41
StackMap locals:
StackMap stack:
9: aload 3
ldc "HS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 41
StackMap locals:
StackMap stack:
10: aload 3
ldc "HS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 31
goto 41
11: StackMap locals:
StackMap stack:
aload 0
ldc "HMacSHA256"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
12: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
new javax.crypto.spec.SecretKeySpec
dup
aload 2
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
ldc "HMacSHA256"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
13: goto 16
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
14: astore 4
start local 4 15: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 16: StackMap locals:
StackMap stack:
aload 0
ldc "oct"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
17: aload 0
sipush 256
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
18: aload 0
iconst_1
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
19: aload 0
iconst_3
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
20: return
21: StackMap locals:
StackMap stack:
aload 0
ldc "HMacSHA384"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
22: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
new javax.crypto.spec.SecretKeySpec
dup
aload 2
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
ldc "HMacSHA384"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
23: goto 26
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
24: astore 4
start local 4 25: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 26: StackMap locals:
StackMap stack:
aload 0
ldc "oct"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
27: aload 0
sipush 384
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
28: aload 0
iconst_1
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
29: aload 0
iconst_3
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
30: return
31: StackMap locals:
StackMap stack:
aload 0
ldc "HMacSHA512"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
32: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
new javax.crypto.spec.SecretKeySpec
dup
aload 2
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
ldc "HMacSHA512"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
33: goto 36
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
34: astore 4
start local 4 35: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 36: StackMap locals:
StackMap stack:
aload 0
ldc "oct"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
37: aload 0
sipush 512
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
38: aload 0
iconst_1
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
39: aload 0
iconst_3
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
40: return
41: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
42: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 10
66245349: 43
66246401: 44
66248104: 45
76404080: 46
76405132: 47
76406835: 48
78251122: 49
78252174: 50
78253877: 51
2053605894: 52
default: 68
}
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.ext.auth.PubSecKeyOptions java.lang.String top java.lang.String
StackMap stack:
43: aload 4
ldc "ES256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 63
goto 68
StackMap locals:
StackMap stack:
44: aload 4
ldc "ES384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 63
goto 68
StackMap locals:
StackMap stack:
45: aload 4
ldc "ES512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 63
goto 68
StackMap locals:
StackMap stack:
46: aload 4
ldc "PS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 58
goto 68
StackMap locals:
StackMap stack:
47: aload 4
ldc "PS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 58
goto 68
StackMap locals:
StackMap stack:
48: aload 4
ldc "PS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 58
goto 68
StackMap locals:
StackMap stack:
49: aload 4
ldc "RS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 53
goto 68
StackMap locals:
StackMap stack:
50: aload 4
ldc "RS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 53
goto 68
StackMap locals:
StackMap stack:
51: aload 4
ldc "RS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 53
goto 68
StackMap locals:
StackMap stack:
52: aload 4
ldc "ES256K"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 63
goto 68
53: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
54: aload 0
aload 0
ldc "RSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
aload 2
invokevirtual io.vertx.ext.auth.impl.jose.JWK.parsePEM:(Ljava/security/KeyFactory;Ljava/lang/String;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
55: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
56: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
57: goto 71
58: StackMap locals:
StackMap stack:
aload 0
ldc "RSASSA"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
59: aload 0
aload 0
ldc "RSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
aload 2
invokevirtual io.vertx.ext.auth.impl.jose.JWK.parsePEM:(Ljava/security/KeyFactory;Ljava/lang/String;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
60: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
61: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
62: goto 71
63: StackMap locals:
StackMap stack:
aload 0
ldc "EC"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
64: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
65: aload 0
aload 0
ldc "EC"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
aload 2
invokevirtual io.vertx.ext.auth.impl.jose.JWK.parsePEM:(Ljava/security/KeyFactory;Ljava/lang/String;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
66: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
67: goto 71
68: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unknown algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
69: StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.ext.auth.PubSecKeyOptions java.lang.String
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 70: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 71: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 72 1 options Lio/vertx/ext/auth/PubSecKeyOptions;
4 72 2 pem Ljava/lang/String;
15 16 4 e Ljava/security/GeneralSecurityException;
25 26 4 e Ljava/security/GeneralSecurityException;
35 36 4 e Ljava/security/GeneralSecurityException;
70 71 4 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
11 13 14 Class java.security.NoSuchAlgorithmException
11 13 14 Class java.security.InvalidKeyException
21 23 24 Class java.security.NoSuchAlgorithmException
21 23 24 Class java.security.InvalidKeyException
31 33 34 Class java.security.NoSuchAlgorithmException
31 33 34 Class java.security.InvalidKeyException
42 69 69 Class java.security.spec.InvalidKeySpecException
42 69 69 Class java.security.cert.CertificateException
42 69 69 Class java.security.NoSuchAlgorithmException
42 69 69 Class java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
options
private int parsePEM(java.security.KeyFactory, java.lang.String);
descriptor: (Ljava/security/KeyFactory;Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "\r?\n"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
start local 3 1: aload 3
arraylength
iconst_2
if_icmpgt 3
2: new java.lang.IllegalArgumentException
dup
ldc "PEM contains not enough lines"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.String[]
StackMap stack:
ldc "-----BEGIN (.+?)-----"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
astore 4
start local 4 4: ldc "-----END (.+?)-----"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
astore 5
start local 5 5: aload 4
aload 3
iconst_0
aaload
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 6
start local 6 6: aload 6
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 8
7: new java.lang.IllegalArgumentException
dup
ldc "PEM first line does not match a BEGIN line"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.util.regex.Pattern java.util.regex.Pattern java.util.regex.Matcher
StackMap stack:
aload 6
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 7
start local 7 9: invokestatic io.vertx.core.buffer.Buffer.buffer:()Lio/vertx/core/buffer/Buffer;
astore 8
start local 8 10: iconst_0
istore 9
start local 9 11: iconst_1
istore 10
start local 10 12: goto 22
13: StackMap locals: io.vertx.ext.auth.impl.jose.JWK java.security.KeyFactory java.lang.String java.lang.String[] java.util.regex.Pattern java.util.regex.Pattern java.util.regex.Matcher java.lang.String io.vertx.core.buffer.Buffer int int
StackMap stack:
ldc ""
aload 3
iload 10
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
14: goto 21
15: StackMap locals:
StackMap stack:
aload 5
aload 3
iload 10
aaload
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 11
start local 11 16: aload 11
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 20
17: iconst_1
istore 9
18: aload 7
aload 11
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
19: new java.lang.IllegalArgumentException
dup
ldc "PEM END line does not match start"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: java.util.regex.Matcher
StackMap stack:
aload 8
aload 3
iload 10
aaload
invokeinterface io.vertx.core.buffer.Buffer.appendString:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
pop
end local 11 21: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
22: iload 10
aload 3
arraylength
if_icmplt 13
end local 10 23: StackMap locals:
StackMap stack:
iload 9
ifne 25
24: new java.lang.IllegalArgumentException
dup
ldc "PEM END line not found"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 7
dup
astore 10
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 5
-1905985528: 26
-326720120: 27
-189606537: 28
-170985982: 29
1919751810: 30
default: 38
}
StackMap locals: java.lang.String
StackMap stack:
26: aload 10
ldc "PUBLIC KEY"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
goto 38
StackMap locals:
StackMap stack:
27: aload 10
ldc "PUBLIC RSA KEY"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
goto 38
StackMap locals:
StackMap stack:
28: aload 10
ldc "CERTIFICATE"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 31
goto 38
StackMap locals:
StackMap stack:
29: aload 10
ldc "PRIVATE KEY"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 36
goto 38
StackMap locals:
StackMap stack:
30: aload 10
ldc "PRIVATE RSA KEY"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 36
goto 38
31: StackMap locals:
StackMap stack:
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 11
start local 11 32: aload 0
aload 11
new java.io.ByteArrayInputStream
dup
aload 2
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
33: iconst_2
ireturn
end local 11 34: StackMap locals:
StackMap stack:
aload 0
aload 1
new java.security.spec.X509EncodedKeySpec
dup
invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
aload 8
invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
invokevirtual java.util.Base64$Decoder.decode:([B)[B
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
35: iconst_2
ireturn
36: StackMap locals:
StackMap stack:
aload 0
aload 1
new java.security.spec.PKCS8EncodedKeySpec
dup
invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
aload 8
invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
invokevirtual java.util.Base64$Decoder.decode:([B)[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
putfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
37: iconst_1
ireturn
38: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Invalid PEM content: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 39 1 kf Ljava/security/KeyFactory;
0 39 2 pem Ljava/lang/String;
1 39 3 lines [Ljava/lang/String;
4 39 4 begin Ljava/util/regex/Pattern;
5 39 5 end Ljava/util/regex/Pattern;
6 39 6 beginMatcher Ljava/util/regex/Matcher;
9 39 7 kind Ljava/lang/String;
10 39 8 buffer Lio/vertx/core/buffer/Buffer;
11 39 9 endSeen Z
12 23 10 i I
16 21 11 endMatcher Ljava/util/regex/Matcher;
32 34 11 cf Ljava/security/cert/CertificateFactory;
Exceptions:
throws java.security.cert.CertificateException, java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
kf
pem
private void <init>(java.lang.String, javax.crypto.Mac);
descriptor: (Ljava/lang/String;Ljavax/crypto/Mac;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
2: aload 0
aconst_null
putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
3: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "#"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.Object.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.label:Ljava/lang/String;
4: aload 0
iconst_1
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
5: aload 0
iconst_3
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
6: aload 2
invokevirtual javax.crypto.Mac.getAlgorithm:()Ljava/lang/String;
astore 3
start local 3 7: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
69015912: 8
69016964: 9
69018667: 10
default: 29
}
StackMap locals: io.vertx.ext.auth.impl.jose.JWK java.lang.String javax.crypto.Mac java.lang.String java.lang.String
StackMap stack:
8: aload 4
ldc "HS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 29
StackMap locals:
StackMap stack:
9: aload 4
ldc "HS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 29
StackMap locals:
StackMap stack:
10: aload 4
ldc "HS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
goto 29
11: StackMap locals:
StackMap stack:
aload 0
ldc "oct"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
12: aload 0
sipush 256
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
13: ldc "HMacSHA256"
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 15
14: new java.lang.IllegalArgumentException
dup
ldc "The key algorithm does not match, expected: HMacSHA256"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
16: goto 30
17: StackMap locals:
StackMap stack:
aload 0
ldc "oct"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
18: aload 0
sipush 384
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
19: ldc "HMacSHA384"
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 21
20: new java.lang.IllegalArgumentException
dup
ldc "The key algorithm does not match, expected: HMacSHA384"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
22: goto 30
23: StackMap locals:
StackMap stack:
aload 0
ldc "oct"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
24: aload 0
sipush 512
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
25: ldc "HMacSHA512"
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 27
26: new java.lang.IllegalArgumentException
dup
ldc "The key algorithm does not match, expected: HMacSHA512"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
28: goto 30
29: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Unknown algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 31 1 algorithm Ljava/lang/String;
0 31 2 mac Ljavax/crypto/Mac;
7 31 3 macAlg Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
algorithm
mac
private void <init>(java.lang.String, java.security.cert.X509Certificate, java.security.PrivateKey);
descriptor: (Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
2: aload 0
aconst_null
putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
3: aload 0
aload 3
ifnull 4
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 35
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.security.cert.X509Certificate.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.Object.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 5
StackMap locals: io.vertx.ext.auth.impl.jose.JWK java.lang.String java.security.cert.X509Certificate java.security.PrivateKey
StackMap stack: io.vertx.ext.auth.impl.jose.JWK
4: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 35
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.security.cert.X509Certificate.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: io.vertx.ext.auth.impl.jose.JWK java.lang.String java.security.cert.X509Certificate java.security.PrivateKey
StackMap stack: io.vertx.ext.auth.impl.jose.JWK java.lang.String
5: putfield io.vertx.ext.auth.impl.jose.JWK.label:Ljava/lang/String;
6: aload 0
iconst_0
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
7: aload 0
aload 2
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
8: aload 0
aload 3
putfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
9: aload 3
ifnull 12
10: aload 0
iconst_3
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
13: StackMap locals:
StackMap stack:
aload 1
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 10
66245349: 14
66246401: 15
66248104: 16
76404080: 17
76405132: 18
76406835: 19
78251122: 20
78252174: 21
78253877: 22
2053605894: 23
default: 36
}
StackMap locals: java.lang.String
StackMap stack:
14: aload 4
ldc "ES256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
goto 36
StackMap locals:
StackMap stack:
15: aload 4
ldc "ES384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
goto 36
StackMap locals:
StackMap stack:
16: aload 4
ldc "ES512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
goto 36
StackMap locals:
StackMap stack:
17: aload 4
ldc "PS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
goto 36
StackMap locals:
StackMap stack:
18: aload 4
ldc "PS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
goto 36
StackMap locals:
StackMap stack:
19: aload 4
ldc "PS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
goto 36
StackMap locals:
StackMap stack:
20: aload 4
ldc "RS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
goto 36
StackMap locals:
StackMap stack:
21: aload 4
ldc "RS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
goto 36
StackMap locals:
StackMap stack:
22: aload 4
ldc "RS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
goto 36
StackMap locals:
StackMap stack:
23: aload 4
ldc "ES256K"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
goto 36
24: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
25: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
26: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
27: goto 37
28: StackMap locals:
StackMap stack:
aload 0
ldc "RSASSA"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
29: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
30: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
31: goto 37
32: StackMap locals:
StackMap stack:
aload 0
ldc "EC"
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
33: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
34: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
35: goto 37
36: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Unknown algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 38 1 algorithm Ljava/lang/String;
0 38 2 certificate Ljava/security/cert/X509Certificate;
0 38 3 privateKey Ljava/security/PrivateKey;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
algorithm
certificate
privateKey
public void <init>(io.vertx.core.json.JsonObject);
descriptor: (Lio/vertx/core/json/JsonObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
ldc "kid"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
2: aload 1
ldc "kty"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
-1868705855: 3
2206: 4
81440: 5
109856: 6
default: 51
}
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject java.lang.String
StackMap stack:
3: aload 2
ldc "RSASSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 51
StackMap locals:
StackMap stack:
4: aload 2
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 22
goto 51
StackMap locals:
StackMap stack:
5: aload 2
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 51
StackMap locals:
StackMap stack:
6: aload 2
ldc "oct"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
goto 51
7: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "kty"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
8: aload 0
aload 1
ldc "alg"
ldc "RS256"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
9: aload 0
iconst_0
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
10: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 7
81424: 11
76404080: 12
76405132: 13
76406835: 14
78251122: 15
78252174: 16
78253877: 17
default: 21
}
StackMap locals: java.lang.String
StackMap stack:
11: aload 3
ldc "RS1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
StackMap locals:
StackMap stack:
12: aload 3
ldc "PS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
StackMap locals:
StackMap stack:
13: aload 3
ldc "PS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
StackMap locals:
StackMap stack:
14: aload 3
ldc "PS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
StackMap locals:
StackMap stack:
15: aload 3
ldc "RS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
StackMap locals:
StackMap stack:
16: aload 3
ldc "RS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
StackMap locals:
StackMap stack:
17: aload 3
ldc "RS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 21
18: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
invokevirtual io.vertx.ext.auth.impl.jose.JWK.createRSA:(Lio/vertx/core/json/JsonObject;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
19: aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
20: goto 52
21: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "kty"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
23: aload 0
aload 1
ldc "alg"
ldc "ES256"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
24: aload 0
iconst_0
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
25: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
66245349: 26
66246401: 27
66248104: 28
2053605894: 29
default: 33
}
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject java.lang.String top java.lang.String
StackMap stack:
26: aload 4
ldc "ES256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 33
StackMap locals:
StackMap stack:
27: aload 4
ldc "ES384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 33
StackMap locals:
StackMap stack:
28: aload 4
ldc "ES512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 33
StackMap locals:
StackMap stack:
29: aload 4
ldc "ES256K"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 33
30: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignatureLength:(Ljava/lang/String;Ljava/security/PublicKey;)I
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
31: aload 0
aload 0
aload 1
invokevirtual io.vertx.ext.auth.impl.jose.JWK.createEC:(Lio/vertx/core/json/JsonObject;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
32: goto 52
33: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject java.lang.String
StackMap stack:
aload 0
aload 1
ldc "kty"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
35: aload 0
aload 1
ldc "alg"
ldc "HS256"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
36: aload 0
iconst_1
putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
37: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
dup
astore 5
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
69015912: 38
69016964: 39
69018667: 40
default: 50
}
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject java.lang.String top top java.lang.String
StackMap stack:
38: aload 5
ldc "HS256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 41
goto 50
StackMap locals:
StackMap stack:
39: aload 5
ldc "HS384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 44
goto 50
StackMap locals:
StackMap stack:
40: aload 5
ldc "HS512"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 47
goto 50
41: StackMap locals:
StackMap stack:
aload 0
sipush 256
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
42: aload 0
aload 0
ldc "HMacSHA256"
aload 1
invokevirtual io.vertx.ext.auth.impl.jose.JWK.createOCT:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
43: goto 52
44: StackMap locals:
StackMap stack:
aload 0
sipush 384
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
45: aload 0
aload 0
ldc "HMacSHA384"
aload 1
invokevirtual io.vertx.ext.auth.impl.jose.JWK.createOCT:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
46: goto 52
47: StackMap locals:
StackMap stack:
aload 0
sipush 512
putfield io.vertx.ext.auth.impl.jose.JWK.len:I
48: aload 0
aload 0
ldc "HMacSHA512"
aload 1
invokevirtual io.vertx.ext.auth.impl.jose.JWK.createOCT:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)I
putfield io.vertx.ext.auth.impl.jose.JWK.use:I
49: goto 52
50: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
51: StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject java.lang.String
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported key type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ldc "kty"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
52: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
ifnull 53
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
goto 54
StackMap locals:
StackMap stack: io.vertx.ext.auth.impl.jose.JWK
53: new java.lang.StringBuilder
dup
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "#"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual io.vertx.core.json.JsonObject.hashCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject
StackMap stack: io.vertx.ext.auth.impl.jose.JWK java.lang.String
54: putfield io.vertx.ext.auth.impl.jose.JWK.label:Ljava/lang/String;
55: goto 58
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
56: astore 2
start local 2 57: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 58: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 59 1 json Lio/vertx/core/json/JsonObject;
57 58 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
2 55 56 Class java.security.NoSuchAlgorithmException
2 55 56 Class java.security.InvalidKeyException
2 55 56 Class java.security.spec.InvalidKeySpecException
2 55 56 Class java.security.spec.InvalidParameterSpecException
2 55 56 Class java.security.cert.CertificateException
2 55 56 Class javax.crypto.NoSuchPaddingException
2 55 56 Class java.security.NoSuchProviderException
2 55 56 Class java.security.SignatureException
2 55 56 Class java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
json
private int createRSA(io.vertx.core.json.JsonObject);
descriptor: (Lio/vertx/core/json/JsonObject;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=11, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "e"
aastore
invokestatic io.vertx.ext.auth.impl.jose.JWK.jsonHasProperties:(Lio/vertx/core/json/JsonObject;[Ljava/lang/String;)Z
ifeq 17
2: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "n"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 3
start local 3 3: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "e"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 4
start local 4 4: aload 0
ldc "RSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
new java.security.spec.RSAPublicKeySpec
dup
aload 3
aload 4
invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
5: iload 2
iconst_2
iand
ifne 7
6: iinc 2 2
7: StackMap locals: int java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 1
bipush 6
anewarray java.lang.String
dup
iconst_0
ldc "d"
aastore
dup
iconst_1
ldc "p"
aastore
dup
iconst_2
ldc "q"
aastore
dup
iconst_3
ldc "dp"
aastore
dup
iconst_4
ldc "dq"
aastore
dup
iconst_5
ldc "qi"
aastore
invokestatic io.vertx.ext.auth.impl.jose.JWK.jsonHasProperties:(Lio/vertx/core/json/JsonObject;[Ljava/lang/String;)Z
ifeq 17
8: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "d"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 5
start local 5 9: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "p"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 6
start local 6 10: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "q"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 7
start local 7 11: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "dp"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 8
start local 8 12: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "dq"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 9
start local 9 13: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "qi"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 10
start local 10 14: aload 0
ldc "RSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
new java.security.spec.RSAPrivateCrtKeySpec
dup
aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
aload 9
aload 10
invokespecial java.security.spec.RSAPrivateCrtKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
putfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
15: iload 2
iconst_1
iand
ifne 17
16: iinc 2 1
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 17: StackMap locals:
StackMap stack:
aload 1
ldc "x5c"
invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
ifeq 30
18: aload 1
ldc "x5c"
invokevirtual io.vertx.core.json.JsonObject.getJsonArray:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
astore 3
start local 3 19: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 20: iconst_0
istore 5
start local 5 21: goto 24
22: StackMap locals: io.vertx.core.json.JsonArray java.util.List int
StackMap stack:
aload 4
aload 3
iload 5
invokevirtual io.vertx.core.json.JsonArray.getString:(I)Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.parseX5c:(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: iinc 5 1
StackMap locals:
StackMap stack:
24: iload 5
aload 3
invokevirtual io.vertx.core.json.JsonArray.size:()I
if_icmplt 22
end local 5 25: aload 4
iconst_0
aconst_null
invokestatic io.vertx.ext.auth.impl.CertificateHelper.checkValidity:(Ljava/util/List;ZLjava/util/List;)V
26: aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 5
start local 5 27: aload 0
aload 5
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
28: iload 2
iconst_2
iand
ifne 30
29: iinc 2 2
end local 5 end local 4 end local 3 30: StackMap locals:
StackMap stack:
aload 1
ldc "use"
ldc "sig"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
100570: 31
113873: 32
default: 39
}
StackMap locals: java.lang.String
StackMap stack:
31: aload 3
ldc "enc"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 37
goto 39
StackMap locals:
StackMap stack:
32: aload 3
ldc "sig"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 33
goto 39
33: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
34: iload 2
iconst_1
iand
ifne 39
35: iinc 2 1
36: goto 39
37: StackMap locals:
StackMap stack:
iload 2
iconst_2
iand
ifne 39
38: iinc 2 2
39: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 40 1 json Lio/vertx/core/json/JsonObject;
1 40 2 use I
3 17 3 n Ljava/math/BigInteger;
4 17 4 e Ljava/math/BigInteger;
9 17 5 d Ljava/math/BigInteger;
10 17 6 p Ljava/math/BigInteger;
11 17 7 q Ljava/math/BigInteger;
12 17 8 dp Ljava/math/BigInteger;
13 17 9 dq Ljava/math/BigInteger;
14 17 10 qi Ljava/math/BigInteger;
19 30 3 x5c Lio/vertx/core/json/JsonArray;
20 30 4 certChain Ljava/util/List<Ljava/security/cert/X509Certificate;>;
21 25 5 i I
27 30 5 certificate Ljava/security/cert/X509Certificate;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException, java.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
json
private int createEC(io.vertx.core.json.JsonObject);
descriptor: (Lio/vertx/core/json/JsonObject;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: ldc "EC"
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 3
start local 3 2: aload 3
new java.security.spec.ECGenParameterSpec
dup
aload 1
ldc "crv"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWK.translateECCrv:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.security.spec.ECGenParameterSpec.<init>:(Ljava/lang/String;)V
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
3: aload 1
iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "x"
aastore
dup
iconst_1
ldc "y"
aastore
invokestatic io.vertx.ext.auth.impl.jose.JWK.jsonHasProperties:(Lio/vertx/core/json/JsonObject;[Ljava/lang/String;)Z
ifeq 14
4: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "x"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 4
start local 4 5: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "y"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 5
start local 5 6: aload 0
ldc "EC"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
new java.security.spec.ECPublicKeySpec
dup
new java.security.spec.ECPoint
dup
aload 4
aload 5
invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aload 3
ldc Ljava/security/spec/ECParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast java.security.spec.ECParameterSpec
invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
7: iload 2
iconst_2
iand
ifne 9
8: iinc 2 2
9: StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject int java.security.AlgorithmParameters java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "d"
aastore
invokestatic io.vertx.ext.auth.impl.jose.JWK.jsonHasProperties:(Lio/vertx/core/json/JsonObject;[Ljava/lang/String;)Z
ifeq 14
10: new java.math.BigInteger
dup
iconst_1
aload 1
ldc "d"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 6
start local 6 11: aload 0
ldc "EC"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
new java.security.spec.ECPrivateKeySpec
dup
aload 6
aload 3
ldc Ljava/security/spec/ECParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast java.security.spec.ECParameterSpec
invokespecial java.security.spec.ECPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/security/spec/ECParameterSpec;)V
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
putfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
12: iload 2
iconst_1
iand
ifne 14
13: iinc 2 1
end local 6 end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 1
ldc "use"
ldc "sig"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
100570: 15
113873: 16
default: 23
}
StackMap locals: java.lang.String
StackMap stack:
15: aload 4
ldc "enc"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 23
StackMap locals:
StackMap stack:
16: aload 4
ldc "sig"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 23
17: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
invokestatic io.vertx.ext.auth.impl.jose.JWS.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
putfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
18: iload 2
iconst_1
iand
ifne 23
19: iinc 2 1
20: goto 23
21: StackMap locals:
StackMap stack:
iload 2
iconst_2
iand
ifne 23
22: iinc 2 2
23: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 24 1 json Lio/vertx/core/json/JsonObject;
1 24 2 use I
2 24 3 parameters Ljava/security/AlgorithmParameters;
5 14 4 x Ljava/math/BigInteger;
6 14 5 y Ljava/math/BigInteger;
11 14 6 d Ljava/math/BigInteger;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException, java.security.spec.InvalidParameterSpecException, javax.crypto.NoSuchPaddingException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
json
private int createOCT(java.lang.String, io.vertx.core.json.JsonObject);
descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
1: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
new javax.crypto.spec.SecretKeySpec
dup
aload 2
ldc "k"
invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
aload 1
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
2: iconst_3
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 3 1 alias Ljava/lang/String;
0 3 2 json Lio/vertx/core/json/JsonObject;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
MethodParameters:
Name Flags
alias
json
public java.lang.String getAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public java.lang.String getId();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public synchronized byte[] sign(byte[]);
descriptor: ([B)[B
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
invokevirtual io.vertx.ext.auth.impl.jose.JWK.isFor:(I)Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Key use is not 'sig'"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
ifeq 4
3: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
aload 1
invokevirtual javax.crypto.Mac.doFinal:([B)[B
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
5: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
aload 1
invokevirtual java.security.Signature.update:([B)V
6: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
invokevirtual java.security.Signature.sign:()[B
astore 2
start local 2 7: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
2206: 8
default: 11
}
StackMap locals: byte[] java.lang.String
StackMap stack:
8: aload 3
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
9: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.len:I
invokestatic io.vertx.ext.auth.impl.jose.JWS.toJWS:([BI)[B
10: areturn
11: StackMap locals:
StackMap stack:
aload 2
12: areturn
end local 2 13: StackMap locals: io.vertx.ext.auth.impl.jose.JWK byte[]
StackMap stack: java.security.GeneralSecurityException
astore 2
start local 2 14: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 15 1 payload [B
7 13 2 sig [B
14 15 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
4 10 13 Class java.security.SignatureException
11 12 13 Class java.security.SignatureException
4 10 13 Class java.security.InvalidKeyException
11 12 13 Class java.security.InvalidKeyException
MethodParameters:
Name Flags
payload
public synchronized boolean verify(byte[], byte[]);
descriptor: ([B[B)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_2
invokevirtual io.vertx.ext.auth.impl.jose.JWK.isFor:(I)Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Key use is not 'enc'"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: new java.security.SignatureException
dup
ldc "signature is missing"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
ifeq 7
5: aload 1
aload 0
aload 2
invokevirtual io.vertx.ext.auth.impl.jose.JWK.sign:([B)[B
invokestatic java.security.MessageDigest.isEqual:([B[B)Z
6: ireturn
7: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
8: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
aload 2
invokevirtual java.security.Signature.update:([B)V
9: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
2206: 10
default: 13
}
StackMap locals: java.lang.String
StackMap stack:
10: aload 3
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 13
11: StackMap locals:
StackMap stack:
aload 1
invokestatic io.vertx.ext.auth.impl.jose.JWS.isASN1:([B)Z
ifne 13
12: aload 1
invokestatic io.vertx.ext.auth.impl.jose.JWS.toASN1:([B)[B
astore 1
13: StackMap locals:
StackMap stack:
aload 1
14: arraylength
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.len:I
if_icmpge 19
15: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.len:I
newarray 8
astore 4
start local 4 16: aload 1
iconst_0
aload 4
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
aload 4
invokevirtual java.security.Signature.verify:([B)Z
18: ireturn
end local 4 19: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
aload 1
invokevirtual java.security.Signature.verify:([B)Z
20: ireturn
21: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 3
start local 3 22: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 23 1 expected [B
0 23 2 payload [B
16 19 4 normalized [B
22 23 3 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
2 6 21 Class java.security.SignatureException
7 18 21 Class java.security.SignatureException
19 20 21 Class java.security.SignatureException
2 6 21 Class java.security.InvalidKeyException
7 18 21 Class java.security.InvalidKeyException
19 20 21 Class java.security.InvalidKeyException
MethodParameters:
Name Flags
expected
payload
private static java.lang.String translateECCrv(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
-845821990: 1
75272022: 2
75273074: 3
75274807: 4
default: 9
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 1
ldc "secp256k1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 9
StackMap locals:
StackMap stack:
2: aload 1
ldc "P-256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
goto 9
StackMap locals:
StackMap stack:
3: aload 1
ldc "P-384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 9
StackMap locals:
StackMap stack:
4: aload 1
ldc "P-521"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 9
5: StackMap locals:
StackMap stack:
ldc "secp256r1"
areturn
6: StackMap locals:
StackMap stack:
ldc "secp384r1"
areturn
7: StackMap locals:
StackMap stack:
ldc "secp521r1"
areturn
8: StackMap locals:
StackMap stack:
ldc "secp256k1"
areturn
9: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported {crv}: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 crv Ljava/lang/String;
MethodParameters:
Name Flags
crv
private static boolean jsonHasProperties(io.vertx.core.json.JsonObject, java.lang.String[]);
descriptor: (Lio/vertx/core/json/JsonObject;[Ljava/lang/String;)Z
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: io.vertx.core.json.JsonObject java.lang.String[] top int int java.lang.String[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
aload 2
invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
ifeq 3
aload 0
aload 2
invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
ifnonnull 4
3: StackMap locals: io.vertx.core.json.JsonObject java.lang.String[] java.lang.String int int java.lang.String[]
StackMap stack:
iconst_0
ireturn
end local 2 4: StackMap locals: io.vertx.core.json.JsonObject java.lang.String[] top int int java.lang.String[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 json Lio/vertx/core/json/JsonObject;
0 7 1 properties [Ljava/lang/String;
2 4 2 property Ljava/lang/String;
MethodParameters:
Name Flags
json
properties
public boolean isFor(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.use:I
iload 1
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/auth/impl/jose/JWK;
0 2 1 use I
MethodParameters:
Name Flags
use
public int getUse();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.use:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public java.lang.String getLabel();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.label:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public java.lang.String getType();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public java.security.Signature getSignature();
descriptor: ()Ljava/security/Signature;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public javax.crypto.Mac getMac();
descriptor: ()Ljavax/crypto/Mac;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public java.security.PublicKey getPublicKey();
descriptor: ()Ljava/security/PublicKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
public java.security.PrivateKey getPrivateKey();
descriptor: ()Ljava/security/PrivateKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/impl/jose/JWK;
}
SourceFile: "JWK.java"
NestMembers:
io.vertx.ext.auth.impl.jose.JWK$1
InnerClasses:
io.vertx.ext.auth.impl.jose.JWK$1
public Decoder = java.util.Base64$Decoder of java.util.Base64