public class sun.security.pkcs.PKCS8Key implements java.security.PrivateKey
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.pkcs.PKCS8Key
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -3836890099307167124

  protected sun.security.x509.AlgorithmId algid;
    descriptor: Lsun/security/x509/AlgorithmId;
    flags: (0x0004) ACC_PROTECTED

  protected byte[] key;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte[] encodedKey;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  public static final java.math.BigInteger version;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 68
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            putstatic sun.security.pkcs.PKCS8Key.version:Ljava/math/BigInteger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  private void <init>(sun.security.x509.AlgorithmId, byte[]);
    descriptor: (Lsun/security/x509/AlgorithmId;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.pkcs.PKCS8Key this
        start local 1 // sun.security.x509.AlgorithmId algid
        start local 2 // byte[] key
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            aload 1 /* algid */
            putfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
         2: .line 85
            aload 0 /* this */
            aload 2 /* key */
            putfield sun.security.pkcs.PKCS8Key.key:[B
         3: .line 86
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.encode:()[B
            pop
         4: .line 87
            return
        end local 2 // byte[] key
        end local 1 // sun.security.x509.AlgorithmId algid
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/security/pkcs/PKCS8Key;
            0    5     1  algid  Lsun/security/x509/AlgorithmId;
            0    5     2    key  [B
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
       Name  Flags
      algid  
      key    

  public static sun.security.pkcs.PKCS8Key parse(sun.security.util.DerValue);
    descriptor: (Lsun/security/util/DerValue;)Lsun/security/pkcs/PKCS8Key;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.util.DerValue in
         0: .line 95
            aload 0 /* in */
            invokestatic sun.security.pkcs.PKCS8Key.parseKey:(Lsun/security/util/DerValue;)Ljava/security/PrivateKey;
            astore 1 /* key */
        start local 1 // java.security.PrivateKey key
         1: .line 96
            aload 1 /* key */
            instanceof sun.security.pkcs.PKCS8Key
            ifeq 3
         2: .line 97
            aload 1 /* key */
            checkcast sun.security.pkcs.PKCS8Key
            areturn
         3: .line 99
      StackMap locals: java.security.PrivateKey
      StackMap stack:
            new java.io.IOException
            dup
            ldc "Provider did not return PKCS8Key"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.PrivateKey key
        end local 0 // sun.security.util.DerValue in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    in  Lsun/security/util/DerValue;
            1    4     1   key  Ljava/security/PrivateKey;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static java.security.PrivateKey parseKey(sun.security.util.DerValue);
    descriptor: (Lsun/security/util/DerValue;)Ljava/security/PrivateKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.security.util.DerValue in
         0: .line 121
            aload 0 /* in */
            getfield sun.security.util.DerValue.tag:B
            bipush 48
            if_icmpeq 2
         1: .line 122
            new java.io.IOException
            dup
            ldc "corrupt private key"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getBigInteger:()Ljava/math/BigInteger;
            astore 3 /* parsedVersion */
        start local 3 // java.math.BigInteger parsedVersion
         3: .line 125
            getstatic sun.security.pkcs.PKCS8Key.version:Ljava/math/BigInteger;
            aload 3 /* parsedVersion */
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 9
         4: .line 126
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "version mismatch: (supported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 127
            getstatic sun.security.pkcs.PKCS8Key.version:Ljava/math/BigInteger;
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 128
            ldc ", parsed: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 129
            aload 3 /* parsedVersion */
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 126
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 132
      StackMap locals: sun.security.util.DerValue top top java.math.BigInteger
      StackMap stack:
            aload 0 /* in */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            astore 1 /* algorithm */
        start local 1 // sun.security.x509.AlgorithmId algorithm
        10: .line 135
            aload 1 /* algorithm */
            aload 0 /* in */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            invokestatic sun.security.pkcs.PKCS8Key.buildPKCS8Key:(Lsun/security/x509/AlgorithmId;[B)Ljava/security/PrivateKey;
            astore 2 /* privKey */
        start local 2 // java.security.PrivateKey privKey
        11: .line 137
            goto 14
        end local 2 // java.security.PrivateKey privKey
      StackMap locals: sun.security.util.DerValue sun.security.x509.AlgorithmId top java.math.BigInteger
      StackMap stack: java.security.InvalidKeyException
        12: pop
        13: .line 138
            new java.io.IOException
            dup
            ldc "corrupt private key"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.security.PrivateKey privKey
        14: .line 141
      StackMap locals: sun.security.util.DerValue sun.security.x509.AlgorithmId java.security.PrivateKey java.math.BigInteger
      StackMap stack:
            aload 0 /* in */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 16
        15: .line 142
            new java.io.IOException
            dup
            ldc "excess private key"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 143
      StackMap locals:
      StackMap stack:
            aload 2 /* privKey */
            areturn
        end local 3 // java.math.BigInteger parsedVersion
        end local 2 // java.security.PrivateKey privKey
        end local 1 // sun.security.x509.AlgorithmId algorithm
        end local 0 // sun.security.util.DerValue in
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0             in  Lsun/security/util/DerValue;
           10   17     1      algorithm  Lsun/security/x509/AlgorithmId;
           11   12     2        privKey  Ljava/security/PrivateKey;
           14   17     2        privKey  Ljava/security/PrivateKey;
            3   17     3  parsedVersion  Ljava/math/BigInteger;
      Exception table:
        from    to  target  type
          10    11      12  Class java.security.InvalidKeyException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  protected void parseKeyBits();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 161
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.encode:()[B
            pop
         1: .line 162
            return
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/pkcs/PKCS8Key;
    Exceptions:
      throws java.io.IOException, java.security.InvalidKeyException

  static java.security.PrivateKey buildPKCS8Key(sun.security.x509.AlgorithmId, byte[]);
    descriptor: (Lsun/security/x509/AlgorithmId;[B)Ljava/security/PrivateKey;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.security.x509.AlgorithmId algid
        start local 1 // byte[] key
         0: .line 177
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* pkcs8EncodedKeyStream */
        start local 2 // sun.security.util.DerOutputStream pkcs8EncodedKeyStream
         1: .line 178
            aload 2 /* pkcs8EncodedKeyStream */
            aload 0 /* algid */
            aload 1 /* key */
            invokestatic sun.security.pkcs.PKCS8Key.encode:(Lsun/security/util/DerOutputStream;Lsun/security/x509/AlgorithmId;[B)V
         2: .line 180
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 2 /* pkcs8EncodedKeyStream */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
         3: .line 179
            astore 3 /* pkcs8KeySpec */
        start local 3 // java.security.spec.PKCS8EncodedKeySpec pkcs8KeySpec
         4: .line 184
            aload 0 /* algid */
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 4 /* keyFac */
        start local 4 // java.security.KeyFactory keyFac
         5: .line 187
            aload 4 /* keyFac */
            aload 3 /* pkcs8KeySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
         6: areturn
        end local 4 // java.security.KeyFactory keyFac
         7: .line 188
      StackMap locals: sun.security.x509.AlgorithmId byte[] sun.security.util.DerOutputStream java.security.spec.PKCS8EncodedKeySpec
      StackMap stack: java.security.NoSuchAlgorithmException
            pop
            goto 9
         8: .line 190
      StackMap locals:
      StackMap stack: java.security.spec.InvalidKeySpecException
            pop
         9: .line 197
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 4 /* classname */
        start local 4 // java.lang.String classname
        10: .line 203
            ldc "SUN"
            invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
            astore 5 /* sunProvider */
        start local 5 // java.security.Provider sunProvider
        11: .line 204
            aload 5 /* sunProvider */
            ifnonnull 13
        12: .line 205
            new java.lang.InstantiationException
            dup
            invokespecial java.lang.InstantiationException.<init>:()V
            athrow
        13: .line 206
      StackMap locals: java.lang.String java.security.Provider
      StackMap stack:
            aload 5 /* sunProvider */
            new java.lang.StringBuilder
            dup
            ldc "PrivateKey.PKCS#8."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 207
            aload 0 /* algid */
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 206
            invokevirtual java.security.Provider.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* classname */
        16: .line 208
            aload 4 /* classname */
            ifnonnull 18
        17: .line 209
            new java.lang.InstantiationException
            dup
            invokespecial java.lang.InstantiationException.<init>:()V
            athrow
        18: .line 212
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* keyClass */
        start local 6 // java.lang.Class keyClass
        19: .line 214
            aload 4 /* classname */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* keyClass */
        20: .line 215
            goto 25
      StackMap locals: sun.security.x509.AlgorithmId byte[] sun.security.util.DerOutputStream java.security.spec.PKCS8EncodedKeySpec java.lang.String java.security.Provider java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
        21: pop
        22: .line 216
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 7 /* cl */
        start local 7 // java.lang.ClassLoader cl
        23: .line 217
            aload 7 /* cl */
            ifnull 25
        24: .line 218
            aload 7 /* cl */
            aload 4 /* classname */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* keyClass */
        end local 7 // java.lang.ClassLoader cl
        25: .line 222
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* inst */
        start local 7 // java.lang.Object inst
        26: .line 225
            aload 6 /* keyClass */
            ifnull 28
        27: .line 226
            aload 6 /* keyClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 7 /* inst */
        28: .line 227
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* inst */
            instanceof sun.security.pkcs.PKCS8Key
            ifeq 39
        29: .line 228
            aload 7 /* inst */
            checkcast sun.security.pkcs.PKCS8Key
            astore 8 /* result */
        start local 8 // sun.security.pkcs.PKCS8Key result
        30: .line 229
            aload 8 /* result */
            aload 0 /* algid */
            putfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
        31: .line 230
            aload 8 /* result */
            aload 1 /* key */
            putfield sun.security.pkcs.PKCS8Key.key:[B
        32: .line 231
            aload 8 /* result */
            invokevirtual sun.security.pkcs.PKCS8Key.parseKeyBits:()V
        33: .line 232
            aload 8 /* result */
        34: areturn
        end local 8 // sun.security.pkcs.PKCS8Key result
        end local 7 // java.lang.Object inst
        end local 6 // java.lang.Class keyClass
        end local 5 // java.security.Provider sunProvider
        35: .line 234
      StackMap locals: sun.security.x509.AlgorithmId byte[] sun.security.util.DerOutputStream java.security.spec.PKCS8EncodedKeySpec java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            pop
            goto 39
        36: .line 235
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            pop
            goto 39
        37: .line 236
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
        38: .line 238
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* classname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " [internal error]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 241
      StackMap locals:
      StackMap stack:
            new sun.security.pkcs.PKCS8Key
            dup
            invokespecial sun.security.pkcs.PKCS8Key.<init>:()V
            astore 5 /* result */
        start local 5 // sun.security.pkcs.PKCS8Key result
        40: .line 242
            aload 5 /* result */
            aload 0 /* algid */
            putfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
        41: .line 243
            aload 5 /* result */
            aload 1 /* key */
            putfield sun.security.pkcs.PKCS8Key.key:[B
        42: .line 244
            aload 5 /* result */
            areturn
        end local 5 // sun.security.pkcs.PKCS8Key result
        end local 4 // java.lang.String classname
        end local 3 // java.security.spec.PKCS8EncodedKeySpec pkcs8KeySpec
        end local 2 // sun.security.util.DerOutputStream pkcs8EncodedKeyStream
        end local 1 // byte[] key
        end local 0 // sun.security.x509.AlgorithmId algid
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   43     0                  algid  Lsun/security/x509/AlgorithmId;
            0   43     1                    key  [B
            1   43     2  pkcs8EncodedKeyStream  Lsun/security/util/DerOutputStream;
            4   43     3           pkcs8KeySpec  Ljava/security/spec/PKCS8EncodedKeySpec;
            5    7     4                 keyFac  Ljava/security/KeyFactory;
           10   43     4              classname  Ljava/lang/String;
           11   35     5            sunProvider  Ljava/security/Provider;
           19   35     6               keyClass  Ljava/lang/Class<*>;
           23   25     7                     cl  Ljava/lang/ClassLoader;
           26   35     7                   inst  Ljava/lang/Object;
           30   35     8                 result  Lsun/security/pkcs/PKCS8Key;
           40   43     5                 result  Lsun/security/pkcs/PKCS8Key;
      Exception table:
        from    to  target  type
           4     6       7  Class java.security.NoSuchAlgorithmException
           4     6       8  Class java.security.spec.InvalidKeySpecException
          19    20      21  Class java.lang.ClassNotFoundException
          10    34      35  Class java.lang.ClassNotFoundException
          10    34      36  Class java.lang.InstantiationException
          10    34      37  Class java.lang.IllegalAccessException
    Exceptions:
      throws java.io.IOException, java.security.InvalidKeyException
    MethodParameters:
       Name  Flags
      algid  
      key    

  public java.lang.String getAlgorithm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 251
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            areturn
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/PKCS8Key;

  public sun.security.x509.AlgorithmId getAlgorithmId();
    descriptor: ()Lsun/security/x509/AlgorithmId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 257
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
            areturn
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/PKCS8Key;

  public final void encode(sun.security.util.DerOutputStream);
    descriptor: (Lsun/security/util/DerOutputStream;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.pkcs.PKCS8Key this
        start local 1 // sun.security.util.DerOutputStream out
         0: .line 264
            aload 1 /* out */
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.key:[B
            invokestatic sun.security.pkcs.PKCS8Key.encode:(Lsun/security/util/DerOutputStream;Lsun/security/x509/AlgorithmId;[B)V
         1: .line 265
            return
        end local 1 // sun.security.util.DerOutputStream out
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/pkcs/PKCS8Key;
            0    2     1   out  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public synchronized byte[] getEncoded();
    descriptor: ()[B
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 271
            aconst_null
            astore 1 /* result */
        start local 1 // byte[] result
         1: .line 273
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.encode:()[B
            astore 1 /* result */
         2: .line 274
            goto 4
      StackMap locals: sun.security.pkcs.PKCS8Key byte[]
      StackMap stack: java.security.InvalidKeyException
         3: pop
         4: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // byte[] result
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lsun/security/pkcs/PKCS8Key;
            1    5     1  result  [B
      Exception table:
        from    to  target  type
           1     2       3  Class java.security.InvalidKeyException

  public java.lang.String getFormat();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 283
            ldc "PKCS#8"
            areturn
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/PKCS8Key;

  public byte[] encode();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 292
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.encodedKey:[B
            ifnonnull 9
         1: .line 296
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 1 /* out */
        start local 1 // sun.security.util.DerOutputStream out
         2: .line 297
            aload 0 /* this */
            aload 1 /* out */
            invokevirtual sun.security.pkcs.PKCS8Key.encode:(Lsun/security/util/DerOutputStream;)V
         3: .line 298
            aload 0 /* this */
            aload 1 /* out */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            putfield sun.security.pkcs.PKCS8Key.encodedKey:[B
        end local 1 // sun.security.util.DerOutputStream out
         4: .line 300
            goto 9
      StackMap locals:
      StackMap stack: java.io.IOException
         5: astore 1 /* e */
        start local 1 // java.io.IOException e
         6: .line 301
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "IOException : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 302
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 301
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
         9: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.encodedKey:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/pkcs/PKCS8Key;
            2    4     1   out  Lsun/security/util/DerOutputStream;
            6    9     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4       5  Class java.io.IOException
    Exceptions:
      throws java.security.InvalidKeyException

  public void decode(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.pkcs.PKCS8Key this
        start local 1 // java.io.InputStream in
         0: .line 329
            new sun.security.util.DerValue
            dup
            aload 1 /* in */
            invokespecial sun.security.util.DerValue.<init>:(Ljava/io/InputStream;)V
            astore 2 /* val */
        start local 2 // sun.security.util.DerValue val
         1: .line 330
            aload 2 /* val */
            getfield sun.security.util.DerValue.tag:B
            bipush 48
            if_icmpeq 3
         2: .line 331
            new java.security.InvalidKeyException
            dup
            ldc "invalid key format"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 334
      StackMap locals: sun.security.util.DerValue
      StackMap stack:
            aload 2 /* val */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getBigInteger:()Ljava/math/BigInteger;
            astore 3 /* version */
        start local 3 // java.math.BigInteger version
         4: .line 335
            aload 3 /* version */
            getstatic sun.security.pkcs.PKCS8Key.version:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 10
         5: .line 336
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "version mismatch: (supported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 337
            getstatic sun.security.pkcs.PKCS8Key.version:Ljava/math/BigInteger;
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 338
            ldc ", parsed: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 339
            aload 3 /* version */
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 336
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 341
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 0 /* this */
            aload 2 /* val */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            putfield sun.security.pkcs.PKCS8Key.algid:Lsun/security/x509/AlgorithmId;
        11: .line 342
            aload 0 /* this */
            aload 2 /* val */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            putfield sun.security.pkcs.PKCS8Key.key:[B
        12: .line 343
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.parseKeyBits:()V
        13: .line 345
            aload 2 /* val */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.available:()I
            pop
        end local 3 // java.math.BigInteger version
        14: .line 349
            goto 19
        end local 2 // sun.security.util.DerValue val
      StackMap locals: sun.security.pkcs.PKCS8Key java.io.InputStream
      StackMap stack: java.io.IOException
        15: astore 3 /* e */
        start local 3 // java.io.IOException e
        16: .line 350
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "IOException : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 351
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 350
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        start local 2 // sun.security.util.DerValue val
        19: .line 353
      StackMap locals: sun.security.util.DerValue
      StackMap stack:
            return
        end local 2 // sun.security.util.DerValue val
        end local 1 // java.io.InputStream in
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lsun/security/pkcs/PKCS8Key;
            0   20     1       in  Ljava/io/InputStream;
            1   15     2      val  Lsun/security/util/DerValue;
           19   20     2      val  Lsun/security/util/DerValue;
            4   14     3  version  Ljava/math/BigInteger;
           16   19     3        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    14      15  Class java.io.IOException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      in    

  public void decode(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.pkcs.PKCS8Key this
        start local 1 // byte[] encodedKey
         0: .line 356
            aload 0 /* this */
            new java.io.ByteArrayInputStream
            dup
            aload 1 /* encodedKey */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual sun.security.pkcs.PKCS8Key.decode:(Ljava/io/InputStream;)V
         1: .line 357
            return
        end local 1 // byte[] encodedKey
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/security/pkcs/PKCS8Key;
            0    2     1  encodedKey  [B
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      encodedKey  

  protected java.lang.Object writeReplace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 360
            new java.security.KeyRep
            dup
            getstatic java.security.KeyRep$Type.PRIVATE:Ljava/security/KeyRep$Type;
         1: .line 361
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.getAlgorithm:()Ljava/lang/String;
         2: .line 362
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.getFormat:()Ljava/lang/String;
         3: .line 363
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.getEncoded:()[B
         4: .line 360
            invokespecial java.security.KeyRep.<init>:(Ljava/security/KeyRep$Type;Ljava/lang/String;Ljava/lang/String;[B)V
            areturn
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/pkcs/PKCS8Key;
    Exceptions:
      throws java.io.ObjectStreamException

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.pkcs.PKCS8Key this
        start local 1 // java.io.ObjectInputStream stream
         0: .line 374
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual sun.security.pkcs.PKCS8Key.decode:(Ljava/io/InputStream;)V
         1: .line 376
            goto 7
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
         2: astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
         3: .line 377
            aload 2 /* e */
            invokevirtual java.security.InvalidKeyException.printStackTrace:()V
         4: .line 378
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "deserialized key is invalid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 379
            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;
         6: .line 378
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.InvalidKeyException e
         7: .line 381
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectInputStream stream
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/pkcs/PKCS8Key;
            0    8     1  stream  Ljava/io/ObjectInputStream;
            3    7     2       e  Ljava/security/InvalidKeyException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.InvalidKeyException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  static void encode(sun.security.util.DerOutputStream, sun.security.x509.AlgorithmId, byte[]);
    descriptor: (Lsun/security/util/DerOutputStream;Lsun/security/x509/AlgorithmId;[B)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.util.DerOutputStream out
        start local 1 // sun.security.x509.AlgorithmId algid
        start local 2 // byte[] key
         0: .line 388
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* tmp */
        start local 3 // sun.security.util.DerOutputStream tmp
         1: .line 389
            aload 3 /* tmp */
            getstatic sun.security.pkcs.PKCS8Key.version:Ljava/math/BigInteger;
            invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
         2: .line 390
            aload 1 /* algid */
            aload 3 /* tmp */
            invokevirtual sun.security.x509.AlgorithmId.encode:(Lsun/security/util/DerOutputStream;)V
         3: .line 391
            aload 3 /* tmp */
            aload 2 /* key */
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
         4: .line 392
            aload 0 /* out */
            bipush 48
            aload 3 /* tmp */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
         5: .line 393
            return
        end local 3 // sun.security.util.DerOutputStream tmp
        end local 2 // byte[] key
        end local 1 // sun.security.x509.AlgorithmId algid
        end local 0 // sun.security.util.DerOutputStream out
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0    out  Lsun/security/util/DerOutputStream;
            0    6     1  algid  Lsun/security/x509/AlgorithmId;
            0    6     2    key  [B
            1    6     3    tmp  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      out    
      algid  
      key    

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.security.pkcs.PKCS8Key this
        start local 1 // java.lang.Object object
         0: .line 406
            aload 0 /* this */
            aload 1 /* object */
            if_acmpne 2
         1: .line 407
            iconst_1
            ireturn
         2: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            instanceof java.security.Key
            ifeq 9
         3: .line 414
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.encodedKey:[B
            ifnull 6
         4: .line 415
            aload 0 /* this */
            getfield sun.security.pkcs.PKCS8Key.encodedKey:[B
            astore 2 /* b1 */
        start local 2 // byte[] b1
         5: .line 416
            goto 7
        end local 2 // byte[] b1
         6: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.getEncoded:()[B
            astore 2 /* b1 */
        start local 2 // byte[] b1
         7: .line 421
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* object */
            checkcast java.security.Key
            invokeinterface java.security.Key.getEncoded:()[B
            astore 3 /* b2 */
        start local 3 // byte[] b2
         8: .line 424
            aload 2 /* b1 */
            aload 3 /* b2 */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ireturn
        end local 3 // byte[] b2
        end local 2 // byte[] b1
         9: .line 426
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lsun/security/pkcs/PKCS8Key;
            0   10     1  object  Ljava/lang/Object;
            5    6     2      b1  [B
            7    9     2      b1  [B
            8    9     3      b2  [B
    MethodParameters:
        Name  Flags
      object  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.security.pkcs.PKCS8Key this
         0: .line 434
            iconst_0
            istore 1 /* retval */
        start local 1 // int retval
         1: .line 435
            aload 0 /* this */
            invokevirtual sun.security.pkcs.PKCS8Key.getEncoded:()[B
            astore 2 /* b1 */
        start local 2 // byte[] b1
         2: .line 437
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 438
      StackMap locals: int byte[] int
      StackMap stack:
            iload 1 /* retval */
            aload 2 /* b1 */
            iload 3 /* i */
            baload
            iload 3 /* i */
            imul
            iadd
            istore 1 /* retval */
         5: .line 437
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* b1 */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 440
            iload 1 /* retval */
            ireturn
        end local 2 // byte[] b1
        end local 1 // int retval
        end local 0 // sun.security.pkcs.PKCS8Key this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/pkcs/PKCS8Key;
            1    8     1  retval  I
            2    8     2      b1  [B
            3    7     3       i  I
}
SourceFile: "PKCS8Key.java"
InnerClasses:
  public final Type = java.security.KeyRep$Type of java.security.KeyRep