コード例 #1
0
ファイル: haval.cpp プロジェクト: killbug2004/WSProf
void HAVAL::HashBlock(const word32 *input)
{
#ifdef IS_LITTLE_ENDIAN
	vTransform(digest, input);
#else
	byteReverse(data.ptr, input, (unsigned int)DATASIZE);
	vTransform(digest, data);
#endif
}
コード例 #2
0
ファイル: panama.cpp プロジェクト: acat/emule
void PanamaHash<B>::TruncatedFinal(byte *hash, unsigned int size)
{
	ThrowIfInvalidTruncatedSize(size);

	PadLastBlock(BLOCKSIZE, 0x01);
	
	vTransform(m_data);

	Iterate(32);	// pull

	ConditionalByteReverse(B::ToEnum(), m_state+9, m_state+9, DIGESTSIZE);
	memcpy(hash, m_state+9, size);

	Restart();		// reinit for next use
}
コード例 #3
0
ファイル: haval.cpp プロジェクト: freegroup/DigitalSimulator
void HAVAL::Final (byte *hash)
{
	PadLastBlock(118, 1);	// first byte of padding for HAVAL is 1 instead of 0x80
	CorrectEndianess(data, data, 120);

	data[29] &= 0xffff;
	data[29] |= ((word32)digestSize<<25) | ((word32)pass<<19) | ((word32)VERSION<<16);
	data[30] = countLo;
	data[31] = countHi;

	vTransform(data);
	Tailor(digestSize*8);
	CorrectEndianess(digest, digest, digestSize);
	memcpy(hash, digest, digestSize);

	Reinit();		// reinit for next use
}
コード例 #4
0
ファイル: haval.cpp プロジェクト: randombit/hacrypto
void HAVAL::TruncatedFinal(byte *hash, unsigned int size)
{
	ThrowIfInvalidTruncatedSize(size);

	PadLastBlock(118, 1);	// first byte of padding for HAVAL is 1 instead of 0x80
	CorrectEndianess(m_data, m_data, 120);

	m_data[29] &= 0xffff;
	m_data[29] |= ((word32)digestSize<<25) | ((word32)pass<<19) | ((word32)HAVAL_VERSION<<16);
	m_data[30] = GetBitCountLo();
	m_data[31] = GetBitCountHi();

	vTransform(m_data);
	Tailor(digestSize*8);
	CorrectEndianess(m_digest, m_digest, digestSize);
	memcpy(hash, m_digest, size);

	Restart();		// reinit for next use
}