public class org.bouncycastle.jce.ECKeyUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.ECKeyUtil
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.ECKeyUtil this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.jce.ECKeyUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/ECKeyUtil;

  public static java.security.PublicKey publicToExplicitParameters(java.security.PublicKey, java.lang.String);
    descriptor: (Ljava/security/PublicKey;Ljava/lang/String;)Ljava/security/PublicKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.security.PublicKey key
        start local 1 // java.lang.String providerName
         0: .line 47
            aload 1 /* providerName */
            invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
            astore 2 /* provider */
        start local 2 // java.security.Provider provider
         1: .line 49
            aload 2 /* provider */
            ifnonnull 3
         2: .line 51
            new java.security.NoSuchProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot find provider: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* providerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 54
      StackMap locals: java.security.Provider
      StackMap stack:
            aload 0 /* key */
            aload 2 /* provider */
            invokestatic org.bouncycastle.jce.ECKeyUtil.publicToExplicitParameters:(Ljava/security/PublicKey;Ljava/security/Provider;)Ljava/security/PublicKey;
            areturn
        end local 2 // java.security.Provider provider
        end local 1 // java.lang.String providerName
        end local 0 // java.security.PublicKey key
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0           key  Ljava/security/PublicKey;
            0    4     1  providerName  Ljava/lang/String;
            1    4     2      provider  Ljava/security/Provider;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    MethodParameters:
              Name  Flags
      key           
      providerName  

  public static java.security.PublicKey publicToExplicitParameters(java.security.PublicKey, java.security.Provider);
    descriptor: (Ljava/security/PublicKey;Ljava/security/Provider;)Ljava/security/PublicKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.security.PublicKey key
        start local 1 // java.security.Provider provider
         0: .line 72
            aload 0 /* key */
            invokeinterface java.security.PublicKey.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            astore 2 /* info */
        start local 2 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo info
         1: .line 74
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 76
            new java.lang.IllegalArgumentException
            dup
            ldc "cannot convert GOST key to explicit parameters."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 80
      StackMap locals: org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
      StackMap stack:
            new org.bouncycastle.asn1.x9.X962Parameters
            dup
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObject
            invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/DERObject;)V
            astore 3 /* params */
        start local 3 // org.bouncycastle.asn1.x9.X962Parameters params
         4: .line 83
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.isNamedCurve:()Z
            ifeq 9
         5: .line 85
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.getParameters:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 5 /* oid */
        start local 5 // org.bouncycastle.asn1.DERObjectIdentifier oid
         6: .line 87
            aload 5 /* oid */
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.ECUtil.getNamedCurveByOid:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x9/X9ECParameters;
            astore 4 /* curveParams */
        start local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
         7: .line 89
            new org.bouncycastle.asn1.x9.X9ECParameters
            dup
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getN:()Ljava/math/BigInteger;
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getH:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.x9.X9ECParameters.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 4 /* curveParams */
        end local 5 // org.bouncycastle.asn1.DERObjectIdentifier oid
         8: .line 90
            goto 14
        end local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
         9: .line 91
      StackMap locals: org.bouncycastle.asn1.x9.X962Parameters
      StackMap stack:
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.isImplicitlyCA:()Z
            ifeq 12
        10: .line 93
            new org.bouncycastle.asn1.x9.X9ECParameters
            dup
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getN:()Ljava/math/BigInteger;
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getH:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.x9.X9ECParameters.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 4 /* curveParams */
        start local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        11: .line 94
            goto 14
        end local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        12: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
        13: areturn
        start local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        14: .line 100
      StackMap locals: org.bouncycastle.asn1.x9.X9ECParameters
      StackMap stack:
            new org.bouncycastle.asn1.x9.X962Parameters
            dup
            aload 4 /* curveParams */
            invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/x9/X9ECParameters;)V
            astore 3 /* params */
        15: .line 102
            new org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
            dup
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKeyData:()Lorg/bouncycastle/asn1/DERBitString;
            invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
            invokespecial org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
            astore 2 /* info */
        16: .line 104
            aload 0 /* key */
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            aload 1 /* provider */
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;
            astore 5 /* keyFact */
        start local 5 // java.security.KeyFactory keyFact
        17: .line 106
            aload 5 /* keyFact */
            new java.security.spec.X509EncodedKeySpec
            dup
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
        18: areturn
        end local 5 // java.security.KeyFactory keyFact
        end local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        end local 3 // org.bouncycastle.asn1.x9.X962Parameters params
        end local 2 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo info
        19: .line 109
      StackMap locals: java.security.PublicKey java.security.Provider
      StackMap stack: java.lang.IllegalArgumentException
            astore 2 /* e */
        start local 2 // java.lang.IllegalArgumentException e
        20: .line 111
            aload 2 /* e */
            athrow
        end local 2 // java.lang.IllegalArgumentException e
        21: .line 113
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 2 /* e */
        start local 2 // java.security.NoSuchAlgorithmException e
        22: .line 115
            aload 2 /* e */
            athrow
        end local 2 // java.security.NoSuchAlgorithmException e
        23: .line 117
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        24: .line 119
            new org.bouncycastle.jce.ECKeyUtil$UnexpectedException
            dup
            aload 2 /* e */
            invokespecial org.bouncycastle.jce.ECKeyUtil$UnexpectedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.security.Provider provider
        end local 0 // java.security.PublicKey key
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0          key  Ljava/security/PublicKey;
            0   25     1     provider  Ljava/security/Provider;
            1   19     2         info  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            4   19     3       params  Lorg/bouncycastle/asn1/x9/X962Parameters;
            7    9     4  curveParams  Lorg/bouncycastle/asn1/x9/X9ECParameters;
           11   12     4  curveParams  Lorg/bouncycastle/asn1/x9/X9ECParameters;
           14   19     4  curveParams  Lorg/bouncycastle/asn1/x9/X9ECParameters;
            6    8     5          oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           17   19     5      keyFact  Ljava/security/KeyFactory;
           20   21     2            e  Ljava/lang/IllegalArgumentException;
           22   23     2            e  Ljava/security/NoSuchAlgorithmException;
           24   25     2            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    13      19  Class java.lang.IllegalArgumentException
          14    18      19  Class java.lang.IllegalArgumentException
           0    13      21  Class java.security.NoSuchAlgorithmException
          14    18      21  Class java.security.NoSuchAlgorithmException
           0    13      23  Class java.lang.Exception
          14    18      23  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException, java.security.NoSuchAlgorithmException
    MethodParameters:
          Name  Flags
      key       
      provider  

  public static java.security.PrivateKey privateToExplicitParameters(java.security.PrivateKey, java.lang.String);
    descriptor: (Ljava/security/PrivateKey;Ljava/lang/String;)Ljava/security/PrivateKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.security.PrivateKey key
        start local 1 // java.lang.String providerName
         0: .line 137
            aload 1 /* providerName */
            invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
            astore 2 /* provider */
        start local 2 // java.security.Provider provider
         1: .line 139
            aload 2 /* provider */
            ifnonnull 3
         2: .line 141
            new java.security.NoSuchProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot find provider: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* providerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 144
      StackMap locals: java.security.Provider
      StackMap stack:
            aload 0 /* key */
            aload 2 /* provider */
            invokestatic org.bouncycastle.jce.ECKeyUtil.privateToExplicitParameters:(Ljava/security/PrivateKey;Ljava/security/Provider;)Ljava/security/PrivateKey;
            areturn
        end local 2 // java.security.Provider provider
        end local 1 // java.lang.String providerName
        end local 0 // java.security.PrivateKey key
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0           key  Ljava/security/PrivateKey;
            0    4     1  providerName  Ljava/lang/String;
            1    4     2      provider  Ljava/security/Provider;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    MethodParameters:
              Name  Flags
      key           
      providerName  

  public static java.security.PrivateKey privateToExplicitParameters(java.security.PrivateKey, java.security.Provider);
    descriptor: (Ljava/security/PrivateKey;Ljava/security/Provider;)Ljava/security/PrivateKey;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.security.PrivateKey key
        start local 1 // java.security.Provider provider
         0: .line 162
            aload 0 /* key */
            invokeinterface java.security.PrivateKey.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            astore 2 /* info */
        start local 2 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo info
         1: .line 164
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 166
            new java.io.UnsupportedEncodingException
            dup
            ldc "cannot convert GOST key to explicit parameters."
            invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 170
      StackMap locals: org.bouncycastle.asn1.pkcs.PrivateKeyInfo
      StackMap stack:
            new org.bouncycastle.asn1.x9.X962Parameters
            dup
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObject
            invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/DERObject;)V
            astore 3 /* params */
        start local 3 // org.bouncycastle.asn1.x9.X962Parameters params
         4: .line 173
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.isNamedCurve:()Z
            ifeq 9
         5: .line 175
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.getParameters:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 5 /* oid */
        start local 5 // org.bouncycastle.asn1.DERObjectIdentifier oid
         6: .line 177
            aload 5 /* oid */
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.ECUtil.getNamedCurveByOid:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x9/X9ECParameters;
            astore 4 /* curveParams */
        start local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
         7: .line 179
            new org.bouncycastle.asn1.x9.X9ECParameters
            dup
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getN:()Ljava/math/BigInteger;
            aload 4 /* curveParams */
            invokevirtual org.bouncycastle.asn1.x9.X9ECParameters.getH:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.x9.X9ECParameters.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 4 /* curveParams */
        end local 5 // org.bouncycastle.asn1.DERObjectIdentifier oid
         8: .line 180
            goto 14
        end local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
         9: .line 181
      StackMap locals: org.bouncycastle.asn1.x9.X962Parameters
      StackMap stack:
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.isImplicitlyCA:()Z
            ifeq 12
        10: .line 183
            new org.bouncycastle.asn1.x9.X9ECParameters
            dup
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getN:()Ljava/math/BigInteger;
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getH:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.x9.X9ECParameters.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 4 /* curveParams */
        start local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        11: .line 184
            goto 14
        end local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        12: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
        13: areturn
        start local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        14: .line 190
      StackMap locals: org.bouncycastle.asn1.x9.X9ECParameters
      StackMap stack:
            new org.bouncycastle.asn1.x9.X962Parameters
            dup
            aload 4 /* curveParams */
            invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/x9/X9ECParameters;)V
            astore 3 /* params */
        15: .line 192
            new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
            dup
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 3 /* params */
            invokevirtual org.bouncycastle.asn1.x9.X962Parameters.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKey:()Lorg/bouncycastle/asn1/DERObject;
            invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/DERObject;)V
            astore 2 /* info */
        16: .line 194
            aload 0 /* key */
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            aload 1 /* provider */
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;
            astore 5 /* keyFact */
        start local 5 // java.security.KeyFactory keyFact
        17: .line 196
            aload 5 /* keyFact */
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        18: areturn
        end local 5 // java.security.KeyFactory keyFact
        end local 4 // org.bouncycastle.asn1.x9.X9ECParameters curveParams
        end local 3 // org.bouncycastle.asn1.x9.X962Parameters params
        end local 2 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo info
        19: .line 199
      StackMap locals: java.security.PrivateKey java.security.Provider
      StackMap stack: java.lang.IllegalArgumentException
            astore 2 /* e */
        start local 2 // java.lang.IllegalArgumentException e
        20: .line 201
            aload 2 /* e */
            athrow
        end local 2 // java.lang.IllegalArgumentException e
        21: .line 203
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 2 /* e */
        start local 2 // java.security.NoSuchAlgorithmException e
        22: .line 205
            aload 2 /* e */
            athrow
        end local 2 // java.security.NoSuchAlgorithmException e
        23: .line 207
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        24: .line 209
            new org.bouncycastle.jce.ECKeyUtil$UnexpectedException
            dup
            aload 2 /* e */
            invokespecial org.bouncycastle.jce.ECKeyUtil$UnexpectedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.security.Provider provider
        end local 0 // java.security.PrivateKey key
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0          key  Ljava/security/PrivateKey;
            0   25     1     provider  Ljava/security/Provider;
            1   19     2         info  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            4   19     3       params  Lorg/bouncycastle/asn1/x9/X962Parameters;
            7    9     4  curveParams  Lorg/bouncycastle/asn1/x9/X9ECParameters;
           11   12     4  curveParams  Lorg/bouncycastle/asn1/x9/X9ECParameters;
           14   19     4  curveParams  Lorg/bouncycastle/asn1/x9/X9ECParameters;
            6    8     5          oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           17   19     5      keyFact  Ljava/security/KeyFactory;
           20   21     2            e  Ljava/lang/IllegalArgumentException;
           22   23     2            e  Ljava/security/NoSuchAlgorithmException;
           24   25     2            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    13      19  Class java.lang.IllegalArgumentException
          14    18      19  Class java.lang.IllegalArgumentException
           0    13      21  Class java.security.NoSuchAlgorithmException
          14    18      21  Class java.security.NoSuchAlgorithmException
           0    13      23  Class java.lang.Exception
          14    18      23  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException, java.security.NoSuchAlgorithmException
    MethodParameters:
          Name  Flags
      key       
      provider  
}
SourceFile: "ECKeyUtil.java"
NestMembers:
  org.bouncycastle.jce.ECKeyUtil$UnexpectedException
InnerClasses:
  private UnexpectedException = org.bouncycastle.jce.ECKeyUtil$UnexpectedException of org.bouncycastle.jce.ECKeyUtil