fluid-ws-java-client/src/main/java/com/fluidbpm/ws/client/v1/user/AES256Local.java
public static byte[] generateLocalHMAC(
            byte[] encryptedDataParam, String passwordParam, String saltParam, byte[] seedParam){

        byte[] poisonedSeed = poisonBytes(seedParam);

        byte[] passwordSha256 = sha256(
                passwordParam.concat(saltParam).getBytes());

        //Add the seed to the password and SHA-256...
        byte[] derivedKey = sha256(UtilGlobal.addAll(passwordSha256, poisonedSeed));

        return hmacSha256(derivedKey, encryptedDataParam);
    }
public static byte[] generateLocalHMAC(
            byte[] encryptedDataParam, String passwordParam, String saltParam, byte[] seedParam){

        byte[] poisonedSeed = poisonBytes(seedParam);

        byte[] passwordSha256 = sha256(
                passwordParam.concat(saltParam).getBytes());

        //Add the seed to the password and SHA-256...
        byte[] derivedKey = sha256(UtilGlobal.addAll(passwordSha256, poisonedSeed));

        return hmacSha256(derivedKey, encryptedDataParam);
    }
public static byte [ ] generateLocalHMAC ( byte [ ] encryptedDataParam , String passwordParam , String saltParam , byte [ ] seedParam ) { byte [ ] poisonedSeed = poisonBytes ( seedParam ) ; byte [ ] passwordSha256 = sha256 ( passwordParam . concat ( saltParam ) . getBytes ( ) ) ; //Add the seed to the password and SHA-256... byte [ ] derivedKey = sha256 ( UtilGlobal . addAll ( passwordSha256 , poisonedSeed ) ) ; return hmacSha256 ( derivedKey , encryptedDataParam ) ; }
Generate a derived HMAC from {@code encryptedDataParam} using
other params.

@param encryptedDataParam The encrypted data to generate HMAC from.
@param passwordParam Password (clear text) used to derive the key from.
@param saltParam The password salt as passed by the Init request.
@param seedParam Seed to be poisoned
@return Derived HMAC.
Generate a derived HMAC from { @code encryptedDataParam } using other params .