Woops, this is the salt I'm talking about...

If you make the change I just said, your check will always fail. You need to change it from return png_check_sig(Signature, 8); to return png_sig_cmp(Signature,0,8)==0;