public final class sun.security.ec.ECPrivateKeyImpl extends sun.security.pkcs.PKCS8Key implements java.security.interfaces.ECPrivateKey
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.ec.ECPrivateKeyImpl
  super_class: sun.security.pkcs.PKCS8Key
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 88695385615075129

  private java.math.BigInteger s;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE

  private java.security.spec.ECParameterSpec params;
    descriptor: Ljava/security/spec/ECParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ec.ECPrivateKeyImpl this
        start local 1 // byte[] encoded
         0: .line 76
            aload 0 /* this */
            invokespecial sun.security.pkcs.PKCS8Key.<init>:()V
         1: .line 77
            aload 0 /* this */
            aload 1 /* encoded */
            invokevirtual sun.security.ec.ECPrivateKeyImpl.decode:([B)V
         2: .line 78
            return
        end local 1 // byte[] encoded
        end local 0 // sun.security.ec.ECPrivateKeyImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lsun/security/ec/ECPrivateKeyImpl;
            0    3     1  encoded  [B
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
         Name  Flags
      encoded  

  void <init>(java.math.BigInteger, java.security.spec.ECParameterSpec);
    descriptor: (Ljava/math/BigInteger;Ljava/security/spec/ECParameterSpec;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.security.ec.ECPrivateKeyImpl this
        start local 1 // java.math.BigInteger s
        start local 2 // java.security.spec.ECParameterSpec params
         0: .line 84
            aload 0 /* this */
            invokespecial sun.security.pkcs.PKCS8Key.<init>:()V
         1: .line 86
            aload 0 /* this */
            aload 1 /* s */
            putfield sun.security.ec.ECPrivateKeyImpl.s:Ljava/math/BigInteger;
         2: .line 87
            aload 0 /* this */
            aload 2 /* params */
            putfield sun.security.ec.ECPrivateKeyImpl.params:Ljava/security/spec/ECParameterSpec;
         3: .line 89
            aload 0 /* this */
            new sun.security.x509.AlgorithmId
            dup
         4: .line 90
            getstatic sun.security.x509.AlgorithmId.EC_oid:Lsun/security/util/ObjectIdentifier;
            aload 2 /* params */
            invokestatic sun.security.util.ECParameters.getAlgorithmParameters:(Ljava/security/spec/ECParameterSpec;)Ljava/security/AlgorithmParameters;
            invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;Ljava/security/AlgorithmParameters;)V
         5: .line 89
            putfield sun.security.ec.ECPrivateKeyImpl.algid:Lsun/security/x509/AlgorithmId;
         6: .line 92
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* out */
        start local 3 // sun.security.util.DerOutputStream out
         7: .line 93
            aload 3 /* out */
            iconst_1
            invokevirtual sun.security.util.DerOutputStream.putInteger:(I)V
         8: .line 94
            aload 1 /* s */
            invokevirtual java.math.BigInteger.toByteArray:()[B
            invokestatic sun.security.util.ECUtil.trimZeroes:([B)[B
            astore 4 /* privBytes */
        start local 4 // byte[] privBytes
         9: .line 95
            aload 3 /* out */
            aload 4 /* privBytes */
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        10: .line 97
            new sun.security.util.DerValue
            dup
            bipush 48
            aload 3 /* out */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            invokespecial sun.security.util.DerValue.<init>:(B[B)V
        11: .line 96
            astore 5 /* val */
        start local 5 // sun.security.util.DerValue val
        12: .line 98
            aload 0 /* this */
            aload 5 /* val */
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            putfield sun.security.ec.ECPrivateKeyImpl.key:[B
        end local 5 // sun.security.util.DerValue val
        end local 4 // byte[] privBytes
        end local 3 // sun.security.util.DerOutputStream out
        13: .line 99
            goto 16
      StackMap locals: sun.security.ec.ECPrivateKeyImpl java.math.BigInteger java.security.spec.ECParameterSpec
      StackMap stack: java.io.IOException
        14: astore 3 /* exc */
        start local 3 // java.io.IOException exc
        15: .line 101
            new java.security.InvalidKeyException
            dup
            aload 3 /* exc */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException exc
        16: .line 103
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.security.spec.ECParameterSpec params
        end local 1 // java.math.BigInteger s
        end local 0 // sun.security.ec.ECPrivateKeyImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lsun/security/ec/ECPrivateKeyImpl;
            0   17     1          s  Ljava/math/BigInteger;
            0   17     2     params  Ljava/security/spec/ECParameterSpec;
            7   13     3        out  Lsun/security/util/DerOutputStream;
            9   13     4  privBytes  [B
           12   13     5        val  Lsun/security/util/DerValue;
           15   16     3        exc  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    13      14  Class java.io.IOException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      s       
      params  

  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.ec.ECPrivateKeyImpl this
         0: .line 107
            ldc "EC"
            areturn
        end local 0 // sun.security.ec.ECPrivateKeyImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ECPrivateKeyImpl;

  public java.math.BigInteger getS();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.ECPrivateKeyImpl this
         0: .line 112
            aload 0 /* this */
            getfield sun.security.ec.ECPrivateKeyImpl.s:Ljava/math/BigInteger;
            areturn
        end local 0 // sun.security.ec.ECPrivateKeyImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ECPrivateKeyImpl;

  public java.security.spec.ECParameterSpec getParams();
    descriptor: ()Ljava/security/spec/ECParameterSpec;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.ECPrivateKeyImpl this
         0: .line 117
            aload 0 /* this */
            getfield sun.security.ec.ECPrivateKeyImpl.params:Ljava/security/spec/ECParameterSpec;
            areturn
        end local 0 // sun.security.ec.ECPrivateKeyImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ECPrivateKeyImpl;

  protected void parseKeyBits();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // sun.security.ec.ECPrivateKeyImpl this
         0: .line 125
            new sun.security.util.DerInputStream
            dup
            aload 0 /* this */
            getfield sun.security.ec.ECPrivateKeyImpl.key:[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 1 /* in */
        start local 1 // sun.security.util.DerInputStream in
         1: .line 126
            aload 1 /* in */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 2 /* derValue */
        start local 2 // sun.security.util.DerValue derValue
         2: .line 127
            aload 2 /* derValue */
            getfield sun.security.util.DerValue.tag:B
            bipush 48
            if_icmpeq 4
         3: .line 128
            new java.io.IOException
            dup
            ldc "Not a SEQUENCE"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 130
      StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue
      StackMap stack:
            aload 2 /* derValue */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            astore 3 /* data */
        start local 3 // sun.security.util.DerInputStream data
         5: .line 131
            aload 3 /* data */
            invokevirtual sun.security.util.DerInputStream.getInteger:()I
            istore 4 /* version */
        start local 4 // int version
         6: .line 132
            iload 4 /* version */
            iconst_1
            if_icmpeq 8
         7: .line 133
            new java.io.IOException
            dup
            ldc "Version must be 1"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 135
      StackMap locals: sun.security.util.DerInputStream int
      StackMap stack:
            aload 3 /* data */
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            astore 5 /* privData */
        start local 5 // byte[] privData
         9: .line 136
            aload 0 /* this */
            new java.math.BigInteger
            dup
            iconst_1
            aload 5 /* privData */
            invokespecial java.math.BigInteger.<init>:(I[B)V
            putfield sun.security.ec.ECPrivateKeyImpl.s:Ljava/math/BigInteger;
        10: .line 137
            goto 15
        11: .line 138
      StackMap locals: byte[]
      StackMap stack:
            aload 3 /* data */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 6 /* value */
        start local 6 // sun.security.util.DerValue value
        12: .line 139
            aload 6 /* value */
            iconst_0
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifne 15
        13: .line 141
            aload 6 /* value */
            iconst_1
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifne 15
        14: .line 144
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected value: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // sun.security.util.DerValue value
        15: .line 137
      StackMap locals:
      StackMap stack:
            aload 3 /* data */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifne 11
        16: .line 147
            aload 0 /* this */
            getfield sun.security.ec.ECPrivateKeyImpl.algid:Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getParameters:()Ljava/security/AlgorithmParameters;
            astore 6 /* algParams */
        start local 6 // java.security.AlgorithmParameters algParams
        17: .line 148
            aload 6 /* algParams */
            ifnonnull 19
        18: .line 149
            new java.security.InvalidKeyException
            dup
            ldc "EC domain parameters must be encoded in the algorithm identifier"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 152
      StackMap locals: java.security.AlgorithmParameters
      StackMap stack:
            aload 0 /* this */
            aload 6 /* algParams */
            ldc Ljava/security/spec/ECParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            checkcast java.security.spec.ECParameterSpec
            putfield sun.security.ec.ECPrivateKeyImpl.params:Ljava/security/spec/ECParameterSpec;
        end local 6 // java.security.AlgorithmParameters algParams
        end local 5 // byte[] privData
        end local 4 // int version
        end local 3 // sun.security.util.DerInputStream data
        end local 2 // sun.security.util.DerValue derValue
        end local 1 // sun.security.util.DerInputStream in
        20: .line 153
            goto 25
      StackMap locals: sun.security.ec.ECPrivateKeyImpl
      StackMap stack: java.io.IOException
        21: astore 1 /* e */
        start local 1 // java.io.IOException e
        22: .line 154
            new java.security.InvalidKeyException
            dup
            ldc "Invalid EC private key"
            aload 1 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        23: .line 155
      StackMap locals:
      StackMap stack: java.security.spec.InvalidParameterSpecException
            astore 1 /* e */
        start local 1 // java.security.spec.InvalidParameterSpecException e
        24: .line 156
            new java.security.InvalidKeyException
            dup
            ldc "Invalid EC private key"
            aload 1 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.security.spec.InvalidParameterSpecException e
        25: .line 158
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ec.ECPrivateKeyImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lsun/security/ec/ECPrivateKeyImpl;
            1   20     1         in  Lsun/security/util/DerInputStream;
            2   20     2   derValue  Lsun/security/util/DerValue;
            5   20     3       data  Lsun/security/util/DerInputStream;
            6   20     4    version  I
            9   20     5   privData  [B
           12   15     6      value  Lsun/security/util/DerValue;
           17   20     6  algParams  Ljava/security/AlgorithmParameters;
           22   23     1          e  Ljava/io/IOException;
           24   25     1          e  Ljava/security/spec/InvalidParameterSpecException;
      Exception table:
        from    to  target  type
           0    20      21  Class java.io.IOException
           0    20      23  Class java.security.spec.InvalidParameterSpecException
    Exceptions:
      throws java.security.InvalidKeyException
}
SourceFile: "ECPrivateKeyImpl.java"