openssl主要流程程序代码(十一)

2014-11-24 00:33:28 · 作者: · 浏览: 53
stuCERT() { memset(this,0,sizeof(stuCERT)); } }; struct stuREVOKE//证书作废结构链表 { int Index;//证书序号 time_t time;//吊销时间 stuREVOKE * Link; stuREVOKE() { memset(this,0,sizeof(stuREVOKE)); } stuREVOKE(int index,time_t t) { Index=index; time=t;; Link=NULL; } }; /*添加链表节点*/ void AddRevoke(stuREVOKE *& Head,int index,time_t time); /*证书格式转换函数*/ BOOL CertFormatConver(char * buf/*内存区域,存储文件内容或文件名称*/,int len/*内存长度==0则buf为文件名*/, char * pwd/*p12文件密码*/,char * pem/*输出文件*/,int outformat,char * out/*操作结果*/); /*根证书生成函数,根据rootInfo信息,生成根证书公、私钥文件*/ BOOL MakeRoot(stuSUBJECT * rootInfo,/*请求信息IN*/int bits/*位数IN*/, int serial/*序列号IN*/, int days/*有效期IN*/,char * certFile/*证书请求文件OUT*/,char * priFile/*私钥文件OUT*/, char * out/*操作结果OUT*/,int type=PEM/*类型pem-der*/); /*证书请求生成函数,根据reqInfo信息,生成用户证书私钥文件、证书请求文件*/ BOOL MakeReq(stuSUBJECT * reqInfo,/*请求信息IN*/int bits/*位数IN*/, char * reqFile/*证书请求文件OUT*/, char * priFile/*私钥文件OUT*/,char * out/*操作结果OUT*/,int type=PEM/*类型pem-der*/); /*证书生成函数,通过证书请求,生成用户证书公钥文件*/ BOOL MakeCert(char *certfile/*根证书公钥*/,int certlen,/*为0则certfile为磁盘文件,否则为内存区域*/ char *keyfile/*根证书私钥*/,int keylen,int serial/*序列号*/,char *enddate/*作废日期*/, int days/*有效期*/, char *reqfile/*请求文件*/,stuKEYUSAGE * KUSAGE/*密钥用法*/, stuEKEYUSAGE * EKUSAGE/*增强密钥用法*/,char *outfile/*结果文件*/, char * outMsg/*操作结果*/,int type/*结果类型DER,PEM*/);//通过证书请求,得到证书 //直接生成公私钥 BOOL DirectCert(char *certfile/*根证书公钥*/,int certlen,/*为0则certfile为磁盘文件,否则为内存区域*/ char *keyfile/*根证书私钥*/,int keylen,int serial/*序列号*/,char *enddate/*作废日期*/, int days/*有效期*/,stuCERT * sCERT/*用户信息与密钥用法*/,int bits,char * cert/*输出证书公钥*/,int * certl/*长度*/, char * key/*输出证书私钥*/,int * keyl/*长度*/,char * outMsg/*,int type结果类型DER,PEM*/);//直接生成公私钥 /*黑名单生成函数*/ BOOL MakeCrl(char *certfile/*根证书公钥*/,int certlen,/*为0则certfile为磁盘文件,否则为内存区域*/ char *keyfile/*根证书私钥*/,int keylen, stuREVOKE * Head/*作废链表*/,PNewCrlMem NewCrlMem/*回调函数*/,char *& outCrl,int * crll,char * outfile/*crl文件*/, char * outMsg/*操作结果*/); /*分解p12包*/ BOOL ParseDB(char * strP12/*包文件*/,char * strPwd/*解包密码*/,char * strCert/*公钥存放*/, char * strkey/*私钥存放*/,int outformat/*输出格式*/,char * out/*返回结果*/); /*组合p12包*/ BOOL CreateDB(char * strP12/*包文件IN*/,char * strPwd/*密码IN*/,char * strCert/*公钥存放IN*/, char * strkey/*私钥存放IN*/,char * out/*返回结果OUT*/); BOOL ChangePB(char * strP12/*IN包文件*/,char * strPwd/*IN原密码*/,char * strPwd2/*IN新密码*/, char * strOutP12/*OUT包文件*/,char * out/*返回结果OUT*/); //检验公钥、私钥是否配对 BOOL CertPairCheck(char * cert,char * key,char * out);//检验公钥、私钥是否配对