35 dwFlags, pbSignedBlob, cbSignedBlob);
42 const BYTE *pbSignedBlob,
DWORD cbSignedBlob)
47 TRACE(
"(%08x, %p, %d)\n", dwMsgEncodingType, pbSignedBlob, cbSignedBlob);
76 dwSignerIndex, certInfo, &
size))
104 return getCert(pVerifyPara->
pvGetArg,
110 const BYTE *pbDetachedSignBlob,
DWORD cbDetachedSignBlob,
DWORD cToBeSigned,
111 const BYTE *rgpbToBeSigned[],
DWORD rgcbToBeSigned[],
117 TRACE(
"(%p, %d, %p, %d, %d, %p, %p, %p)\n", pVerifyPara, dwSignerIndex,
118 pbDetachedSignBlob, cbDetachedSignBlob, cToBeSigned, rgpbToBeSigned,
119 rgcbToBeSigned, ppSignerCert);
122 *ppSignerCert =
NULL;
141 for (
i = 0;
ret &&
i < cToBeSigned;
i++)
143 i == cToBeSigned - 1);
160 msg, pVerifyPara, certInfo, store);
166 if (
ret && ppSignerCert)
167 *ppSignerCert =
cert;
185 DWORD dwSignerIndex,
const BYTE* pbSignedBlob,
DWORD cbSignedBlob,
191 TRACE(
"(%p, %d, %p, %d, %p, %p, %p)\n",
192 pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob,
193 pbDecoded, pcbDecoded, ppSignerCert);
196 *ppSignerCert =
NULL;
213 if (
ret && pcbDecoded)
231 msg, pVerifyPara, certInfo, store);
237 if (
ret && ppSignerCert)
238 *ppSignerCert =
cert;
249 if(!
ret && pcbDecoded)
256 BOOL fDetachedHash,
DWORD cToBeHashed,
const BYTE *rgpbToBeHashed[],
258 BYTE *pbComputedHash,
DWORD *pcbComputedHash)
265 TRACE(
"(%p, %d, %d, %p, %p, %p, %p, %p, %p)\n", pHashPara, fDetachedHash,
266 cToBeHashed, rgpbToBeHashed, rgcbToBeHashed, pbHashedBlob, pcbHashedBlob,
267 pbComputedHash, pcbComputedHash);
300 if (
ret && pcbComputedHash)
302 pbComputedHash, pcbComputedHash);
310 BYTE *pbDetachedHashBlob,
DWORD cbDetachedHashBlob,
DWORD cToBeHashed,
311 const BYTE *rgpbToBeHashed[],
DWORD rgcbToBeHashed[],
BYTE *pbComputedHash,
312 DWORD *pcbComputedHash)
317 TRACE(
"(%p, %p, %d, %d, %p, %p, %p, %p)\n", pHashPara, pbDetachedHashBlob,
318 cbDetachedHashBlob, cToBeHashed, rgpbToBeHashed, rgcbToBeHashed,
319 pbComputedHash, pcbComputedHash);
343 for (
i = 0;
ret &&
i < cToBeHashed;
i++)
346 rgcbToBeHashed[
i],
i == cToBeHashed - 1);
355 if (
ret && pcbComputedHash)
357 pbComputedHash, pcbComputedHash);
366 DWORD *pcbToBeHashed,
BYTE *pbComputedHash,
DWORD *pcbComputedHash)
371 TRACE(
"(%p, %p, %d, %p, %p, %p, %p)\n", pHashPara, pbHashedBlob,
372 cbHashedBlob, pbToBeHashed, pcbToBeHashed, pbComputedHash,
394 if (
ret && pcbToBeHashed)
396 pbToBeHashed, pcbToBeHashed);
397 if (
ret && pcbComputedHash)
399 pbComputedHash, pcbComputedHash);
407 BOOL fDetachedSignature,
DWORD cToBeSigned,
const BYTE *rgpbToBeSigned[],
419 TRACE(
"(%p, %d, %d, %p, %p, %p, %p)\n", pSignPara, fDetachedSignature,
420 cToBeSigned, rgpbToBeSigned, rgcbToBeSigned, pbSignedBlob, pcbSignedBlob);
438 memset(&signer, 0,
sizeof(signer));
439 signer.
cbSize =
sizeof(signer);
450 memset(&signInfo, 0,
sizeof(signInfo));
451 signInfo.
cbSize =
sizeof(signInfo);
488 FIXME(
"unimplemented feature\n");
498 for (
i = 0;
ret &&
i < cToBeSigned; ++
i)
501 i == cToBeSigned - 1);
523 const BYTE *pbToBeEncrypted,
DWORD cbToBeEncrypted,
BYTE *pbEncryptedBlob,
524 DWORD *pcbEncryptedBlob)
532 TRACE(
"(%p, %d, %p, %p, %d, %p, %p)\n", pEncryptPara, cRecipientCert,
533 rgpRecipientCert, pbToBeEncrypted, cbToBeEncrypted, pbEncryptedBlob,
540 *pcbEncryptedBlob = 0;
545 memset(&envelopedInfo, 0,
sizeof(envelopedInfo));
546 envelopedInfo.
cbSize =
sizeof(envelopedInfo);
557 for (
i = 0;
i < cRecipientCert; ++
i)
558 certInfo[
i] = rgpRecipientCert[
i]->pCertInfo;
581 if (!
ret) *pcbEncryptedBlob = 0;
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFlags, DWORD dwType, const void *pvPara, PCCERT_CONTEXT pPrevCertContext)
BOOL WINAPI CryptAcquireCertificatePrivateKey(PCCERT_CONTEXT pCert, DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec, BOOL *pfCallerFreeProv)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
VOID WINAPI CryptMemFree(LPVOID pv)
BOOL WINAPI CryptSignMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, BOOL fDetachedSignature, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], BYTE *pbSignedBlob, DWORD *pcbSignedBlob)
HCERTSTORE WINAPI CryptGetMessageCertificates(DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE *pbSignedBlob, DWORD cbSignedBlob)
BOOL WINAPI CryptVerifyDetachedMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, BYTE *pbDetachedHashBlob, DWORD cbDetachedHashBlob, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbComputedHash, DWORD *pcbComputedHash)
static CERT_INFO * CRYPT_GetSignerCertInfoFromMsg(HCRYPTMSG msg, DWORD dwSignerIndex)
BOOL WINAPI CryptHashMessage(PCRYPT_HASH_MESSAGE_PARA pHashPara, BOOL fDetachedHash, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbHashedBlob, DWORD *pcbHashedBlob, BYTE *pbComputedHash, DWORD *pcbComputedHash)
BOOL WINAPI CryptVerifyDetachedMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbDetachedSignBlob, DWORD cbDetachedSignBlob, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], PCCERT_CONTEXT *ppSignerCert)
static PCCERT_CONTEXT WINAPI CRYPT_DefaultGetSignerCertificate(void *pvGetArg, DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore)
static PCCERT_CONTEXT CRYPT_GetSignerCertificate(HCRYPTMSG msg, PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, PCERT_INFO certInfo, HCERTSTORE store)
BOOL WINAPI CryptVerifyMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbSignedBlob, DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded, PCCERT_CONTEXT *ppSignerCert)
BOOL WINAPI CryptVerifyMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, BYTE *pbHashedBlob, DWORD cbHashedBlob, BYTE *pbToBeHashed, DWORD *pcbToBeHashed, BYTE *pbComputedHash, DWORD *pcbComputedHash)
BOOL WINAPI CryptEncryptMessage(PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeEncrypted, DWORD cbToBeEncrypted, BYTE *pbEncryptedBlob, DWORD *pcbEncryptedBlob)
LONG WINAPI CryptGetMessageSignerCount(DWORD dwMsgEncodingType, const BYTE *pbSignedBlob, DWORD cbSignedBlob)
HCRYPTMSG WINAPI CryptMsgOpenToEncode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
GLuint GLuint GLsizei count
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HCRYPTPROV_LEGACY hCryptProv
PCERT_INFO * rgpRecipientCert
void * pvEncryptionAuxInfo
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
PCMSG_SIGNER_ENCODE_INFO rgSigners
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
PCRYPT_ATTRIBUTE rgAuthAttr
PCRYPT_ATTRIBUTE rgUnauthAttr
HCRYPTPROV_LEGACY hCryptProv
void * pvEncryptionAuxInfo
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
HCRYPTPROV_LEGACY hCryptProv
PCCERT_CONTEXT * rgpMsgCert
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
PCRYPT_ATTRIBUTE rgUnauthAttr
PCCERT_CONTEXT pSigningCert
PCRYPT_ATTRIBUTE rgAuthAttr
PCCRL_CONTEXT * rgpMsgCrl
DWORD dwMsgAndCertEncodingType
HCRYPTPROV_LEGACY hCryptProv
PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate
_In_ DWORD dwMsgAndCertEncodingType
#define CERT_STORE_PROV_PKCS7
#define CMSG_CTRL_VERIFY_HASH
ULONG_PTR HCRYPTPROV_LEGACY
#define CMSG_COMPUTED_HASH_PARAM
#define CERT_FIND_SUBJECT_CERT
#define CMSG_SIGNER_CERT_INFO_PARAM
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ DWORD dwCertEncodingType
#define CERT_STORE_PROV_MSG
#define CMSG_DETACHED_FLAG
#define CMSG_SIGNER_COUNT_PARAM
#define PKCS_7_ASN_ENCODING
#define GET_CMSG_ENCODING_TYPE(x)
PCCERT_CONTEXT(WINAPI * PFN_CRYPT_GET_SIGNER_CERTIFICATE)(_Inout_opt_ void *pvGetArg, _In_ DWORD dwCertEncodingType, _In_ PCERT_INFO pSignerId, _In_ HCERTSTORE hMsgCertStore)
#define CMSG_CONTENT_PARAM
#define CRYPT_ACQUIRE_CACHE_FLAG
#define CMSG_CTRL_VERIFY_SIGNATURE
#define CRYPT_E_NOT_FOUND
#define CRYPT_E_UNEXPECTED_MSG_TYPE