Skip to content

Commit a71e4eb

Browse files
committed
fix SM3 bug
1 parent 0fb4534 commit a71e4eb

1 file changed

Lines changed: 19 additions & 2 deletions

File tree

Hashtool/HashFunc.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -697,10 +697,27 @@ protected override byte[] HashFinal()
697697

698698
// 尾部填充
699699
dataBuffer[dataBufferLen] = 0x80;
700-
for (int i = dataBufferLen + 1; i < 56; i++)
700+
if (dataBufferLen < 56)
701701
{
702-
dataBuffer[i] = 0x00;
702+
for (int i = dataBufferLen + 1; i < 56; i++)
703+
{
704+
dataBuffer[i] = 0x00;
705+
}
703706
}
707+
else
708+
{
709+
for (int i = dataBufferLen + 1; i < 64; i++)
710+
{
711+
dataBuffer[i] = 0x00;
712+
}
713+
ReadBlock(dataBuffer);
714+
CF();
715+
for (int i = 0; i < 56; i++)
716+
{
717+
dataBuffer[i] = 0x00;
718+
}
719+
}
720+
704721
ulong msgBitLen = msgLength * 8;
705722
dataBuffer[56] = (byte)(msgBitLen >> 56);
706723
dataBuffer[57] = (byte)(msgBitLen >> 48);

0 commit comments

Comments
 (0)