@Test
    void rfc_5869_test_vector_case_3() {
        var ikm  = unhex("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b");
        var info = new byte[0];

        // We don't allow empty salt to the salted factory function, so this is equivalent.
        var hkdf = HKDF.unsaltedExtractedFrom(ikm);
        var okm = hkdf.expand(42, info);
        var expectedOkm = "8da4e775a563c18f715f802a063c5a31" +
                          "b8a11f5c5ee1879ec3454e5f3c738d2d" +
                          "9d201395faa4b61a96c8";
        assertEquals(expectedOkm, hex(okm));

        // expand() without explicit context should return as if an empty context array was passed
        okm = hkdf.expand(42);
        assertEquals(expectedOkm, hex(okm));
    }
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