{
int dataLen = data.length - signatureLength;
signature.update(data, 0, dataLen);
if(!signature.verify(data, dataLen, signatureLength))
{
throw new FlowStateStorageException("Invalid signature");
}
byte[] b = new byte[dataLen];
System.arraycopy(data, 0, b, 0, dataLen);
return b;
}