class Kalium implements Encryptor {

    @Override
    public SharedKey createSingleKey() {
        LOGGER.info("Generating random key");

        final byte[] keyBytes = new byte[CRYPTO_BOX_CURVE25519XSALSA20POLY1305_PUBLICKEYBYTES];

        this.sodium.randombytes(keyBytes, keyBytes.length);

        final SharedKey key = SharedKey.from(keyBytes);

        LOGGER.info("Random key generated");
        LOGGER.debug("Generated key with value {}", key);

        return key;
    }

    public  Kalium(final NaCl.Sodium sodium);

}