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