public final class sun.security.rsa.RSAPadding
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.rsa.RSAPadding
super_class: java.lang.Object
{
public static final int PAD_BLOCKTYPE_1;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int PAD_BLOCKTYPE_2;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int PAD_NONE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int PAD_OAEP_MGF1;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private final int type;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int paddedSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
private final int maxDataSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.security.MessageDigest md;
descriptor: Ljava/security/MessageDigest;
flags: (0x0002) ACC_PRIVATE
private java.security.MessageDigest mgfMd;
descriptor: Ljava/security/MessageDigest;
flags: (0x0002) ACC_PRIVATE
private byte[] lHash;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private static final java.util.Map<java.lang.String, byte[]> emptyHashes;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;[B>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
1: putstatic sun.security.rsa.RSAPadding.emptyHashes:Ljava/util/Map;
2: return
LocalVariableTable:
Start End Slot Name Signature
public static sun.security.rsa.RSAPadding getInstance(int, int);
descriptor: (II)Lsun/security/rsa/RSAPadding;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new sun.security.rsa.RSAPadding
dup
iload 0
iload 1
aconst_null
aconst_null
invokespecial sun.security.rsa.RSAPadding.<init>:(IILjava/security/SecureRandom;Ljavax/crypto/spec/OAEPParameterSpec;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type I
0 1 1 paddedSize I
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
type
paddedSize
public static sun.security.rsa.RSAPadding getInstance(int, int, java.security.SecureRandom);
descriptor: (IILjava/security/SecureRandom;)Lsun/security/rsa/RSAPadding;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new sun.security.rsa.RSAPadding
dup
iload 0
iload 1
aload 2
aconst_null
invokespecial sun.security.rsa.RSAPadding.<init>:(IILjava/security/SecureRandom;Ljavax/crypto/spec/OAEPParameterSpec;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type I
0 1 1 paddedSize I
0 1 2 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
type
paddedSize
random
public static sun.security.rsa.RSAPadding getInstance(int, int, java.security.SecureRandom, javax.crypto.spec.OAEPParameterSpec);
descriptor: (IILjava/security/SecureRandom;Ljavax/crypto/spec/OAEPParameterSpec;)Lsun/security/rsa/RSAPadding;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.security.rsa.RSAPadding
dup
iload 0
iload 1
aload 2
aload 3
invokespecial sun.security.rsa.RSAPadding.<init>:(IILjava/security/SecureRandom;Ljavax/crypto/spec/OAEPParameterSpec;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type I
0 1 1 paddedSize I
0 1 2 random Ljava/security/SecureRandom;
0 1 3 spec Ljavax/crypto/spec/OAEPParameterSpec;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
type
paddedSize
random
spec
private void <init>(int, int, java.security.SecureRandom, javax.crypto.spec.OAEPParameterSpec);
descriptor: (IILjava/security/SecureRandom;Ljavax/crypto/spec/OAEPParameterSpec;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield sun.security.rsa.RSAPadding.type:I
2: aload 0
iload 2
putfield sun.security.rsa.RSAPadding.paddedSize:I
3: aload 0
aload 3
putfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
4: iload 2
bipush 64
if_icmpge 6
5: new java.security.InvalidKeyException
dup
ldc "Padded size must be at least 64"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: sun.security.rsa.RSAPadding int int java.security.SecureRandom javax.crypto.spec.OAEPParameterSpec
StackMap stack:
iload 1
tableswitch { // 1 - 4
1: 7
2: 7
3: 9
4: 11
default: 47
}
7: StackMap locals:
StackMap stack:
aload 0
iload 2
bipush 11
isub
putfield sun.security.rsa.RSAPadding.maxDataSize:I
8: goto 48
9: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield sun.security.rsa.RSAPadding.maxDataSize:I
10: goto 48
11: StackMap locals:
StackMap stack:
ldc "SHA-1"
astore 5
start local 5 12: ldc "SHA-1"
astore 6
start local 6 13: aconst_null
astore 7
start local 7 14: aload 4
ifnull 31
15: aload 4
invokevirtual javax.crypto.spec.OAEPParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
astore 5
16: aload 4
invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
astore 8
start local 8 17: aload 8
ldc "MGF1"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 21
18: new java.security.InvalidAlgorithmParameterException
dup
19: new java.lang.StringBuilder
dup
ldc "Unsupported MGF algo: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: sun.security.rsa.RSAPadding int int java.security.SecureRandom javax.crypto.spec.OAEPParameterSpec java.lang.String java.lang.String byte[] java.lang.String
StackMap stack:
aload 4
invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
checkcast java.security.spec.MGF1ParameterSpec
22: invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
23: astore 6
24: aload 4
invokevirtual javax.crypto.spec.OAEPParameterSpec.getPSource:()Ljavax/crypto/spec/PSource;
astore 9
start local 9 25: aload 9
invokevirtual javax.crypto.spec.PSource.getAlgorithm:()Ljava/lang/String;
astore 10
start local 10 26: aload 10
ldc "PSpecified"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 30
27: new java.security.InvalidAlgorithmParameterException
dup
28: new java.lang.StringBuilder
dup
ldc "Unsupported pSource algo: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: javax.crypto.spec.PSource java.lang.String
StackMap stack:
aload 9
checkcast javax.crypto.spec.PSource$PSpecified
invokevirtual javax.crypto.spec.PSource$PSpecified.getValue:()[B
astore 7
end local 10 end local 9 end local 8 31: StackMap locals:
StackMap stack:
aload 0
aload 5
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield sun.security.rsa.RSAPadding.md:Ljava/security/MessageDigest;
32: aload 0
aload 6
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield sun.security.rsa.RSAPadding.mgfMd:Ljava/security/MessageDigest;
33: goto 38
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
34: astore 8
start local 8 35: new java.security.InvalidKeyException
dup
36: new java.lang.StringBuilder
dup
ldc "Digest "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not available"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 8
37: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 38: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.rsa.RSAPadding.md:Ljava/security/MessageDigest;
aload 7
invokestatic sun.security.rsa.RSAPadding.getInitialHash:(Ljava/security/MessageDigest;[B)[B
putfield sun.security.rsa.RSAPadding.lHash:[B
39: aload 0
getfield sun.security.rsa.RSAPadding.lHash:[B
arraylength
istore 8
start local 8 40: aload 0
iload 2
iconst_2
isub
iconst_2
iload 8
imul
isub
putfield sun.security.rsa.RSAPadding.maxDataSize:I
41: aload 0
getfield sun.security.rsa.RSAPadding.maxDataSize:I
ifgt 48
42: new java.security.InvalidKeyException
dup
43: new java.lang.StringBuilder
dup
ldc "Key is too short for encryption using OAEPPadding with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
44: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and MGF1"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
45: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
46: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 8 end local 7 end local 6 end local 5 47: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Invalid padding: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
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
48: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lsun/security/rsa/RSAPadding;
0 49 1 type I
0 49 2 paddedSize I
0 49 3 random Ljava/security/SecureRandom;
0 49 4 spec Ljavax/crypto/spec/OAEPParameterSpec;
12 47 5 mdName Ljava/lang/String;
13 47 6 mgfMdName Ljava/lang/String;
14 47 7 digestInput [B
17 31 8 mgfName Ljava/lang/String;
25 31 9 pSrc Ljavax/crypto/spec/PSource;
26 31 10 pSrcAlgo Ljava/lang/String;
35 38 8 e Ljava/security/NoSuchAlgorithmException;
40 47 8 digestLen I
Exception table:
from to target type
14 33 34 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
type
paddedSize
random
spec
private static byte[] getInitialHash(java.security.MessageDigest, byte[]);
descriptor: (Ljava/security/MessageDigest;[B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
arraylength
ifne 7
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
astore 3
start local 3 2: getstatic sun.security.rsa.RSAPadding.emptyHashes:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
astore 2
start local 2 3: aload 2
ifnonnull 8
4: aload 0
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
5: getstatic sun.security.rsa.RSAPadding.emptyHashes:Ljava/util/Map;
aload 3
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 6: goto 8
end local 2 7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.security.MessageDigest.digest:([B)[B
astore 2
start local 2 8: StackMap locals: byte[]
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 md Ljava/security/MessageDigest;
0 9 1 digestInput [B
3 7 2 result [B
8 9 2 result [B
2 6 3 digestName Ljava/lang/String;
MethodParameters:
Name Flags
md
digestInput
public int getMaxDataSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.rsa.RSAPadding.maxDataSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/rsa/RSAPadding;
public byte[] pad(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokestatic sun.security.rsa.RSACore.convert:([BII)[B
invokevirtual sun.security.rsa.RSAPadding.pad:([B)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/rsa/RSAPadding;
0 1 1 data [B
0 1 2 ofs I
0 1 3 len I
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
data
ofs
len
public byte[] pad(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
arraylength
aload 0
getfield sun.security.rsa.RSAPadding.maxDataSize:I
if_icmple 5
1: new javax.crypto.BadPaddingException
dup
new java.lang.StringBuilder
dup
ldc "Data must be shorter than "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
getfield sun.security.rsa.RSAPadding.maxDataSize:I
iconst_1
iadd
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes but received "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.type:I
tableswitch { // 1 - 4
1: 7
2: 7
3: 6
4: 8
default: 9
}
6: StackMap locals:
StackMap stack:
aload 1
areturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.rsa.RSAPadding.padV15:([B)[B
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.rsa.RSAPadding.padOAEP:([B)[B
areturn
9: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/rsa/RSAPadding;
0 10 1 data [B
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
data
public byte[] unpad(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokestatic sun.security.rsa.RSACore.convert:([BII)[B
invokevirtual sun.security.rsa.RSAPadding.unpad:([B)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/rsa/RSAPadding;
0 1 1 padded [B
0 1 2 ofs I
0 1 3 len I
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
padded
ofs
len
public byte[] unpad(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
arraylength
aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
if_icmpeq 5
1: new javax.crypto.BadPaddingException
dup
new java.lang.StringBuilder
dup
ldc "Decryption error.The padded array length ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
3: ldc ") is not the specified padded size ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.type:I
tableswitch { // 1 - 4
1: 7
2: 7
3: 6
4: 8
default: 9
}
6: StackMap locals:
StackMap stack:
aload 1
areturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.rsa.RSAPadding.unpadV15:([B)[B
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.rsa.RSAPadding.unpadOAEP:([B)[B
areturn
9: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/rsa/RSAPadding;
0 10 1 padded [B
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
padded
private byte[] padV15(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
newarray 8
astore 2
start local 2 1: aload 1
iconst_0
aload 2
aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
aload 1
arraylength
isub
2: aload 1
arraylength
3: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
iconst_3
isub
aload 1
arraylength
isub
istore 3
start local 3 5: iconst_0
istore 4
start local 4 6: aload 2
iload 4
iinc 4 1
iconst_0
bastore
7: aload 2
iload 4
iinc 4 1
aload 0
getfield sun.security.rsa.RSAPadding.type:I
i2b
bastore
8: aload 0
getfield sun.security.rsa.RSAPadding.type:I
iconst_1
if_icmpne 13
9: goto 11
10: StackMap locals: byte[] int int
StackMap stack:
aload 2
iload 4
iinc 4 1
iconst_m1
bastore
11: StackMap locals:
StackMap stack:
iload 3
iinc 3 -1
ifgt 10
12: goto 25
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
ifnonnull 15
14: aload 0
invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
putfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
15: StackMap locals:
StackMap stack:
bipush 64
newarray 8
astore 5
start local 5 16: iconst_m1
istore 6
start local 6 17: goto 24
18: StackMap locals: byte[] int
StackMap stack:
iload 6
ifge 21
19: aload 0
getfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
aload 5
invokevirtual java.security.SecureRandom.nextBytes:([B)V
20: aload 5
arraylength
iconst_1
isub
istore 6
21: StackMap locals:
StackMap stack:
aload 5
iload 6
iinc 6 -1
baload
sipush 255
iand
istore 7
start local 7 22: iload 7
ifeq 18
23: aload 2
iload 4
iinc 4 1
iload 7
i2b
bastore
end local 7 24: StackMap locals:
StackMap stack:
iload 3
iinc 3 -1
ifgt 18
end local 6 end local 5 25: StackMap locals:
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/security/rsa/RSAPadding;
0 26 1 data [B
1 26 2 padded [B
5 26 3 psSize I
6 26 4 k I
16 25 5 r [B
17 25 6 i I
22 24 7 b I
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
data
private byte[] unpadV15(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 1
iload 2
iinc 2 1
baload
ifeq 4
3: iconst_1
istore 3
4: StackMap locals: int int
StackMap stack:
aload 1
iload 2
iinc 2 1
baload
aload 0
getfield sun.security.rsa.RSAPadding.type:I
if_icmpeq 6
5: iconst_1
istore 3
6: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 7: goto 16
8: StackMap locals: int
StackMap stack:
aload 1
iload 2
iinc 2 1
baload
sipush 255
iand
istore 5
start local 5 9: iload 5
ifne 11
iload 4
ifne 11
10: iload 2
istore 4
11: StackMap locals: int
StackMap stack:
iload 2
aload 1
arraylength
if_icmpne 13
iload 4
ifne 13
12: iconst_1
istore 3
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.type:I
iconst_1
if_icmpne 16
iload 5
sipush 255
if_icmpeq 16
14: iload 4
ifne 16
15: iconst_1
istore 3
end local 5 16: StackMap locals:
StackMap stack:
iload 2
aload 1
arraylength
if_icmplt 8
17: aload 1
arraylength
iload 4
isub
istore 5
start local 5 18: iload 5
aload 0
getfield sun.security.rsa.RSAPadding.maxDataSize:I
if_icmple 20
19: iconst_1
istore 3
20: StackMap locals: int
StackMap stack:
iload 4
newarray 8
astore 6
start local 6 21: aload 1
iconst_0
aload 6
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: iload 5
newarray 8
astore 7
start local 7 23: aload 1
iload 4
aload 7
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: new javax.crypto.BadPaddingException
dup
ldc "Decryption error"
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
astore 8
start local 8 25: iload 3
ifeq 27
26: aload 8
athrow
27: StackMap locals: byte[] byte[] javax.crypto.BadPaddingException
StackMap stack:
aload 7
areturn
end local 8 end local 7 end local 6 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 28 0 this Lsun/security/rsa/RSAPadding;
0 28 1 padded [B
1 28 2 k I
2 28 3 bp Z
7 28 4 p I
9 16 5 b I
18 28 5 n I
21 28 6 padding [B
23 28 7 data [B
25 28 8 bpe Ljavax/crypto/BadPaddingException;
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
padded
private byte[] padOAEP(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
ifnonnull 2
1: aload 0
invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
putfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.lHash:[B
arraylength
istore 2
start local 2 3: iload 2
newarray 8
astore 3
start local 3 4: aload 0
getfield sun.security.rsa.RSAPadding.random:Ljava/security/SecureRandom;
aload 3
invokevirtual java.security.SecureRandom.nextBytes:([B)V
5: aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
newarray 8
astore 4
start local 4 6: iconst_1
istore 5
start local 5 7: iload 2
istore 6
start local 6 8: aload 3
iconst_0
aload 4
iload 5
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: iload 2
iconst_1
iadd
istore 7
start local 7 10: aload 4
arraylength
iload 7
isub
istore 8
start local 8 11: aload 0
getfield sun.security.rsa.RSAPadding.paddedSize:I
aload 1
arraylength
isub
istore 9
start local 9 12: aload 0
getfield sun.security.rsa.RSAPadding.lHash:[B
iconst_0
aload 4
iload 7
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 4
iload 9
iconst_1
isub
iconst_1
bastore
14: aload 1
iconst_0
aload 4
iload 9
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: aload 0
aload 4
iload 5
iload 6
aload 4
iload 7
iload 8
invokevirtual sun.security.rsa.RSAPadding.mgf1:([BII[BII)V
16: aload 0
aload 4
iload 7
iload 8
aload 4
iload 5
iload 6
invokevirtual sun.security.rsa.RSAPadding.mgf1:([BII[BII)V
17: aload 4
areturn
end local 9 end local 8 end local 7 end local 6 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 18 0 this Lsun/security/rsa/RSAPadding;
0 18 1 M [B
3 18 2 hLen I
4 18 3 seed [B
6 18 4 EM [B
7 18 5 seedStart I
8 18 6 seedLen I
10 18 7 dbStart I
11 18 8 dbLen I
12 18 9 mStart I
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
M
private byte[] unpadOAEP(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=15, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 0
getfield sun.security.rsa.RSAPadding.lHash:[B
arraylength
istore 4
start local 4 3: aload 2
iconst_0
baload
ifeq 5
4: iconst_1
istore 3
5: StackMap locals: byte[] int int
StackMap stack:
iconst_1
istore 5
start local 5 6: iload 4
istore 6
start local 6 7: iload 4
iconst_1
iadd
istore 7
start local 7 8: aload 2
arraylength
iload 7
isub
istore 8
start local 8 9: aload 0
aload 2
iload 7
iload 8
aload 2
iload 5
iload 6
invokevirtual sun.security.rsa.RSAPadding.mgf1:([BII[BII)V
10: aload 0
aload 2
iload 5
iload 6
aload 2
iload 7
iload 8
invokevirtual sun.security.rsa.RSAPadding.mgf1:([BII[BII)V
11: iconst_0
istore 9
start local 9 12: goto 16
13: StackMap locals: sun.security.rsa.RSAPadding byte[] byte[] int int int int int int int
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.lHash:[B
iload 9
baload
aload 2
iload 7
iload 9
iadd
baload
if_icmpeq 15
14: iconst_1
istore 3
15: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
16: iload 9
iload 4
if_icmplt 13
end local 9 17: iload 7
iload 4
iadd
istore 9
start local 9 18: iconst_m1
istore 10
start local 10 19: iload 9
istore 11
start local 11 20: goto 29
21: StackMap locals: int int
StackMap stack:
aload 2
iload 11
baload
istore 12
start local 12 22: iload 10
iconst_m1
if_icmpne 28
23: iload 12
ifeq 28
24: iload 12
iconst_1
if_icmpne 27
25: iload 11
istore 10
26: goto 28
27: StackMap locals: int
StackMap stack:
iconst_1
istore 3
end local 12 28: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
29: iload 11
aload 2
arraylength
if_icmplt 21
end local 11 30: iload 10
iconst_m1
if_icmpne 33
31: iconst_1
istore 3
32: aload 2
arraylength
iconst_1
isub
istore 10
33: StackMap locals:
StackMap stack:
iload 10
iconst_1
iadd
istore 11
start local 11 34: iload 11
iload 9
isub
newarray 8
astore 12
start local 12 35: aload 2
iload 9
aload 12
iconst_0
aload 12
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
36: aload 2
arraylength
iload 11
isub
newarray 8
astore 13
start local 13 37: aload 2
iload 11
aload 13
iconst_0
aload 13
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
38: new javax.crypto.BadPaddingException
dup
ldc "Decryption error"
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
astore 14
start local 14 39: iload 3
ifeq 41
40: aload 14
athrow
41: StackMap locals: sun.security.rsa.RSAPadding byte[] byte[] int int int int int int int int int byte[] byte[] javax.crypto.BadPaddingException
StackMap stack:
aload 13
areturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 42 0 this Lsun/security/rsa/RSAPadding;
0 42 1 padded [B
1 42 2 EM [B
2 42 3 bp Z
3 42 4 hLen I
6 42 5 seedStart I
7 42 6 seedLen I
8 42 7 dbStart I
9 42 8 dbLen I
12 17 9 i I
18 42 9 padStart I
19 42 10 onePos I
20 30 11 i I
22 28 12 value I
34 42 11 mStart I
35 42 12 tmp [B
37 42 13 m [B
39 42 14 bpe Ljavax/crypto/BadPaddingException;
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
padded
private void mgf1(byte[], int, int, byte[], int, int);
descriptor: ([BII[BII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iconst_4
newarray 8
astore 7
start local 7 1: aload 0
getfield sun.security.rsa.RSAPadding.mgfMd:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getDigestLength:()I
newarray 8
astore 8
start local 8 2: goto 19
3: StackMap locals: byte[] byte[]
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPadding.mgfMd:Ljava/security/MessageDigest;
aload 1
iload 2
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
4: aload 0
getfield sun.security.rsa.RSAPadding.mgfMd:Ljava/security/MessageDigest;
aload 7
invokevirtual java.security.MessageDigest.update:([B)V
5: aload 0
getfield sun.security.rsa.RSAPadding.mgfMd:Ljava/security/MessageDigest;
aload 8
iconst_0
aload 8
arraylength
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
6: goto 9
StackMap locals:
StackMap stack: java.security.DigestException
7: astore 9
start local 9 8: new javax.crypto.BadPaddingException
dup
aload 9
invokevirtual java.security.DigestException.toString:()Ljava/lang/String;
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
end local 9 9: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 10: goto 13
11: StackMap locals: int
StackMap stack:
aload 4
iload 5
iinc 5 1
dup2
baload
aload 8
iload 9
iinc 9 1
baload
ixor
i2b
bastore
12: iinc 6 -1
StackMap locals:
StackMap stack:
13: iload 9
aload 8
arraylength
if_icmpge 14
iload 6
ifgt 11
end local 9 14: StackMap locals:
StackMap stack:
iload 6
ifle 19
15: aload 7
arraylength
iconst_1
isub
istore 9
start local 9 16: goto 18
StackMap locals: int
StackMap stack:
17: iinc 9 -1
StackMap locals:
StackMap stack:
18: aload 7
iload 9
dup2
baload
iconst_1
iadd
i2b
dup_x2
bastore
ifne 19
iload 9
ifgt 17
end local 9 19: StackMap locals:
StackMap stack:
iload 6
ifgt 3
20: return
end local 8 end local 7 end local 6 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 21 0 this Lsun/security/rsa/RSAPadding;
0 21 1 seed [B
0 21 2 seedOfs I
0 21 3 seedLen I
0 21 4 out [B
0 21 5 outOfs I
0 21 6 maskLen I
1 21 7 C [B
2 21 8 digest [B
8 9 9 e Ljava/security/DigestException;
10 14 9 i I
16 19 9 i I
Exception table:
from to target type
5 6 7 Class java.security.DigestException
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
seed
seedOfs
seedLen
out
outOfs
maskLen
}
SourceFile: "RSAPadding.java"
InnerClasses:
public final PSpecified = javax.crypto.spec.PSource$PSpecified of javax.crypto.spec.PSource