public abstract class org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper extends org.bouncycastle.operator.AsymmetricKeyUnwrapper
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper
super_class: org.bouncycastle.operator.AsymmetricKeyUnwrapper
{
private org.bouncycastle.crypto.params.AsymmetricKeyParameter privateKey;
descriptor: Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
flags: (0x0002) ACC_PRIVATE
public void <init>(org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.crypto.params.AsymmetricKeyParameter);
descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper this
start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encAlgId
start local 2 // org.bouncycastle.crypto.params.AsymmetricKeyParameter privateKey
0: .line 20
aload 0 /* this */
aload 1 /* encAlgId */
invokespecial org.bouncycastle.operator.AsymmetricKeyUnwrapper.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
1: .line 22
aload 0 /* this */
aload 2 /* privateKey */
putfield org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper.privateKey:Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
2: .line 23
return
end local 2 // org.bouncycastle.crypto.params.AsymmetricKeyParameter privateKey
end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encAlgId
end local 0 // org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/operator/bc/BcAsymmetricKeyUnwrapper;
0 3 1 encAlgId Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
0 3 2 privateKey Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
MethodParameters:
Name Flags
encAlgId
privateKey
public org.bouncycastle.operator.GenericKey generateUnwrappedKey(org.bouncycastle.asn1.x509.AlgorithmIdentifier, byte[]);
descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)Lorg/bouncycastle/operator/GenericKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 // org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper this
start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptedKeyAlgorithm
start local 2 // byte[] encryptedKey
0: .line 28
aload 0 /* this */
aload 0 /* this */
invokevirtual org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper.createAsymmetricUnwrapper:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
astore 3 /* keyCipher */
start local 3 // org.bouncycastle.crypto.AsymmetricBlockCipher keyCipher
1: .line 30
aload 3 /* keyCipher */
iconst_0
aload 0 /* this */
getfield org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper.privateKey:Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
2: .line 33
aload 3 /* keyCipher */
aload 2 /* encryptedKey */
iconst_0
aload 2 /* encryptedKey */
arraylength
invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
astore 4 /* key */
start local 4 // byte[] key
3: .line 35
aload 1 /* encryptedKeyAlgorithm */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.des_EDE3_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 6
4: .line 37
new org.bouncycastle.operator.GenericKey
dup
aload 1 /* encryptedKeyAlgorithm */
aload 4 /* key */
invokespecial org.bouncycastle.operator.GenericKey.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
5: areturn
6: .line 41
StackMap locals: org.bouncycastle.crypto.AsymmetricBlockCipher byte[]
StackMap stack:
new org.bouncycastle.operator.GenericKey
dup
aload 1 /* encryptedKeyAlgorithm */
aload 4 /* key */
invokespecial org.bouncycastle.operator.GenericKey.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
7: areturn
end local 4 // byte[] key
8: .line 44
StackMap locals: org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper org.bouncycastle.asn1.x509.AlgorithmIdentifier byte[] org.bouncycastle.crypto.AsymmetricBlockCipher
StackMap stack: org.bouncycastle.crypto.InvalidCipherTextException
astore 4 /* e */
start local 4 // org.bouncycastle.crypto.InvalidCipherTextException e
9: .line 46
new org.bouncycastle.operator.OperatorException
dup
new java.lang.StringBuilder
dup
ldc "unable to recover secret key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4 /* e */
invokevirtual org.bouncycastle.crypto.InvalidCipherTextException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4 /* e */
invokespecial org.bouncycastle.operator.OperatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 // org.bouncycastle.crypto.InvalidCipherTextException e
end local 3 // org.bouncycastle.crypto.AsymmetricBlockCipher keyCipher
end local 2 // byte[] encryptedKey
end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptedKeyAlgorithm
end local 0 // org.bouncycastle.operator.bc.BcAsymmetricKeyUnwrapper this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/operator/bc/BcAsymmetricKeyUnwrapper;
0 10 1 encryptedKeyAlgorithm Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
0 10 2 encryptedKey [B
1 10 3 keyCipher Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
3 8 4 key [B
9 10 4 e Lorg/bouncycastle/crypto/InvalidCipherTextException;
Exception table:
from to target type
2 5 8 Class org.bouncycastle.crypto.InvalidCipherTextException
6 7 8 Class org.bouncycastle.crypto.InvalidCipherTextException
Exceptions:
throws org.bouncycastle.operator.OperatorException
MethodParameters:
Name Flags
encryptedKeyAlgorithm
encryptedKey
protected abstract org.bouncycastle.crypto.AsymmetricBlockCipher createAsymmetricUnwrapper(org.bouncycastle.asn1.ASN1ObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
algorithm
}
SourceFile: "BcAsymmetricKeyUnwrapper.java"