Exemplo n.º 1
0
void salsa20_hash(uint32_t* a){
	uint8_t i;
	uint32_t b[16];
	memcpy(b, a, 64);
	for(i=0; i<10; ++i){
		doubleround(a);
	}
	for(i=0; i<16; ++i){
		a[i] += b[i];
	}
}
Exemplo n.º 2
0
// Salsa hash function. Get seq array
static void
salsa20(uint8_t seq[64])
{
	uint32_t x[16], z[16];
	int i, j;

	for(i = 0; i < 16; i++)
		x[i] = z[i] = LITTLEENDIAN((seq + (i * 4)));

	for(i = 0; i < 10; i++)
		doubleround(z);
	
	j = 0;
	
	for(i = 0; i < 16; i++) {
		z[i] += x[i];
		seq[j++] = (uint8_t)(z[i]);
		seq[j++] = (uint8_t)(z[i] >> 8);
		seq[j++] = (uint8_t)(z[i] >> 16);
		seq[j++] = (uint8_t)(z[i] >> 24);
	}
}