From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/crypt32/msg.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c index d56e1745404..832d52ddf2b 100644 --- a/dlls/crypt32/msg.c +++ b/dlls/crypt32/msg.c @@ -3264,6 +3264,19 @@ static BOOL CDecodeSignedMsg_GetParam(CDecodeMsg *msg, DWORD dwParamType, else SetLastError(CRYPT_E_INVALID_MSG_TYPE); break; + case CMSG_ENCRYPTED_DIGEST: + if (msg->u.signed_data.info) + { + if (dwIndex >= msg->u.signed_data.info->cSignerInfo) + SetLastError(CRYPT_E_INVALID_INDEX); + else + ret = CRYPT_CopyParam(pvData, pcbData, + &msg->u.signed_data.info->rgSignerInfo[dwIndex].EncryptedHash.pbData, + msg->u.signed_data.info->rgSignerInfo[dwIndex].EncryptedHash.cbData); + } + else + SetLastError(CRYPT_E_INVALID_MSG_TYPE); + break; default: FIXME("unimplemented for %ld\n", dwParamType); SetLastError(CRYPT_E_INVALID_MSG_TYPE);