final class com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc implements com.sun.crypto.provider.ChaCha20Cipher$ChaChaEngine
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc
super_class: java.lang.Object
{
final com.sun.crypto.provider.ChaCha20Cipher this$0;
descriptor: Lcom/sun/crypto/provider/ChaCha20Cipher;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(com.sun.crypto.provider.ChaCha20Cipher);
descriptor: (Lcom/sun/crypto/provider/ChaCha20Cipher;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
invokevirtual com.sun.crypto.provider.ChaCha20Cipher.initAuthenticator:()V
2: aload 1
lconst_1
putfield com.sun.crypto.provider.ChaCha20Cipher.counter:J
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/crypto/provider/ChaCha20Cipher$EngineAEADEnc;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
this$0 final
public int doUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
getfield com.sun.crypto.provider.ChaCha20Cipher.initialized:Z
ifeq 17
1: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
getfield com.sun.crypto.provider.ChaCha20Cipher.aadDone:Z
ifne 4
2: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
getfield com.sun.crypto.provider.ChaCha20Cipher.aadLen:J
invokevirtual com.sun.crypto.provider.ChaCha20Cipher.authPad16:(J)V
3: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
iconst_1
putfield com.sun.crypto.provider.ChaCha20Cipher.aadDone:Z
4: StackMap locals:
StackMap stack:
aload 4
ifnull 7
5: iload 5
iload 3
aload 4
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
6: goto 12
7: StackMap locals:
StackMap stack:
new javax.crypto.ShortBufferException
dup
8: ldc "Output buffer too small"
9: invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack: java.lang.IndexOutOfBoundsException
pop
11: new javax.crypto.ShortBufferException
dup
ldc "Output buffer too small"
invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 1
ifnull 16
13: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
14: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
aload 1
iload 2
iload 3
aload 4
iload 5
invokevirtual com.sun.crypto.provider.ChaCha20Cipher.chaCha20Transform:([BII[BI)V
15: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
dup
getfield com.sun.crypto.provider.ChaCha20Cipher.dataLen:J
aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
aload 4
iload 5
iload 3
invokevirtual com.sun.crypto.provider.ChaCha20Cipher.authUpdate:([BII)I
i2l
ladd
putfield com.sun.crypto.provider.ChaCha20Cipher.dataLen:J
16: StackMap locals:
StackMap stack:
iload 3
ireturn
17: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
18: ldc "Must use either a different key or iv."
19: invokespecial java.lang.IllegalStateException.<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 20 0 this Lcom/sun/crypto/provider/ChaCha20Cipher$EngineAEADEnc;
0 20 1 in [B
0 20 2 inOff I
0 20 3 inLen I
0 20 4 out [B
0 20 5 outOff I
Exception table:
from to target type
4 10 10 Class java.lang.IndexOutOfBoundsException
Exceptions:
throws javax.crypto.ShortBufferException, java.security.KeyException
MethodParameters:
Name Flags
in
inOff
inLen
out
outOff
public int doFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 3
bipush 16
iadd
aload 4
arraylength
iload 5
isub
if_icmple 2
1: new javax.crypto.ShortBufferException
dup
ldc "Output buffer too small"
invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
aload 4
iload 5
invokevirtual com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.doUpdate:([BII[BI)I
pop
3: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
aconst_null
iconst_0
iconst_0
aload 4
iload 5
iload 3
iadd
invokevirtual com.sun.crypto.provider.ChaCha20Cipher.authFinalizeData:([BII[BI)V
4: aload 0
getfield com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc.this$0:Lcom/sun/crypto/provider/ChaCha20Cipher;
iconst_0
putfield com.sun.crypto.provider.ChaCha20Cipher.aadDone:Z
5: iload 3
bipush 16
iadd
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 6 0 this Lcom/sun/crypto/provider/ChaCha20Cipher$EngineAEADEnc;
0 6 1 in [B
0 6 2 inOff I
0 6 3 inLen I
0 6 4 out [B
0 6 5 outOff I
Exceptions:
throws javax.crypto.ShortBufferException, java.security.KeyException
MethodParameters:
Name Flags
in
inOff
inLen
out
outOff
}
SourceFile: "ChaCha20Cipher.java"
NestHost: com.sun.crypto.provider.ChaCha20Cipher
InnerClasses:
abstract ChaChaEngine = com.sun.crypto.provider.ChaCha20Cipher$ChaChaEngine of com.sun.crypto.provider.ChaCha20Cipher
private final EngineAEADEnc = com.sun.crypto.provider.ChaCha20Cipher$EngineAEADEnc of com.sun.crypto.provider.ChaCha20Cipher