HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data) { DWORD err; TRACE("(%p)\n", data); if (!data->padwTrustStepErrors) return S_FALSE; if (data->hMsg) { DWORD signerCount, size; size = sizeof(signerCount); if (CryptMsgGetParam(data->hMsg, CMSG_SIGNER_COUNT_PARAM, 0, &signerCount, &size)) { DWORD i; err = ERROR_SUCCESS; for (i = 0; !err && i < signerCount; i++) { if (!(err = WINTRUST_SaveSigner(data, i))) err = WINTRUST_VerifySigner(data, i); } } else err = TRUST_E_NOSIGNATURE; } else err = ERROR_SUCCESS; if (err) data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_SIGPROV] = err; return !err ? S_OK : S_FALSE; }
HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data) { BOOL ret; TRACE("(%p)\n", data); if (!data->padwTrustStepErrors) return S_FALSE; if (data->hMsg) { DWORD signerCount, size; size = sizeof(signerCount); ret = CryptMsgGetParam(data->hMsg, CMSG_SIGNER_COUNT_PARAM, 0, &signerCount, &size); if (ret) { DWORD i; for (i = 0; ret && i < signerCount; i++) { if ((ret = WINTRUST_SaveSigner(data, i))) ret = WINTRUST_VerifySigner(data, i); } } else SetLastError(TRUST_E_NOSIGNATURE); } else ret = TRUE; if (!ret) data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_SIGPROV] = GetLastError(); return ret ? S_OK : S_FALSE; }