| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 377 人关注过本帖
标题:[求助]一道c难题
只看楼主 加入收藏
liyunzhi
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-9-12
收藏
 问题点数:0 回复次数:0 
[求助]一道c难题


程序要求如下:

1. 从IE任意导出一个X.509证书(DER格式,Base64格式,PKCS#7格式均可)
2. 编程实现该证书的解析,结果可以与asn1view工具对比
3. 得到证书中的公钥信息
4. 输入输出可以使用文本界面或者图形界面
5. 程序不能都放到一个源文件中(比如,c语言至少有俩个源文件,一个头文件)



#include<stdio.h>

void main()
{
void file1();

void file2();

file1();

file2();
}
/************************************************/
void file1() /*输出公约函数*/
{
FILE *fp;

int i;

char A[300];

if((fp=fopen("043220.cer","rb"))==NULL)
{
printf("can not open the file\n");

return;
} /*打开文件*/

fseek(fp,223l,0); /*把文件指针指向公约的起始位置*/

fread(A,271,1,fp); /*将公约的内容读入到数组中*/

printf("the gongyue is:\n");

for(i=0;i<=270;i++)
{
printf("%x",A[i]);

if(i%5==0)

printf("\n");

} /*输出数组即公约内容*/

printf("\n");

fclose(fp); /*关闭文件*/
}
/***************************************************/
void file2()
{
FILE *fp;

int i;

char B[650];

if((fp=fopen("043220.cer","rb"))==NULL)
{
printf("can not open the file\n");

return;
} /*打开文件*/

fseek(fp,8l,0);

fread(B,611,1,fp);

printf("the first stage is:\n");

for(i=0;i<=610;i++)
{
printf("%x",B[i]);

if(i%5==0)printf("\n");

} /*输出的一段*/

printf("\n");

fseek(fp,2,1);

fread(B,13,1,fp);

printf("the second stage is:\n");

for(i=0;i<=12;i++)
{
printf("%x",B[i]);

if(i%5==0)

printf("\n");

} /*输出第二段*/

printf("\n");

fseek(fp,4l,1);

fread(B,257,1,fp);

printf("the third stage is:\n");

for(i=0;i<=256;i++)
{
printf("%x",B[i]);

if(i%5==0)

printf("\n");

} /*输出第三段*/

fclose(fp);

}
/**********************************************************/


这只是其中一个特例,要求是任意一个x.509证书文件

2006-09-12 11:34
快速回复:[求助]一道c难题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028152 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved