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