?? certlib.cpp
字號:
#include "stdafx.h"
#include "CertLib.h"
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
apps_startup ();
}
else if (ul_reason_for_call == DLL_PROCESS_DETACH)
{
apps_shutdown ();
}
return TRUE;
}
int PASCAL Initialize_Dll ( unsigned char * pszXML, int nLen,
CError::LPERRORHANDLE pErrHandle,
CCertMng::LPGENERATEKEY pGenKeyHandle,
CCertMng::LPPASSWORD_CALLBACK pPassword,
CCertMng::LPGET_DN_VALUE pGetDnValue,
CCertMng::LPVERIFY_CALLBACK pVerify,
void * lpVoid )
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, ( char *)pszXML, nLen, NULL ) == 0 )
{
if ( 0 == CCertMng::Interface ()->Initialize ( mapOpts, pGenKeyHandle,
pPassword, pGetDnValue, pVerify, lpVoid ) )
{
CError::Interface()->Initialize ( pErrHandle, lpVoid );
ret = 0;
}
}
return ret;
}
int PASCAL GenerateKey ( xmlChar * pszXML, int nLen, xmlChar ** ppXML, int * pnLen )
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen ) < 0 )
{
CError::Interface ()->Handle_Error ( 0, "XML轉換失敗" );
}
else
ret = CCertMng::Interface () ->Generate_Key ( mapOpts, ppXML, pnLen );
return ret;
}
int PASCAL GenerateReq ( unsigned char * pszXML, int nLen, xmlChar ** ppXML, int * pnLen)
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen ) < 0 )
{
CError::Interface ()->Handle_Error ( 0, "XML轉換失敗" );
}
else
ret = CCertMng::Interface () ->Generate_Req ( mapOpts, ppXML, pnLen );
return ret;
}
int PASCAL CA_Sign ( unsigned char * pszXML, int nLen,
xmlChar ** ppszXML, int * pnLen )
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen ) < 0 )
{
CError::Interface ()->Handle_Error ( 0, "XML轉換失敗" );
}
else
ret = CCertMng::Interface () ->Sign_Cert ( mapOpts, ppszXML, pnLen );
return ret;
}
int PASCAL Encript_Fingermark (unsigned char * pszXML, int nLen, xmlChar ** ppszXML, int * pnLen )
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen ) < 0 )
CError::Interface ()->Handle_Error ( 0, "XML轉換失敗" );
else
{
CBrief brief;
ret = brief.Encript_brief (mapOpts, ppszXML, pnLen );
}
return ret;
}
int PASCAL Decript_Fingermark(unsigned char * pszXML, int nLen,
xmlChar **ppszXML, int *pnLen )
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen ) < 0 )
CError::Interface ()->Handle_Error ( 0, "XML轉換失敗" );
else
{
CBrief brief;
ret = brief.Decript_brief(mapOpts, ppszXML, pnLen );
}
return ret;
}
int PASCAL Verify_Brief(const char * src, const char * dest )
{
CBrief brief;
return brief.Verify_brief (src, dest);
}
int PASCAL Verify_Cert(unsigned char * pszXML, int nLen)
{
int ret = -1;
conv_tool::OPERATORS_MAP mapOpts;
if ( conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen ) < 0 )
CError::Interface ()->Handle_Error ( 0, "XML轉換失敗" );
else
ret = CCertMng::Interface()->Verify_Cert(mapOpts);
return ret;
}
//檢查證書和密鑰的匹配情況,0,不匹配,1匹配
int PASCAL IsMatchCert(unsigned char * pszXML, int nLen)
{
conv_tool::OPERATORS_MAP mapOpts;
conv_tool::XML2Map ( mapOpts, (char*)pszXML, nLen );
return CCertMng::Interface()->IsMatch(mapOpts);
}
int PASCAL Uninitialize_Dll ()
{
CCertMng::Interface ()->Uninitialize ();
CCertMng::Free_Interface();
CError::Free_Interface();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -