⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digestopensslimpl.cpp

📁 这是一个基于VS2003开发的数据加密和解密的程序
💻 CPP
字号:
/*!
	\file DigestOpenSslImpl.cpp
	\author Jackson
	\date 13/1/2005
*/

#include "DigestOpenSslImpl.h"

namespace Lucid {

namespace Encryption {

TDigestOpenSslImpl::TDigestOpenSslImpl(	THashAlgorithm algorithm):TDigestImplBase(algorithm)
{
}

TDigestOpenSslImpl::~TDigestOpenSslImpl()
{
}

void TDigestOpenSslImpl::Digest(
	const char *inputm,
	unsigned char *outputd,
	unsigned int inputm_len,
	unsigned int &outputd_len)
{
	

//	Lucid::System::Thread::TThreadGuard m(mMutex);
    OpenSSL_add_all_digests();
	EVP_MD_CTX_init(&mDigestCtx);
	EVP_DigestInit_ex(&mDigestCtx, GetAlgorithmType(),NULL);
    
	EVP_DigestUpdate(&mDigestCtx, inputm, inputm_len);
	EVP_DigestFinal_ex(&mDigestCtx, outputd , &outputd_len);
	
	EVP_MD_CTX_cleanup(&mDigestCtx);
}



const EVP_MD *TDigestOpenSslImpl::GetAlgorithmType() const
{
	const EVP_MD *type;
	switch (GetAlgorithm()) 
	{
	case NO_DIGEST:
		type = EVP_md_null();
		break;
	case DIGEST_MD2:
		type = EVP_md2();
		break;
	case DIGEST_MD4:
		type = EVP_md4();
		break;
	case DIGEST_MD5:
		type = EVP_md5();
		break;
	case DIGEST_SHA: 		type = EVP_sha();		break;	case DIGEST_SHA1:		type = EVP_sha1();		break;	case DUGEST_DESSl:		type = EVP_dss();		break;	case DIGEST_DSS1:		type = EVP_dss1();		break;	case DIGEST_ECDSA:		type = EVP_ecdsa();
		break;
	}
	return type;
}

}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -