@Test
    void salt_longer_than_block_size_is_equivalent_to_hash_of_the_salt() {
        var ikm  = unhex("624a5b59c2be55cbe29ea90c0020a7e8c60f2501");
        var info = unhex("5447e595250d02165aae3e61fa90313e25509a7b");
        var salts = List.of("c737d7278df1ec7c0a549ce964abd51c3df1d3584d49e77208cd3f9f5bbfb32e",
                            "1a08959149f4b073bcd902c9bc4ed0324c21c95590773afc77037d610b9584806aeeeda8b5" +
                                    "d588d0cd79e7c12211b8e394067516ce12946d61111a52042b539353");
        var expectedOkm = "d45c3909269f4b5f9de1fb2eeb0593a7cb9175c8835aba37e0ee0c4cb3bd87c4";
        for (var salt : salts) {
            var hkdf = HKDF.extractedFrom(unhex(salt), ikm);
            var okm = hkdf.expand(32, info);
            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