www.pudn.com > sanpack_rsa_vs2003sln_src.rar > sanpack_rsa.cpp


// sanpack_rsa.cpp : 定义 DLL 应用程序的入口点。 
// 
 
#include "stdafx.h" 
#include "sanpack_rsa.h" 
#include "rsa_san.h" 
 
RSA_san *WRSA; 
 
BOOL APIENTRY DllMain( HANDLE hModule,  
                       DWORD  ul_reason_for_call,  
                       LPVOID lpReserved 
					 ) 
{ 
	switch (ul_reason_for_call) 
	{ 
	case DLL_PROCESS_ATTACH: 
	case DLL_THREAD_ATTACH: 
	case DLL_THREAD_DETACH: 
	case DLL_PROCESS_DETACH: 
		break; 
	} 
    return TRUE; 
} 
 
// export vars 
 
// export funcs 
__declspec(dllexport) char * get_Version() 
{ 
	return "2006.01.21"; 
} 
 
__declspec(dllexport) int start_RSA_san() 
{ 
	RSA_san *rsa_san=new RSA_san(); 
	WRSA=rsa_san; 
	return 1; 
} 
 
__declspec(dllexport) int finish_RSA_san() 
{ 
	WRSA->d=0; 
	delete WRSA; 
	return 1; 
} 
 
__declspec(dllexport) int refresh_RSA_san(char * ra,char * rb) 
{ 
	return WRSA->update_pq(ra,rb); 
} 
 
__declspec(dllexport) int RSA_san_en(char * s,unsigned n) 
{ 
	return WRSA->RSA_san_en(s,n); 
} 
 
__declspec(dllexport) int RSA_san_en_byte(char b) 
{ 
	return WRSA->RSA_san_en_byte(b); 
} 
 
__declspec(dllexport) int RSA_san_dn(char * s,unsigned n) 
{ 
	return WRSA->RSA_san_dn(s,n); 
} 
 
__declspec(dllexport) int RSA_san_dn_hexstring(char * s) 
{ 
	return WRSA->RSA_san_dn_hexstring(s); 
} 
 
__declspec(dllexport) int RSA_san_en_hexstring(char * s) 
{ 
	return WRSA->RSA_san_en_hexstring(s); 
} 
 
__declspec(dllexport) char * get_p() 
{ 
	return WRSA->vlong2hexstring(WRSA->p); 
} 
 
__declspec(dllexport) char * get_q() 
{ 
	return WRSA->vlong2hexstring(WRSA->q); 
} 
 
__declspec(dllexport) char * get_n() 
{ 
	return WRSA->vlong2hexstring(WRSA->n); 
} 
 
__declspec(dllexport) char * get_e() 
{ 
	return WRSA->vlong2hexstring(WRSA->e); 
} 
 
__declspec(dllexport) char * get_d() 
{ 
	return WRSA->vlong2hexstring(WRSA->d); 
} 
 
__declspec(dllexport) char * get_result_string() 
{ 
	return WRSA->hexstring2string(WRSA->vlong2hexstring(WRSA->result)); 
} 
 
__declspec(dllexport) char get_result_byte(unsigned index) 
{ 
	return *((WRSA->hexstring2string(WRSA->vlong2hexstring(WRSA->result)))+index); 
} 
 
__declspec(dllexport) char * get_result_hexstring() 
{ 
	return WRSA->vlong2hexstring(WRSA->result); 
} 
__declspec(dllexport) char * string2hexstring(char * s)//,unsigned len) 
{ 
	return WRSA->string2hexstring(s); 
} 
__declspec(dllexport) int set_e_fromhexstring(char * r) 
{ 
	return WRSA->set_e(WRSA->hexstring2string(r)); 
} 
 
__declspec(dllexport) int force_e(char * r,unsigned l) 
{ 
	return WRSA->force_e(WRSA->hexstring2string(r),l); 
} 
 
__declspec(dllexport) int force_d(char * r,unsigned l) 
{ 
	return WRSA->force_d(WRSA->hexstring2string(r),l); 
} 
 
__declspec(dllexport) int force_n(char * r,unsigned l) 
{ 
	return WRSA->force_n(WRSA->hexstring2string(r),l); 
} 
 
// 
 
 
 
// export classes (we dont use it since we only use C interfaces) 
/* 
Csanpack_rsa::Csanpack_rsa() 
{  
	return;  
} 
 
int Csanpack_rsa::Csanpack_rsa_test() 
{ 
	 
	return 1; 
} 
*/