public abstract class org.bouncycastle.jce.provider.WrapCipherSpi extends javax.crypto.CipherSpi implements org.bouncycastle.jce.provider.PBE
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.jce.provider.WrapCipherSpi
super_class: javax.crypto.CipherSpi
{
private java.lang.Class[] availableSpecs;
descriptor: [Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
protected int pbeType;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int pbeHash;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int pbeKeySize;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int pbeIvSize;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected java.security.AlgorithmParameters engineParams;
descriptor: Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
protected org.bouncycastle.crypto.Wrapper wrapEngine;
descriptor: Lorg/bouncycastle/crypto/Wrapper;
flags: (0x0004) ACC_PROTECTED
private int ivSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] iv;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javax.crypto.CipherSpi.<init>:()V
1: aload 0
2: iconst_4
anewarray java.lang.Class
dup
iconst_0
3: ldc Ljavax/crypto/spec/IvParameterSpec;
aastore
dup
iconst_1
4: ldc Ljavax/crypto/spec/PBEParameterSpec;
aastore
dup
iconst_2
5: ldc Ljavax/crypto/spec/RC2ParameterSpec;
aastore
dup
iconst_3
6: ldc Ljavax/crypto/spec/RC5ParameterSpec;
aastore
putfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
7: aload 0
iconst_2
putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeType:I
8: aload 0
iconst_1
putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeHash:I
9: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.WrapCipherSpi.engineParams:Ljava/security/AlgorithmParameters;
10: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
protected void <init>(org.bouncycastle.crypto.Wrapper);
descriptor: (Lorg/bouncycastle/crypto/Wrapper;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokespecial org.bouncycastle.jce.provider.WrapCipherSpi.<init>:(Lorg/bouncycastle/crypto/Wrapper;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 2 1 wrapEngine Lorg/bouncycastle/crypto/Wrapper;
MethodParameters:
Name Flags
wrapEngine
protected void <init>(org.bouncycastle.crypto.Wrapper, int);
descriptor: (Lorg/bouncycastle/crypto/Wrapper;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial javax.crypto.CipherSpi.<init>:()V
1: aload 0
2: iconst_4
anewarray java.lang.Class
dup
iconst_0
3: ldc Ljavax/crypto/spec/IvParameterSpec;
aastore
dup
iconst_1
4: ldc Ljavax/crypto/spec/PBEParameterSpec;
aastore
dup
iconst_2
5: ldc Ljavax/crypto/spec/RC2ParameterSpec;
aastore
dup
iconst_3
6: ldc Ljavax/crypto/spec/RC5ParameterSpec;
aastore
putfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
7: aload 0
iconst_2
putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeType:I
8: aload 0
iconst_1
putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeHash:I
9: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.WrapCipherSpi.engineParams:Ljava/security/AlgorithmParameters;
10: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
11: aload 0
aload 1
putfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
12: aload 0
iload 2
putfield org.bouncycastle.jce.provider.WrapCipherSpi.ivSize:I
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 14 1 wrapEngine Lorg/bouncycastle/crypto/Wrapper;
0 14 2 ivSize I
MethodParameters:
Name Flags
wrapEngine
ivSize
protected int engineGetBlockSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
protected byte[] engineGetIV();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
protected int engineGetKeySize(java.security.Key);
descriptor: (Ljava/security/Key;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.Key.getEncoded:()[B
arraylength
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 key Ljava/security/Key;
MethodParameters:
Name Flags
key
protected int engineGetOutputSize(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 inputLen I
MethodParameters:
Name Flags
inputLen
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
protected void engineSetMode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "can't support mode "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 mode Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
protected void engineSetPadding(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new javax.crypto.NoSuchPaddingException
dup
new java.lang.StringBuilder
dup
ldc "Padding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " unknown."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 padding Ljava/lang/String;
Exceptions:
throws javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
padding
protected void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
instanceof org.bouncycastle.jce.provider.JCEPBEKey
ifeq 9
1: aload 2
checkcast org.bouncycastle.jce.provider.JCEPBEKey
astore 6
start local 6 2: aload 3
instanceof javax.crypto.spec.PBEParameterSpec
ifeq 5
3: aload 6
aload 3
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
invokeinterface org.bouncycastle.crypto.Wrapper.getAlgorithmName:()Ljava/lang/String;
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEParameters:(Lorg/bouncycastle/jce/provider/JCEPBEKey;Ljava/security/spec/AlgorithmParameterSpec;Ljava/lang/String;)Lorg/bouncycastle/crypto/CipherParameters;
astore 5
start local 5 4: goto 10
end local 5 5: StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom top org.bouncycastle.jce.provider.JCEPBEKey
StackMap stack:
aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
ifnull 8
6: aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
astore 5
start local 5 7: goto 10
end local 5 8: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
ldc "PBE requires PBE parameters to be set."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 6 9: StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom
StackMap stack:
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
astore 5
start local 5 10: StackMap locals: org.bouncycastle.crypto.CipherParameters
StackMap stack:
aload 3
instanceof javax.crypto.spec.IvParameterSpec
ifeq 13
11: aload 3
checkcast javax.crypto.spec.IvParameterSpec
astore 6
start local 6 12: new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 5
aload 6
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
end local 6 13: StackMap locals:
StackMap stack:
aload 5
instanceof org.bouncycastle.crypto.params.KeyParameter
ifeq 17
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.ivSize:I
ifeq 17
14: aload 0
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.ivSize:I
newarray 8
putfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
15: aload 4
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
invokevirtual java.security.SecureRandom.nextBytes:([B)V
16: new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 5
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
17: StackMap locals:
StackMap stack:
iload 1
tableswitch { // 1 - 4
1: 22
2: 22
3: 18
4: 20
default: 23
}
18: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
iconst_1
aload 5
invokeinterface org.bouncycastle.crypto.Wrapper.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
19: goto 24
20: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
iconst_0
aload 5
invokeinterface org.bouncycastle.crypto.Wrapper.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
21: goto 24
22: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "engine only valid for wrapping"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "eeek!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
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 25 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 25 1 opmode I
0 25 2 key Ljava/security/Key;
0 25 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 25 4 random Ljava/security/SecureRandom;
4 5 5 param Lorg/bouncycastle/crypto/CipherParameters;
7 8 5 param Lorg/bouncycastle/crypto/CipherParameters;
10 25 5 param Lorg/bouncycastle/crypto/CipherParameters;
2 9 6 k Lorg/bouncycastle/jce/provider/JCEPBEKey;
12 13 6 iv Ljavax/crypto/spec/IvParameterSpec;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aload 3
ifnull 11
2: iconst_0
istore 6
start local 6 3: goto 8
4: StackMap locals: java.security.spec.AlgorithmParameterSpec int
StackMap stack:
aload 3
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
iload 6
aaload
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
astore 5
5: goto 9
6: StackMap locals:
StackMap stack: java.lang.Exception
pop
7: iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
arraylength
if_icmpne 4
end local 6 9: StackMap locals:
StackMap stack:
aload 5
ifnonnull 11
10: new java.security.InvalidAlgorithmParameterException
dup
new java.lang.StringBuilder
dup
ldc "can't handle parameter "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.security.AlgorithmParameters.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.bouncycastle.jce.provider.WrapCipherSpi.engineParams:Ljava/security/AlgorithmParameters;
12: aload 0
iload 1
aload 2
aload 5
aload 4
invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
13: 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 14 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 14 1 opmode I
0 14 2 key Ljava/security/Key;
0 14 3 params Ljava/security/AlgorithmParameters;
0 14 4 random Ljava/security/SecureRandom;
1 14 5 paramSpec Ljava/security/spec/AlgorithmParameterSpec;
3 9 6 i I
Exception table:
from to target type
4 5 6 Class java.lang.Exception
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected void engineInit(int, java.security.Key, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
aconst_null
aload 3
invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
1: goto 4
2: StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
astore 4
start local 4 3: new java.lang.IllegalArgumentException
dup
aload 4
invokevirtual java.security.InvalidAlgorithmParameterException.getMessage:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 5 1 opmode I
0 5 2 key Ljava/security/Key;
0 5 3 random Ljava/security/SecureRandom;
3 4 4 e Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
0 1 2 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
opmode
key
random
protected byte[] engineUpdate(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.RuntimeException
dup
ldc "not supported for wrapping"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
MethodParameters:
Name Flags
input
inputOffset
inputLen
protected int engineUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.lang.RuntimeException
dup
ldc "not supported for wrapping"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
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 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
0 1 4 output [B
0 1 5 outputOffset I
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
input
inputOffset
inputLen
output
outputOffset
protected byte[] engineDoFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
protected int engineDoFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
ireturn
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 1 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
0 1 4 output [B
0 1 5 outputOffset I
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
output
outputOffset
protected byte[] engineWrap(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.security.InvalidKeyException
dup
ldc "Cannot wrap key, null encoding."
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
ifnonnull 6
4: aload 0
aload 2
iconst_0
aload 2
arraylength
invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineDoFinal:([BII)[B
5: areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
aload 2
iconst_0
aload 2
arraylength
invokeinterface org.bouncycastle.crypto.Wrapper.wrap:([BII)[B
7: areturn
8: StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
astore 3
start local 3 9: new javax.crypto.IllegalBlockSizeException
dup
aload 3
invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 10 1 key Ljava/security/Key;
1 10 2 encoded [B
9 10 3 e Ljavax/crypto/BadPaddingException;
Exception table:
from to target type
3 5 8 Class javax.crypto.BadPaddingException
6 7 8 Class javax.crypto.BadPaddingException
Exceptions:
throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
MethodParameters:
Name Flags
key
protected java.security.Key engineUnwrap(byte[], java.lang.String, int);
descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
ifnonnull 3
1: aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineDoFinal:([BII)[B
astore 4
start local 4 2: goto 11
end local 4 3: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
aload 1
iconst_0
aload 1
arraylength
invokeinterface org.bouncycastle.crypto.Wrapper.unwrap:([BII)[B
astore 4
start local 4 4: goto 11
end local 4 5: StackMap locals:
StackMap stack: org.bouncycastle.crypto.InvalidCipherTextException
astore 5
start local 5 6: new java.security.InvalidKeyException
dup
aload 5
invokevirtual org.bouncycastle.crypto.InvalidCipherTextException.getMessage:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 5 7: StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
astore 5
start local 5 8: new java.security.InvalidKeyException
dup
aload 5
invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 5 9: StackMap locals:
StackMap stack: javax.crypto.IllegalBlockSizeException
astore 5
start local 5 10: new java.security.InvalidKeyException
dup
aload 5
invokevirtual javax.crypto.IllegalBlockSizeException.getMessage:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 5 start local 4 11: StackMap locals: byte[]
StackMap stack:
iload 3
iconst_3
if_icmpne 13
12: new javax.crypto.spec.SecretKeySpec
dup
aload 4
aload 2
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
13: StackMap locals:
StackMap stack:
aload 2
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 38
iload 3
iconst_2
if_icmpne 38
14: new org.bouncycastle.asn1.ASN1InputStream
dup
aload 4
invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
astore 5
start local 5 15: aload 5
invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
checkcast org.bouncycastle.asn1.ASN1Sequence
astore 7
start local 7 16: new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
dup
aload 7
invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
astore 8
start local 8 17: aload 8
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
astore 9
start local 9 18: aload 9
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 21
19: new org.bouncycastle.jce.provider.JCEECPrivateKey
dup
aload 8
invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
astore 6
start local 6 20: goto 37
end local 6 21: StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi byte[] java.lang.String int byte[] org.bouncycastle.asn1.ASN1InputStream top org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.PrivateKeyInfo org.bouncycastle.asn1.DERObjectIdentifier
StackMap stack:
aload 9
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_94:Lorg/bouncycastle/asn1/DERObjectIdentifier;
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 24
22: new org.bouncycastle.jce.provider.JDKGOST3410PrivateKey
dup
aload 8
invokespecial org.bouncycastle.jce.provider.JDKGOST3410PrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
astore 6
start local 6 23: goto 37
end local 6 24: StackMap locals:
StackMap stack:
aload 9
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_dsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 27
25: new org.bouncycastle.jce.provider.JDKDSAPrivateKey
dup
aload 8
invokespecial org.bouncycastle.jce.provider.JDKDSAPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
astore 6
start local 6 26: goto 37
end local 6 27: StackMap locals:
StackMap stack:
aload 9
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.dhKeyAgreement:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 30
28: new org.bouncycastle.jce.provider.JCEDHPrivateKey
dup
aload 8
invokespecial org.bouncycastle.jce.provider.JCEDHPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
astore 6
start local 6 29: goto 37
end local 6 30: StackMap locals:
StackMap stack:
aload 9
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.dhpublicnumber:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 33
31: new org.bouncycastle.jce.provider.JCEDHPrivateKey
dup
aload 8
invokespecial org.bouncycastle.jce.provider.JCEDHPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
astore 6
start local 6 32: goto 37
end local 6 33: StackMap locals:
StackMap stack:
new org.bouncycastle.jce.provider.JCERSAPrivateCrtKey
dup
aload 8
invokespecial org.bouncycastle.jce.provider.JCERSAPrivateCrtKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
astore 6
end local 9 end local 8 end local 7 start local 6 34: goto 37
end local 6 35: StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi byte[] java.lang.String int byte[] org.bouncycastle.asn1.ASN1InputStream
StackMap stack: java.lang.Exception
pop
36: new java.security.InvalidKeyException
dup
ldc "Invalid key encoding."
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
start local 6 37: StackMap locals: java.security.PrivateKey
StackMap stack:
aload 6
areturn
end local 6 end local 5 38: StackMap locals:
StackMap stack:
aload 2
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 5
start local 5 39: iload 3
iconst_1
if_icmpne 42
40: aload 5
new java.security.spec.X509EncodedKeySpec
dup
aload 4
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
41: areturn
42: StackMap locals: java.security.KeyFactory
StackMap stack:
iload 3
iconst_2
if_icmpne 51
43: aload 5
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 4
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
44: areturn
end local 5 45: StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi byte[] java.lang.String int byte[]
StackMap stack: java.security.NoSuchProviderException
astore 5
start local 5 46: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Unknown key type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 5 47: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 5
start local 5 48: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Unknown key type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 5 49: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 5
start local 5 50: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Unknown key type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.security.spec.InvalidKeySpecException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 5 51: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Unknown key type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lorg/bouncycastle/jce/provider/WrapCipherSpi;
0 52 1 wrappedKey [B
0 52 2 wrappedKeyAlgorithm Ljava/lang/String;
0 52 3 wrappedKeyType I
2 3 4 encoded [B
4 5 4 encoded [B
11 52 4 encoded [B
6 7 5 e Lorg/bouncycastle/crypto/InvalidCipherTextException;
8 9 5 e Ljavax/crypto/BadPaddingException;
10 11 5 e2 Ljavax/crypto/IllegalBlockSizeException;
15 38 5 bIn Lorg/bouncycastle/asn1/ASN1InputStream;
20 21 6 privKey Ljava/security/PrivateKey;
23 24 6 privKey Ljava/security/PrivateKey;
26 27 6 privKey Ljava/security/PrivateKey;
29 30 6 privKey Ljava/security/PrivateKey;
32 33 6 privKey Ljava/security/PrivateKey;
34 35 6 privKey Ljava/security/PrivateKey;
37 38 6 privKey Ljava/security/PrivateKey;
16 34 7 s Lorg/bouncycastle/asn1/ASN1Sequence;
17 34 8 in Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
18 34 9 oid Lorg/bouncycastle/asn1/DERObjectIdentifier;
39 45 5 kf Ljava/security/KeyFactory;
46 47 5 e Ljava/security/NoSuchProviderException;
48 49 5 e Ljava/security/NoSuchAlgorithmException;
50 51 5 e2 Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
0 4 5 Class org.bouncycastle.crypto.InvalidCipherTextException
0 4 7 Class javax.crypto.BadPaddingException
0 4 9 Class javax.crypto.IllegalBlockSizeException
15 34 35 Class java.lang.Exception
38 41 45 Class java.security.NoSuchProviderException
42 44 45 Class java.security.NoSuchProviderException
38 41 47 Class java.security.NoSuchAlgorithmException
42 44 47 Class java.security.NoSuchAlgorithmException
38 41 49 Class java.security.spec.InvalidKeySpecException
42 44 49 Class java.security.spec.InvalidKeySpecException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
wrappedKey
wrappedKeyAlgorithm
wrappedKeyType
}
SourceFile: "WrapCipherSpi.java"
NestMembers:
org.bouncycastle.jce.provider.WrapCipherSpi$RC2Wrap
InnerClasses:
public Util = org.bouncycastle.jce.provider.PBE$Util of org.bouncycastle.jce.provider.PBE
public RC2Wrap = org.bouncycastle.jce.provider.WrapCipherSpi$RC2Wrap of org.bouncycastle.jce.provider.WrapCipherSpi