数据安全传输基础设施平台-项目扩展_第1页
数据安全传输基础设施平台-项目扩展_第2页
数据安全传输基础设施平台-项目扩展_第3页
数据安全传输基础设施平台-项目扩展_第4页
数据安全传输基础设施平台-项目扩展_第5页
免费预览已结束,剩余31页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

引种"云"中心、"云"节点,解决数据的本地、网络传输、认证、数据完整用C++重构安全传输平深入理解C语言知识体两个模型(函数调用、内存四区模型C深入理解C++语言知识体系项目开发中C++工具的应C++项目开发理念(面向抽象类编程secmngclientsecmngserverC++做开发常见套路项目的1)服务框架搭建和业务流调试、开子系统的对接联合调项目开发的经历是人生的一笔4)项目开发库的积累cjava科 、方2)部分学员,为实现某一个功能,把相关的知识体系,全复习、学遍;效正确的做法:迭发,先出来一个模型,再说!()!======安全传输平台总体设兼容性:兼容各种硬件平台、软件平台、设备第应用app,通过外联接口加密、数据。第应用app发送数据送的,现在依然按照旧的方式发送报文;安全传输平台不托管第应用app的数据报文发送。可以是linux平台应用程序、也可以是win平台应用程序。密钥协密钥协商客户密钥协商客户密钥协商服务外联应外联应外联接密钥同步服务外联接口外联接口外联接口统一安全统一安全通讯接 统一报文编 接 统一数据 接接密钥更密钥协商网点(子点密钥申密钥校密钥协商请求模密钥协商服务器(总点密钥协 业密钥协商服务模密钥协商网点管操使用外联接主流厂商硬 接各种国家安全规范标准CSP各种国家安全规范标准CSP主主流安全硬件厂商编软件平主备统一数据库组件libicdbapi封装procoracle数据3linux接口的封装统一通SocketApi组Linux封装Linux和Win下基本基于socketwin下和linux下的线程互斥和同win下和linux接口的封装统一报文编Linux1接口2win和linux源码的移3win和linux平台下动态库的设计与实现xmljson 接口的封装统一共享内存读Linux1接口2win和linux进程间通信机制IPC(共享内存、消接口的封装密钥协商服务程序SecMngServer1linux2各种3linuxLinux服务程密钥协商客户端 Linux1linux2Win客户端编3各种4linux和winLinux信息系Win信息系密钥协商服务配置管理终端1MFC框架2各种win3win和linux的对4winodbcWin信息系外联接Linux1接口接口设计与实对称密钥加接Linux1安全使用第接安全传输平台数1sql3安全传输平台sql的实信息系统数据库解决方案SecMngClient发SecMngClient发起密钥协SecMngServer提供密钥协SecMngServeAdmin配置管理SecMngServeAdmin配置管理管理阶写数据Admin添加管写数据Admin添加管网点信存求<流程名称外联应用运SecMngServerAdmin,添加网点信息,配置启动密钥协商服务器(SecMngServer)服务程(SecMngClinet (AppInterface,平台总流程平台总流程外联应外联接密钥协商客户密钥协商服务配置终端配置网点信安全传输安全传输平台总业务写数据配的启动参写数据配置网点信SecMngClient请求密SecMngServer服SecMngServerAdmin初始化平密钥协密钥协商客户密钥协商服务启配置终端初始服客端应用密钥协显示菜读配置文启动业务线程提服开端口启服务读数据读配置文录入网点信配置服务器参<流程名称<阶段编号名称平台描 其CommMsgEncodeDecode(linuxwin)共享内存(win安全传输平台实现报文编组件设计与实重点:深入理解,报文编码组件和业务流模块的解耦统一报文编码设计思统一报文编码实APIAPI(keymng_msg.c/linux#ifndef_KEYMNG_MSG_H_#define_KEYMNG_MSG_H_#ifdefcplusplusextern"C"{1//12//23//3; typedefstruct{//1密钥更新//2密钥校验 //3密钥注 clientId[12];// serverId[12];//I typedef { clientId[12];// unsigned pstruct 输入的报文数据指向相应结构体的指针type: 输入的类型标识(函数内部通过type得到pstruct所指向的报文类poutData:输出的编码后的报文;outlen: int *pStruct, unsignedchar **outData,/*out*/ *outLen); :输入的编码后的数据; :输入的数据长度;pstruct:输出的 后的数据;(其空间是在内部开辟的,也需要用内部定义的free函数进行释放) :结构的类型标识(flag进行判断,将pstruct转换为相应的结构)intunsignedchar*inData,/*in*/ **pStruct *type释放MsgEncode()函数中的outData;方法:MsgMemFree((void**)outData,0);释放MsgDecode(函数中的pstruct结构体,MsgMemFree((void**)outDatatype);type:输入参数,便于函数判断调用哪个结构体的free函数intMsgMemFree(void**point,int#ifdef}统一报文编码样typedefstruct{charname[64];intage;char*p;inttypedefstruct{ #define#define(没有达到最大连接数#define#defineSck_Err_Pool_HaveExist#define// 创建连接池)//(Sck_BaseErr+22)//有效连接数是零(Sck_BaseErr+22)//连接已经在池中(Sck_BaseErr+22)//#ifndef_poolsocket_H_#ifdefextern{#define0#define#define#define#define#defineint//intsckClient_connect(char*ip,intport,intconnecttime,int////intsckClient_send(intconnfd,intsendtime,unsignedchar*data,int//intsckClient_rev(intconnfd,intrevtime,unsignedchar**out,int*outlen);//intsck_FreeMem(void//inttypedefstruct { intserverport;intbounds池容量intconnecttime;intsendtime;intrevtime; //socketintsckCltPool_init(void**handle, //socketintsckCltPool_getConnet(void*handle,int//socketintsckCltPool_send(void*handle, unsignedchar*data,int//socketintsckCltPool_rev(void*handle, connfd,unsignedchar**out,int*outlen);//socketsocketintsckCltPool_putConnet(void*handle,intconnfdintvalidFlag0//socketintsckServer_init(intport,intintsckServer_accept(intlistenfd,inttimeout,intintsckServer_send(intconnfd,inttimeout,unsignedchar*data,intint connfd,inttimeout,unsignedchar**out,int*outlen);intintsckServer_close(int#ifdef} - :选项需要一个参数--m :illegaloption--?usage: [[-qmsqid][-mshmid][-s[-Qmsgkey][-Mshmkey][-Ssemkey]...LinuxIPCinclude<stdio.h>#includeinclude<stdio.h>#include<stdlib.h>#include#ifdefcplusplusextern"C"{0//class{////staticintIPC_OpenShm(intkey,intshmsize,int 创建共享内存通 文 [out]共享内存的句柄.返回值 返回0函数执行成功;非0返回错误 intIPC_CreatShmBySeedName(char*shmname,intshmsize,int*shmhdl); 共享的句mapaddrout]返回值 返回0函数执行成功;非0返回错误staticintIPC_MapShm(intshmhdl,void**mapaddr); [in]共享内存首地返回值 返回0函数执行成功;非0返回错误 intIPC_UnMapShm(void*unmapaddr); staticintIPC_DelShm(intstaticintshmflag;staticint#ifdef}//#ifndef_KEYMNG_SHMOP_H_#define#include<stdio.h>#include<stdlib.h>#include#ifdefcplusplusextern"C"{//typedefstruct{ //0-1 // serverId[12];// //unsignedcharseckey[128];////hash1hash256class{//staticintKeyMng_ShmWrite(intshmhdl,intmaxnodenum,NodeSHMInfo*pNodeInfo);staticintKeyMng_ShmRead(intshmhdl,char*clientId,char*serverId, intmaxnodenum,#ifdef}//keymnglog.h#ifndef#define#define0#define1#define2#define3#defineconstchar*file:文件名称intline:文件行号intlevel--debuginfowarningerrconstchar*fmtclassLogHelper{staticint staticcharICLevelName[5][10];staticstatic staticvoid _Error_Core(constchar*file,intline,intlevel,intstatus,constchar*fmt,va_listargs);staticvoidKeyMng_Log(constchar*file,intline,intlevel,intstatus,constchar*fmt,////#ifndef_KEYMNG_DBOP_H_#define#ifdefcplusplusextern"C"{class{staticintKeyMngsvr_DBOp_WriteSecKey(void*dbhdl,NodeSHMInfo*pNodeInfo);staticintKeyMngsvr_DBOp_upKeyStatus(void*dbdl,intkeysn);#ifdef}SecMngclientSecMngServer11初始化22显示菜单:11初始化22显示菜单:密钥协商发送报文:接受应答:密钥校验:密钥注销组织报编码报发送报接受报写共享内//////SecMngClient#pragma // MngClt_NoNetPointErr302 class{ AuthCode[16认证码serverId[12];//maxnode;//最大网点数客户端默认1个 //共享内存keyid创建共享内存时使用shmhdl;//共享内存句柄SecMngClient#pragmaonce#include<iostream>usingnamespacestd;#includeclass{intmngClient_Quit(MngClient_Info*pCltInfo);intmngClient_Agree(MngClient_Info*pCltInfo);intmngClient_view(MngClient_Info*pCltInfo);SecMngClient////#include<iostream>usingnamespacestd;#include"keymngclientop.h"class{intuseSel();intinit();intrun();intSecMngclientSecMngServer11初始化22显示菜单:11初始化22显示菜单:密钥协商发送报文:接受应答:密钥校验:密钥注销组织报编码报发送报接受报写共享内//////SecMngServer////#pragma//keymngserverMngSvr_NoNetPointErr3020//class{serverId[12];// ];// dbpoolnum//maxnode1 //共享内存keyid//SecMngServer#pragmaonce#include<iostream>usingnamespacestd;#include"keymng_msg.h"class{//intmngServer_Quit(MngServer_Info*svrInfo,MsgKey_Req*msgkeyReq,unsigned**outData,int//intmngServer_Agree(MngServer_Info*svrInfo,MsgKey_Req*msgkeyReq,unsigned**outData,intintmngServer_Check(MngServer_Info*svrInfo,MsgKey_Req*msgkeyReq,unsigned**outData,intintmngServer_Revoke(MngServer_Info*svrInfo,MsgKey_Req*msgkeyReq,unsigned**outData,intintmngServer_view(MngServer_Info*svrInfo,MsgKey_Req*msgkeyReq,unsigned**outData,intSecMngServer////#include<iostream>usingnamespacestd;#include"keymngserverop.h"class{intinit();intrun();intvoidmysighandler_t(intarg);KeyMngServerOp*pKeyMngServerOp;friendvoid*mystart_routine(void*arg);intint案例-SecMngServer跨要求1:系统可以通过配置文件,选择oracle或者要求1:keymngclient系统可以通过配置文件,选择调用写SecMngClientOp业务操作类或者写的SecMngClientOp业务操作类//1写出抽象类keymngclientabsop.h//2对抽象类进行实现keymngclientop_名字拼音缩写.cpph//3keymngClientApp面向抽象类进行编程//4结果调试正确//5keymngclientop_2.cppxx.h1调用第一个业务实现类keymngclientop_2keymngclientop_23:实现keymngServerAppSecMngServerOp务操作类或者写的SecMngServerO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论