* @see <a href="http://tools.ietf.org/html/rfc5869">RFC 5869</a>
*/
public static SaltedSecretKey createDerivedKey(byte[] inputKeyMaterial, byte[] inputSalt, String outputKeyAlgorithm, int outputKeySize)
throws InvalidKeySpecException, NoSuchAlgorithmException, NoSuchProviderException {
HKDFBytesGenerator hkdf = new HKDFBytesGenerator(KEY_DERIVATION_DIGEST);
hkdf.init(new HKDFParameters(inputKeyMaterial, inputSalt, KEY_DERIVATION_INFO));
byte[] derivedKey = new byte[outputKeySize / 8];
hkdf.generateBytes(derivedKey, 0, derivedKey.length);
return toSaltedSecretKey(derivedKey, inputSalt, outputKeyAlgorithm);
}