public class org.bouncycastle.util.encoders.Base64Encoder implements org.bouncycastle.util.encoders.Encoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.util.encoders.Base64Encoder
super_class: java.lang.Object
{
protected final byte[] encodingTable;
descriptor: [B
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected byte padding;
descriptor: B
flags: (0x0004) ACC_PROTECTED
protected final byte[] decodingTable;
descriptor: [B
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected void initialiseDecodingTable();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
0: .line 37
iconst_0
istore 1 /* i */
start local 1 // int i
1: goto 4
2: .line 39
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 1 /* i */
iconst_m1
bastore
3: .line 37
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 1 /* i */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
arraylength
if_icmplt 2
end local 1 // int i
5: .line 42
iconst_0
istore 1 /* i */
start local 1 // int i
6: goto 9
7: .line 44
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 1 /* i */
baload
iload 1 /* i */
i2b
bastore
8: .line 42
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 1 /* i */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
arraylength
if_icmplt 7
end local 1 // int i
10: .line 46
return
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
1 5 1 i I
6 10 1 i I
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
0: .line 48
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 12
aload 0 /* this */
2: .line 13
bipush 64
newarray 8
dup
iconst_0
3: .line 14
bipush 65
bastore
dup
iconst_1
bipush 66
bastore
dup
iconst_2
bipush 67
bastore
dup
iconst_3
bipush 68
bastore
dup
iconst_4
bipush 69
bastore
dup
iconst_5
bipush 70
bastore
dup
bipush 6
bipush 71
bastore
dup
bipush 7
4: .line 15
bipush 72
bastore
dup
bipush 8
bipush 73
bastore
dup
bipush 9
bipush 74
bastore
dup
bipush 10
bipush 75
bastore
dup
bipush 11
bipush 76
bastore
dup
bipush 12
bipush 77
bastore
dup
bipush 13
bipush 78
bastore
dup
bipush 14
5: .line 16
bipush 79
bastore
dup
bipush 15
bipush 80
bastore
dup
bipush 16
bipush 81
bastore
dup
bipush 17
bipush 82
bastore
dup
bipush 18
bipush 83
bastore
dup
bipush 19
bipush 84
bastore
dup
bipush 20
bipush 85
bastore
dup
bipush 21
6: .line 17
bipush 86
bastore
dup
bipush 22
bipush 87
bastore
dup
bipush 23
bipush 88
bastore
dup
bipush 24
bipush 89
bastore
dup
bipush 25
bipush 90
bastore
dup
bipush 26
7: .line 18
bipush 97
bastore
dup
bipush 27
bipush 98
bastore
dup
bipush 28
bipush 99
bastore
dup
bipush 29
bipush 100
bastore
dup
bipush 30
bipush 101
bastore
dup
bipush 31
bipush 102
bastore
dup
bipush 32
bipush 103
bastore
dup
bipush 33
8: .line 19
bipush 104
bastore
dup
bipush 34
bipush 105
bastore
dup
bipush 35
bipush 106
bastore
dup
bipush 36
bipush 107
bastore
dup
bipush 37
bipush 108
bastore
dup
bipush 38
bipush 109
bastore
dup
bipush 39
bipush 110
bastore
dup
bipush 40
9: .line 20
bipush 111
bastore
dup
bipush 41
bipush 112
bastore
dup
bipush 42
bipush 113
bastore
dup
bipush 43
bipush 114
bastore
dup
bipush 44
bipush 115
bastore
dup
bipush 45
bipush 116
bastore
dup
bipush 46
bipush 117
bastore
dup
bipush 47
10: .line 21
bipush 118
bastore
dup
bipush 48
11: .line 22
bipush 119
bastore
dup
bipush 49
bipush 120
bastore
dup
bipush 50
bipush 121
bastore
dup
bipush 51
bipush 122
bastore
dup
bipush 52
12: .line 23
bipush 48
bastore
dup
bipush 53
bipush 49
bastore
dup
bipush 54
bipush 50
bastore
dup
bipush 55
bipush 51
bastore
dup
bipush 56
bipush 52
bastore
dup
bipush 57
bipush 53
bastore
dup
bipush 58
bipush 54
bastore
dup
bipush 59
13: .line 24
bipush 55
bastore
dup
bipush 60
bipush 56
bastore
dup
bipush 61
bipush 57
bastore
dup
bipush 62
14: .line 25
bipush 43
bastore
dup
bipush 63
bipush 47
bastore
putfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
15: .line 28
aload 0 /* this */
bipush 61
putfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
16: .line 33
aload 0 /* this */
sipush 128
newarray 8
putfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
17: .line 50
aload 0 /* this */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.initialiseDecodingTable:()V
18: .line 51
return
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
public int encode(byte[], int, int, java.io.OutputStream);
descriptor: ([BIILjava/io/OutputStream;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=15, args_size=5
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // byte[] data
start local 2 // int off
start local 3 // int length
start local 4 // java.io.OutputStream out
0: .line 65
iload 3 /* length */
iconst_3
irem
istore 5 /* modulus */
start local 5 // int modulus
1: .line 66
iload 3 /* length */
iload 5 /* modulus */
isub
istore 6 /* dataLength */
start local 6 // int dataLength
2: .line 69
iload 2 /* off */
istore 10 /* i */
start local 10 // int i
3: goto 12
4: .line 71
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int top top top int
StackMap stack:
aload 1 /* data */
iload 10 /* i */
baload
sipush 255
iand
istore 7 /* a1 */
start local 7 // int a1
5: .line 72
aload 1 /* data */
iload 10 /* i */
iconst_1
iadd
baload
sipush 255
iand
istore 8 /* a2 */
start local 8 // int a2
6: .line 73
aload 1 /* data */
iload 10 /* i */
iconst_2
iadd
baload
sipush 255
iand
istore 9 /* a3 */
start local 9 // int a3
7: .line 75
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 7 /* a1 */
iconst_2
iushr
bipush 63
iand
baload
invokevirtual java.io.OutputStream.write:(I)V
8: .line 76
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 7 /* a1 */
iconst_4
ishl
iload 8 /* a2 */
iconst_4
iushr
ior
bipush 63
iand
baload
invokevirtual java.io.OutputStream.write:(I)V
9: .line 77
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 8 /* a2 */
iconst_2
ishl
iload 9 /* a3 */
bipush 6
iushr
ior
bipush 63
iand
baload
invokevirtual java.io.OutputStream.write:(I)V
10: .line 78
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 9 /* a3 */
bipush 63
iand
baload
invokevirtual java.io.OutputStream.write:(I)V
11: .line 69
iinc 10 /* i */ 3
end local 9 // int a3
end local 8 // int a2
end local 7 // int a1
StackMap locals:
StackMap stack:
12: iload 10 /* i */
iload 2 /* off */
iload 6 /* dataLength */
iadd
if_icmplt 4
end local 10 // int i
13: .line 87
iload 5 /* modulus */
tableswitch { // 0 - 2
0: 14
1: 15
2: 23
default: 32
}
14: .line 90
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int
StackMap stack:
goto 32
15: .line 92
StackMap locals:
StackMap stack:
aload 1 /* data */
iload 2 /* off */
iload 6 /* dataLength */
iadd
baload
sipush 255
iand
istore 13 /* d1 */
start local 13 // int d1
16: .line 93
iload 13 /* d1 */
iconst_2
iushr
bipush 63
iand
istore 10 /* b1 */
start local 10 // int b1
17: .line 94
iload 13 /* d1 */
iconst_4
ishl
bipush 63
iand
istore 11 /* b2 */
start local 11 // int b2
18: .line 96
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 10 /* b1 */
baload
invokevirtual java.io.OutputStream.write:(I)V
19: .line 97
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 11 /* b2 */
baload
invokevirtual java.io.OutputStream.write:(I)V
20: .line 98
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
invokevirtual java.io.OutputStream.write:(I)V
21: .line 99
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
invokevirtual java.io.OutputStream.write:(I)V
22: .line 100
goto 32
end local 13 // int d1
end local 11 // int b2
end local 10 // int b1
23: .line 102
StackMap locals:
StackMap stack:
aload 1 /* data */
iload 2 /* off */
iload 6 /* dataLength */
iadd
baload
sipush 255
iand
istore 13 /* d1 */
start local 13 // int d1
24: .line 103
aload 1 /* data */
iload 2 /* off */
iload 6 /* dataLength */
iadd
iconst_1
iadd
baload
sipush 255
iand
istore 14 /* d2 */
start local 14 // int d2
25: .line 105
iload 13 /* d1 */
iconst_2
iushr
bipush 63
iand
istore 10 /* b1 */
start local 10 // int b1
26: .line 106
iload 13 /* d1 */
iconst_4
ishl
iload 14 /* d2 */
iconst_4
iushr
ior
bipush 63
iand
istore 11 /* b2 */
start local 11 // int b2
27: .line 107
iload 14 /* d2 */
iconst_2
ishl
bipush 63
iand
istore 12 /* b3 */
start local 12 // int b3
28: .line 109
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 10 /* b1 */
baload
invokevirtual java.io.OutputStream.write:(I)V
29: .line 110
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 11 /* b2 */
baload
invokevirtual java.io.OutputStream.write:(I)V
30: .line 111
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
iload 12 /* b3 */
baload
invokevirtual java.io.OutputStream.write:(I)V
31: .line 112
aload 4 /* out */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
invokevirtual java.io.OutputStream.write:(I)V
end local 14 // int d2
end local 13 // int d1
end local 12 // int b3
end local 11 // int b2
end local 10 // int b1
32: .line 116
StackMap locals:
StackMap stack:
iload 6 /* dataLength */
iconst_3
idiv
iconst_4
imul
iload 5 /* modulus */
ifne 33
iconst_0
goto 34
StackMap locals:
StackMap stack: int
33: iconst_4
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int
StackMap stack: int int
34: iadd
ireturn
end local 6 // int dataLength
end local 5 // int modulus
end local 4 // java.io.OutputStream out
end local 3 // int length
end local 2 // int off
end local 1 // byte[] data
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 35 1 data [B
0 35 2 off I
0 35 3 length I
0 35 4 out Ljava/io/OutputStream;
1 35 5 modulus I
2 35 6 dataLength I
5 12 7 a1 I
6 12 8 a2 I
7 12 9 a3 I
3 13 10 i I
17 23 10 b1 I
26 32 10 b1 I
18 23 11 b2 I
27 32 11 b2 I
28 32 12 b3 I
16 23 13 d1 I
24 32 13 d1 I
25 32 14 d2 I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
off
length
out
private boolean ignore(char);
descriptor: (C)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // char c
0: .line 122
iload 1 /* c */
bipush 10
if_icmpeq 1
iload 1 /* c */
bipush 13
if_icmpeq 1
iload 1 /* c */
bipush 9
if_icmpeq 1
iload 1 /* c */
bipush 32
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 // char c
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 2 1 c C
MethodParameters:
Name Flags
c
public int decode(byte[], int, int, java.io.OutputStream);
descriptor: ([BIILjava/io/OutputStream;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=17, args_size=5
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // byte[] data
start local 2 // int off
start local 3 // int length
start local 4 // java.io.OutputStream out
0: .line 139
iconst_0
istore 9 /* outLen */
start local 9 // int outLen
1: .line 141
iload 2 /* off */
iload 3 /* length */
iadd
istore 10 /* end */
start local 10 // int end
2: .line 143
goto 6
3: .line 145
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream top top top top int int
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iload 10 /* end */
iconst_1
isub
baload
i2c
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
ifne 5
4: .line 147
goto 7
5: .line 150
StackMap locals:
StackMap stack:
iinc 10 /* end */ -1
6: .line 143
StackMap locals:
StackMap stack:
iload 10 /* end */
iload 2 /* off */
if_icmpgt 3
7: .line 154
StackMap locals:
StackMap stack:
iload 10 /* end */
ifne 9
8: .line 156
iconst_0
ireturn
9: .line 159
StackMap locals:
StackMap stack:
iconst_0
istore 11 /* i */
start local 11 // int i
10: .line 160
iload 10 /* end */
istore 12 /* finish */
start local 12 // int finish
11: .line 162
goto 15
12: .line 164
StackMap locals: int int
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iload 12 /* finish */
iconst_1
isub
baload
i2c
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
ifne 14
13: .line 166
iinc 11 /* i */ 1
14: .line 169
StackMap locals:
StackMap stack:
iinc 12 /* finish */ -1
15: .line 162
StackMap locals:
StackMap stack:
iload 12 /* finish */
iload 2 /* off */
if_icmple 16
iload 11 /* i */
iconst_4
if_icmpne 12
16: .line 172
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iload 2 /* off */
iload 12 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 11 /* i */
17: .line 174
goto 32
18: .line 176
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 11 /* i */
iinc 11 /* i */ 1
baload
baload
istore 5 /* b1 */
start local 5 // byte b1
19: .line 178
aload 0 /* this */
aload 1 /* data */
iload 11 /* i */
iload 12 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 11 /* i */
20: .line 180
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 11 /* i */
iinc 11 /* i */ 1
baload
baload
istore 6 /* b2 */
start local 6 // byte b2
21: .line 182
aload 0 /* this */
aload 1 /* data */
iload 11 /* i */
iload 12 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 11 /* i */
22: .line 184
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 11 /* i */
iinc 11 /* i */ 1
baload
baload
istore 7 /* b3 */
start local 7 // byte b3
23: .line 186
aload 0 /* this */
aload 1 /* data */
iload 11 /* i */
iload 12 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 11 /* i */
24: .line 188
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 11 /* i */
iinc 11 /* i */ 1
baload
baload
istore 8 /* b4 */
start local 8 // byte b4
25: .line 190
iload 5 /* b1 */
iload 6 /* b2 */
ior
iload 7 /* b3 */
ior
iload 8 /* b4 */
ior
ifge 27
26: .line 192
new java.io.IOException
dup
ldc "invalid characters encountered in base64 data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
27: .line 195
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int int int int int int int
StackMap stack:
aload 4 /* out */
iload 5 /* b1 */
iconst_2
ishl
iload 6 /* b2 */
iconst_4
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
28: .line 196
aload 4 /* out */
iload 6 /* b2 */
iconst_4
ishl
iload 7 /* b3 */
iconst_2
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
29: .line 197
aload 4 /* out */
iload 7 /* b3 */
bipush 6
ishl
iload 8 /* b4 */
ior
invokevirtual java.io.OutputStream.write:(I)V
30: .line 199
iinc 9 /* outLen */ 3
31: .line 201
aload 0 /* this */
aload 1 /* data */
iload 11 /* i */
iload 12 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 11 /* i */
end local 8 // byte b4
end local 7 // byte b3
end local 6 // byte b2
end local 5 // byte b1
32: .line 174
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream top top top top int int int int
StackMap stack:
iload 11 /* i */
iload 12 /* finish */
if_icmplt 18
33: .line 204
aload 0 /* this */
aload 1 /* data */
iload 11 /* i */
iload 10 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 13 /* e0 */
start local 13 // int e0
34: .line 205
aload 0 /* this */
aload 1 /* data */
iload 13 /* e0 */
iconst_1
iadd
iload 10 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 14 /* e1 */
start local 14 // int e1
35: .line 206
aload 0 /* this */
aload 1 /* data */
iload 14 /* e1 */
iconst_1
iadd
iload 10 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 15 /* e2 */
start local 15 // int e2
36: .line 207
aload 0 /* this */
aload 1 /* data */
iload 15 /* e2 */
iconst_1
iadd
iload 10 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
istore 16 /* e3 */
start local 16 // int e3
37: .line 209
iload 9 /* outLen */
aload 0 /* this */
aload 4 /* out */
aload 1 /* data */
iload 13 /* e0 */
baload
i2c
aload 1 /* data */
iload 14 /* e1 */
baload
i2c
aload 1 /* data */
iload 15 /* e2 */
baload
i2c
aload 1 /* data */
iload 16 /* e3 */
baload
i2c
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.decodeLastBlock:(Ljava/io/OutputStream;CCCC)I
iadd
istore 9 /* outLen */
38: .line 211
iload 9 /* outLen */
ireturn
end local 16 // int e3
end local 15 // int e2
end local 14 // int e1
end local 13 // int e0
end local 12 // int finish
end local 11 // int i
end local 10 // int end
end local 9 // int outLen
end local 4 // java.io.OutputStream out
end local 3 // int length
end local 2 // int off
end local 1 // byte[] data
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 39 1 data [B
0 39 2 off I
0 39 3 length I
0 39 4 out Ljava/io/OutputStream;
19 32 5 b1 B
21 32 6 b2 B
23 32 7 b3 B
25 32 8 b4 B
1 39 9 outLen I
2 39 10 end I
10 39 11 i I
11 39 12 finish I
34 39 13 e0 I
35 39 14 e1 I
36 39 15 e2 I
37 39 16 e3 I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
off
length
out
private int nextI(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // byte[] data
start local 2 // int i
start local 3 // int finish
0: .line 216
goto 2
1: .line 218
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
2: .line 216
StackMap locals:
StackMap stack:
iload 2 /* i */
iload 3 /* finish */
if_icmpge 3
aload 0 /* this */
aload 1 /* data */
iload 2 /* i */
baload
i2c
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
ifne 1
3: .line 220
StackMap locals:
StackMap stack:
iload 2 /* i */
ireturn
end local 3 // int finish
end local 2 // int i
end local 1 // byte[] data
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 4 1 data [B
0 4 2 i I
0 4 3 finish I
MethodParameters:
Name Flags
data
i
finish
public int decode(java.lang.String, java.io.OutputStream);
descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=15, args_size=3
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // java.lang.String data
start local 2 // java.io.OutputStream out
0: .line 235
iconst_0
istore 7 /* length */
start local 7 // int length
1: .line 237
aload 1 /* data */
invokevirtual java.lang.String.length:()I
istore 8 /* end */
start local 8 // int end
2: .line 239
goto 6
3: .line 241
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.lang.String java.io.OutputStream top top top top int int
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iload 8 /* end */
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
ifne 5
4: .line 243
goto 7
5: .line 246
StackMap locals:
StackMap stack:
iinc 8 /* end */ -1
6: .line 239
StackMap locals:
StackMap stack:
iload 8 /* end */
ifgt 3
7: .line 250
StackMap locals:
StackMap stack:
iload 8 /* end */
ifne 9
8: .line 252
iconst_0
ireturn
9: .line 255
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* i */
start local 9 // int i
10: .line 256
iload 8 /* end */
istore 10 /* finish */
start local 10 // int finish
11: .line 258
goto 15
12: .line 260
StackMap locals: int int
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iload 10 /* finish */
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
ifne 14
13: .line 262
iinc 9 /* i */ 1
14: .line 265
StackMap locals:
StackMap stack:
iinc 10 /* finish */ -1
15: .line 258
StackMap locals:
StackMap stack:
iload 10 /* finish */
ifle 16
iload 9 /* i */
iconst_4
if_icmpne 12
16: .line 268
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iconst_0
iload 10 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 9 /* i */
17: .line 270
goto 32
18: .line 272
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 9 /* i */
iinc 9 /* i */ 1
invokevirtual java.lang.String.charAt:(I)C
baload
istore 3 /* b1 */
start local 3 // byte b1
19: .line 274
aload 0 /* this */
aload 1 /* data */
iload 9 /* i */
iload 10 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 9 /* i */
20: .line 276
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 9 /* i */
iinc 9 /* i */ 1
invokevirtual java.lang.String.charAt:(I)C
baload
istore 4 /* b2 */
start local 4 // byte b2
21: .line 278
aload 0 /* this */
aload 1 /* data */
iload 9 /* i */
iload 10 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 9 /* i */
22: .line 280
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 9 /* i */
iinc 9 /* i */ 1
invokevirtual java.lang.String.charAt:(I)C
baload
istore 5 /* b3 */
start local 5 // byte b3
23: .line 282
aload 0 /* this */
aload 1 /* data */
iload 9 /* i */
iload 10 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 9 /* i */
24: .line 284
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
aload 1 /* data */
iload 9 /* i */
iinc 9 /* i */ 1
invokevirtual java.lang.String.charAt:(I)C
baload
istore 6 /* b4 */
start local 6 // byte b4
25: .line 286
iload 3 /* b1 */
iload 4 /* b2 */
ior
iload 5 /* b3 */
ior
iload 6 /* b4 */
ior
ifge 27
26: .line 288
new java.io.IOException
dup
ldc "invalid characters encountered in base64 data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
27: .line 291
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.lang.String java.io.OutputStream int int int int int int int int
StackMap stack:
aload 2 /* out */
iload 3 /* b1 */
iconst_2
ishl
iload 4 /* b2 */
iconst_4
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
28: .line 292
aload 2 /* out */
iload 4 /* b2 */
iconst_4
ishl
iload 5 /* b3 */
iconst_2
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
29: .line 293
aload 2 /* out */
iload 5 /* b3 */
bipush 6
ishl
iload 6 /* b4 */
ior
invokevirtual java.io.OutputStream.write:(I)V
30: .line 295
iinc 7 /* length */ 3
31: .line 297
aload 0 /* this */
aload 1 /* data */
iload 9 /* i */
iload 10 /* finish */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 9 /* i */
end local 6 // byte b4
end local 5 // byte b3
end local 4 // byte b2
end local 3 // byte b1
32: .line 270
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.lang.String java.io.OutputStream top top top top int int int int
StackMap stack:
iload 9 /* i */
iload 10 /* finish */
if_icmplt 18
33: .line 300
aload 0 /* this */
aload 1 /* data */
iload 9 /* i */
iload 8 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 11 /* e0 */
start local 11 // int e0
34: .line 301
aload 0 /* this */
aload 1 /* data */
iload 11 /* e0 */
iconst_1
iadd
iload 8 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 12 /* e1 */
start local 12 // int e1
35: .line 302
aload 0 /* this */
aload 1 /* data */
iload 12 /* e1 */
iconst_1
iadd
iload 8 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 13 /* e2 */
start local 13 // int e2
36: .line 303
aload 0 /* this */
aload 1 /* data */
iload 13 /* e2 */
iconst_1
iadd
iload 8 /* end */
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
istore 14 /* e3 */
start local 14 // int e3
37: .line 305
iload 7 /* length */
aload 0 /* this */
aload 2 /* out */
aload 1 /* data */
iload 11 /* e0 */
invokevirtual java.lang.String.charAt:(I)C
aload 1 /* data */
iload 12 /* e1 */
invokevirtual java.lang.String.charAt:(I)C
aload 1 /* data */
iload 13 /* e2 */
invokevirtual java.lang.String.charAt:(I)C
aload 1 /* data */
iload 14 /* e3 */
invokevirtual java.lang.String.charAt:(I)C
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.decodeLastBlock:(Ljava/io/OutputStream;CCCC)I
iadd
istore 7 /* length */
38: .line 307
iload 7 /* length */
ireturn
end local 14 // int e3
end local 13 // int e2
end local 12 // int e1
end local 11 // int e0
end local 10 // int finish
end local 9 // int i
end local 8 // int end
end local 7 // int length
end local 2 // java.io.OutputStream out
end local 1 // java.lang.String data
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 39 1 data Ljava/lang/String;
0 39 2 out Ljava/io/OutputStream;
19 32 3 b1 B
21 32 4 b2 B
23 32 5 b3 B
25 32 6 b4 B
1 39 7 length I
2 39 8 end I
10 39 9 i I
11 39 10 finish I
34 39 11 e0 I
35 39 12 e1 I
36 39 13 e2 I
37 39 14 e3 I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
out
private int decodeLastBlock(java.io.OutputStream, char, char, char, char);
descriptor: (Ljava/io/OutputStream;CCCC)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=6
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // java.io.OutputStream out
start local 2 // char c1
start local 3 // char c2
start local 4 // char c3
start local 5 // char c4
0: .line 315
iload 4 /* c3 */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
if_icmpne 9
1: .line 317
iload 5 /* c4 */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
if_icmpeq 3
2: .line 319
new java.io.IOException
dup
ldc "invalid characters encountered at end of base64 data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: .line 322
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 2 /* c1 */
baload
istore 6 /* b1 */
start local 6 // byte b1
4: .line 323
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 3 /* c2 */
baload
istore 7 /* b2 */
start local 7 // byte b2
5: .line 325
iload 6 /* b1 */
iload 7 /* b2 */
ior
ifge 7
6: .line 327
new java.io.IOException
dup
ldc "invalid characters encountered at end of base64 data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: .line 330
StackMap locals: int int
StackMap stack:
aload 1 /* out */
iload 6 /* b1 */
iconst_2
ishl
iload 7 /* b2 */
iconst_4
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
8: .line 332
iconst_1
ireturn
end local 7 // byte b2
end local 6 // byte b1
9: .line 334
StackMap locals:
StackMap stack:
iload 5 /* c4 */
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
if_icmpne 18
10: .line 336
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 2 /* c1 */
baload
istore 6 /* b1 */
start local 6 // byte b1
11: .line 337
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 3 /* c2 */
baload
istore 7 /* b2 */
start local 7 // byte b2
12: .line 338
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 4 /* c3 */
baload
istore 8 /* b3 */
start local 8 // byte b3
13: .line 340
iload 6 /* b1 */
iload 7 /* b2 */
ior
iload 8 /* b3 */
ior
ifge 15
14: .line 342
new java.io.IOException
dup
ldc "invalid characters encountered at end of base64 data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: .line 345
StackMap locals: int int int
StackMap stack:
aload 1 /* out */
iload 6 /* b1 */
iconst_2
ishl
iload 7 /* b2 */
iconst_4
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
16: .line 346
aload 1 /* out */
iload 7 /* b2 */
iconst_4
ishl
iload 8 /* b3 */
iconst_2
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
17: .line 348
iconst_2
ireturn
end local 8 // byte b3
end local 7 // byte b2
end local 6 // byte b1
18: .line 352
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 2 /* c1 */
baload
istore 6 /* b1 */
start local 6 // byte b1
19: .line 353
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 3 /* c2 */
baload
istore 7 /* b2 */
start local 7 // byte b2
20: .line 354
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 4 /* c3 */
baload
istore 8 /* b3 */
start local 8 // byte b3
21: .line 355
aload 0 /* this */
getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
iload 5 /* c4 */
baload
istore 9 /* b4 */
start local 9 // byte b4
22: .line 357
iload 6 /* b1 */
iload 7 /* b2 */
ior
iload 8 /* b3 */
ior
iload 9 /* b4 */
ior
ifge 24
23: .line 359
new java.io.IOException
dup
ldc "invalid characters encountered at end of base64 data"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
24: .line 362
StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.io.OutputStream int int int int int int int int
StackMap stack:
aload 1 /* out */
iload 6 /* b1 */
iconst_2
ishl
iload 7 /* b2 */
iconst_4
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
25: .line 363
aload 1 /* out */
iload 7 /* b2 */
iconst_4
ishl
iload 8 /* b3 */
iconst_2
ishr
ior
invokevirtual java.io.OutputStream.write:(I)V
26: .line 364
aload 1 /* out */
iload 8 /* b3 */
bipush 6
ishl
iload 9 /* b4 */
ior
invokevirtual java.io.OutputStream.write:(I)V
27: .line 366
iconst_3
ireturn
end local 9 // byte b4
end local 8 // byte b3
end local 7 // byte b2
end local 6 // byte b1
end local 5 // char c4
end local 4 // char c3
end local 3 // char c2
end local 2 // char c1
end local 1 // java.io.OutputStream out
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 28 1 out Ljava/io/OutputStream;
0 28 2 c1 C
0 28 3 c2 C
0 28 4 c3 C
0 28 5 c4 C
4 9 6 b1 B
11 18 6 b1 B
19 28 6 b1 B
5 9 7 b2 B
12 18 7 b2 B
20 28 7 b2 B
13 18 8 b3 B
21 28 8 b3 B
22 28 9 b4 B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
c1
c2
c3
c4
private int nextI(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
start local 1 // java.lang.String data
start local 2 // int i
start local 3 // int finish
0: .line 372
goto 2
1: .line 374
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
2: .line 372
StackMap locals:
StackMap stack:
iload 2 /* i */
iload 3 /* finish */
if_icmpge 3
aload 0 /* this */
aload 1 /* data */
iload 2 /* i */
invokevirtual java.lang.String.charAt:(I)C
invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
ifne 1
3: .line 376
StackMap locals:
StackMap stack:
iload 2 /* i */
ireturn
end local 3 // int finish
end local 2 // int i
end local 1 // java.lang.String data
end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/util/encoders/Base64Encoder;
0 4 1 data Ljava/lang/String;
0 4 2 i I
0 4 3 finish I
MethodParameters:
Name Flags
data
i
finish
}
SourceFile: "Base64Encoder.java"