public class org.bouncycastle.crypto.digests.SHA1Digest extends org.bouncycastle.crypto.digests.GeneralDigest implements org.bouncycastle.crypto.digests.EncodableDigest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.digests.SHA1Digest
super_class: org.bouncycastle.crypto.digests.GeneralDigest
{
private static final int DIGEST_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private int H1;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int H2;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int H3;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int H4;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int H5;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int[] X;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int xOff;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int Y1;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1518500249
private static final int Y2;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1859775393
private static final int Y3;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1894007588
private static final int Y4;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -899497514
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 26
aload 0 /* this */
invokespecial org.bouncycastle.crypto.digests.GeneralDigest.<init>:()V
1: .line 20
aload 0 /* this */
bipush 80
newarray 10
putfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
2: .line 28
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.reset:()V
3: .line 29
return
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
public void <init>(org.bouncycastle.crypto.digests.SHA1Digest);
descriptor: (Lorg/bouncycastle/crypto/digests/SHA1Digest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // org.bouncycastle.crypto.digests.SHA1Digest t
0: .line 37
aload 0 /* this */
aload 1 /* t */
invokespecial org.bouncycastle.crypto.digests.GeneralDigest.<init>:(Lorg/bouncycastle/crypto/digests/GeneralDigest;)V
1: .line 20
aload 0 /* this */
bipush 80
newarray 10
putfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
2: .line 39
aload 0 /* this */
aload 1 /* t */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.copyIn:(Lorg/bouncycastle/crypto/digests/SHA1Digest;)V
3: .line 40
return
end local 1 // org.bouncycastle.crypto.digests.SHA1Digest t
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 4 1 t Lorg/bouncycastle/crypto/digests/SHA1Digest;
MethodParameters:
Name Flags
t
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // byte[] encodedState
0: .line 49
aload 0 /* this */
aload 1 /* encodedState */
invokespecial org.bouncycastle.crypto.digests.GeneralDigest.<init>:([B)V
1: .line 20
aload 0 /* this */
bipush 80
newarray 10
putfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
2: .line 51
aload 0 /* this */
aload 1 /* encodedState */
bipush 16
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
3: .line 52
aload 0 /* this */
aload 1 /* encodedState */
bipush 20
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
4: .line 53
aload 0 /* this */
aload 1 /* encodedState */
bipush 24
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
5: .line 54
aload 0 /* this */
aload 1 /* encodedState */
bipush 28
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
6: .line 55
aload 0 /* this */
aload 1 /* encodedState */
bipush 32
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
7: .line 57
aload 0 /* this */
aload 1 /* encodedState */
bipush 36
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
putfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
8: .line 58
iconst_0
istore 2 /* i */
start local 2 // int i
9: goto 12
10: .line 60
StackMap locals: org.bouncycastle.crypto.digests.SHA1Digest byte[] int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 2 /* i */
aload 1 /* encodedState */
bipush 40
iload 2 /* i */
iconst_4
imul
iadd
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
iastore
11: .line 58
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 2 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
if_icmpne 10
end local 2 // int i
13: .line 62
return
end local 1 // byte[] encodedState
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 14 1 encodedState [B
9 13 2 i I
MethodParameters:
Name Flags
encodedState
private void copyIn(org.bouncycastle.crypto.digests.SHA1Digest);
descriptor: (Lorg/bouncycastle/crypto/digests/SHA1Digest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // org.bouncycastle.crypto.digests.SHA1Digest t
0: .line 66
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
1: .line 67
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
2: .line 68
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
3: .line 69
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
4: .line 70
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
putfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
5: .line 72
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iconst_0
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: .line 73
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
putfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
7: .line 74
return
end local 1 // org.bouncycastle.crypto.digests.SHA1Digest t
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 8 1 t Lorg/bouncycastle/crypto/digests/SHA1Digest;
MethodParameters:
Name Flags
t
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 78
ldc "SHA-1"
areturn
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
public int getDigestSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 83
bipush 20
ireturn
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
protected void processWord(byte[], int);
descriptor: ([BI)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // byte[] in
start local 2 // int inOff
0: .line 92
aload 1 /* in */
iload 2 /* inOff */
baload
bipush 24
ishl
istore 3 /* n */
start local 3 // int n
1: .line 93
iload 3 /* n */
aload 1 /* in */
iinc 2 /* inOff */ 1
iload 2 /* inOff */
baload
sipush 255
iand
bipush 16
ishl
ior
istore 3 /* n */
2: .line 94
iload 3 /* n */
aload 1 /* in */
iinc 2 /* inOff */ 1
iload 2 /* inOff */
baload
sipush 255
iand
bipush 8
ishl
ior
istore 3 /* n */
3: .line 95
iload 3 /* n */
aload 1 /* in */
iinc 2 /* inOff */ 1
iload 2 /* inOff */
baload
sipush 255
iand
ior
istore 3 /* n */
4: .line 96
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
iload 3 /* n */
iastore
5: .line 98
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
iconst_1
iadd
dup_x1
putfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
bipush 16
if_icmpne 7
6: .line 100
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.processBlock:()V
7: .line 102
StackMap locals: int
StackMap stack:
return
end local 3 // int n
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 8 1 in [B
0 8 2 inOff I
1 8 3 n I
MethodParameters:
Name Flags
in
inOff
protected void processLength(long);
descriptor: (J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // long bitLength
0: .line 107
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
bipush 14
if_icmple 2
1: .line 109
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.processBlock:()V
2: .line 112
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
bipush 14
lload 1 /* bitLength */
bipush 32
lushr
l2i
iastore
3: .line 113
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
bipush 15
lload 1 /* bitLength */
l2i
iastore
4: .line 114
return
end local 1 // long bitLength
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 5 1 bitLength J
MethodParameters:
Name Flags
bitLength
public int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // byte[] out
start local 2 // int outOff
0: .line 120
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.finish:()V
1: .line 122
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
aload 1 /* out */
iload 2 /* outOff */
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
2: .line 123
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
aload 1 /* out */
iload 2 /* outOff */
iconst_4
iadd
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
3: .line 124
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
aload 1 /* out */
iload 2 /* outOff */
bipush 8
iadd
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
4: .line 125
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
aload 1 /* out */
iload 2 /* outOff */
bipush 12
iadd
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
5: .line 126
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
aload 1 /* out */
iload 2 /* outOff */
bipush 16
iadd
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
6: .line 128
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.reset:()V
7: .line 130
bipush 20
ireturn
end local 2 // int outOff
end local 1 // byte[] out
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 8 1 out [B
0 8 2 outOff I
MethodParameters:
Name Flags
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 138
aload 0 /* this */
invokespecial org.bouncycastle.crypto.digests.GeneralDigest.reset:()V
1: .line 140
aload 0 /* this */
ldc 1732584193
putfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
2: .line 141
aload 0 /* this */
ldc -271733879
putfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
3: .line 142
aload 0 /* this */
ldc -1732584194
putfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
4: .line 143
aload 0 /* this */
ldc 271733878
putfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
5: .line 144
aload 0 /* this */
ldc -1009589776
putfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
6: .line 146
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
7: .line 147
iconst_0
istore 1 /* i */
start local 1 // int i
8: goto 11
9: .line 149
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 1 /* i */
iconst_0
iastore
10: .line 147
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 1 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
arraylength
if_icmpne 9
end local 1 // int i
12: .line 151
return
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
8 12 1 i I
private int f(int, int, int);
descriptor: (III)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // int u
start local 2 // int v
start local 3 // int w
0: .line 166
iload 1 /* u */
iload 2 /* v */
iand
iload 1 /* u */
iconst_m1
ixor
iload 3 /* w */
iand
ior
ireturn
end local 3 // int w
end local 2 // int v
end local 1 // int u
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 1 1 u I
0 1 2 v I
0 1 3 w I
MethodParameters:
Name Flags
u
v
w
private int h(int, int, int);
descriptor: (III)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // int u
start local 2 // int v
start local 3 // int w
0: .line 174
iload 1 /* u */
iload 2 /* v */
ixor
iload 3 /* w */
ixor
ireturn
end local 3 // int w
end local 2 // int v
end local 1 // int u
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 1 1 u I
0 1 2 v I
0 1 3 w I
MethodParameters:
Name Flags
u
v
w
private int g(int, int, int);
descriptor: (III)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // int u
start local 2 // int v
start local 3 // int w
0: .line 182
iload 1 /* u */
iload 2 /* v */
iand
iload 1 /* u */
iload 3 /* w */
iand
ior
iload 2 /* v */
iload 3 /* w */
iand
ior
ireturn
end local 3 // int w
end local 2 // int v
end local 1 // int u
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 1 1 u I
0 1 2 v I
0 1 3 w I
MethodParameters:
Name Flags
u
v
w
protected void processBlock();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 190
bipush 16
istore 1 /* i */
start local 1 // int i
1: goto 5
2: .line 192
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 1 /* i */
iconst_3
isub
iaload
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 1 /* i */
bipush 8
isub
iaload
ixor
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 1 /* i */
bipush 14
isub
iaload
ixor
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 1 /* i */
bipush 16
isub
iaload
ixor
istore 2 /* t */
start local 2 // int t
3: .line 193
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 1 /* i */
iload 2 /* t */
iconst_1
ishl
iload 2 /* t */
bipush 31
iushr
ior
iastore
end local 2 // int t
4: .line 190
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 1 /* i */
bipush 80
if_icmplt 2
end local 1 // int i
6: .line 199
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
istore 1 /* A */
start local 1 // int A
7: .line 200
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
istore 2 /* B */
start local 2 // int B
8: .line 201
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
istore 3 /* C */
start local 3 // int C
9: .line 202
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
istore 4 /* D */
start local 4 // int D
10: .line 203
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
istore 5 /* E */
start local 5 // int E
11: .line 208
iconst_0
istore 6 /* idx */
start local 6 // int idx
12: .line 210
iconst_0
istore 7 /* j */
start local 7 // int j
13: goto 25
14: .line 214
StackMap locals: org.bouncycastle.crypto.digests.SHA1Digest int int int int int int int
StackMap stack:
iload 5 /* E */
iload 1 /* A */
iconst_5
ishl
iload 1 /* A */
bipush 27
iushr
ior
aload 0 /* this */
iload 2 /* B */
iload 3 /* C */
iload 4 /* D */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.f:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1518500249
iadd
iadd
istore 5 /* E */
15: .line 215
iload 2 /* B */
bipush 30
ishl
iload 2 /* B */
iconst_2
iushr
ior
istore 2 /* B */
16: .line 217
iload 4 /* D */
iload 5 /* E */
iconst_5
ishl
iload 5 /* E */
bipush 27
iushr
ior
aload 0 /* this */
iload 1 /* A */
iload 2 /* B */
iload 3 /* C */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.f:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1518500249
iadd
iadd
istore 4 /* D */
17: .line 218
iload 1 /* A */
bipush 30
ishl
iload 1 /* A */
iconst_2
iushr
ior
istore 1 /* A */
18: .line 220
iload 3 /* C */
iload 4 /* D */
iconst_5
ishl
iload 4 /* D */
bipush 27
iushr
ior
aload 0 /* this */
iload 5 /* E */
iload 1 /* A */
iload 2 /* B */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.f:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1518500249
iadd
iadd
istore 3 /* C */
19: .line 221
iload 5 /* E */
bipush 30
ishl
iload 5 /* E */
iconst_2
iushr
ior
istore 5 /* E */
20: .line 223
iload 2 /* B */
iload 3 /* C */
iconst_5
ishl
iload 3 /* C */
bipush 27
iushr
ior
aload 0 /* this */
iload 4 /* D */
iload 5 /* E */
iload 1 /* A */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.f:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1518500249
iadd
iadd
istore 2 /* B */
21: .line 224
iload 4 /* D */
bipush 30
ishl
iload 4 /* D */
iconst_2
iushr
ior
istore 4 /* D */
22: .line 226
iload 1 /* A */
iload 2 /* B */
iconst_5
ishl
iload 2 /* B */
bipush 27
iushr
ior
aload 0 /* this */
iload 3 /* C */
iload 4 /* D */
iload 5 /* E */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.f:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1518500249
iadd
iadd
istore 1 /* A */
23: .line 227
iload 3 /* C */
bipush 30
ishl
iload 3 /* C */
iconst_2
iushr
ior
istore 3 /* C */
24: .line 210
iinc 7 /* j */ 1
StackMap locals:
StackMap stack:
25: iload 7 /* j */
iconst_4
if_icmplt 14
end local 7 // int j
26: .line 233
iconst_0
istore 7 /* j */
start local 7 // int j
27: goto 39
28: .line 237
StackMap locals:
StackMap stack:
iload 5 /* E */
iload 1 /* A */
iconst_5
ishl
iload 1 /* A */
bipush 27
iushr
ior
aload 0 /* this */
iload 2 /* B */
iload 3 /* C */
iload 4 /* D */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1859775393
iadd
iadd
istore 5 /* E */
29: .line 238
iload 2 /* B */
bipush 30
ishl
iload 2 /* B */
iconst_2
iushr
ior
istore 2 /* B */
30: .line 240
iload 4 /* D */
iload 5 /* E */
iconst_5
ishl
iload 5 /* E */
bipush 27
iushr
ior
aload 0 /* this */
iload 1 /* A */
iload 2 /* B */
iload 3 /* C */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1859775393
iadd
iadd
istore 4 /* D */
31: .line 241
iload 1 /* A */
bipush 30
ishl
iload 1 /* A */
iconst_2
iushr
ior
istore 1 /* A */
32: .line 243
iload 3 /* C */
iload 4 /* D */
iconst_5
ishl
iload 4 /* D */
bipush 27
iushr
ior
aload 0 /* this */
iload 5 /* E */
iload 1 /* A */
iload 2 /* B */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1859775393
iadd
iadd
istore 3 /* C */
33: .line 244
iload 5 /* E */
bipush 30
ishl
iload 5 /* E */
iconst_2
iushr
ior
istore 5 /* E */
34: .line 246
iload 2 /* B */
iload 3 /* C */
iconst_5
ishl
iload 3 /* C */
bipush 27
iushr
ior
aload 0 /* this */
iload 4 /* D */
iload 5 /* E */
iload 1 /* A */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1859775393
iadd
iadd
istore 2 /* B */
35: .line 247
iload 4 /* D */
bipush 30
ishl
iload 4 /* D */
iconst_2
iushr
ior
istore 4 /* D */
36: .line 249
iload 1 /* A */
iload 2 /* B */
iconst_5
ishl
iload 2 /* B */
bipush 27
iushr
ior
aload 0 /* this */
iload 3 /* C */
iload 4 /* D */
iload 5 /* E */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc 1859775393
iadd
iadd
istore 1 /* A */
37: .line 250
iload 3 /* C */
bipush 30
ishl
iload 3 /* C */
iconst_2
iushr
ior
istore 3 /* C */
38: .line 233
iinc 7 /* j */ 1
StackMap locals:
StackMap stack:
39: iload 7 /* j */
iconst_4
if_icmplt 28
end local 7 // int j
40: .line 256
iconst_0
istore 7 /* j */
start local 7 // int j
41: goto 53
42: .line 260
StackMap locals:
StackMap stack:
iload 5 /* E */
iload 1 /* A */
iconst_5
ishl
iload 1 /* A */
bipush 27
iushr
ior
aload 0 /* this */
iload 2 /* B */
iload 3 /* C */
iload 4 /* D */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.g:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -1894007588
iadd
iadd
istore 5 /* E */
43: .line 261
iload 2 /* B */
bipush 30
ishl
iload 2 /* B */
iconst_2
iushr
ior
istore 2 /* B */
44: .line 263
iload 4 /* D */
iload 5 /* E */
iconst_5
ishl
iload 5 /* E */
bipush 27
iushr
ior
aload 0 /* this */
iload 1 /* A */
iload 2 /* B */
iload 3 /* C */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.g:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -1894007588
iadd
iadd
istore 4 /* D */
45: .line 264
iload 1 /* A */
bipush 30
ishl
iload 1 /* A */
iconst_2
iushr
ior
istore 1 /* A */
46: .line 266
iload 3 /* C */
iload 4 /* D */
iconst_5
ishl
iload 4 /* D */
bipush 27
iushr
ior
aload 0 /* this */
iload 5 /* E */
iload 1 /* A */
iload 2 /* B */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.g:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -1894007588
iadd
iadd
istore 3 /* C */
47: .line 267
iload 5 /* E */
bipush 30
ishl
iload 5 /* E */
iconst_2
iushr
ior
istore 5 /* E */
48: .line 269
iload 2 /* B */
iload 3 /* C */
iconst_5
ishl
iload 3 /* C */
bipush 27
iushr
ior
aload 0 /* this */
iload 4 /* D */
iload 5 /* E */
iload 1 /* A */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.g:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -1894007588
iadd
iadd
istore 2 /* B */
49: .line 270
iload 4 /* D */
bipush 30
ishl
iload 4 /* D */
iconst_2
iushr
ior
istore 4 /* D */
50: .line 272
iload 1 /* A */
iload 2 /* B */
iconst_5
ishl
iload 2 /* B */
bipush 27
iushr
ior
aload 0 /* this */
iload 3 /* C */
iload 4 /* D */
iload 5 /* E */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.g:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -1894007588
iadd
iadd
istore 1 /* A */
51: .line 273
iload 3 /* C */
bipush 30
ishl
iload 3 /* C */
iconst_2
iushr
ior
istore 3 /* C */
52: .line 256
iinc 7 /* j */ 1
StackMap locals:
StackMap stack:
53: iload 7 /* j */
iconst_4
if_icmplt 42
end local 7 // int j
54: .line 279
iconst_0
istore 7 /* j */
start local 7 // int j
55: goto 67
56: .line 283
StackMap locals:
StackMap stack:
iload 5 /* E */
iload 1 /* A */
iconst_5
ishl
iload 1 /* A */
bipush 27
iushr
ior
aload 0 /* this */
iload 2 /* B */
iload 3 /* C */
iload 4 /* D */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -899497514
iadd
iadd
istore 5 /* E */
57: .line 284
iload 2 /* B */
bipush 30
ishl
iload 2 /* B */
iconst_2
iushr
ior
istore 2 /* B */
58: .line 286
iload 4 /* D */
iload 5 /* E */
iconst_5
ishl
iload 5 /* E */
bipush 27
iushr
ior
aload 0 /* this */
iload 1 /* A */
iload 2 /* B */
iload 3 /* C */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -899497514
iadd
iadd
istore 4 /* D */
59: .line 287
iload 1 /* A */
bipush 30
ishl
iload 1 /* A */
iconst_2
iushr
ior
istore 1 /* A */
60: .line 289
iload 3 /* C */
iload 4 /* D */
iconst_5
ishl
iload 4 /* D */
bipush 27
iushr
ior
aload 0 /* this */
iload 5 /* E */
iload 1 /* A */
iload 2 /* B */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -899497514
iadd
iadd
istore 3 /* C */
61: .line 290
iload 5 /* E */
bipush 30
ishl
iload 5 /* E */
iconst_2
iushr
ior
istore 5 /* E */
62: .line 292
iload 2 /* B */
iload 3 /* C */
iconst_5
ishl
iload 3 /* C */
bipush 27
iushr
ior
aload 0 /* this */
iload 4 /* D */
iload 5 /* E */
iload 1 /* A */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -899497514
iadd
iadd
istore 2 /* B */
63: .line 293
iload 4 /* D */
bipush 30
ishl
iload 4 /* D */
iconst_2
iushr
ior
istore 4 /* D */
64: .line 295
iload 1 /* A */
iload 2 /* B */
iconst_5
ishl
iload 2 /* B */
bipush 27
iushr
ior
aload 0 /* this */
iload 3 /* C */
iload 4 /* D */
iload 5 /* E */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.h:(III)I
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 6 /* idx */
iinc 6 /* idx */ 1
iaload
iadd
ldc -899497514
iadd
iadd
istore 1 /* A */
65: .line 296
iload 3 /* C */
bipush 30
ishl
iload 3 /* C */
iconst_2
iushr
ior
istore 3 /* C */
66: .line 279
iinc 7 /* j */ 1
StackMap locals:
StackMap stack:
67: iload 7 /* j */
iconst_3
if_icmple 56
end local 7 // int j
68: .line 300
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
iload 1 /* A */
iadd
putfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
69: .line 301
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
iload 2 /* B */
iadd
putfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
70: .line 302
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
iload 3 /* C */
iadd
putfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
71: .line 303
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
iload 4 /* D */
iadd
putfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
72: .line 304
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
iload 5 /* E */
iadd
putfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
73: .line 309
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
74: .line 310
iconst_0
istore 7 /* i */
start local 7 // int i
75: goto 78
76: .line 312
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 7 /* i */
iconst_0
iastore
77: .line 310
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
78: iload 7 /* i */
bipush 16
if_icmplt 76
end local 7 // int i
79: .line 314
return
end local 6 // int idx
end local 5 // int E
end local 4 // int D
end local 3 // int C
end local 2 // int B
end local 1 // int A
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 80 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
1 6 1 i I
3 4 2 t I
7 80 1 A I
8 80 2 B I
9 80 3 C I
10 80 4 D I
11 80 5 E I
12 80 6 idx I
13 26 7 j I
27 40 7 j I
41 54 7 j I
55 68 7 j I
75 79 7 i I
public org.bouncycastle.util.Memoable copy();
descriptor: ()Lorg/bouncycastle/util/Memoable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 318
new org.bouncycastle.crypto.digests.SHA1Digest
dup
aload 0 /* this */
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:(Lorg/bouncycastle/crypto/digests/SHA1Digest;)V
areturn
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
public void reset(org.bouncycastle.util.Memoable);
descriptor: (Lorg/bouncycastle/util/Memoable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
start local 1 // org.bouncycastle.util.Memoable other
0: .line 323
aload 1 /* other */
checkcast org.bouncycastle.crypto.digests.SHA1Digest
astore 2 /* d */
start local 2 // org.bouncycastle.crypto.digests.SHA1Digest d
1: .line 325
aload 0 /* this */
aload 2 /* d */
invokespecial org.bouncycastle.crypto.digests.GeneralDigest.copyIn:(Lorg/bouncycastle/crypto/digests/GeneralDigest;)V
2: .line 326
aload 0 /* this */
aload 2 /* d */
invokevirtual org.bouncycastle.crypto.digests.SHA1Digest.copyIn:(Lorg/bouncycastle/crypto/digests/SHA1Digest;)V
3: .line 327
return
end local 2 // org.bouncycastle.crypto.digests.SHA1Digest d
end local 1 // org.bouncycastle.util.Memoable other
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
0 4 1 other Lorg/bouncycastle/util/Memoable;
1 4 2 d Lorg/bouncycastle/crypto/digests/SHA1Digest;
MethodParameters:
Name Flags
other
public byte[] getEncodedState();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
0: .line 331
bipush 40
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
iconst_4
imul
iadd
newarray 8
astore 1 /* state */
start local 1 // byte[] state
1: .line 333
aload 0 /* this */
aload 1 /* state */
invokespecial org.bouncycastle.crypto.digests.GeneralDigest.populateState:([B)V
2: .line 335
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H1:I
aload 1 /* state */
bipush 16
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
3: .line 336
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H2:I
aload 1 /* state */
bipush 20
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
4: .line 337
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H3:I
aload 1 /* state */
bipush 24
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
5: .line 338
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H4:I
aload 1 /* state */
bipush 28
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
6: .line 339
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.H5:I
aload 1 /* state */
bipush 32
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
7: .line 340
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
aload 1 /* state */
bipush 36
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
8: .line 342
iconst_0
istore 2 /* i */
start local 2 // int i
9: goto 12
10: .line 344
StackMap locals: byte[] int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.X:[I
iload 2 /* i */
iaload
aload 1 /* state */
bipush 40
iload 2 /* i */
iconst_4
imul
iadd
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
11: .line 342
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 2 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.SHA1Digest.xOff:I
if_icmpne 10
end local 2 // int i
13: .line 347
aload 1 /* state */
areturn
end local 1 // byte[] state
end local 0 // org.bouncycastle.crypto.digests.SHA1Digest this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/bouncycastle/crypto/digests/SHA1Digest;
1 14 1 state [B
9 13 2 i I
}
SourceFile: "SHA1Digest.java"