don't change the action_arg pointer, add to it in place instead

this effectively reverses 931d224485ad197ba4ef85b76777ea96cf3471e2
a bit of verbosity for authentication needs
give errors when sign fails
use EVP_MD_size() instead of EVP_MD_block_size()

actually gives correct size for the digest