crypt32(2/2): Implement CryptSIPGetSignedDataMsg...
Juan Lang
juan.lang at gmail.com
Mon Jul 9 19:10:03 CDT 2007
CryptSIPPutSignedDataMsg, CryptSIPCreateIndirectData,
CryptSIPVerifyIndirectData,
and CryptSIPRemoveSignedDataMsg
This isn't any different from my last send of this, I'm resending to
avoid any confusion.
Depends on the patch implementing CryptSIPLoad.
--Juan
-------------- next part --------------
From ffd3965855dcc7172bd6f5c0f3d80456a5fd2d3f Mon Sep 17 00:00:00 2001
From: Juan Lang <juanlang at juan.corp.google.com>
Date: Mon, 9 Jul 2007 13:44:38 -0700
Subject: [PATCH] Implement CryptSIPGetSignedDataMsg, CryptSIPPutSignedDataMsg,
CryptSIPCreateIndirectData, CryptSIPVerifyIndirectData, and
CryptSIPRemoveSignedDataMsg
---
dlls/crypt32/sip.c | 47 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 37 insertions(+), 10 deletions(-)
diff --git a/dlls/crypt32/sip.c b/dlls/crypt32/sip.c
index 389e434..d7cf7d4 100644
--- a/dlls/crypt32/sip.c
+++ b/dlls/crypt32/sip.c
@@ -576,9 +576,14 @@ BOOL WINAPI CryptSIPLoad
BOOL WINAPI CryptSIPCreateIndirectData(SIP_SUBJECTINFO* pSubjectInfo, DWORD* pcbIndirectData,
SIP_INDIRECT_DATA* pIndirectData)
{
- FIXME("(%p %p %p) stub\n", pSubjectInfo, pcbIndirectData, pIndirectData);
+ WINE_SIP_PROVIDER *sip;
+ BOOL ret = FALSE;
- return FALSE;
+ TRACE("(%p %p %p)\n", pSubjectInfo, pcbIndirectData, pIndirectData);
+
+ if ((sip = CRYPT_GetCachedSIP(pSubjectInfo->pgSubjectType)))
+ ret = sip->info.pfCreate(pSubjectInfo, pcbIndirectData, pIndirectData);
+ return ret;
}
/***********************************************************************
@@ -587,10 +592,16 @@ BOOL WINAPI CryptSIPCreateIndirectData(S
BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO* pSubjectInfo, DWORD* pdwEncodingType,
DWORD dwIndex, DWORD* pcbSignedDataMsg, BYTE* pbSignedDataMsg)
{
- FIXME("(%p %p %d %p %p) stub\n", pSubjectInfo, pdwEncodingType, dwIndex,
+ WINE_SIP_PROVIDER *sip;
+ BOOL ret = FALSE;
+
+ TRACE("(%p %p %d %p %p)\n", pSubjectInfo, pdwEncodingType, dwIndex,
pcbSignedDataMsg, pbSignedDataMsg);
- return FALSE;
+ if ((sip = CRYPT_GetCachedSIP(pSubjectInfo->pgSubjectType)))
+ ret = sip->info.pfGet(pSubjectInfo, pdwEncodingType, dwIndex,
+ pcbSignedDataMsg, pbSignedDataMsg);
+ return ret;
}
/***********************************************************************
@@ -599,10 +610,16 @@ BOOL WINAPI CryptSIPGetSignedDataMsg(SIP
BOOL WINAPI CryptSIPPutSignedDataMsg(SIP_SUBJECTINFO* pSubjectInfo, DWORD pdwEncodingType,
DWORD* pdwIndex, DWORD cbSignedDataMsg, BYTE* pbSignedDataMsg)
{
- FIXME("(%p %d %p %d %p) stub\n", pSubjectInfo, pdwEncodingType, pdwIndex,
+ WINE_SIP_PROVIDER *sip;
+ BOOL ret = FALSE;
+
+ TRACE("(%p %d %p %d %p)\n", pSubjectInfo, pdwEncodingType, pdwIndex,
cbSignedDataMsg, pbSignedDataMsg);
- return FALSE;
+ if ((sip = CRYPT_GetCachedSIP(pSubjectInfo->pgSubjectType)))
+ ret = sip->info.pfPut(pSubjectInfo, pdwEncodingType, pdwIndex,
+ cbSignedDataMsg, pbSignedDataMsg);
+ return ret;
}
/***********************************************************************
@@ -611,9 +628,14 @@ BOOL WINAPI CryptSIPPutSignedDataMsg(SIP
BOOL WINAPI CryptSIPRemoveSignedDataMsg(SIP_SUBJECTINFO* pSubjectInfo,
DWORD dwIndex)
{
- FIXME("(%p %d) stub\n", pSubjectInfo, dwIndex);
+ WINE_SIP_PROVIDER *sip;
+ BOOL ret = FALSE;
- return FALSE;
+ TRACE("(%p %d)\n", pSubjectInfo, dwIndex);
+
+ if ((sip = CRYPT_GetCachedSIP(pSubjectInfo->pgSubjectType)))
+ ret = sip->info.pfRemove(pSubjectInfo, dwIndex);
+ return ret;
}
/***********************************************************************
@@ -622,7 +644,12 @@ BOOL WINAPI CryptSIPRemoveSignedDataMsg(
BOOL WINAPI CryptSIPVerifyIndirectData(SIP_SUBJECTINFO* pSubjectInfo,
SIP_INDIRECT_DATA* pIndirectData)
{
- FIXME("(%p %p) stub\n", pSubjectInfo, pIndirectData);
+ WINE_SIP_PROVIDER *sip;
+ BOOL ret = FALSE;
- return FALSE;
+ TRACE("(%p %p)\n", pSubjectInfo, pIndirectData);
+
+ if ((sip = CRYPT_GetCachedSIP(pSubjectInfo->pgSubjectType)))
+ ret = sip->info.pfVerify(pSubjectInfo, pIndirectData);
+ return ret;
}
--
1.4.1
More information about the wine-patches
mailing list