The docs say it should be released in the last CryptMsgUpdate, but tests show it's actually released in CryptMsgClose. So let's do the same.
This solve a use-after-free issue for signed messages, because they contains HCRYPTHASH objects which references the context internally, and will use it in CryptDestroyHash. If the context is released in CSignedEncodeMsg_Open, this will be a use-after-free.