private static byte[] sha256DigestOf(byte[]... buffers) {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-256");
            for (byte[] buf : buffers) {
                digest.update(buf);
            }
            return digest.digest();
        } catch (NoSuchAlgorithmException e) {
            // SHA-256 should always be present, so this should never be reached in practice
            throw new RuntimeException(e);
        }
    }
HKDF tests that ensure that the output of our own implementation matches the test
vectors given in <a href="https://tools.ietf.org/html/rfc5869">RFC-5869</a>.

We don't expose the internal PRK (pseudo-random key) value of the HKDF itself,
so we don't test it explicitly. The actual OKM (output keying material) inherently
depends on it, so its correctness is verified transitively.

@author vekterli
security-utils/src/test/java/com/yahoo/security/HKDFTest.java