A HMAC error can be seen if the '-g StartUpClk:CClk' option is used when generating the bit file.
When programming with iMPACT, the bitstream startup clock will be changed from a CCLK to a JTAG clock.
The bitstream stored in PC memory will be modified, resulting in a HMAC error.
To work around this, disable Startup clock Auto Correction in iMPACT.
You can do this in Edit -> Preferences.
This problem does not arise when programming FPGA through configuration data stored in external Flash memory.