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: .line 61
            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 // java.security.KeyStore keyStore
        start local 1 // java.lang.String keyStorePassword
        start local 2 // java.util.Map passwordProtection
         0: .line 92
            new io.vertx.ext.auth.impl.jose.JWK$1
            dup
            invokespecial io.vertx.ext.auth.impl.jose.JWK$1.<init>:()V
            astore 3 /* aliases */
        start local 3 // java.util.Map aliases
         1: .line 105
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* keys */
        start local 4 // java.util.List keys
         2: .line 108
            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 /* alias */
        start local 5 // java.lang.String alias
         4: .line 110
            aload 0 /* keyStore */
            aload 5 /* alias */
            aload 1 /* keyStorePassword */
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
            astore 7 /* secretKey */
        start local 7 // java.security.Key secretKey
         5: .line 112
            aload 7 /* secretKey */
            ifnonnull 7
         6: .line 113
            goto 18
         7: .line 116
      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 /* secretKey */
            invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
            astore 8 /* alg */
        start local 8 // java.lang.String alg
         8: .line 119
            aload 3 /* aliases */
            aload 5 /* alias */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* expected */
        start local 9 // java.lang.String expected
         9: .line 120
            aload 8 /* alg */
            ifnull 10
            aload 8 /* alg */
            aload 9 /* expected */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 12
        10: .line 121
      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 /* expected */
            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: .line 122
            goto 18
        12: .line 125
      StackMap locals:
      StackMap stack:
            aload 8 /* alg */
            invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
            astore 10 /* mac */
        start local 10 // javax.crypto.Mac mac
        13: .line 126
            aload 10 /* mac */
            aload 7 /* secretKey */
            invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
        14: .line 127
            aload 4 /* keys */
            new io.vertx.ext.auth.impl.jose.JWK
            dup
            aload 5 /* alias */
            aload 10 /* mac */
            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 // javax.crypto.Mac mac
        end local 9 // java.lang.String expected
        end local 8 // java.lang.String alg
        end local 7 // java.security.Key secretKey
        15: .line 128
            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 /* e */
        start local 7 // java.security.GeneralSecurityException e
        17: .line 129
            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 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* e */
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.security.GeneralSecurityException e
        end local 5 // java.lang.String alias
        18: .line 108
      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: .line 133
            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 /* alias */
        start local 5 // java.lang.String alias
        21: .line 136
            aload 0 /* keyStore */
            aload 5 /* alias */
            invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            checkcast java.security.cert.X509Certificate
            astore 7 /* certificate */
        start local 7 // java.security.cert.X509Certificate certificate
        22: .line 138
            aload 7 /* certificate */
            ifnonnull 24
        23: .line 139
            goto 37
        24: .line 142
      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 /* certificate */
            invokevirtual java.security.cert.X509Certificate.checkValidity:()V
        25: .line 144
            aload 7 /* certificate */
            invokevirtual java.security.cert.X509Certificate.getSigAlgName:()Ljava/lang/String;
            astore 8 /* alg */
        start local 8 // java.lang.String alg
        26: .line 147
            aload 3 /* aliases */
            aload 5 /* alias */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* expected */
        start local 9 // java.lang.String expected
        27: .line 148
            aload 8 /* alg */
            ifnull 28
            aload 8 /* alg */
            aload 9 /* expected */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 30
        28: .line 149
      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 /* expected */
            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: .line 150
            goto 37
        30: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* keyStore */
            aload 5 /* alias */
            aload 2 /* passwordProtection */
            ifnonnull 31
            aload 1 /* keyStorePassword */
            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 /* passwordProtection */
            aload 5 /* alias */
            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 /* privateKey */
        start local 10 // java.security.PrivateKey privateKey
        33: .line 154
            aload 4 /* keys */
            new io.vertx.ext.auth.impl.jose.JWK
            dup
            aload 5 /* alias */
            aload 7 /* certificate */
            aload 10 /* privateKey */
            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 // java.security.PrivateKey privateKey
        end local 9 // java.lang.String expected
        end local 8 // java.lang.String alg
        end local 7 // java.security.cert.X509Certificate certificate
        34: .line 155
            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 /* e */
        start local 7 // java.lang.Exception e
        36: .line 156
            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 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* e */
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Exception e
        end local 5 // java.lang.String alias
        37: .line 133
      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: .line 160
            aload 4 /* keys */
            areturn
        end local 4 // java.util.List keys
        end local 3 // java.util.Map aliases
        end local 2 // java.util.Map passwordProtection
        end local 1 // java.lang.String keyStorePassword
        end local 0 // java.security.KeyStore keyStore
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // io.vertx.ext.auth.PubSecKeyOptions options
         0: .line 168
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 170
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.ext.auth.PubSecKeyOptions.getAlgorithm:()Ljava/lang/String;
            putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
         2: .line 171
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.ext.auth.PubSecKeyOptions.getId:()Ljava/lang/String;
            putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
         3: .line 173
            aload 1 /* options */
            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 /* pem */
        start local 2 // java.lang.String pem
         4: .line 175
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
            ifnonnull 5
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* pem */
            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 /* this */
            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: .line 179
            aload 0 /* this */
            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: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 183
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 2 /* pem */
            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: .line 184
            goto 16
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        14: astore 4 /* e */
        start local 4 // java.security.GeneralSecurityException e
        15: .line 185
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.GeneralSecurityException e
        16: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "oct"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        17: .line 188
            aload 0 /* this */
            sipush 256
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        18: .line 190
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        19: .line 191
            aload 0 /* this */
            iconst_3
            putfield io.vertx.ext.auth.impl.jose.JWK.use:I
        20: .line 192
            return
        21: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 196
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 2 /* pem */
            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: .line 197
            goto 26
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        24: astore 4 /* e */
        start local 4 // java.security.GeneralSecurityException e
        25: .line 198
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.GeneralSecurityException e
        26: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "oct"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        27: .line 201
            aload 0 /* this */
            sipush 384
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        28: .line 203
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        29: .line 204
            aload 0 /* this */
            iconst_3
            putfield io.vertx.ext.auth.impl.jose.JWK.use:I
        30: .line 205
            return
        31: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 209
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 2 /* pem */
            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: .line 210
            goto 36
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        34: astore 4 /* e */
        start local 4 // java.security.GeneralSecurityException e
        35: .line 211
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.GeneralSecurityException e
        36: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "oct"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        37: .line 214
            aload 0 /* this */
            sipush 512
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        38: .line 216
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        39: .line 217
            aload 0 /* this */
            iconst_3
            putfield io.vertx.ext.auth.impl.jose.JWK.use:I
        40: .line 218
            return
        41: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        42: .line 226
            aload 0 /* this */
            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: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        54: .line 231
            aload 0 /* this */
            aload 0 /* this */
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            aload 2 /* pem */
            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: .line 232
            aload 0 /* this */
            aload 0 /* this */
            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: .line 233
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 234
            goto 71
        58: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSASSA"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        59: .line 239
            aload 0 /* this */
            aload 0 /* this */
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            aload 2 /* pem */
            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: .line 240
            aload 0 /* this */
            aload 0 /* this */
            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: .line 241
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 242
            goto 71
        63: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        64: .line 248
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 249
            aload 0 /* this */
            aload 0 /* this */
            ldc "EC"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            aload 2 /* pem */
            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: .line 250
            aload 0 /* this */
            aload 0 /* this */
            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: .line 251
            goto 71
        68: .line 253
      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 /* this */
            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: .line 255
      StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.ext.auth.PubSecKeyOptions java.lang.String
      StackMap stack: java.security.GeneralSecurityException
            astore 4 /* e */
        start local 4 // java.security.GeneralSecurityException e
        70: .line 257
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.GeneralSecurityException e
        71: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String pem
        end local 1 // io.vertx.ext.auth.PubSecKeyOptions options
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // java.security.KeyFactory kf
        start local 2 // java.lang.String pem
         0: .line 263
            aload 2 /* pem */
            ldc "\r?\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* lines */
        start local 3 // java.lang.String[] lines
         1: .line 265
            aload 3 /* lines */
            arraylength
            iconst_2
            if_icmpgt 3
         2: .line 266
            new java.lang.IllegalArgumentException
            dup
            ldc "PEM contains not enough lines"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 269
      StackMap locals: java.lang.String[]
      StackMap stack:
            ldc "-----BEGIN (.+?)-----"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 4 /* begin */
        start local 4 // java.util.regex.Pattern begin
         4: .line 270
            ldc "-----END (.+?)-----"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 5 /* end */
        start local 5 // java.util.regex.Pattern end
         5: .line 272
            aload 4 /* begin */
            aload 3 /* lines */
            iconst_0
            aaload
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 6 /* beginMatcher */
        start local 6 // java.util.regex.Matcher beginMatcher
         6: .line 273
            aload 6 /* beginMatcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifne 8
         7: .line 274
            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: .line 276
      StackMap locals: java.util.regex.Pattern java.util.regex.Pattern java.util.regex.Matcher
      StackMap stack:
            aload 6 /* beginMatcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 7 /* kind */
        start local 7 // java.lang.String kind
         9: .line 277
            invokestatic io.vertx.core.buffer.Buffer.buffer:()Lio/vertx/core/buffer/Buffer;
            astore 8 /* buffer */
        start local 8 // io.vertx.core.buffer.Buffer buffer
        10: .line 278
            iconst_0
            istore 9 /* endSeen */
        start local 9 // boolean endSeen
        11: .line 279
            iconst_1
            istore 10 /* i */
        start local 10 // int i
        12: goto 22
        13: .line 280
      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 /* lines */
            iload 10 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 281
            goto 21
        15: .line 283
      StackMap locals:
      StackMap stack:
            aload 5 /* end */
            aload 3 /* lines */
            iload 10 /* i */
            aaload
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 11 /* endMatcher */
        start local 11 // java.util.regex.Matcher endMatcher
        16: .line 284
            aload 11 /* endMatcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 20
        17: .line 285
            iconst_1
            istore 9 /* endSeen */
        18: .line 286
            aload 7 /* kind */
            aload 11 /* endMatcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        19: .line 287
            new java.lang.IllegalArgumentException
            dup
            ldc "PEM END line does not match start"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 291
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            aload 8 /* buffer */
            aload 3 /* lines */
            iload 10 /* i */
            aaload
            invokeinterface io.vertx.core.buffer.Buffer.appendString:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            pop
        end local 11 // java.util.regex.Matcher endMatcher
        21: .line 279
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 10 /* i */
            aload 3 /* lines */
            arraylength
            if_icmplt 13
        end local 10 // int i
        23: .line 294
      StackMap locals:
      StackMap stack:
            iload 9 /* endSeen */
            ifne 25
        24: .line 295
            new java.lang.IllegalArgumentException
            dup
            ldc "PEM END line not found"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 298
      StackMap locals:
      StackMap stack:
            aload 7 /* kind */
            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: .line 300
      StackMap locals:
      StackMap stack:
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 11 /* cf */
        start local 11 // java.security.cert.CertificateFactory cf
        32: .line 301
            aload 0 /* this */
            aload 11 /* cf */
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* pem */
            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: .line 302
            iconst_2
            ireturn
        end local 11 // java.security.cert.CertificateFactory cf
        34: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* kf */
            new java.security.spec.X509EncodedKeySpec
            dup
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            aload 8 /* buffer */
            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: .line 306
            iconst_2
            ireturn
        36: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* kf */
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            aload 8 /* buffer */
            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: .line 310
            iconst_1
            ireturn
        38: .line 312
      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 /* kind */
            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 // boolean endSeen
        end local 8 // io.vertx.core.buffer.Buffer buffer
        end local 7 // java.lang.String kind
        end local 6 // java.util.regex.Matcher beginMatcher
        end local 5 // java.util.regex.Pattern end
        end local 4 // java.util.regex.Pattern begin
        end local 3 // java.lang.String[] lines
        end local 2 // java.lang.String pem
        end local 1 // java.security.KeyFactory kf
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // java.lang.String algorithm
        start local 2 // javax.crypto.Mac mac
         0: .line 316
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 318
            aload 0 /* this */
            aload 1 /* algorithm */
            putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
         2: .line 319
            aload 0 /* this */
            aconst_null
            putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
         3: .line 320
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* mac */
            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: .line 322
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
         5: .line 323
            aload 0 /* this */
            iconst_3
            putfield io.vertx.ext.auth.impl.jose.JWK.use:I
         6: .line 326
            aload 2 /* mac */
            invokevirtual javax.crypto.Mac.getAlgorithm:()Ljava/lang/String;
            astore 3 /* macAlg */
        start local 3 // java.lang.String macAlg
         7: .line 328
            aload 0 /* this */
            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: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "oct"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        12: .line 331
            aload 0 /* this */
            sipush 256
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        13: .line 332
            ldc "HMacSHA256"
            aload 3 /* macAlg */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 15
        14: .line 333
            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: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* mac */
            putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
        16: .line 336
            goto 30
        17: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "oct"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        18: .line 339
            aload 0 /* this */
            sipush 384
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        19: .line 340
            ldc "HMacSHA384"
            aload 3 /* macAlg */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 21
        20: .line 341
            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: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* mac */
            putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
        22: .line 344
            goto 30
        23: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "oct"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        24: .line 347
            aload 0 /* this */
            sipush 512
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        25: .line 348
            ldc "HMacSHA512"
            aload 3 /* macAlg */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 27
        26: .line 349
            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: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* mac */
            putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
        28: .line 352
            goto 30
        29: .line 354
      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 /* algorithm */
            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: .line 356
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String macAlg
        end local 2 // javax.crypto.Mac mac
        end local 1 // java.lang.String algorithm
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // java.lang.String algorithm
        start local 2 // java.security.cert.X509Certificate certificate
        start local 3 // java.security.PrivateKey privateKey
         0: .line 358
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 360
            aload 0 /* this */
            aload 1 /* algorithm */
            putfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
         2: .line 361
            aload 0 /* this */
            aconst_null
            putfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
         3: .line 362
            aload 0 /* this */
            aload 3 /* privateKey */
            ifnull 4
            new java.lang.StringBuilder
            dup
            aload 1 /* algorithm */
            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 /* certificate */
            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 /* privateKey */
            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 /* algorithm */
            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 /* certificate */
            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: .line 363
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
         7: .line 365
            aload 0 /* this */
            aload 2 /* certificate */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
         8: .line 366
            aload 0 /* this */
            aload 3 /* privateKey */
            putfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
         9: .line 369
            aload 3 /* privateKey */
            ifnull 12
        10: .line 370
            aload 0 /* this */
            iconst_3
            putfield io.vertx.ext.auth.impl.jose.JWK.use:I
        11: .line 371
            goto 13
        12: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield io.vertx.ext.auth.impl.jose.JWK.use:I
        13: .line 375
      StackMap locals:
      StackMap stack:
            aload 1 /* algorithm */
            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: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        25: .line 380
            aload 0 /* this */
            aload 0 /* this */
            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: .line 381
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 382
            goto 37
        28: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSASSA"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        29: .line 387
            aload 0 /* this */
            aload 0 /* this */
            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: .line 388
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 389
            goto 37
        32: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC"
            putfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
        33: .line 395
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 396
            aload 0 /* this */
            aload 0 /* this */
            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: .line 397
            goto 37
        36: .line 399
      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 /* algorithm */
            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: .line 401
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.security.PrivateKey privateKey
        end local 2 // java.security.cert.X509Certificate certificate
        end local 1 // java.lang.String algorithm
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // io.vertx.core.json.JsonObject json
         0: .line 403
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 404
            aload 0 /* this */
            aload 1 /* json */
            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: .line 407
            aload 1 /* json */
            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: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* json */
            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: .line 412
            aload 0 /* this */
            aload 1 /* json */
            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: .line 413
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        10: .line 415
            aload 0 /* this */
            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: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* json */
            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: .line 425
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 426
            goto 52
        21: .line 428
      StackMap locals:
      StackMap stack:
            new java.security.NoSuchAlgorithmException
            dup
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* json */
            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: .line 434
            aload 0 /* this */
            aload 1 /* json */
            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: .line 435
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        25: .line 437
            aload 0 /* this */
            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: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            aload 0 /* this */
            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: .line 443
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* json */
            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: .line 444
            goto 52
        33: .line 446
      StackMap locals:
      StackMap stack:
            new java.security.NoSuchAlgorithmException
            dup
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 456
      StackMap locals: io.vertx.ext.auth.impl.jose.JWK io.vertx.core.json.JsonObject java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* json */
            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: .line 458
            aload 0 /* this */
            aload 1 /* json */
            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: .line 459
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
        37: .line 461
            aload 0 /* this */
            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: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 256
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        42: .line 464
            aload 0 /* this */
            aload 0 /* this */
            ldc "HMacSHA256"
            aload 1 /* json */
            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: .line 465
            goto 52
        44: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 384
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        45: .line 468
            aload 0 /* this */
            aload 0 /* this */
            ldc "HMacSHA384"
            aload 1 /* json */
            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: .line 469
            goto 52
        47: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 512
            putfield io.vertx.ext.auth.impl.jose.JWK.len:I
        48: .line 472
            aload 0 /* this */
            aload 0 /* this */
            ldc "HMacSHA512"
            aload 1 /* json */
            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: .line 473
            goto 52
        50: .line 475
      StackMap locals:
      StackMap stack:
            new java.security.NoSuchAlgorithmException
            dup
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 480
      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 /* json */
            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: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
            ifnull 53
            aload 0 /* this */
            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 /* this */
            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 /* json */
            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: .line 485
            goto 58
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        56: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        57: .line 486
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        58: .line 488
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.json.JsonObject json
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // io.vertx.core.json.JsonObject json
         0: .line 491
            iconst_0
            istore 2 /* use */
        start local 2 // int use
         1: .line 494
            aload 1 /* json */
            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: .line 495
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "n"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 3 /* n */
        start local 3 // java.math.BigInteger n
         3: .line 496
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "e"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 4 /* e */
        start local 4 // java.math.BigInteger e
         4: .line 497
            aload 0 /* this */
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            new java.security.spec.RSAPublicKeySpec
            dup
            aload 3 /* n */
            aload 4 /* e */
            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: .line 498
            iload 2 /* use */
            iconst_2
            iand
            ifne 7
         6: .line 499
            iinc 2 /* use */ 2
         7: .line 503
      StackMap locals: int java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 1 /* json */
            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: .line 504
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "d"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 5 /* d */
        start local 5 // java.math.BigInteger d
         9: .line 505
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "p"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 6 /* p */
        start local 6 // java.math.BigInteger p
        10: .line 506
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "q"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 7 /* q */
        start local 7 // java.math.BigInteger q
        11: .line 507
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "dp"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 8 /* dp */
        start local 8 // java.math.BigInteger dp
        12: .line 508
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "dq"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 9 /* dq */
        start local 9 // java.math.BigInteger dq
        13: .line 509
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "qi"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 10 /* qi */
        start local 10 // java.math.BigInteger qi
        14: .line 511
            aload 0 /* this */
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
            aload 3 /* n */
            aload 4 /* e */
            aload 5 /* d */
            aload 6 /* p */
            aload 7 /* q */
            aload 8 /* dp */
            aload 9 /* dq */
            aload 10 /* qi */
            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: .line 512
            iload 2 /* use */
            iconst_1
            iand
            ifne 17
        16: .line 513
            iinc 2 /* use */ 1
        end local 10 // java.math.BigInteger qi
        end local 9 // java.math.BigInteger dq
        end local 8 // java.math.BigInteger dp
        end local 7 // java.math.BigInteger q
        end local 6 // java.math.BigInteger p
        end local 5 // java.math.BigInteger d
        end local 4 // java.math.BigInteger e
        end local 3 // java.math.BigInteger n
        17: .line 519
      StackMap locals:
      StackMap stack:
            aload 1 /* json */
            ldc "x5c"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 30
        18: .line 520
            aload 1 /* json */
            ldc "x5c"
            invokevirtual io.vertx.core.json.JsonObject.getJsonArray:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
            astore 3 /* x5c */
        start local 3 // io.vertx.core.json.JsonArray x5c
        19: .line 522
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* certChain */
        start local 4 // java.util.List certChain
        20: .line 523
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        21: goto 24
        22: .line 524
      StackMap locals: io.vertx.core.json.JsonArray java.util.List int
      StackMap stack:
            aload 4 /* certChain */
            aload 3 /* x5c */
            iload 5 /* i */
            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: .line 523
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 5 /* i */
            aload 3 /* x5c */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            if_icmplt 22
        end local 5 // int i
        25: .line 528
            aload 4 /* certChain */
            iconst_0
            aconst_null
            invokestatic io.vertx.ext.auth.impl.CertificateHelper.checkValidity:(Ljava/util/List;ZLjava/util/List;)V
        26: .line 530
            aload 4 /* certChain */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 5 /* certificate */
        start local 5 // java.security.cert.X509Certificate certificate
        27: .line 533
            aload 0 /* this */
            aload 5 /* certificate */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            putfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
        28: .line 534
            iload 2 /* use */
            iconst_2
            iand
            ifne 30
        29: .line 535
            iinc 2 /* use */ 2
        end local 5 // java.security.cert.X509Certificate certificate
        end local 4 // java.util.List certChain
        end local 3 // io.vertx.core.json.JsonArray x5c
        30: .line 539
      StackMap locals:
      StackMap stack:
            aload 1 /* json */
            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: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            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: .line 543
            iload 2 /* use */
            iconst_1
            iand
            ifne 39
        35: .line 544
            iinc 2 /* use */ 1
        36: .line 546
            goto 39
        37: .line 548
      StackMap locals:
      StackMap stack:
            iload 2 /* use */
            iconst_2
            iand
            ifne 39
        38: .line 549
            iinc 2 /* use */ 2
        39: .line 553
      StackMap locals:
      StackMap stack:
            iload 2 /* use */
            ireturn
        end local 2 // int use
        end local 1 // io.vertx.core.json.JsonObject json
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // io.vertx.core.json.JsonObject json
         0: .line 557
            iconst_0
            istore 2 /* use */
        start local 2 // int use
         1: .line 558
            ldc "EC"
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 3 /* parameters */
        start local 3 // java.security.AlgorithmParameters parameters
         2: .line 559
            aload 3 /* parameters */
            new java.security.spec.ECGenParameterSpec
            dup
            aload 1 /* json */
            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: .line 562
            aload 1 /* json */
            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: .line 563
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "x"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 4 /* x */
        start local 4 // java.math.BigInteger x
         5: .line 564
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "y"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 5 /* y */
        start local 5 // java.math.BigInteger y
         6: .line 565
            aload 0 /* this */
            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 /* x */
            aload 5 /* y */
            invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aload 3 /* parameters */
            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: .line 566
            iload 2 /* use */
            iconst_2
            iand
            ifne 9
         8: .line 567
            iinc 2 /* use */ 2
         9: .line 571
      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 /* json */
            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: .line 572
            new java.math.BigInteger
            dup
            iconst_1
            aload 1 /* json */
            ldc "d"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 6 /* d */
        start local 6 // java.math.BigInteger d
        11: .line 573
            aload 0 /* this */
            ldc "EC"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            new java.security.spec.ECPrivateKeySpec
            dup
            aload 6 /* d */
            aload 3 /* parameters */
            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: .line 574
            iload 2 /* use */
            iconst_1
            iand
            ifne 14
        13: .line 575
            iinc 2 /* use */ 1
        end local 6 // java.math.BigInteger d
        end local 5 // java.math.BigInteger y
        end local 4 // java.math.BigInteger x
        14: .line 580
      StackMap locals:
      StackMap stack:
            aload 1 /* json */
            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: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            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: .line 583
            iload 2 /* use */
            iconst_1
            iand
            ifne 23
        19: .line 584
            iinc 2 /* use */ 1
        20: .line 586
            goto 23
        21: .line 588
      StackMap locals:
      StackMap stack:
            iload 2 /* use */
            iconst_2
            iand
            ifne 23
        22: .line 589
            iinc 2 /* use */ 2
        23: .line 594
      StackMap locals:
      StackMap stack:
            iload 2 /* use */
            ireturn
        end local 3 // java.security.AlgorithmParameters parameters
        end local 2 // int use
        end local 1 // io.vertx.core.json.JsonObject json
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // java.lang.String alias
        start local 2 // io.vertx.core.json.JsonObject json
         0: .line 598
            aload 0 /* this */
            aload 1 /* alias */
            invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
            putfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
         1: .line 599
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 2 /* json */
            ldc "k"
            invokevirtual io.vertx.core.json.JsonObject.getBinary:(Ljava/lang/String;)[B
            aload 1 /* alias */
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
         2: .line 600
            iconst_3
            ireturn
        end local 2 // io.vertx.core.json.JsonObject json
        end local 1 // java.lang.String alias
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 604
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.alg:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 608
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.kid:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // byte[] payload
         0: .line 613
            aload 0 /* this */
            iconst_1
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.isFor:(I)Z
            ifne 2
         1: .line 614
            new java.lang.IllegalStateException
            dup
            ldc "Key use is not 'sig'"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
            ifeq 4
         3: .line 618
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
            aload 1 /* payload */
            invokevirtual javax.crypto.Mac.doFinal:([B)[B
            areturn
         4: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
            invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
         5: .line 622
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            aload 1 /* payload */
            invokevirtual java.security.Signature.update:([B)V
         6: .line 623
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            invokevirtual java.security.Signature.sign:()[B
            astore 2 /* sig */
        start local 2 // byte[] sig
         7: .line 624
            aload 0 /* this */
            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: .line 626
      StackMap locals:
      StackMap stack:
            aload 2 /* sig */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.len:I
            invokestatic io.vertx.ext.auth.impl.jose.JWS.toJWS:([BI)[B
        10: areturn
        11: .line 628
      StackMap locals:
      StackMap stack:
            aload 2 /* sig */
        12: areturn
        end local 2 // byte[] sig
        13: .line 630
      StackMap locals: io.vertx.ext.auth.impl.jose.JWK byte[]
      StackMap stack: java.security.GeneralSecurityException
            astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        14: .line 631
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        end local 1 // byte[] payload
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // byte[] expected
        start local 2 // byte[] payload
         0: .line 638
            aload 0 /* this */
            iconst_2
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.isFor:(I)Z
            ifne 2
         1: .line 639
            new java.lang.IllegalStateException
            dup
            ldc "Key use is not 'enc'"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 643
      StackMap locals:
      StackMap stack:
            aload 1 /* expected */
            ifnonnull 4
         3: .line 644
            new java.security.SignatureException
            dup
            ldc "signature is missing"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 647
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.symmetric:Z
            ifeq 7
         5: .line 648
            aload 1 /* expected */
            aload 0 /* this */
            aload 2 /* payload */
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.sign:([B)[B
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
         6: ireturn
         7: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
         8: .line 651
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            aload 2 /* payload */
            invokevirtual java.security.Signature.update:([B)V
         9: .line 652
            aload 0 /* this */
            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: .line 657
      StackMap locals:
      StackMap stack:
            aload 1 /* expected */
            invokestatic io.vertx.ext.auth.impl.jose.JWS.isASN1:([B)Z
            ifne 13
        12: .line 658
            aload 1 /* expected */
            invokestatic io.vertx.ext.auth.impl.jose.JWS.toASN1:([B)[B
            astore 1 /* expected */
        13: .line 661
      StackMap locals:
      StackMap stack:
            aload 1 /* expected */
        14: .line 662
            arraylength
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.len:I
            if_icmpge 19
        15: .line 664
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.len:I
            newarray 8
            astore 4 /* normalized */
        start local 4 // byte[] normalized
        16: .line 665
            aload 1 /* expected */
            iconst_0
            aload 4 /* normalized */
            iconst_0
            aload 1 /* expected */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 666
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            aload 4 /* normalized */
            invokevirtual java.security.Signature.verify:([B)Z
        18: ireturn
        end local 4 // byte[] normalized
        19: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            aload 1 /* expected */
            invokevirtual java.security.Signature.verify:([B)Z
        20: ireturn
        21: .line 671
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 3 /* e */
        start local 3 // java.security.GeneralSecurityException e
        22: .line 672
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.GeneralSecurityException e
        end local 2 // byte[] payload
        end local 1 // byte[] expected
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // java.lang.String crv
         0: .line 677
            aload 0 /* crv */
            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: .line 679
      StackMap locals:
      StackMap stack:
            ldc "secp256r1"
            areturn
         6: .line 681
      StackMap locals:
      StackMap stack:
            ldc "secp384r1"
            areturn
         7: .line 683
      StackMap locals:
      StackMap stack:
            ldc "secp521r1"
            areturn
         8: .line 685
      StackMap locals:
      StackMap stack:
            ldc "secp256k1"
            areturn
         9: .line 687
      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 /* crv */
            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 // java.lang.String crv
      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 // io.vertx.core.json.JsonObject json
        start local 1 // java.lang.String[] properties
         0: .line 692
            aload 1 /* properties */
            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 /* property */
        start local 2 // java.lang.String property
         2: .line 693
            aload 0 /* json */
            aload 2 /* property */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 3
            aload 0 /* json */
            aload 2 /* property */
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 4
         3: .line 694
      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 // java.lang.String property
         4: .line 692
      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: .line 698
            iconst_1
            ireturn
        end local 1 // java.lang.String[] properties
        end local 0 // io.vertx.core.json.JsonObject json
      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 // io.vertx.ext.auth.impl.jose.JWK this
        start local 1 // int use
         0: .line 702
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.use:I
            iload 1 /* use */
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int use
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 706
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.use:I
            ireturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 711
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.label:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 715
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.kty:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 719
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.signature:Ljava/security/Signature;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 723
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.mac:Ljavax/crypto/Mac;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 727
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.publicKey:Ljava/security/PublicKey;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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 // io.vertx.ext.auth.impl.jose.JWK this
         0: .line 731
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWK.privateKey:Ljava/security/PrivateKey;
            areturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWK this
      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