Ensure that _SignEncrypt always returns ($buf, %hash)

This return point omitted the undef buffer, causing the hash assignment
in the calling site to be off by one.

Fixes I#30436.
Merge branch '4.2/smime-missing-signing-key' into 4.2-trunk