public class io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy extends io.vertx.ext.auth.jdbc.impl.AbstractHashingStrategy implements io.vertx.ext.auth.jdbc.JDBCHashStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy
  super_class: io.vertx.ext.auth.jdbc.impl.AbstractHashingStrategy
{
  private static final int DEFAULT_ITERATIONS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private final javax.crypto.SecretKeyFactory skf;
    descriptor: Ljavax/crypto/SecretKeyFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(io.vertx.core.Vertx);
    descriptor: (Lio/vertx/core/Vertx;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy this
        start local 1 // io.vertx.core.Vertx vertx
         0: .line 20
            aload 0 /* this */
            aload 1 /* vertx */
            invokespecial io.vertx.ext.auth.jdbc.impl.AbstractHashingStrategy.<init>:(Lio/vertx/core/Vertx;)V
         1: .line 23
            aload 0 /* this */
            ldc "PBKDF2WithHmacSHA512"
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            putfield io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.skf:Ljavax/crypto/SecretKeyFactory;
         2: .line 24
            goto 5
      StackMap locals: io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy io.vertx.core.Vertx
      StackMap stack: java.security.NoSuchAlgorithmException
         3: astore 2 /* nsae */
        start local 2 // java.security.NoSuchAlgorithmException nsae
         4: .line 25
            new java.lang.RuntimeException
            dup
            ldc "PBKDF2 is not available"
            aload 2 /* nsae */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.NoSuchAlgorithmException nsae
         5: .line 27
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lio/vertx/ext/auth/jdbc/impl/PBKDF2Strategy;
            0    6     1  vertx  Lio/vertx/core/Vertx;
            4    5     2   nsae  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.security.NoSuchAlgorithmException
    MethodParameters:
       Name  Flags
      vertx  

  public java.lang.String computeHash(java.lang.String, java.lang.String, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy this
        start local 1 // java.lang.String password
        start local 2 // java.lang.String salt
        start local 3 // int version
         0: .line 32
            sipush 10000
            istore 4 /* iterations */
        start local 4 // int iterations
         1: .line 34
            iload 3 /* version */
            iflt 6
         2: .line 35
            aload 0 /* this */
            getfield io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.nonces:Lio/vertx/core/json/JsonArray;
            ifnonnull 4
         3: .line 37
            new io.vertx.core.VertxException
            dup
            ldc "nonces are not available"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 40
      StackMap locals: int
      StackMap stack:
            iload 3 /* version */
            aload 0 /* this */
            getfield io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.nonces:Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            if_icmpge 6
         5: .line 41
            aload 0 /* this */
            getfield io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.nonces:Lio/vertx/core/json/JsonArray;
            iload 3 /* version */
            invokevirtual io.vertx.core.json.JsonArray.getInteger:(I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* iterations */
         6: .line 45
      StackMap locals:
      StackMap stack:
            new javax.crypto.spec.PBEKeySpec
            dup
         7: .line 46
            aload 1 /* password */
            invokevirtual java.lang.String.toCharArray:()[C
         8: .line 47
            aload 2 /* salt */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
         9: .line 48
            iload 4 /* iterations */
        10: .line 49
            sipush 512
        11: .line 45
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C[BII)V
            astore 5 /* spec */
        start local 5 // javax.crypto.spec.PBEKeySpec spec
        12: .line 52
            aload 0 /* this */
            getfield io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.skf:Ljavax/crypto/SecretKeyFactory;
            aload 5 /* spec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            invokeinterface javax.crypto.SecretKey.getEncoded:()[B
            astore 6 /* hash */
        start local 6 // byte[] hash
        13: .line 54
            iload 3 /* version */
            iflt 16
        14: .line 55
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 6 /* hash */
            invokevirtual io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.bytesToHex:([B)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 36
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 3 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: areturn
        16: .line 57
      StackMap locals: javax.crypto.spec.PBEKeySpec byte[]
      StackMap stack:
            aload 0 /* this */
            aload 6 /* hash */
            invokevirtual io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy.bytesToHex:([B)Ljava/lang/String;
        17: areturn
        end local 6 // byte[] hash
        18: .line 60
      StackMap locals: io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy java.lang.String java.lang.String int int javax.crypto.spec.PBEKeySpec
      StackMap stack: java.security.spec.InvalidKeySpecException
            astore 6 /* ikse */
        start local 6 // java.security.spec.InvalidKeySpecException ikse
        19: .line 61
            new io.vertx.core.VertxException
            dup
            aload 6 /* ikse */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.security.spec.InvalidKeySpecException ikse
        end local 5 // javax.crypto.spec.PBEKeySpec spec
        end local 4 // int iterations
        end local 3 // int version
        end local 2 // java.lang.String salt
        end local 1 // java.lang.String password
        end local 0 // io.vertx.ext.auth.jdbc.impl.PBKDF2Strategy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lio/vertx/ext/auth/jdbc/impl/PBKDF2Strategy;
            0   20     1    password  Ljava/lang/String;
            0   20     2        salt  Ljava/lang/String;
            0   20     3     version  I
            1   20     4  iterations  I
           12   20     5        spec  Ljavax/crypto/spec/PBEKeySpec;
           13   18     6        hash  [B
           19   20     6        ikse  Ljava/security/spec/InvalidKeySpecException;
      Exception table:
        from    to  target  type
          12    15      18  Class java.security.spec.InvalidKeySpecException
          16    17      18  Class java.security.spec.InvalidKeySpecException
    MethodParameters:
          Name  Flags
      password  
      salt      
      version   
}
SourceFile: "PBKDF2Strategy.java"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()