public class org.bouncycastle.operator.jcajce.JceKTSKeyWrapper extends org.bouncycastle.operator.AsymmetricKeyWrapper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.operator.jcajce.JceKTSKeyWrapper
super_class: org.bouncycastle.operator.AsymmetricKeyWrapper
{
private final java.lang.String symmetricWrappingAlg;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int keySizeInBits;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] partyUInfo;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] partyVInfo;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.bouncycastle.operator.jcajce.OperatorHelper helper;
descriptor: Lorg/bouncycastle/operator/jcajce/OperatorHelper;
flags: (0x0002) ACC_PRIVATE
private java.security.PublicKey publicKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.security.PublicKey, java.lang.String, int, byte[], byte[]);
descriptor: (Ljava/security/PublicKey;Ljava/lang/String;I[B[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=17, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_rsa_KEM:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.cms.GenericHybridParameters
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.iso.ISOIECObjectIdentifiers.id_kem_rsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.cms.RsaKemParameters
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_kdf_kdf3:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
iload 3
bipush 7
iadd
bipush 8
idiv
invokespecial org.bouncycastle.asn1.cms.RsaKemParameters.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;I)V
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
aload 2
iload 3
invokestatic org.bouncycastle.operator.jcajce.JceSymmetricKeyWrapper.determineKeyEncAlg:(Ljava/lang/String;I)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokespecial org.bouncycastle.asn1.cms.GenericHybridParameters.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
invokespecial org.bouncycastle.operator.AsymmetricKeyWrapper.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
1: aload 0
new org.bouncycastle.operator.jcajce.OperatorHelper
dup
new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
dup
invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
invokespecial org.bouncycastle.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
2: aload 0
aload 1
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.publicKey:Ljava/security/PublicKey;
3: aload 0
aload 2
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.symmetricWrappingAlg:Ljava/lang/String;
4: aload 0
iload 3
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.keySizeInBits:I
5: aload 0
aload 4
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.partyUInfo:[B
6: aload 0
aload 5
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.partyVInfo:[B
7: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
0 8 1 publicKey Ljava/security/PublicKey;
0 8 2 symmetricWrappingAlg Ljava/lang/String;
0 8 3 keySizeInBits I
0 8 4 partyUInfo [B
0 8 5 partyVInfo [B
MethodParameters:
Name Flags
publicKey
symmetricWrappingAlg
keySizeInBits
partyUInfo
partyVInfo
public void <init>(java.security.cert.X509Certificate, java.lang.String, int, byte[], byte[]);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/lang/String;I[B[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
aload 2
iload 3
aload 4
aload 5
invokespecial org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.<init>:(Ljava/security/PublicKey;Ljava/lang/String;I[B[B)V
1: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
0 2 1 certificate Ljava/security/cert/X509Certificate;
0 2 2 symmetricWrappingAlg Ljava/lang/String;
0 2 3 keySizeInBits I
0 2 4 partyUInfo [B
0 2 5 partyVInfo [B
MethodParameters:
Name Flags
certificate
symmetricWrappingAlg
keySizeInBits
partyUInfo
partyVInfo
public org.bouncycastle.operator.jcajce.JceKTSKeyWrapper setProvider(java.security.Provider);
descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.bouncycastle.operator.jcajce.OperatorHelper
dup
new org.bouncycastle.jcajce.util.ProviderJcaJceHelper
dup
aload 1
invokespecial org.bouncycastle.jcajce.util.ProviderJcaJceHelper.<init>:(Ljava/security/Provider;)V
invokespecial org.bouncycastle.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
0 2 1 provider Ljava/security/Provider;
MethodParameters:
Name Flags
provider
public org.bouncycastle.operator.jcajce.JceKTSKeyWrapper setProvider(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.bouncycastle.operator.jcajce.OperatorHelper
dup
new org.bouncycastle.jcajce.util.NamedJcaJceHelper
dup
aload 1
invokespecial org.bouncycastle.jcajce.util.NamedJcaJceHelper.<init>:(Ljava/lang/String;)V
invokespecial org.bouncycastle.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
0 2 1 providerName Ljava/lang/String;
MethodParameters:
Name Flags
providerName
public org.bouncycastle.operator.jcajce.JceKTSKeyWrapper setSecureRandom(java.security.SecureRandom);
descriptor: (Ljava/security/SecureRandom;)Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.random:Ljava/security/SecureRandom;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
0 2 1 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
random
public byte[] generateWrappedKey(org.bouncycastle.operator.GenericKey);
descriptor: (Lorg/bouncycastle/operator/GenericKey;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
aload 0
invokevirtual org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokevirtual org.bouncycastle.operator.jcajce.OperatorHelper.createAsymmetricWrapper:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/util/Map;)Ljavax/crypto/Cipher;
astore 2
start local 2 1: new org.bouncycastle.crypto.util.DEROtherInfo$Builder
dup
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.symmetricWrappingAlg:Ljava/lang/String;
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.keySizeInBits:I
invokestatic org.bouncycastle.operator.jcajce.JceSymmetricKeyWrapper.determineKeyEncAlg:(Ljava/lang/String;I)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.partyUInfo:[B
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.partyVInfo:[B
invokespecial org.bouncycastle.crypto.util.DEROtherInfo$Builder.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B[B)V
invokevirtual org.bouncycastle.crypto.util.DEROtherInfo$Builder.build:()Lorg/bouncycastle/crypto/util/DEROtherInfo;
astore 3
start local 3 2: new org.bouncycastle.jcajce.spec.KTSParameterSpec$Builder
dup
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.symmetricWrappingAlg:Ljava/lang/String;
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.keySizeInBits:I
aload 3
invokevirtual org.bouncycastle.crypto.util.DEROtherInfo.getEncoded:()[B
invokespecial org.bouncycastle.jcajce.spec.KTSParameterSpec$Builder.<init>:(Ljava/lang/String;I[B)V
invokevirtual org.bouncycastle.jcajce.spec.KTSParameterSpec$Builder.build:()Lorg/bouncycastle/jcajce/spec/KTSParameterSpec;
astore 4
start local 4 3: aload 2
iconst_3
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.publicKey:Ljava/security/PublicKey;
aload 4
aload 0
getfield org.bouncycastle.operator.jcajce.JceKTSKeyWrapper.random:Ljava/security/SecureRandom;
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
4: aload 2
aload 1
invokestatic org.bouncycastle.operator.jcajce.OperatorUtils.getJceKey:(Lorg/bouncycastle/operator/GenericKey;)Ljava/security/Key;
invokevirtual javax.crypto.Cipher.wrap:(Ljava/security/Key;)[B
5: areturn
end local 4 end local 3 6: StackMap locals: org.bouncycastle.operator.jcajce.JceKTSKeyWrapper org.bouncycastle.operator.GenericKey javax.crypto.Cipher
StackMap stack: java.lang.Exception
astore 3
start local 3 7: new org.bouncycastle.operator.OperatorException
dup
new java.lang.StringBuilder
dup
ldc "Unable to wrap contents key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial org.bouncycastle.operator.OperatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/operator/jcajce/JceKTSKeyWrapper;
0 8 1 encryptionKey Lorg/bouncycastle/operator/GenericKey;
1 8 2 keyEncryptionCipher Ljavax/crypto/Cipher;
2 6 3 otherInfo Lorg/bouncycastle/crypto/util/DEROtherInfo;
3 6 4 ktsSpec Lorg/bouncycastle/jcajce/spec/KTSParameterSpec;
7 8 3 e Ljava/lang/Exception;
Exception table:
from to target type
1 5 6 Class java.lang.Exception
Exceptions:
throws org.bouncycastle.operator.OperatorException
MethodParameters:
Name Flags
encryptionKey
}
SourceFile: "JceKTSKeyWrapper.java"
InnerClasses:
public final Builder = org.bouncycastle.crypto.util.DEROtherInfo$Builder of org.bouncycastle.crypto.util.DEROtherInfo
public final Builder = org.bouncycastle.jcajce.spec.KTSParameterSpec$Builder of org.bouncycastle.jcajce.spec.KTSParameterSpec