crypto_sign(): read the copy, not the message, to properly handle overlaps