public class org.hsqldb.persist.Crypto
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hsqldb.persist.Crypto
  super_class: java.lang.Object
{
  final javax.crypto.spec.SecretKeySpec key;
    descriptor: Ljavax/crypto/spec/SecretKeySpec;
    flags: (0x0010) ACC_FINAL

  final javax.crypto.Cipher outCipher;
    descriptor: Ljavax/crypto/Cipher;
    flags: (0x0010) ACC_FINAL

  final javax.crypto.Cipher inCipher;
    descriptor: Ljavax/crypto/Cipher;
    flags: (0x0010) ACC_FINAL

  final javax.crypto.Cipher inStreamCipher;
    descriptor: Ljavax/crypto/Cipher;
    flags: (0x0010) ACC_FINAL

  final javax.crypto.Cipher outStreamCipher;
    descriptor: Ljavax/crypto/Cipher;
    flags: (0x0010) ACC_FINAL

  final javax.crypto.spec.IvParameterSpec ivSpec;
    descriptor: Ljavax/crypto/spec/IvParameterSpec;
    flags: (0x0010) ACC_FINAL

  public void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.hsqldb.persist.Crypto this
        start local 1 // java.lang.String keyString
        start local 2 // java.lang.String ivString
        start local 3 // java.lang.String cipherName
        start local 4 // java.lang.String provider
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 3 /* cipherName */
            ldc "/"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 6
         2: .line 78
            aload 3 /* cipherName */
            iconst_0
         3: .line 79
            aload 3 /* cipherName */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
         4: .line 78
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         5: .line 79
            goto 7
         6: .line 80
      StackMap locals: org.hsqldb.persist.Crypto java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* cipherName */
         7: .line 77
      StackMap locals:
      StackMap stack: java.lang.String
            astore 5 /* keyAlgorithm */
        start local 5 // java.lang.String keyAlgorithm
         8: .line 84
            aload 1 /* keyString */
            invokestatic org.hsqldb.lib.StringConverter.hexStringToByteArray:(Ljava/lang/String;)[B
         9: .line 83
            astore 6 /* encodedKey */
        start local 6 // byte[] encodedKey
        10: .line 86
            aload 2 /* ivString */
            ifnull 15
            aload 2 /* ivString */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 15
        11: .line 88
            aload 2 /* ivString */
            invokestatic org.hsqldb.lib.StringConverter.hexStringToByteArray:(Ljava/lang/String;)[B
        12: .line 87
            astore 7 /* encodedIv */
        start local 7 // byte[] encodedIv
        13: .line 90
            aload 0 /* this */
            new javax.crypto.spec.IvParameterSpec
            dup
            aload 7 /* encodedIv */
            invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
            putfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
        end local 7 // byte[] encodedIv
        14: .line 91
            goto 16
        15: .line 92
      StackMap locals: java.lang.String byte[]
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
        16: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 6 /* encodedKey */
            aload 5 /* keyAlgorithm */
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            putfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
        17: .line 96
            aload 0 /* this */
            aload 4 /* provider */
            ifnonnull 18
            aload 3 /* cipherName */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            goto 21
        18: .line 97
      StackMap locals:
      StackMap stack: org.hsqldb.persist.Crypto
            aload 3 /* cipherName */
        19: .line 98
            aload 4 /* provider */
        20: .line 97
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
        21: .line 96
      StackMap locals: org.hsqldb.persist.Crypto java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String byte[]
      StackMap stack: org.hsqldb.persist.Crypto javax.crypto.Cipher
            putfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
        22: .line 100
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 25
        23: .line 101
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
        24: .line 102
            goto 26
        25: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        26: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* provider */
            ifnonnull 27
            aload 3 /* cipherName */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            goto 30
        27: .line 107
      StackMap locals:
      StackMap stack: org.hsqldb.persist.Crypto
            aload 3 /* cipherName */
        28: .line 108
            aload 4 /* provider */
        29: .line 107
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
        30: .line 106
      StackMap locals: org.hsqldb.persist.Crypto java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String byte[]
      StackMap stack: org.hsqldb.persist.Crypto javax.crypto.Cipher
            putfield org.hsqldb.persist.Crypto.outStreamCipher:Ljavax/crypto/Cipher;
        31: .line 110
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 34
        32: .line 111
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outStreamCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
        33: .line 112
            goto 35
        34: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outStreamCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        35: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* provider */
            ifnonnull 36
            aload 3 /* cipherName */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            goto 39
        36: .line 117
      StackMap locals:
      StackMap stack: org.hsqldb.persist.Crypto
            aload 3 /* cipherName */
        37: .line 118
            aload 4 /* provider */
        38: .line 117
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
        39: .line 116
      StackMap locals: org.hsqldb.persist.Crypto java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String byte[]
      StackMap stack: org.hsqldb.persist.Crypto javax.crypto.Cipher
            putfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
        40: .line 120
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 43
        41: .line 121
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
        42: .line 122
            goto 44
        43: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        44: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* provider */
            ifnonnull 45
            aload 3 /* cipherName */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            goto 48
        45: .line 127
      StackMap locals:
      StackMap stack: org.hsqldb.persist.Crypto
            aload 3 /* cipherName */
        46: .line 128
            aload 4 /* provider */
        47: .line 127
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
        48: .line 126
      StackMap locals: org.hsqldb.persist.Crypto java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String byte[]
      StackMap stack: org.hsqldb.persist.Crypto javax.crypto.Cipher
            putfield org.hsqldb.persist.Crypto.inStreamCipher:Ljavax/crypto/Cipher;
        49: .line 130
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 52
        50: .line 131
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inStreamCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
        51: .line 132
            goto 66
        52: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inStreamCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        end local 6 // byte[] encodedKey
        53: .line 135
            goto 66
      StackMap locals: org.hsqldb.persist.Crypto java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: javax.crypto.NoSuchPaddingException
        54: astore 6 /* e */
        start local 6 // javax.crypto.NoSuchPaddingException e
        55: .line 136
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.NoSuchPaddingException e
        56: .line 137
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 6 /* e */
        start local 6 // java.security.NoSuchAlgorithmException e
        57: .line 138
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.NoSuchAlgorithmException e
        58: .line 139
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 6 /* e */
        start local 6 // java.security.InvalidKeyException e
        59: .line 140
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.InvalidKeyException e
        60: .line 141
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 6 /* e */
        start local 6 // java.security.NoSuchProviderException e
        61: .line 142
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.NoSuchProviderException e
        62: .line 143
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        63: .line 144
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.io.IOException e
        64: .line 145
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 6 /* e */
        start local 6 // java.security.InvalidAlgorithmParameterException e
        65: .line 146
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.InvalidAlgorithmParameterException e
        66: .line 148
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.String keyAlgorithm
        end local 4 // java.lang.String provider
        end local 3 // java.lang.String cipherName
        end local 2 // java.lang.String ivString
        end local 1 // java.lang.String keyString
        end local 0 // org.hsqldb.persist.Crypto this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   67     0          this  Lorg/hsqldb/persist/Crypto;
            0   67     1     keyString  Ljava/lang/String;
            0   67     2      ivString  Ljava/lang/String;
            0   67     3    cipherName  Ljava/lang/String;
            0   67     4      provider  Ljava/lang/String;
            8   67     5  keyAlgorithm  Ljava/lang/String;
           10   53     6    encodedKey  [B
           13   14     7     encodedIv  [B
           55   56     6             e  Ljavax/crypto/NoSuchPaddingException;
           57   58     6             e  Ljava/security/NoSuchAlgorithmException;
           59   60     6             e  Ljava/security/InvalidKeyException;
           61   62     6             e  Ljava/security/NoSuchProviderException;
           63   64     6             e  Ljava/io/IOException;
           65   66     6             e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           8    53      54  Class javax.crypto.NoSuchPaddingException
           8    53      56  Class java.security.NoSuchAlgorithmException
           8    53      58  Class java.security.InvalidKeyException
           8    53      60  Class java.security.NoSuchProviderException
           8    53      62  Class java.io.IOException
           8    53      64  Class java.security.InvalidAlgorithmParameterException
    MethodParameters:
            Name  Flags
      keyString   
      ivString    
      cipherName  
      provider    

  public synchronized java.io.InputStream getInputStream(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hsqldb.persist.Crypto this
        start local 1 // java.io.InputStream in
         0: .line 152
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            ifnonnull 2
         1: .line 153
            aload 1 /* in */
            areturn
         2: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 5
         3: .line 158
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inStreamCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         4: .line 159
            goto 6
         5: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inStreamCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         6: .line 163
      StackMap locals:
      StackMap stack:
            new javax.crypto.CipherInputStream
            dup
            aload 1 /* in */
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inStreamCipher:Ljavax/crypto/Cipher;
            invokespecial javax.crypto.CipherInputStream.<init>:(Ljava/io/InputStream;Ljavax/crypto/Cipher;)V
         7: areturn
         8: .line 164
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
         9: .line 165
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.InvalidKeyException e
        10: .line 166
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 2 /* e */
        start local 2 // java.security.InvalidAlgorithmParameterException e
        11: .line 167
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.InvalidAlgorithmParameterException e
        end local 1 // java.io.InputStream in
        end local 0 // org.hsqldb.persist.Crypto this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/hsqldb/persist/Crypto;
            0   12     1    in  Ljava/io/InputStream;
            9   10     2     e  Ljava/security/InvalidKeyException;
           11   12     2     e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           2     7       8  Class java.security.InvalidKeyException
           2     7      10  Class java.security.InvalidAlgorithmParameterException
    MethodParameters:
      Name  Flags
      in    

  public synchronized java.io.OutputStream getOutputStream(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hsqldb.persist.Crypto this
        start local 1 // java.io.OutputStream out
         0: .line 173
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            ifnonnull 2
         1: .line 174
            aload 1 /* out */
            areturn
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 5
         3: .line 179
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outStreamCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         4: .line 180
            goto 6
         5: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outStreamCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         6: .line 184
      StackMap locals:
      StackMap stack:
            new javax.crypto.CipherOutputStream
            dup
            aload 1 /* out */
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outStreamCipher:Ljavax/crypto/Cipher;
            invokespecial javax.crypto.CipherOutputStream.<init>:(Ljava/io/OutputStream;Ljavax/crypto/Cipher;)V
         7: areturn
         8: .line 185
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
         9: .line 186
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.InvalidKeyException e
        10: .line 187
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 2 /* e */
        start local 2 // java.security.InvalidAlgorithmParameterException e
        11: .line 188
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.InvalidAlgorithmParameterException e
        end local 1 // java.io.OutputStream out
        end local 0 // org.hsqldb.persist.Crypto this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/hsqldb/persist/Crypto;
            0   12     1   out  Ljava/io/OutputStream;
            9   10     2     e  Ljava/security/InvalidKeyException;
           11   12     2     e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           2     7       8  Class java.security.InvalidKeyException
           2     7      10  Class java.security.InvalidAlgorithmParameterException
    MethodParameters:
      Name  Flags
      out   

  public synchronized int decode(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // org.hsqldb.persist.Crypto this
        start local 1 // byte[] source
        start local 2 // int sourceOffset
        start local 3 // int length
        start local 4 // byte[] dest
        start local 5 // int destOffset
         0: .line 195
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            ifnonnull 2
         1: .line 196
            iload 3 /* length */
            ireturn
         2: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 5
         3: .line 201
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         4: .line 202
            goto 6
         5: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            iconst_2
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         6: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.inCipher:Ljavax/crypto/Cipher;
            aload 1 /* source */
            iload 2 /* sourceOffset */
            iload 3 /* length */
            aload 4 /* dest */
         7: .line 207
            iload 5 /* destOffset */
         8: .line 206
            invokevirtual javax.crypto.Cipher.doFinal:([BII[BI)I
         9: ireturn
        10: .line 208
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 6 /* e */
        start local 6 // java.security.InvalidKeyException e
        11: .line 209
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.InvalidKeyException e
        12: .line 210
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 6 /* e */
        start local 6 // javax.crypto.BadPaddingException e
        13: .line 211
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.BadPaddingException e
        14: .line 212
      StackMap locals:
      StackMap stack: javax.crypto.IllegalBlockSizeException
            astore 6 /* e */
        start local 6 // javax.crypto.IllegalBlockSizeException e
        15: .line 213
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.IllegalBlockSizeException e
        16: .line 214
      StackMap locals:
      StackMap stack: javax.crypto.ShortBufferException
            astore 6 /* e */
        start local 6 // javax.crypto.ShortBufferException e
        17: .line 215
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.ShortBufferException e
        18: .line 216
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 6 /* e */
        start local 6 // java.security.InvalidAlgorithmParameterException e
        19: .line 217
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.InvalidAlgorithmParameterException e
        end local 5 // int destOffset
        end local 4 // byte[] dest
        end local 3 // int length
        end local 2 // int sourceOffset
        end local 1 // byte[] source
        end local 0 // org.hsqldb.persist.Crypto this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lorg/hsqldb/persist/Crypto;
            0   20     1        source  [B
            0   20     2  sourceOffset  I
            0   20     3        length  I
            0   20     4          dest  [B
            0   20     5    destOffset  I
           11   12     6             e  Ljava/security/InvalidKeyException;
           13   14     6             e  Ljavax/crypto/BadPaddingException;
           15   16     6             e  Ljavax/crypto/IllegalBlockSizeException;
           17   18     6             e  Ljavax/crypto/ShortBufferException;
           19   20     6             e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.security.InvalidKeyException
           2     9      12  Class javax.crypto.BadPaddingException
           2     9      14  Class javax.crypto.IllegalBlockSizeException
           2     9      16  Class javax.crypto.ShortBufferException
           2     9      18  Class java.security.InvalidAlgorithmParameterException
    MethodParameters:
              Name  Flags
      source        
      sourceOffset  
      length        
      dest          
      destOffset    

  public synchronized int encode(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // org.hsqldb.persist.Crypto this
        start local 1 // byte[] source
        start local 2 // int sourceOffset
        start local 3 // int length
        start local 4 // byte[] dest
        start local 5 // int destOffset
         0: .line 224
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            ifnonnull 2
         1: .line 225
            iload 3 /* length */
            ireturn
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 5
         3: .line 230
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         4: .line 231
            goto 6
         5: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         6: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            aload 1 /* source */
            iload 2 /* sourceOffset */
            iload 3 /* length */
            aload 4 /* dest */
         7: .line 236
            iload 5 /* destOffset */
         8: .line 235
            invokevirtual javax.crypto.Cipher.doFinal:([BII[BI)I
         9: ireturn
        10: .line 237
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 6 /* e */
        start local 6 // java.security.InvalidKeyException e
        11: .line 238
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.InvalidKeyException e
        12: .line 239
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 6 /* e */
        start local 6 // javax.crypto.BadPaddingException e
        13: .line 240
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.BadPaddingException e
        14: .line 241
      StackMap locals:
      StackMap stack: javax.crypto.IllegalBlockSizeException
            astore 6 /* e */
        start local 6 // javax.crypto.IllegalBlockSizeException e
        15: .line 242
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.IllegalBlockSizeException e
        16: .line 243
      StackMap locals:
      StackMap stack: javax.crypto.ShortBufferException
            astore 6 /* e */
        start local 6 // javax.crypto.ShortBufferException e
        17: .line 244
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // javax.crypto.ShortBufferException e
        18: .line 245
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 6 /* e */
        start local 6 // java.security.InvalidAlgorithmParameterException e
        19: .line 246
            sipush 331
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.security.InvalidAlgorithmParameterException e
        end local 5 // int destOffset
        end local 4 // byte[] dest
        end local 3 // int length
        end local 2 // int sourceOffset
        end local 1 // byte[] source
        end local 0 // org.hsqldb.persist.Crypto this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lorg/hsqldb/persist/Crypto;
            0   20     1        source  [B
            0   20     2  sourceOffset  I
            0   20     3        length  I
            0   20     4          dest  [B
            0   20     5    destOffset  I
           11   12     6             e  Ljava/security/InvalidKeyException;
           13   14     6             e  Ljavax/crypto/BadPaddingException;
           15   16     6             e  Ljavax/crypto/IllegalBlockSizeException;
           17   18     6             e  Ljavax/crypto/ShortBufferException;
           19   20     6             e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.security.InvalidKeyException
           2     9      12  Class javax.crypto.BadPaddingException
           2     9      14  Class javax.crypto.IllegalBlockSizeException
           2     9      16  Class javax.crypto.ShortBufferException
           2     9      18  Class java.security.InvalidAlgorithmParameterException
    MethodParameters:
              Name  Flags
      source        
      sourceOffset  
      length        
      dest          
      destOffset    

  public static byte[] getNewKey(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.lang.String cipherName
        start local 1 // java.lang.String provider
         0: .line 253
            aload 1 /* provider */
            ifnonnull 2
         1: .line 254
            aload 0 /* cipherName */
            invokestatic javax.crypto.KeyGenerator.getInstance:(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
            goto 5
         2: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* cipherName */
         3: .line 256
            aload 1 /* provider */
         4: .line 255
            invokestatic javax.crypto.KeyGenerator.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
         5: .line 253
      StackMap locals:
      StackMap stack: javax.crypto.KeyGenerator
            astore 2 /* generator */
        start local 2 // javax.crypto.KeyGenerator generator
         6: .line 257
            aload 2 /* generator */
            invokevirtual javax.crypto.KeyGenerator.generateKey:()Ljavax/crypto/SecretKey;
            astore 3 /* key */
        start local 3 // javax.crypto.SecretKey key
         7: .line 258
            aload 3 /* key */
            invokeinterface javax.crypto.SecretKey.getEncoded:()[B
            astore 4 /* raw */
        start local 4 // byte[] raw
         8: .line 260
            aload 4 /* raw */
         9: areturn
        end local 4 // byte[] raw
        end local 3 // javax.crypto.SecretKey key
        end local 2 // javax.crypto.KeyGenerator generator
        10: .line 261
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 2 /* e */
        start local 2 // java.security.NoSuchAlgorithmException e
        11: .line 262
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.NoSuchAlgorithmException e
        12: .line 263
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 2 /* e */
        start local 2 // java.security.NoSuchProviderException e
        13: .line 264
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.NoSuchProviderException e
        end local 1 // java.lang.String provider
        end local 0 // java.lang.String cipherName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0  cipherName  Ljava/lang/String;
            0   14     1    provider  Ljava/lang/String;
            6   10     2   generator  Ljavax/crypto/KeyGenerator;
            7   10     3         key  Ljavax/crypto/SecretKey;
            8   10     4         raw  [B
           11   12     2           e  Ljava/security/NoSuchAlgorithmException;
           13   14     2           e  Ljava/security/NoSuchProviderException;
      Exception table:
        from    to  target  type
           0     9      10  Class java.security.NoSuchAlgorithmException
           0     9      12  Class java.security.NoSuchProviderException
    MethodParameters:
            Name  Flags
      cipherName  
      provider    

  public synchronized int getEncodedSize(int);
    descriptor: (I)I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hsqldb.persist.Crypto this
        start local 1 // int size
         0: .line 271
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iload 1 /* size */
            invokevirtual javax.crypto.Cipher.getOutputSize:(I)I
         1: ireturn
         2: .line 272
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            pop
         3: .line 274
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            ifnonnull 6
         4: .line 275
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         5: .line 276
            goto 7
         6: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iconst_1
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.key:Ljavax/crypto/spec/SecretKeySpec;
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.ivSpec:Ljavax/crypto/spec/IvParameterSpec;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         7: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Crypto.outCipher:Ljavax/crypto/Cipher;
            iload 1 /* size */
            invokevirtual javax.crypto.Cipher.getOutputSize:(I)I
         8: ireturn
         9: .line 281
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
        10: .line 282
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.InvalidKeyException e
        11: .line 283
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 2 /* e */
        start local 2 // java.security.InvalidAlgorithmParameterException e
        12: .line 284
            sipush 331
            aload 2 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 2 // java.security.InvalidAlgorithmParameterException e
        end local 1 // int size
        end local 0 // org.hsqldb.persist.Crypto this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/hsqldb/persist/Crypto;
            0   13     1  size  I
           10   11     2     e  Ljava/security/InvalidKeyException;
           12   13     2     e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalStateException
           3     8       9  Class java.security.InvalidKeyException
           3     8      11  Class java.security.InvalidAlgorithmParameterException
    MethodParameters:
      Name  Flags
      size  
}
SourceFile: "Crypto.java"