public class sun.security.provider.DSAKeyFactory extends java.security.KeyFactorySpi
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.provider.DSAKeyFactory
  super_class: java.security.KeyFactorySpi
{
  static final boolean SERIAL_INTEROP;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final java.lang.String SERIAL_PROP;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "sun.security.key.serial.interop"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 74
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.security.key.serial.interop"
            aconst_null
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 73
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 0 /* prop */
        start local 0 // java.lang.String prop
         2: .line 75
            ldc "true"
            aload 0 /* prop */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            putstatic sun.security.provider.DSAKeyFactory.SERIAL_INTEROP:Z
        end local 0 // java.lang.String prop
         3: .line 76
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    3     0  prop  Ljava/lang/String;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.provider.DSAKeyFactory this
         0: .line 53
            aload 0 /* this */
            invokespecial java.security.KeyFactorySpi.<init>:()V
            return
        end local 0 // sun.security.provider.DSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/provider/DSAKeyFactory;

  protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec);
    descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.security.provider.DSAKeyFactory this
        start local 1 // java.security.spec.KeySpec keySpec
         0: .line 92
            aload 1 /* keySpec */
            instanceof java.security.spec.DSAPublicKeySpec
            ifeq 15
         1: .line 93
            aload 1 /* keySpec */
            checkcast java.security.spec.DSAPublicKeySpec
            astore 2 /* dsaPubKeySpec */
        start local 2 // java.security.spec.DSAPublicKeySpec dsaPubKeySpec
         2: .line 94
            getstatic sun.security.provider.DSAKeyFactory.SERIAL_INTEROP:Z
            ifeq 9
         3: .line 95
            new sun.security.provider.DSAPublicKey
            dup
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getY:()Ljava/math/BigInteger;
         4: .line 96
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getP:()Ljava/math/BigInteger;
         5: .line 97
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getQ:()Ljava/math/BigInteger;
         6: .line 98
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getG:()Ljava/math/BigInteger;
         7: .line 95
            invokespecial sun.security.provider.DSAPublicKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
         8: areturn
         9: .line 100
      StackMap locals: java.security.spec.DSAPublicKeySpec
      StackMap stack:
            new sun.security.provider.DSAPublicKeyImpl
            dup
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getY:()Ljava/math/BigInteger;
        10: .line 101
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getP:()Ljava/math/BigInteger;
        11: .line 102
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getQ:()Ljava/math/BigInteger;
        12: .line 103
            aload 2 /* dsaPubKeySpec */
            invokevirtual java.security.spec.DSAPublicKeySpec.getG:()Ljava/math/BigInteger;
        13: .line 100
            invokespecial sun.security.provider.DSAPublicKeyImpl.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        14: areturn
        end local 2 // java.security.spec.DSAPublicKeySpec dsaPubKeySpec
        15: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.X509EncodedKeySpec
            ifeq 25
        16: .line 106
            getstatic sun.security.provider.DSAKeyFactory.SERIAL_INTEROP:Z
            ifeq 21
        17: .line 107
            new sun.security.provider.DSAPublicKey
            dup
        18: .line 108
            aload 1 /* keySpec */
            checkcast java.security.spec.X509EncodedKeySpec
            invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
        19: .line 107
            invokespecial sun.security.provider.DSAPublicKey.<init>:([B)V
        20: areturn
        21: .line 110
      StackMap locals:
      StackMap stack:
            new sun.security.provider.DSAPublicKeyImpl
            dup
        22: .line 111
            aload 1 /* keySpec */
            checkcast java.security.spec.X509EncodedKeySpec
            invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
        23: .line 110
            invokespecial sun.security.provider.DSAPublicKeyImpl.<init>:([B)V
        24: areturn
        25: .line 114
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
        26: .line 115
            ldc "Inappropriate key specification"
        27: .line 114
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 117
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
        29: .line 118
            new java.security.spec.InvalidKeySpecException
            dup
        30: .line 119
            new java.lang.StringBuilder
            dup
            ldc "Inappropriate key specification: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.security.InvalidKeyException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 118
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.InvalidKeyException e
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // sun.security.provider.DSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Lsun/security/provider/DSAKeyFactory;
            0   32     1        keySpec  Ljava/security/spec/KeySpec;
            2   15     2  dsaPubKeySpec  Ljava/security/spec/DSAPublicKeySpec;
           29   32     2              e  Ljava/security/InvalidKeyException;
      Exception table:
        from    to  target  type
           0     8      28  Class java.security.InvalidKeyException
           9    14      28  Class java.security.InvalidKeyException
          15    20      28  Class java.security.InvalidKeyException
          21    24      28  Class java.security.InvalidKeyException
          25    28      28  Class java.security.InvalidKeyException
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
         Name  Flags
      keySpec  

  protected java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec);
    descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.security.provider.DSAKeyFactory this
        start local 1 // java.security.spec.KeySpec keySpec
         0: .line 137
            aload 1 /* keySpec */
            instanceof java.security.spec.DSAPrivateKeySpec
            ifeq 8
         1: .line 138
            aload 1 /* keySpec */
            checkcast java.security.spec.DSAPrivateKeySpec
            astore 2 /* dsaPrivKeySpec */
        start local 2 // java.security.spec.DSAPrivateKeySpec dsaPrivKeySpec
         2: .line 139
            new sun.security.provider.DSAPrivateKey
            dup
            aload 2 /* dsaPrivKeySpec */
            invokevirtual java.security.spec.DSAPrivateKeySpec.getX:()Ljava/math/BigInteger;
         3: .line 140
            aload 2 /* dsaPrivKeySpec */
            invokevirtual java.security.spec.DSAPrivateKeySpec.getP:()Ljava/math/BigInteger;
         4: .line 141
            aload 2 /* dsaPrivKeySpec */
            invokevirtual java.security.spec.DSAPrivateKeySpec.getQ:()Ljava/math/BigInteger;
         5: .line 142
            aload 2 /* dsaPrivKeySpec */
            invokevirtual java.security.spec.DSAPrivateKeySpec.getG:()Ljava/math/BigInteger;
         6: .line 139
            invokespecial sun.security.provider.DSAPrivateKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
         7: areturn
        end local 2 // java.security.spec.DSAPrivateKeySpec dsaPrivKeySpec
         8: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.PKCS8EncodedKeySpec
            ifeq 13
         9: .line 145
            new sun.security.provider.DSAPrivateKey
            dup
        10: .line 146
            aload 1 /* keySpec */
            checkcast java.security.spec.PKCS8EncodedKeySpec
            invokevirtual java.security.spec.PKCS8EncodedKeySpec.getEncoded:()[B
        11: .line 145
            invokespecial sun.security.provider.DSAPrivateKey.<init>:([B)V
        12: areturn
        13: .line 149
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
        14: .line 150
            ldc "Inappropriate key specification"
        15: .line 149
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 152
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
        17: .line 153
            new java.security.spec.InvalidKeySpecException
            dup
        18: .line 154
            new java.lang.StringBuilder
            dup
            ldc "Inappropriate key specification: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.security.InvalidKeyException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 153
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.InvalidKeyException e
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // sun.security.provider.DSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lsun/security/provider/DSAKeyFactory;
            0   20     1         keySpec  Ljava/security/spec/KeySpec;
            2    8     2  dsaPrivKeySpec  Ljava/security/spec/DSAPrivateKeySpec;
           17   20     2               e  Ljava/security/InvalidKeyException;
      Exception table:
        from    to  target  type
           0     7      16  Class java.security.InvalidKeyException
           8    12      16  Class java.security.InvalidKeyException
          13    16      16  Class java.security.InvalidKeyException
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
         Name  Flags
      keySpec  

  protected <T extends java.security.spec.KeySpec> T engineGetKeySpec(java.security.Key, java.lang.Class<T>);
    descriptor: (Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // sun.security.provider.DSAKeyFactory this
        start local 1 // java.security.Key key
        start local 2 // java.lang.Class keySpec
         0: .line 182
            aload 1 /* key */
            instanceof java.security.interfaces.DSAPublicKey
            ifeq 21
         1: .line 186
            ldc "java.security.spec.DSAPublicKeySpec"
         2: .line 185
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* dsaPubKeySpec */
        start local 4 // java.lang.Class dsaPubKeySpec
         3: .line 188
            ldc "java.security.spec.X509EncodedKeySpec"
         4: .line 187
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* x509KeySpec */
        start local 5 // java.lang.Class x509KeySpec
         5: .line 190
            aload 4 /* dsaPubKeySpec */
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 15
         6: .line 192
            aload 1 /* key */
            checkcast java.security.interfaces.DSAPublicKey
         7: .line 191
            astore 6 /* dsaPubKey */
        start local 6 // java.security.interfaces.DSAPublicKey dsaPubKey
         8: .line 193
            aload 6 /* dsaPubKey */
            invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
            astore 3 /* params */
        start local 3 // java.security.interfaces.DSAParams params
         9: .line 194
            aload 2 /* keySpec */
            new java.security.spec.DSAPublicKeySpec
            dup
            aload 6 /* dsaPubKey */
            invokeinterface java.security.interfaces.DSAPublicKey.getY:()Ljava/math/BigInteger;
        10: .line 195
            aload 3 /* params */
            invokeinterface java.security.interfaces.DSAParams.getP:()Ljava/math/BigInteger;
        11: .line 196
            aload 3 /* params */
            invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
        12: .line 197
            aload 3 /* params */
            invokeinterface java.security.interfaces.DSAParams.getG:()Ljava/math/BigInteger;
            invokespecial java.security.spec.DSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        13: .line 194
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
        14: areturn
        end local 6 // java.security.interfaces.DSAPublicKey dsaPubKey
        end local 3 // java.security.interfaces.DSAParams params
        15: .line 199
      StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class top java.lang.Class java.lang.Class
      StackMap stack:
            aload 5 /* x509KeySpec */
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 18
        16: .line 200
            aload 2 /* keySpec */
            new java.security.spec.X509EncodedKeySpec
            dup
            aload 1 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
        17: areturn
        18: .line 203
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
        19: .line 204
            ldc "Inappropriate key specification"
        20: .line 203
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class x509KeySpec
        end local 4 // java.lang.Class dsaPubKeySpec
        21: .line 207
      StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.interfaces.DSAPrivateKey
            ifeq 42
        22: .line 211
            ldc "java.security.spec.DSAPrivateKeySpec"
        23: .line 210
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* dsaPrivKeySpec */
        start local 4 // java.lang.Class dsaPrivKeySpec
        24: .line 213
            ldc "java.security.spec.PKCS8EncodedKeySpec"
        25: .line 212
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* pkcs8KeySpec */
        start local 5 // java.lang.Class pkcs8KeySpec
        26: .line 215
            aload 4 /* dsaPrivKeySpec */
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 36
        27: .line 217
            aload 1 /* key */
            checkcast java.security.interfaces.DSAPrivateKey
        28: .line 216
            astore 6 /* dsaPrivKey */
        start local 6 // java.security.interfaces.DSAPrivateKey dsaPrivKey
        29: .line 218
            aload 6 /* dsaPrivKey */
            invokeinterface java.security.interfaces.DSAPrivateKey.getParams:()Ljava/security/interfaces/DSAParams;
            astore 3 /* params */
        start local 3 // java.security.interfaces.DSAParams params
        30: .line 219
            aload 2 /* keySpec */
            new java.security.spec.DSAPrivateKeySpec
            dup
            aload 6 /* dsaPrivKey */
            invokeinterface java.security.interfaces.DSAPrivateKey.getX:()Ljava/math/BigInteger;
        31: .line 220
            aload 3 /* params */
            invokeinterface java.security.interfaces.DSAParams.getP:()Ljava/math/BigInteger;
        32: .line 221
            aload 3 /* params */
            invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
        33: .line 222
            aload 3 /* params */
            invokeinterface java.security.interfaces.DSAParams.getG:()Ljava/math/BigInteger;
            invokespecial java.security.spec.DSAPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        34: .line 219
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
        35: areturn
        end local 6 // java.security.interfaces.DSAPrivateKey dsaPrivKey
        end local 3 // java.security.interfaces.DSAParams params
        36: .line 224
      StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class top java.lang.Class java.lang.Class
      StackMap stack:
            aload 5 /* pkcs8KeySpec */
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 39
        37: .line 225
            aload 2 /* keySpec */
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 1 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
        38: areturn
        39: .line 228
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
        40: .line 229
            ldc "Inappropriate key specification"
        41: .line 228
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class pkcs8KeySpec
        end local 4 // java.lang.Class dsaPrivKeySpec
        42: .line 233
      StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
            ldc "Inappropriate key type"
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        43: .line 236
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 4 /* e */
        start local 4 // java.lang.ClassNotFoundException e
        44: .line 237
            new java.security.spec.InvalidKeySpecException
            dup
        45: .line 238
            new java.lang.StringBuilder
            dup
            ldc "Unsupported key specification: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 237
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.ClassNotFoundException e
        end local 2 // java.lang.Class keySpec
        end local 1 // java.security.Key key
        end local 0 // sun.security.provider.DSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0            this  Lsun/security/provider/DSAKeyFactory;
            0   47     1             key  Ljava/security/Key;
            0   47     2         keySpec  Ljava/lang/Class<TT;>;
            9   15     3          params  Ljava/security/interfaces/DSAParams;
           30   36     3          params  Ljava/security/interfaces/DSAParams;
            3   21     4   dsaPubKeySpec  Ljava/lang/Class<*>;
            5   21     5     x509KeySpec  Ljava/lang/Class<*>;
            8   15     6       dsaPubKey  Ljava/security/interfaces/DSAPublicKey;
           24   42     4  dsaPrivKeySpec  Ljava/lang/Class<*>;
           26   42     5    pkcs8KeySpec  Ljava/lang/Class<*>;
           29   36     6      dsaPrivKey  Ljava/security/interfaces/DSAPrivateKey;
           44   47     4               e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           0    14      43  Class java.lang.ClassNotFoundException
          15    17      43  Class java.lang.ClassNotFoundException
          18    35      43  Class java.lang.ClassNotFoundException
          36    38      43  Class java.lang.ClassNotFoundException
          39    43      43  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    Signature: <T::Ljava/security/spec/KeySpec;>(Ljava/security/Key;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
         Name  Flags
      key      
      keySpec  

  protected java.security.Key engineTranslateKey(java.security.Key);
    descriptor: (Ljava/security/Key;)Ljava/security/Key;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.provider.DSAKeyFactory this
        start local 1 // java.security.Key key
         0: .line 257
            aload 1 /* key */
            instanceof java.security.interfaces.DSAPublicKey
            ifeq 8
         1: .line 259
            aload 1 /* key */
            instanceof sun.security.provider.DSAPublicKey
            ifeq 4
         2: .line 260
            aload 1 /* key */
         3: areturn
         4: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            ldc Ljava/security/spec/DSAPublicKeySpec;
            invokevirtual sun.security.provider.DSAKeyFactory.engineGetKeySpec:(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
            checkcast java.security.spec.DSAPublicKeySpec
         5: .line 263
            astore 2 /* dsaPubKeySpec */
        start local 2 // java.security.spec.DSAPublicKeySpec dsaPubKeySpec
         6: .line 266
            aload 0 /* this */
            aload 2 /* dsaPubKeySpec */
            invokevirtual sun.security.provider.DSAKeyFactory.engineGeneratePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
         7: areturn
        end local 2 // java.security.spec.DSAPublicKeySpec dsaPubKeySpec
         8: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.interfaces.DSAPrivateKey
            ifeq 16
         9: .line 270
            aload 1 /* key */
            instanceof sun.security.provider.DSAPrivateKey
            ifeq 12
        10: .line 271
            aload 1 /* key */
        11: areturn
        12: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            ldc Ljava/security/spec/DSAPrivateKeySpec;
            invokevirtual sun.security.provider.DSAKeyFactory.engineGetKeySpec:(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
            checkcast java.security.spec.DSAPrivateKeySpec
        13: .line 274
            astore 2 /* dsaPrivKeySpec */
        start local 2 // java.security.spec.DSAPrivateKeySpec dsaPrivKeySpec
        14: .line 277
            aload 0 /* this */
            aload 2 /* dsaPrivKeySpec */
            invokevirtual sun.security.provider.DSAKeyFactory.engineGeneratePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        15: areturn
        end local 2 // java.security.spec.DSAPrivateKeySpec dsaPrivKeySpec
        16: .line 280
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "Wrong algorithm type"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 283
      StackMap locals:
      StackMap stack: java.security.spec.InvalidKeySpecException
            astore 2 /* e */
        start local 2 // java.security.spec.InvalidKeySpecException e
        18: .line 284
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot translate key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 285
            aload 2 /* e */
            invokevirtual java.security.spec.InvalidKeySpecException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 284
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.spec.InvalidKeySpecException e
        end local 1 // java.security.Key key
        end local 0 // sun.security.provider.DSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lsun/security/provider/DSAKeyFactory;
            0   21     1             key  Ljava/security/Key;
            6    8     2   dsaPubKeySpec  Ljava/security/spec/DSAPublicKeySpec;
           14   16     2  dsaPrivKeySpec  Ljava/security/spec/DSAPrivateKeySpec;
           18   21     2               e  Ljava/security/spec/InvalidKeySpecException;
      Exception table:
        from    to  target  type
           0     3      17  Class java.security.spec.InvalidKeySpecException
           4     7      17  Class java.security.spec.InvalidKeySpecException
           8    11      17  Class java.security.spec.InvalidKeySpecException
          12    15      17  Class java.security.spec.InvalidKeySpecException
          16    17      17  Class java.security.spec.InvalidKeySpecException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   
}
SourceFile: "DSAKeyFactory.java"