//=========================================================================================
/*hash buffer*/
- private final byte[][] m_digest = new byte[2][HASH_LENGTH];
+ private final List<byte[]> m_digest = Collections.unmodifiableList(Arrays.asList(new byte[2][HASH_LENGTH]));
/*row index*/
private int m_rowIdx = 0;
//=========================================================================================
public final void update(final byte b) {
- final byte[] src = m_digest[m_swpFlg ? 1 : 0];
- final byte[] dst = m_digest[m_swpFlg ? 0 : 1];
final ByteString mix = TABLE_MIX.get(m_rowIdx);
final ByteString xor = TABLE_XOR.get(b & 0xFF);
+ final byte[] src = m_digest.get(m_swpFlg ? 1 : 0);
+ final byte[] dst = m_digest.get(m_swpFlg ? 0 : 1);
for (int i = 0; i < HASH_LENGTH; ++i) {
dst[i] = (byte)(src[mix.at(i)] ^ xor.at(i));
}
public final ByteString digest() {
final byte[] result = new byte[HASH_LENGTH];
final ByteString xor = TABLE_XOR.get(TABLE_XOR.size() - 1);
- final byte[] src = m_digest[m_swpFlg ? 1 : 0];
+ final byte[] src = m_digest.get(m_swpFlg ? 1 : 0);
for (int i = 0; i < HASH_LENGTH; ++i)
{
result[i] = (byte)(src[i] ^ xor.at(i));
//=====================================================================
/*hash buffer*/
- private readonly byte[][] m_digest = new byte[2][]
- {
- new byte[HASH_LEN], new byte[HASH_LEN]
- };
+ private readonly ConstArray<byte[]> m_digest = new ConstArray<byte[]>(new byte[HASH_LEN], new byte[HASH_LEN]);
/*row index*/
private int m_rnd = 0;