class org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter 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_2012Converter
  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_2012Converter this
         0: .line 370
            aload 0 /* this */
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter.<init>:()V
            return
        end local 0 // org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/util/PublicKeyFactory$GOST3410_2012Converter;

  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=12, args_size=3
        start local 0 // org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter this
        start local 1 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
        start local 2 // java.lang.Object defaultParams
         0: .line 375
            aload 1 /* keyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            astore 3 /* algOid */
        start local 3 // org.bouncycastle.asn1.ASN1ObjectIdentifier algOid
         1: .line 376
            aload 1 /* keyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKeyData:()Lorg/bouncycastle/asn1/DERBitString;
            astore 4 /* bits */
        start local 4 // org.bouncycastle.asn1.DERBitString bits
         2: .line 381
            aload 4 /* 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 5 /* key */
        start local 5 // org.bouncycastle.asn1.ASN1OctetString key
         3: .line 382
            goto 6
        end local 5 // org.bouncycastle.asn1.ASN1OctetString key
         4: .line 383
      StackMap locals: org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter org.bouncycastle.asn1.x509.SubjectPublicKeyInfo java.lang.Object org.bouncycastle.asn1.ASN1ObjectIdentifier org.bouncycastle.asn1.DERBitString
      StackMap stack: java.io.IOException
            pop
         5: .line 385
            new java.lang.IllegalArgumentException
            dup
            ldc "error recovering public key"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // org.bouncycastle.asn1.ASN1OctetString key
         6: .line 388
      StackMap locals: org.bouncycastle.asn1.ASN1OctetString
      StackMap stack:
            aload 5 /* key */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            astore 6 /* keyEnc */
        start local 6 // byte[] keyEnc
         7: .line 390
            bipush 32
            istore 7 /* fieldSize */
        start local 7 // int fieldSize
         8: .line 391
            aload 3 /* algOid */
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 393
            bipush 64
            istore 7 /* fieldSize */
        10: .line 396
      StackMap locals: byte[] int
      StackMap stack:
            iconst_2
            iload 7 /* fieldSize */
            imul
            istore 8 /* keySize */
        start local 8 // int keySize
        11: .line 398
            iconst_1
            iload 8 /* keySize */
            iadd
            newarray 8
            astore 9 /* x9Encoding */
        start local 9 // byte[] x9Encoding
        12: .line 399
            aload 9 /* x9Encoding */
            iconst_0
            iconst_4
            bastore
        13: .line 400
            iconst_1
            istore 10 /* i */
        start local 10 // int i
        14: goto 18
        15: .line 402
      StackMap locals: int byte[] int
      StackMap stack:
            aload 9 /* x9Encoding */
            iload 10 /* i */
            aload 6 /* keyEnc */
            iload 7 /* fieldSize */
            iload 10 /* i */
            isub
            baload
            bastore
        16: .line 403
            aload 9 /* x9Encoding */
            iload 10 /* i */
            iload 7 /* fieldSize */
            iadd
            aload 6 /* keyEnc */
            iload 8 /* keySize */
            iload 10 /* i */
            isub
            baload
            bastore
        17: .line 400
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 10 /* i */
            iload 7 /* fieldSize */
            if_icmple 15
        end local 10 // int i
        19: .line 406
            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 10 /* gostParams */
        start local 10 // org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters gostParams
        20: .line 409
            new org.bouncycastle.crypto.params.ECGOST3410Parameters
            dup
        21: .line 410
            new org.bouncycastle.crypto.params.ECNamedDomainParameters
            dup
            aload 10 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 10 /* 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
        22: .line 411
            aload 10 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        23: .line 412
            aload 10 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getDigestParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        24: .line 413
            aload 10 /* gostParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getEncryptionParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        25: .line 409
            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
        26: .line 408
            astore 11 /* ecDomainParameters */
        start local 11 // org.bouncycastle.crypto.params.ECGOST3410Parameters ecDomainParameters
        27: .line 416
            new org.bouncycastle.crypto.params.ECPublicKeyParameters
            dup
            aload 11 /* ecDomainParameters */
            invokevirtual org.bouncycastle.crypto.params.ECGOST3410Parameters.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 9 /* x9Encoding */
            invokevirtual org.bouncycastle.math.ec.ECCurve.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
            aload 11 /* ecDomainParameters */
            invokespecial org.bouncycastle.crypto.params.ECPublicKeyParameters.<init>:(Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/crypto/params/ECDomainParameters;)V
            areturn
        end local 11 // org.bouncycastle.crypto.params.ECGOST3410Parameters ecDomainParameters
        end local 10 // org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters gostParams
        end local 9 // byte[] x9Encoding
        end local 8 // int keySize
        end local 7 // int fieldSize
        end local 6 // byte[] keyEnc
        end local 5 // org.bouncycastle.asn1.ASN1OctetString key
        end local 4 // org.bouncycastle.asn1.DERBitString bits
        end local 3 // org.bouncycastle.asn1.ASN1ObjectIdentifier algOid
        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_2012Converter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   28     0                this  Lorg/bouncycastle/crypto/util/PublicKeyFactory$GOST3410_2012Converter;
            0   28     1             keyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            0   28     2       defaultParams  Ljava/lang/Object;
            1   28     3              algOid  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            2   28     4                bits  Lorg/bouncycastle/asn1/DERBitString;
            3    4     5                 key  Lorg/bouncycastle/asn1/ASN1OctetString;
            6   28     5                 key  Lorg/bouncycastle/asn1/ASN1OctetString;
            7   28     6              keyEnc  [B
            8   28     7           fieldSize  I
           11   28     8             keySize  I
           12   28     9          x9Encoding  [B
           14   19    10                   i  I
           20   28    10          gostParams  Lorg/bouncycastle/asn1/cryptopro/GOST3410PublicKeyAlgParameters;
           27   28    11  ecDomainParameters  Lorg/bouncycastle/crypto/params/ECGOST3410Parameters;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
    MethodParameters:
               Name  Flags
      keyInfo        
      defaultParams  
}
SourceFile: "PublicKeyFactory.java"
NestHost: org.bouncycastle.crypto.util.PublicKeyFactory
InnerClasses:
  private GOST3410_2012Converter = org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private abstract SubjectPublicKeyInfoConverter = org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter of org.bouncycastle.crypto.util.PublicKeyFactory