亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? certdb.cpp

?? 完成數字證書加密
?? CPP
字號:
#include "CertDB.h"#include "CAService.h"CertDB::CertDB(){	m_sql = NULL;	m_result=NULL;	m_findNumber=0;	m_swap = "";}CertDB::~CertDB(){}bool CertDB::updateCRL(char* crl){//	importCRLToDB(crl, "replace");}bool CertDB::importCRLToDB(char* crl, string action, string issuer){	string sql="";	sql.append("delete from ").		append(readCAConfig("DB", "CRLList")).		append(" where issuer=\"").		append(issuer).		append("\";");	execute(sql, "del");		sql = "";	sql.append(action).		append(" into ").		append(readCAConfig("DB", "CRLList")).		append(" (issuer, CRL) VALUES (\"").		append(issuer).		append("\", \"").		append(crl).		append("\");");		return execute(sql);}char* CertDB::exportCRLFromDB(string type){	string sql="";	sql.append("select * from ").		append(readCAConfig("DB", "CRLList")).		append(" where type=\"").		append(type).		append("\";");	if (!execute(sql)) {		return NULL;	}		m_row = mysql_fetch_row(m_result);	return m_row[1];}char* CertDB::exportCertToUser(string dn, string name, string action){	string sql = "";	sql.append("select Cert from ").		append(readCAConfig("DB", "CertList")).		append(" where ");	if (dn=="") {		sql.append("Username=").append(name);	}	else if (name=="") {		sql.append("DN=").append(dn);	}	else {		sql.append("Username=").append(name).append(" AND DN=").append(dn);	}		execute(sql, "read");	int index=0;	if (m_result == NULL) {		writelog("in db , cert is not exist.");		return NULL;	}	else {		m_row = mysql_fetch_row(m_result);	}	return m_row[0];}void CertDB::showInformation(){	string sql = "select username, DN from cert_list;";	execute(sql);	map<string, string, less<string> > stack;	int space = 0;	int len = 0;	while ((m_row=mysql_fetch_row(m_result))) {		if (space < strlen(m_row[0])) {			space = strlen(m_row[0]);		}		if (len < strlen(m_row[1])) {			len = strlen(m_row[1]);		}		stack.insert(map<string, string, less<string> >::value_type(m_row[0], m_row[1]));	}	cout << "username";	int size = 0;	if (space > 8) {		size = space+4-8;	}	else {		size = 4;	}	for(int i=1;i<=size;i++) {		cout << " ";	}	cout << "DN"<<endl;	for(int k=1; k<=space+4+len; k++) {		cout << "-";	}	cout << endl;	for(map<string, string, less<string> >::iterator vi=stack.begin(); vi!=stack.end(); vi++) {		cout << (*vi).first ;		int length = strlen((*vi).first.c_str());		for(int j=1; j<=space-length+4; j++) {			cout << " ";		}		cout << (*vi).second<<endl;	}		long lines = mysql_num_rows(m_result);	for(int k=1; k<=space+4+len; k++) {		cout << "-";	}	cout <<"\n\nTotle lines : "<<lines<<endl;}bool CertDB::checkWhetherUserHaveExisted(const char* DN)	{	string sql = "";	execute("use ca");	sql = "select DN from cert_list Where DN=";	sql.append("\"").append(DN).append("\" ");	execute(sql);	if (m_result != NULL) {		int row = mysql_affected_rows(m_sql);		if (row<=0) {			return false;		}		cout << "in db , find "<<row<<" rows"<<endl;		return true;	}	return false;}string CertDB::getIssuer(string dn){	CAService ca;	return ca.getIssuer(dn.c_str());}bool CertDB::importCertListToDB(string dn, string certlist, string serialNumber, string type, string priv, string action){	string sql = "";	sql.append(action).		append(" into ").		append(readCAConfig("DB", "CertList"));	sql += " (SerialNumber, username, Type, DN, Cert,priv) VALUES ( \"" +	   		serialNumber + "\",\""+getIssuer(dn)+"\", \""+type+"\", \""+dn+"\", \"";	sql.append(certlist).append("\", \"").append(priv).append("\");");		execute(sql);	return true;}bool CertDB::importCertToDB(string dn, X509* cert, string serialNumber, string type, string priv, string action){	char *x509=(char*)calloc(1, 10*K);	assert(x509!=NULL);	BIO* in = BIO_new(BIO_s_mem());	assert(in!=NULL);	assert(PEM_write_bio_X509(in, cert)!=0);	assert(X509_print(in, cert)!=0);	BIO_read(in, x509, 10*K);		string sql = "";	if (action=="insert") {		sql.append("insert");	}	else if (action=="replace") {		sql.append("replace");	}	sql.append(" into ").append(readCAConfig("DB", "CertList"));	sql += " (SerialNumber, username, Type, DN, Cert, priv) VALUES ( \"" + 		serialNumber + "\", \""+getIssuer(dn)+"\", \""+type+"\", \""+dn+"\", \"";	sql.append(x509).append("\", \"").append(priv).append("\");");	if (x509) free(x509), x509=NULL;	BIO_free(in);	execute(sql);	return true;}bool CertDB::findCertInDB(string username, string dn){	exportCertToUser(username, dn, "find");	return m_findNumber;}bool CertDB::delCertFromDB(string type, string username, string dn){	string sql = "";	sql.append("select serialNumber from ").		append(readCAConfig("DB", "CertList")).		append(" where type=\"").		append(type).		append("\" and ");	if (dn=="") {		sql.append("username=\"").			append(username).			append("\";");	}		else if (username=="") {		sql.append("dn=\"").			append(dn).			append("\";");	}	if (execute(sql)) {		int rows = mysql_num_rows(m_result);		MYSQL_ROW row;		while ((row=mysql_fetch_row(m_result)) && (rows>0)) {			m_swap = row[0];			rows--;		}	}		sql = "";	sql.append("delete from ").		append(readCAConfig("DB", "CertList")).		append(" Where ");	if (dn=="") {		sql.append("Username=\"").			append(username).			append("\" and type=\"").			append(type).			append("\";");	}	else if (username=="") {		sql.append("DN=\"").			append(dn).			append("\" and type=\"").			append(type).			append("\";");	}		if (!execute(sql, "del")) {		writelog("delete fail.");		return false;	}	return true;}bool CertDB::updateCertListToDB(string dn, string certlist, string type, string priv){	return importCertListToDB(dn, certlist, type, priv, "replace");}bool CertDB::updateCertToDB(string dn, X509* cert, string type, string priv){	return importCertToDB(dn, cert, type, priv, "replace");}void CertDB::closeConnection(){	mysql_close(m_sql);	m_result = NULL;}void CertDB::closeDB(){	mysql_shutdown(m_sql);}bool CertDB::connectDBServer(){	m_sql = mysql_init(NULL);    if (m_sql == NULL) {        cout << "to initialize db fail ."<<endl;        return false;    }	return true;}bool CertDB::initializeConnect(){	if (!connectDBServer()) {		return false;	}	m_username = readCAConfig("DB", "Username");	m_password = readCAConfig("DB", "Password");	m_server   = readCAConfig("DB", "Server");		assert(m_username!="");	assert(m_password!="");	assert(m_server!="");		assert(mysql_real_connect(m_sql,m_server.c_str(),				m_username.c_str(),				m_password.c_str(),			   	m_db.c_str(), 0, NULL, 0)!=NULL);	if (readCAConfig("System", "Initial")=="yes") {		execute("use ca");	}	return true;}bool CertDB::initCADB(){	initializeConnect();	string sql = "delete from " + readCAConfig("DB", "CertList")+" ;";	execute(sql, "del");	sql = "delete from " + readCAConfig("DB", "CRLList")+" ;";	execute(sql, "del");	createDB();	execute("use ca");	createCRLChain();	execute("use ca");	createCertChain();	return true;}void CertDB::createDB(){	string sql = "create database ";	sql.append(readCAConfig("DB", "db")).append(" ;");	execute(sql);}bool CertDB::handleShell(string shell){	if (shell=="") {		return false;	}	shell.append(" -p");	system(shell.c_str());	return true;}bool CertDB::createCRLChain(){	execute(readCAConfig("DB", "DB_CRL_Struct"));	return true;}bool CertDB::createCertChain(){	execute(readCAConfig("DB", "DB_Cert_Struct"));	return true;}string CertDB::readCAConfig(string keyword, string object){	CAService ca;	return ca.readCAconfig(keyword, object);}bool CertDB::execute(string sql, string type){	assert( m_sql!=NULL );	int err=mysql_real_query(m_sql, sql.c_str() ,sql.size());	if (err!=0) {		switch (err) {			case CR_COMMANDS_OUT_OF_SYNC:				writelog("sequence of commands is fault .");				break;			case CR_SERVER_GONE_ERROR:				writelog("server has closed .");				break;			case CR_SERVER_LOST:				writelog("query is out-to-date");				break;			case CR_UNKNOWN_ERROR:				writelog("other errors, please tell admin");			default :				if (sql != "use ca") {//					writelog("handling cert operation fail. ");					cout<<"fault command : "<<sql<<endl;				}				else {					writelog("unknown error");				}				break;		}		return false;	}	else {		if (type=="write") {			m_result = mysql_store_result(m_sql);			}		else if (type=="read") {			m_result = mysql_store_result(m_sql);			}	}	return true;}string CertDB::parseXML(string xml, string type, string keyword, string attr, string value){	NggObject *object = NggObject::fromXML(xml);	string result = locateInXML(object, type, keyword, value);	if (object) delete object, object=NULL;	return result;	}string CertDB::locateInXML(NggObject* object, string type, string keyword, 						string attr, string value){	assert( object!=NULL );	string result="";	int i=0;	while(i) {		unsigned int len = object->m_Contains.size();		string name = object->m_Contains[i]->m_Name;				if (len > 0) {			NggObject* obj = object->m_Contains[i];			if (locateInXML(obj) != "") {				break;			}		}		else {			if (name == keyword) {				if (type=="get") {					result = object->m_Contains[i]->m_Value;				}				else if (type=="set") {					object->m_Contains[i]->m_Value = value;					result = object->m_Contains[i]->toXML();				}				break;			}		}		i++;	}	return result;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区在线观看| 欧美电影一区二区| 在线视频欧美精品| 亚洲国产精品自拍| 欧美剧情电影在线观看完整版免费励志电影 | 国产精品一二三四| 国产农村妇女毛片精品久久麻豆 | 精品成人在线观看| 从欧美一区二区三区| 亚洲欧美在线aaa| 一本高清dvd不卡在线观看| 亚洲成年人影院| 日韩精品一区二区三区三区免费 | 亚洲人成在线播放网站岛国| 色婷婷精品大在线视频| 五月天丁香久久| 国产片一区二区| 欧美视频在线一区二区三区 | 欧美日韩国产中文| 狠狠狠色丁香婷婷综合久久五月| 国产亚洲精久久久久久| 日本道色综合久久| 狠狠狠色丁香婷婷综合久久五月| 成人免费一区二区三区在线观看| 欧美日韩卡一卡二| 国产成人精品影视| 一区二区三区精品在线| 欧美tickle裸体挠脚心vk| 99久久精品一区二区| 日韩精品欧美成人高清一区二区| 国产日韩欧美激情| 欧美日韩成人综合| 丁香一区二区三区| 欧美aⅴ一区二区三区视频| 中文字幕免费观看一区| 欧美日韩另类一区| 99在线精品视频| 久久99久国产精品黄毛片色诱| 日韩毛片高清在线播放| 欧美成人在线直播| 欧美艳星brazzers| 波多野结衣中文字幕一区| 日韩精品五月天| 一区二区三区在线高清| 国产亚洲欧美色| 欧美日韩久久一区| 在线免费观看日韩欧美| 国产乱码精品一品二品| 日韩电影在线观看网站| 亚洲欧美视频在线观看| 国产亚洲欧美在线| 精品久久一区二区三区| 88在线观看91蜜桃国自产| 91久久精品一区二区二区| 国产盗摄视频一区二区三区| 日本sm残虐另类| 天堂精品中文字幕在线| 一区二区三区高清| 《视频一区视频二区| 国产亚洲va综合人人澡精品| 日韩欧美国产精品| 欧美另类高清zo欧美| 91久久精品一区二区二区| 92国产精品观看| www.欧美色图| 99re这里只有精品6| 成人av免费在线播放| 成人激情动漫在线观看| 国产精品一区二区三区四区| 极品美女销魂一区二区三区免费| 天天综合日日夜夜精品| 婷婷久久综合九色综合绿巨人| 尤物av一区二区| 亚洲综合无码一区二区| 亚洲国产人成综合网站| 亚洲电影在线免费观看| 午夜精品一区二区三区免费视频| 亚洲一卡二卡三卡四卡无卡久久| 亚洲综合丝袜美腿| 亚洲国产wwwccc36天堂| 视频一区二区不卡| 日本人妖一区二区| 紧缚捆绑精品一区二区| 国产激情一区二区三区桃花岛亚洲| 国产剧情一区二区三区| 国产伦精品一区二区三区在线观看| 国产一区二区精品久久99| 国产福利视频一区二区三区| 成人一道本在线| 91在线观看污| 欧美日韩在线亚洲一区蜜芽| 337p亚洲精品色噜噜狠狠| 欧美成人精精品一区二区频| 久久久无码精品亚洲日韩按摩| 中文字幕的久久| 一区二区三区精品在线观看| 日韩电影在线免费| 国产精品一区二区不卡| 91视视频在线观看入口直接观看www| 色婷婷久久综合| 91精品国产综合久久久蜜臀图片 | 亚洲视频你懂的| 亚洲国产成人高清精品| 九九精品视频在线看| 懂色av一区二区三区免费观看| 色婷婷av久久久久久久| 日韩欧美国产综合| 中文字幕一区二区三区乱码在线| 一二三四社区欧美黄| 卡一卡二国产精品| 99久久国产综合精品女不卡| 欧美日韩国产123区| 久久久91精品国产一区二区三区| 国产精品成人一区二区艾草 | 91伊人久久大香线蕉| 欧美一级久久久| 中文天堂在线一区| 午夜电影久久久| 国产成人综合自拍| 欧美蜜桃一区二区三区| 国产农村妇女毛片精品久久麻豆| 亚洲国产精品一区二区久久| 福利一区福利二区| 91麻豆精品国产自产在线| 国产精品丝袜黑色高跟| 秋霞午夜av一区二区三区| 99re在线视频这里只有精品| 精品国产精品一区二区夜夜嗨| 亚洲欧美日韩成人高清在线一区| 精品一区在线看| 欧美三级欧美一级| 中文字幕一区二区三区视频| 经典三级视频一区| 91精品国产一区二区三区蜜臀 | 国产午夜精品久久| 三级精品在线观看| 99久久精品一区二区| 26uuu精品一区二区三区四区在线| 一区二区三区欧美日韩| 成人免费高清在线观看| 日韩欧美国产高清| 亚洲国产aⅴ成人精品无吗| 成人av网站免费观看| 久久久久国产精品麻豆| 免费成人你懂的| 欧美日韩激情一区二区三区| 亚洲品质自拍视频| 不卡av在线网| 国产精品午夜春色av| 久久草av在线| 日韩你懂的在线播放| 日韩影院在线观看| 欧美日韩精品综合在线| 一区二区三区色| caoporn国产精品| 国产精品久久777777| 国精产品一区一区三区mba视频 | 成人激情电影免费在线观看| 久久精品亚洲精品国产欧美| 麻豆精品新av中文字幕| 欧美一区二区在线免费观看| 婷婷夜色潮精品综合在线| 欧美唯美清纯偷拍| 天堂精品中文字幕在线| 67194成人在线观看| 日韩国产在线一| 欧美一区二区私人影院日本| 秋霞午夜鲁丝一区二区老狼| 91精品福利在线一区二区三区| 日韩精品一二三| 欧美一级片在线看| 毛片基地黄久久久久久天堂| 91精品一区二区三区久久久久久 | 国产偷v国产偷v亚洲高清 | 色综合久久99| 亚洲电影中文字幕在线观看| 欧美日韩三级视频| 美女网站色91| 国产婷婷色一区二区三区四区| 成人免费视频视频在线观看免费| 国产精品国产三级国产a| 不卡的电影网站| 亚洲一区二区视频| 在线观看91av| 韩国午夜理伦三级不卡影院| 国产视频一区在线播放| 99精品视频在线观看| 亚洲国产综合91精品麻豆| 日韩午夜av一区| 国产99久久久国产精品免费看 | 高清免费成人av| 亚洲人快播电影网| 欧美精品久久久久久久多人混战| 毛片av一区二区三区| 国产精品区一区二区三| 色94色欧美sute亚洲线路一久| 免费在线观看视频一区| 国产精品乱码人人做人人爱 | 91精品国产综合久久福利软件| 国产伦精品一区二区三区视频青涩|