public abstract class java.security.MessageDigestSpi
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: java.security.MessageDigestSpi
super_class: java.lang.Object
{
private byte[] tempArray;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/MessageDigestSpi;
protected int engineGetDigestLength();
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 Ljava/security/MessageDigestSpi;
protected abstract void engineUpdate(byte);
descriptor: (B)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
input
protected abstract void engineUpdate(byte[], int, int);
descriptor: ([BII)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
input
offset
len
protected void engineUpdate(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 10
3: aload 1
invokevirtual java.nio.ByteBuffer.array:()[B
astore 2
start local 2 4: aload 1
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
istore 3
start local 3 5: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 4
start local 4 6: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5
start local 5 7: aload 0
aload 2
iload 3
iload 4
iadd
iload 5
iload 4
isub
invokevirtual java.security.MessageDigestSpi.engineUpdate:([BII)V
8: aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
end local 5 end local 4 end local 3 end local 2 9: goto 20
10: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 11: iload 2
invokestatic sun.security.jca.JCAUtil.getTempArraySize:(I)I
istore 3
start local 3 12: aload 0
getfield java.security.MessageDigestSpi.tempArray:[B
ifnull 13
iload 3
aload 0
getfield java.security.MessageDigestSpi.tempArray:[B
arraylength
if_icmple 19
13: StackMap locals: int int
StackMap stack:
aload 0
iload 3
newarray 8
putfield java.security.MessageDigestSpi.tempArray:[B
14: goto 19
15: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield java.security.MessageDigestSpi.tempArray:[B
arraylength
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 16: aload 1
aload 0
getfield java.security.MessageDigestSpi.tempArray:[B
iconst_0
iload 4
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
17: aload 0
aload 0
getfield java.security.MessageDigestSpi.tempArray:[B
iconst_0
iload 4
invokevirtual java.security.MessageDigestSpi.engineUpdate:([BII)V
18: iload 2
iload 4
isub
istore 2
end local 4 19: StackMap locals:
StackMap stack:
iload 2
ifgt 15
end local 3 end local 2 20: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/security/MessageDigestSpi;
0 21 1 input Ljava/nio/ByteBuffer;
4 9 2 b [B
5 9 3 ofs I
6 9 4 pos I
7 9 5 lim I
11 20 2 len I
12 20 3 n I
16 19 4 chunk I
MethodParameters:
Name Flags
input
protected abstract byte[] engineDigest();
descriptor: ()[B
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected int engineDigest(byte[], int, int);
descriptor: ([BII)I
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
invokevirtual java.security.MessageDigestSpi.engineDigest:()[B
astore 4
start local 4 1: iload 3
aload 4
arraylength
if_icmpge 3
2: new java.security.DigestException
dup
ldc "partial digests not returned"
invokespecial java.security.DigestException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
aload 1
arraylength
iload 2
isub
aload 4
arraylength
if_icmpge 5
4: new java.security.DigestException
dup
ldc "insufficient space in the output buffer to store the digest"
invokespecial java.security.DigestException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 4
iconst_0
aload 1
iload 2
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 4
arraylength
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/security/MessageDigestSpi;
0 7 1 buf [B
0 7 2 offset I
0 7 3 len I
1 7 4 digest [B
Exceptions:
throws java.security.DigestException
MethodParameters:
Name Flags
buf
offset
len
protected abstract void engineReset();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
instanceof java.lang.Cloneable
ifeq 2
1: aload 0
invokespecial java.lang.Object.clone:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.CloneNotSupportedException
dup
invokespecial java.lang.CloneNotSupportedException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/security/MessageDigestSpi;
Exceptions:
throws java.lang.CloneNotSupportedException
}
SourceFile: "MessageDigestSpi.java"