add implementation of SHA3 (Keccak), borrowed from BouncyCastle library