第一范文网 - 专业文章范例文档资料分享平台

PKI - 实验三 - 版本一

来源:用户分享 时间:2025/5/15 5:21:38 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

} if(file_type==USER_CA&&userCA){ } if(file_type==CRL&&crl){ } der_buffer_len=fread(der_buffer,1,MAX_CERT_LEN,fp); Der2X509(der_buffer,der_buffer_len,file_type); fclose(fp); return 0; Reset(CRL); Reset(USER_CA); int CertVerfier::Verify(){ } constchar* CertVerfier::Get_error_str(){ } constchar* CertVerfier::Get_CA_information(int file_type,int information_type,bool is_issuer_info){ X509 *CA; X509_NAME *issuer_or_subject=NULL; int entriesNum; if(ctx) return X509_verify_cert_error_string(ctx->error); } else return -1; if(!ctx){ } return X509_verify_cert(ctx); ctx=X509_STORE_CTX_new(); X509_STORE_CTX_init(ctx,rootCAstore,userCA,CAstack); if(rootCA&&userCA&&crl){ if(!rootCAstore){ } rootCAstore=X509_STORE_new(); X509_STORE_add_cert(rootCAstore,rootCA); X509_STORE_set_flags(rootCAstore,X509_V_FLAG_CRL_CHECK); X509_STORE_add_crl(rootCAstore,crl); X509_NAME_ENTRY *name_entry; ASN1_INTEGER *Serial = NULL; ASN1_TIME *time; EVP_PKEY *pubKey; int Version; int NID; unsignedchar derpubkey[1024],*Ptr; int derpubkeyLen; int msginfoLen; LPWSTR pUtf8 = NULL; int nUtf8; int rv; int i; char*msginfo_temp; switch(file_type){ case ROOT_CA: } switch(information_type){ case CA_VERSION: Version=X509_get_version(CA); itoa(Version,msginfo,10); return msginfo; Serial=X509_get_serialNumber(CA); for(msginfo_temp=msginfo,i=0; ilength; i++,msginfo_temp+=2){ } *(msginfo_temp+1)='\\0'; return msginfo; time=X509_get_notBefore(CA); itoa(Serial->data[i],msginfo_temp,16); if(Serial->data[i]<16){ } *(msginfo_temp+1)=*msginfo_temp; *msginfo_temp='0'; CA=rootCA; break; CA=userCA; break; return NULL; case USER_CA: default: case CA_SERIAL_NUMBER: case CA_NOT_BEFORE: } for(i=0;time->data[i]!='\\0';i++){ } msginfo[i]='\\0'; return msginfo; time=X509_get_notAfter(CA); for(i=0;time->data[i]!='\\0';i++){ } msginfo[i]='\\0'; return msginfo; pubKey=X509_get_pubkey(CA); Ptr=derpubkey; derpubkeyLen=i2d_PublicKey(pubKey,&Ptr); for(msginfo_temp=msginfo,i=0;idata[i]; msginfo[i]=time->data[i]; case CA_NOT_AFTER: case CA_PUBLIC_KEY: switch(is_issuer_info){ casefalse: issuer_or_subject = X509_get_subject_name(CA); if(!(name_entry=sk_X509_NAME_ENTRY_value(issuer_or_subject->entries,0))){ } NID=OBJ_obj2nid(name_entry->object); break; issuer_or_subject=X509_get_issuer_name(CA); if(!(name_entry=sk_X509_NAME_ENTRY_value(issuer_or_subject->entries,0))){ } NID=OBJ_obj2nid(name_entry->object); strcpy(msginfo,\); return msginfo; strcpy(msginfo,\); return msginfo; casetrue: } break; for(i=0;NID!=information_type;i++){ } if(!(name_entry=sk_X509_NAME_ENTRY_value(issuer_or_subject->entries,i))){ } NID=OBJ_obj2nid(name_entry->object); strcpy(msginfo,\); return msginfo; if(name_entry->value->type==V_ASN1_UTF8STRING){ } else { msginfoLen=name_entry->value->length; nUtf8 = 2*name_entry->value->length; pUtf8 = (LPWSTR)malloc(nUtf8); memset(pUtf8,0,nUtf8); rv = MultiByteToWideChar( CP_UTF8, 0, (char*)name_entry->value->data, name_entry->value->length, pUtf8, nUtf8); CP_ACP, 0, pUtf8, rv, (char*)msginfo, nUtf8, NULL, NULL); rv = WideCharToMultiByte( free(pUtf8); pUtf8 = NULL; msginfoLen = rv; msginfo[msginfoLen]='\\0';

搜索更多关于: PKI - 实验三 - 版本一 的文档
PKI - 实验三 - 版本一.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8wprf2zh742v3bu3zrbd_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top