private void verifyWantedBytesWithinBounds(int wantedBytes) {
        if (wantedBytes <= 0) {
            throw new IllegalArgumentException("Requested negative or zero number of HKDF output bytes");
        }
        if (wantedBytes > MAX_OUTPUT_SIZE) {
            throw new IllegalArgumentException("Too many requested HKDF output bytes (max %d, got %d)"
                                               .formatted(MAX_OUTPUT_SIZE, wantedBytes));
        }
    }
Derives a key with a given number of bytes. The returned key is always deterministic
for a HKDF initialized with a specific salt+IKM pair.

<p>If more than one key is to be derived, use {@link #expand(int, byte[])}</p>

<p>Thread safety: multiple threads can safely call <code>expand()</code> simultaneously
on the same HKDF object.</p>

@param wantedBytes Positive number of output bytes. Must be less than or equal to {@link #MAX_OUTPUT_SIZE}
@return A byte buffer of size wantedBytes filled with derived key material
security-utils/src/main/java/com/yahoo/security/HKDF.java