class org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter extends org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter
  super_class: org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter this
         0: .line 328
            aload 0 /* this */
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter.<init>:()V
            return
        end local 0 // org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/util/PublicKeyFactory$GOST3410_2001Converter;

  org.bouncycastle.crypto.params.AsymmetricKeyParameter getPublicKeyParameters(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo, java.lang.Object);
    descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;Ljava/lang/Object;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter this
        start local 1 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
        start local 2 // java.lang.Object defaultParams
         0: .line 333
            aload 1 /* keyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKeyData:()Lorg/bouncycastle/asn1/DERBitString;
            astore 3 /* bits */
        start local 3 // org.bouncycastle.asn1.DERBitString bits
         1: .line 338
            aload 3 /* bits */
            invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
            invokestatic org.bouncycastle.asn1.ASN1Primitive.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Primitive;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            astore 4 /* key */
        start local 4 // org.bouncycastle.asn1.ASN1OctetString key
         2: .line 339
            goto 5
        end local 4 // org.bouncycastle.asn1.ASN1OctetString key
         3: .line 340
      StackMap locals: org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter org.bouncycastle.asn1.x509.SubjectPublicKeyInfo java.lang.Object org.bouncycastle.asn1.DERBitString
      StackMap stack: java.io.IOException
            pop
         4: .line 342
            new java.lang.IllegalArgumentException
            dup
            ldc "error recovering public key"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // org.bouncycastle.asn1.ASN1OctetString key
         5: .line 345
      StackMap locals: org.bouncycastle.asn1.ASN1OctetString
      StackMap stack:
            aload 4 /* key */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            astore 5 /* keyEnc */
        start local 5 // byte[] keyEnc
         6: .line 347
            bipush 65
            newarray 8
            astore 6 /* x9Encoding */
        start local 6 // byte[] x9Encoding
         7: .line 348
            aload 6 /* x9Encoding */
            iconst_0
            iconst_4
            bastore
         8: .line 349
            iconst_1
            istore 7 /* i */
        start local 7 // int i
         9: goto 13
        10: .line 351
      StackMap locals: byte[] byte[] int
      StackMap stack:
            aload 6 /* x9Encoding */
            iload 7 /* i */
            aload 5 /* keyEnc */
            bipush 32
            iload 7 /* i */
            isub
            baload
            bastore
        11: .line 352
            aload 6 /* x9Encoding */
            iload 7 /* i */
            bipush 32
            iadd
            aload 5 /* keyEnc */
            bipush 64
            iload 7 /* i */
            isub
            baload
            bastore
        12: .line 349
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            bipush 32
            if_icmple 10
        end local 7 // int i
        14: .line 355
            aload 1 /* keyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cryptopro/GOST3410PublicKeyAlgParameters;
            astore 7 /* gostParams */
        start local 7 // org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters gostParams
        15: .line 358
            new org.bouncycastle.crypto.params.ECGOST3410Parameters
            dup
        16: .line 359
            new org.bouncycastle.crypto.params.ECNamedDomainParameters
            dup
            aload 7 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 7 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.asn1.cryptopro.ECGOST3410NamedCurves.getByOID:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/crypto/params/ECDomainParameters;
            invokespecial org.bouncycastle.crypto.params.ECNamedDomainParameters.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/crypto/params/ECDomainParameters;)V
        17: .line 360
            aload 7 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        18: .line 361
            aload 7 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getDigestParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        19: .line 362
            aload 7 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getEncryptionParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        20: .line 358
            invokespecial org.bouncycastle.crypto.params.ECGOST3410Parameters.<init>:(Lorg/bouncycastle/crypto/params/ECDomainParameters;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
        21: .line 357
            astore 8 /* ecDomainParameters */
        start local 8 // org.bouncycastle.crypto.params.ECGOST3410Parameters ecDomainParameters
        22: .line 365
            new org.bouncycastle.crypto.params.ECPublicKeyParameters
            dup
            aload 8 /* ecDomainParameters */
            invokevirtual org.bouncycastle.crypto.params.ECGOST3410Parameters.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 6 /* x9Encoding */
            invokevirtual org.bouncycastle.math.ec.ECCurve.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
            aload 8 /* ecDomainParameters */
            invokespecial org.bouncycastle.crypto.params.ECPublicKeyParameters.<init>:(Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/crypto/params/ECDomainParameters;)V
            areturn
        end local 8 // org.bouncycastle.crypto.params.ECGOST3410Parameters ecDomainParameters
        end local 7 // org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters gostParams
        end local 6 // byte[] x9Encoding
        end local 5 // byte[] keyEnc
        end local 4 // org.bouncycastle.asn1.ASN1OctetString key
        end local 3 // org.bouncycastle.asn1.DERBitString bits
        end local 2 // java.lang.Object defaultParams
        end local 1 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
        end local 0 // org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   23     0                this  Lorg/bouncycastle/crypto/util/PublicKeyFactory$GOST3410_2001Converter;
            0   23     1             keyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            0   23     2       defaultParams  Ljava/lang/Object;
            1   23     3                bits  Lorg/bouncycastle/asn1/DERBitString;
            2    3     4                 key  Lorg/bouncycastle/asn1/ASN1OctetString;
            5   23     4                 key  Lorg/bouncycastle/asn1/ASN1OctetString;
            6   23     5              keyEnc  [B
            7   23     6          x9Encoding  [B
            9   14     7                   i  I
           15   23     7          gostParams  Lorg/bouncycastle/asn1/cryptopro/GOST3410PublicKeyAlgParameters;
           22   23     8  ecDomainParameters  Lorg/bouncycastle/crypto/params/ECGOST3410Parameters;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    MethodParameters:
               Name  Flags
      keyInfo        
      defaultParams  
}
SourceFile: "PublicKeyFactory.java"
NestHost: org.bouncycastle.crypto.util.PublicKeyFactory
InnerClasses:
  private GOST3410_2001Converter = org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private abstract SubjectPublicKeyInfoConverter = org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter of org.bouncycastle.crypto.util.PublicKeyFactory