public class org.bouncycastle.crypto.util.PrivateKeyInfoFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.util.PrivateKeyInfoFactory
super_class: java.lang.Object
{
private static java.util.Set cryptoProOids;
descriptor: Ljava/util/Set;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.HashSet
dup
iconst_5
invokespecial java.util.HashSet.<init>:(I)V
putstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
1: getstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001_CryptoPro_A:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: getstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001_CryptoPro_B:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: getstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001_CryptoPro_C:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: getstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001_CryptoPro_XchA:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: getstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001_CryptoPro_XchB:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/util/PrivateKeyInfoFactory;
public static org.bouncycastle.asn1.pkcs.PrivateKeyInfo createPrivateKeyInfo(org.bouncycastle.crypto.params.AsymmetricKeyParameter);
descriptor: (Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokestatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.createPrivateKeyInfo:(Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;Lorg/bouncycastle/asn1/ASN1Set;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 privateKey Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
privateKey
public static org.bouncycastle.asn1.pkcs.PrivateKeyInfo createPrivateKeyInfo(org.bouncycastle.crypto.params.AsymmetricKeyParameter, org.bouncycastle.asn1.ASN1Set);
descriptor: (Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;Lorg/bouncycastle/asn1/ASN1Set;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=13, locals=10, args_size=2
start local 0 start local 1 0: aload 0
instanceof org.bouncycastle.crypto.params.RSAKeyParameters
ifeq 6
1: aload 0
checkcast org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters
astore 2
start local 2 2: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.rsaEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
3: new org.bouncycastle.asn1.pkcs.RSAPrivateKey
dup
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getModulus:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getPublicExponent:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getExponent:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getP:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getQ:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getDP:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getDQ:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters.getQInv:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.asn1.pkcs.RSAPrivateKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
4: aload 1
5: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;)V
areturn
end local 2 6: StackMap locals:
StackMap stack:
aload 0
instanceof org.bouncycastle.crypto.params.DSAPrivateKeyParameters
ifeq 13
7: aload 0
checkcast org.bouncycastle.crypto.params.DSAPrivateKeyParameters
astore 2
start local 2 8: aload 2
invokevirtual org.bouncycastle.crypto.params.DSAPrivateKeyParameters.getParameters:()Lorg/bouncycastle/crypto/params/DSAParameters;
astore 3
start local 3 9: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_dsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
10: new org.bouncycastle.asn1.x509.DSAParameter
dup
aload 3
invokevirtual org.bouncycastle.crypto.params.DSAParameters.getP:()Ljava/math/BigInteger;
aload 3
invokevirtual org.bouncycastle.crypto.params.DSAParameters.getQ:()Ljava/math/BigInteger;
aload 3
invokevirtual org.bouncycastle.crypto.params.DSAParameters.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.asn1.x509.DSAParameter.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
new org.bouncycastle.asn1.ASN1Integer
dup
aload 2
invokevirtual org.bouncycastle.crypto.params.DSAPrivateKeyParameters.getX:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(Ljava/math/BigInteger;)V
11: aload 1
12: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;)V
areturn
end local 3 end local 2 13: StackMap locals:
StackMap stack:
aload 0
instanceof org.bouncycastle.crypto.params.ECPrivateKeyParameters
ifeq 62
14: aload 0
checkcast org.bouncycastle.crypto.params.ECPrivateKeyParameters
astore 2
start local 2 15: aload 2
invokevirtual org.bouncycastle.crypto.params.ECPrivateKeyParameters.getParameters:()Lorg/bouncycastle/crypto/params/ECDomainParameters;
astore 3
start local 3 16: aload 3
ifnonnull 20
17: new org.bouncycastle.asn1.x9.X962Parameters
dup
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/ASN1Null;)V
astore 4
start local 4 18: aload 2
invokevirtual org.bouncycastle.crypto.params.ECPrivateKeyParameters.getD:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 5
start local 5 19: goto 56
end local 5 end local 4 20: StackMap locals: org.bouncycastle.crypto.params.ECPrivateKeyParameters org.bouncycastle.crypto.params.ECDomainParameters
StackMap stack:
aload 3
instanceof org.bouncycastle.crypto.params.ECGOST3410Parameters
ifeq 43
21: new org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters
dup
22: aload 3
checkcast org.bouncycastle.crypto.params.ECGOST3410Parameters
invokevirtual org.bouncycastle.crypto.params.ECGOST3410Parameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
23: aload 3
checkcast org.bouncycastle.crypto.params.ECGOST3410Parameters
invokevirtual org.bouncycastle.crypto.params.ECGOST3410Parameters.getDigestParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
24: aload 3
checkcast org.bouncycastle.crypto.params.ECGOST3410Parameters
invokevirtual org.bouncycastle.crypto.params.ECGOST3410Parameters.getEncryptionParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
25: invokespecial org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
astore 6
start local 6 26: getstatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.cryptoProOids:Ljava/util/Set;
aload 6
invokevirtual org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters.getPublicKeyParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 30
27: bipush 32
istore 7
start local 7 28: getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
astore 8
start local 8 29: goto 40
end local 8 end local 7 30: StackMap locals: org.bouncycastle.crypto.params.AsymmetricKeyParameter org.bouncycastle.asn1.ASN1Set org.bouncycastle.crypto.params.ECPrivateKeyParameters org.bouncycastle.crypto.params.ECDomainParameters top top org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters
StackMap stack:
aload 2
invokevirtual org.bouncycastle.crypto.params.ECPrivateKeyParameters.getD:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
sipush 256
if_icmple 31
iconst_1
goto 32
StackMap locals:
StackMap stack:
31: iconst_0
StackMap locals:
StackMap stack: int
32: istore 9
start local 9 33: iload 9
ifeq 35
34: getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
goto 36
35: StackMap locals: org.bouncycastle.crypto.params.AsymmetricKeyParameter org.bouncycastle.asn1.ASN1Set org.bouncycastle.crypto.params.ECPrivateKeyParameters org.bouncycastle.crypto.params.ECDomainParameters top top org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters top top int
StackMap stack:
getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
36: StackMap locals:
StackMap stack: org.bouncycastle.asn1.ASN1ObjectIdentifier
astore 8
start local 8 37: iload 9
ifeq 38
bipush 64
goto 39
StackMap locals: org.bouncycastle.crypto.params.AsymmetricKeyParameter org.bouncycastle.asn1.ASN1Set org.bouncycastle.crypto.params.ECPrivateKeyParameters org.bouncycastle.crypto.params.ECDomainParameters top top org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters top org.bouncycastle.asn1.ASN1ObjectIdentifier int
StackMap stack:
38: bipush 32
StackMap locals:
StackMap stack: int
39: istore 7
end local 9 start local 7 40: StackMap locals: org.bouncycastle.crypto.params.AsymmetricKeyParameter org.bouncycastle.asn1.ASN1Set org.bouncycastle.crypto.params.ECPrivateKeyParameters org.bouncycastle.crypto.params.ECDomainParameters top top org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters int org.bouncycastle.asn1.ASN1ObjectIdentifier
StackMap stack:
iload 7
newarray 8
astore 9
start local 9 41: aload 9
iload 7
iconst_0
aload 2
invokevirtual org.bouncycastle.crypto.params.ECPrivateKeyParameters.getD:()Ljava/math/BigInteger;
invokestatic org.bouncycastle.crypto.util.PrivateKeyInfoFactory.extractBytes:([BIILjava/math/BigInteger;)V
42: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
aload 8
aload 6
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
new org.bouncycastle.asn1.DEROctetString
dup
aload 9
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
areturn
end local 9 end local 8 end local 7 end local 6 43: StackMap locals: org.bouncycastle.crypto.params.AsymmetricKeyParameter org.bouncycastle.asn1.ASN1Set org.bouncycastle.crypto.params.ECPrivateKeyParameters org.bouncycastle.crypto.params.ECDomainParameters
StackMap stack:
aload 3
instanceof org.bouncycastle.crypto.params.ECNamedDomainParameters
ifeq 47
44: new org.bouncycastle.asn1.x9.X962Parameters
dup
aload 3
checkcast org.bouncycastle.crypto.params.ECNamedDomainParameters
invokevirtual org.bouncycastle.crypto.params.ECNamedDomainParameters.getName:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
astore 4
start local 4 45: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getN:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 5
start local 5 46: goto 56
end local 5 end local 4 47: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.x9.X9ECParameters
dup
48: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
49: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getG:()Lorg/bouncycastle/math/ec/ECPoint;
50: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getN:()Ljava/math/BigInteger;
51: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getH:()Ljava/math/BigInteger;
52: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getSeed:()[B
53: invokespecial org.bouncycastle.asn1.x9.X9ECParameters.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
astore 6
start local 6 54: new org.bouncycastle.asn1.x9.X962Parameters
dup
aload 6
invokespecial org.bouncycastle.asn1.x9.X962Parameters.<init>:(Lorg/bouncycastle/asn1/x9/X9ECParameters;)V
astore 4
start local 4 55: aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getN:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 5
end local 6 start local 5 56: StackMap locals: org.bouncycastle.asn1.ASN1Encodable int
StackMap stack:
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 4
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
57: new org.bouncycastle.asn1.sec.ECPrivateKey
dup
iload 5
aload 2
invokevirtual org.bouncycastle.crypto.params.ECPrivateKeyParameters.getD:()Ljava/math/BigInteger;
58: new org.bouncycastle.asn1.DERBitString
dup
aload 3
invokevirtual org.bouncycastle.crypto.params.ECDomainParameters.getG:()Lorg/bouncycastle/math/ec/ECPoint;
aload 2
invokevirtual org.bouncycastle.crypto.params.ECPrivateKeyParameters.getD:()Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
iconst_0
invokevirtual org.bouncycastle.math.ec.ECPoint.getEncoded:(Z)[B
invokespecial org.bouncycastle.asn1.DERBitString.<init>:([B)V
aload 4
59: invokespecial org.bouncycastle.asn1.sec.ECPrivateKey.<init>:(ILjava/math/BigInteger;Lorg/bouncycastle/asn1/DERBitString;Lorg/bouncycastle/asn1/ASN1Encodable;)V
60: aload 1
61: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;)V
areturn
end local 5 end local 4 end local 3 end local 2 62: StackMap locals: org.bouncycastle.crypto.params.AsymmetricKeyParameter org.bouncycastle.asn1.ASN1Set
StackMap stack:
aload 0
instanceof org.bouncycastle.crypto.params.X448PrivateKeyParameters
ifeq 67
63: aload 0
checkcast org.bouncycastle.crypto.params.X448PrivateKeyParameters
astore 2
start local 2 64: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_X448:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
65: new org.bouncycastle.asn1.DEROctetString
dup
aload 2
invokevirtual org.bouncycastle.crypto.params.X448PrivateKeyParameters.getEncoded:()[B
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
aload 1
aload 2
invokevirtual org.bouncycastle.crypto.params.X448PrivateKeyParameters.generatePublicKey:()Lorg/bouncycastle/crypto/params/X448PublicKeyParameters;
invokevirtual org.bouncycastle.crypto.params.X448PublicKeyParameters.getEncoded:()[B
66: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;[B)V
areturn
end local 2 67: StackMap locals:
StackMap stack:
aload 0
instanceof org.bouncycastle.crypto.params.X25519PrivateKeyParameters
ifeq 72
68: aload 0
checkcast org.bouncycastle.crypto.params.X25519PrivateKeyParameters
astore 2
start local 2 69: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_X25519:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
70: new org.bouncycastle.asn1.DEROctetString
dup
aload 2
invokevirtual org.bouncycastle.crypto.params.X25519PrivateKeyParameters.getEncoded:()[B
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
aload 1
aload 2
invokevirtual org.bouncycastle.crypto.params.X25519PrivateKeyParameters.generatePublicKey:()Lorg/bouncycastle/crypto/params/X25519PublicKeyParameters;
invokevirtual org.bouncycastle.crypto.params.X25519PublicKeyParameters.getEncoded:()[B
71: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;[B)V
areturn
end local 2 72: StackMap locals:
StackMap stack:
aload 0
instanceof org.bouncycastle.crypto.params.Ed448PrivateKeyParameters
ifeq 77
73: aload 0
checkcast org.bouncycastle.crypto.params.Ed448PrivateKeyParameters
astore 2
start local 2 74: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_Ed448:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
75: new org.bouncycastle.asn1.DEROctetString
dup
aload 2
invokevirtual org.bouncycastle.crypto.params.Ed448PrivateKeyParameters.getEncoded:()[B
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
aload 1
aload 2
invokevirtual org.bouncycastle.crypto.params.Ed448PrivateKeyParameters.generatePublicKey:()Lorg/bouncycastle/crypto/params/Ed448PublicKeyParameters;
invokevirtual org.bouncycastle.crypto.params.Ed448PublicKeyParameters.getEncoded:()[B
76: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;[B)V
areturn
end local 2 77: StackMap locals:
StackMap stack:
aload 0
instanceof org.bouncycastle.crypto.params.Ed25519PrivateKeyParameters
ifeq 82
78: aload 0
checkcast org.bouncycastle.crypto.params.Ed25519PrivateKeyParameters
astore 2
start local 2 79: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_Ed25519:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
80: new org.bouncycastle.asn1.DEROctetString
dup
aload 2
invokevirtual org.bouncycastle.crypto.params.Ed25519PrivateKeyParameters.getEncoded:()[B
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
aload 1
aload 2
invokevirtual org.bouncycastle.crypto.params.Ed25519PrivateKeyParameters.generatePublicKey:()Lorg/bouncycastle/crypto/params/Ed25519PublicKeyParameters;
invokevirtual org.bouncycastle.crypto.params.Ed25519PublicKeyParameters.getEncoded:()[B
81: invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;Lorg/bouncycastle/asn1/ASN1Set;[B)V
areturn
end local 2 82: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "key parameters not recognized"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 83 0 privateKey Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
0 83 1 attributes Lorg/bouncycastle/asn1/ASN1Set;
2 6 2 priv Lorg/bouncycastle/crypto/params/RSAPrivateCrtKeyParameters;
8 13 2 priv Lorg/bouncycastle/crypto/params/DSAPrivateKeyParameters;
9 13 3 params Lorg/bouncycastle/crypto/params/DSAParameters;
15 62 2 priv Lorg/bouncycastle/crypto/params/ECPrivateKeyParameters;
16 62 3 domainParams Lorg/bouncycastle/crypto/params/ECDomainParameters;
18 20 4 params Lorg/bouncycastle/asn1/ASN1Encodable;
45 47 4 params Lorg/bouncycastle/asn1/ASN1Encodable;
55 62 4 params Lorg/bouncycastle/asn1/ASN1Encodable;
19 20 5 orderBitLength I
46 47 5 orderBitLength I
56 62 5 orderBitLength I
26 43 6 gostParams Lorg/bouncycastle/asn1/cryptopro/GOST3410PublicKeyAlgParameters;
28 30 7 size I
40 43 7 size I
29 30 8 identifier Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
37 43 8 identifier Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
33 40 9 is512 Z
41 43 9 encKey [B
54 56 6 ecP Lorg/bouncycastle/asn1/x9/X9ECParameters;
64 67 2 key Lorg/bouncycastle/crypto/params/X448PrivateKeyParameters;
69 72 2 key Lorg/bouncycastle/crypto/params/X25519PrivateKeyParameters;
74 77 2 key Lorg/bouncycastle/crypto/params/Ed448PrivateKeyParameters;
79 82 2 key Lorg/bouncycastle/crypto/params/Ed25519PrivateKeyParameters;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
privateKey
attributes
private static void (byte[], int, int, java.math.BigInteger);
descriptor: ([BIILjava/math/BigInteger;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 4
start local 4 1: aload 4
arraylength
iload 1
if_icmpge 5
2: iload 1
newarray 8
astore 5
start local 5 3: aload 4
iconst_0
aload 5
aload 5
arraylength
aload 4
arraylength
isub
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 5
astore 4
end local 5 5: StackMap locals: byte[]
StackMap stack:
iconst_0
istore 5
start local 5 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
iload 2
iload 5
iadd
aload 4
aload 4
arraylength
iconst_1
isub
iload 5
isub
baload
bastore
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 1
if_icmpne 7
end local 5 10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 encKey [B
0 11 1 size I
0 11 2 offSet I
0 11 3 bI Ljava/math/BigInteger;
1 11 4 val [B
3 5 5 tmp [B
6 10 5 i I
MethodParameters:
Name Flags
encKey
size
offSet
bI
}
SourceFile: "PrivateKeyInfoFactory.java"