shakejo 0.0.2

Noise_IK_25519_ChaChaPoly_BLAKE2s
Documentation
use blake2::Digest;
use snow::types as inner;

#[derive(Default)]
pub struct HashBLAKE2s {
	inner: blake2::Blake2s256,
}

impl inner::Hash for HashBLAKE2s {
	fn name(&self) -> &'static str {
		"BLAKE2s"
	}

	fn block_len(&self) -> usize {
		64
	}

	fn hash_len(&self) -> usize {
		32
	}

	fn reset(&mut self) {
		self.inner = blake2::Blake2s::default();
	}

	fn input(&mut self, data: &[u8]) {
		self.inner.update(data);
	}

	fn result(&mut self, out: &mut [u8]) {
		let s = self.inner.finalize_reset();

		out[..32].copy_from_slice(&s);
	}
}