📄 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 + -