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

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

?? testdes.c

?? 一個測試DES加密算法和測試程序
?? C
字號:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "global.h"
#include "rsaref.h"


static void InitRandomStruct(R_RANDOM_STRUCT *);
static int GetKey (char *,R_RSA_PRIVATE_KEY *,R_RSA_PUBLIC_KEY *);
static void PrintError(char *, int);
static void WriteBigInteger(FILE *, unsigned char *, unsigned int);
static void encryption(char *,char *,R_RANDOM_STRUCT *);
static void unencryption();



//////////////////////var/////////////////////////

//static R_RSA_PUBLIC_KEY  Publickey;
//static R_RSA_PRIVATE_KEY Privatekey;
//static R_RANDOM_STRUCT randomStruct;

static R_RSA_PUBLIC_KEY  *Publickey;
static R_RSA_PRIVATE_KEY *Privatekey;

R_RANDOM_STRUCT randomStruct;



int main(void )
{
  char filename[127];
  char infilename1[127];
  char outfilename2[127];

  Publickey = (R_RSA_PUBLIC_KEY *)malloc(sizeof(R_RSA_PUBLIC_KEY));
  Privatekey = (R_RSA_PRIVATE_KEY *)malloc(sizeof(R_RSA_PRIVATE_KEY));

  memset(filename,0,127);  

  InitRandomStruct(&randomStruct);
  
  printf("plase enter a file name for save key!\n");
  scanf("%s",filename);
  
  if(!GetKey(filename,Privatekey,Publickey))
	  printf("get key failed!\n\n");
  
  printf("please enter the file name for need encrypted file!\n");
  
  scanf("%s",infilename1);

  printf("please enter the file for save \n");

  scanf("%s",outfilename2);
  
  encryption(infilename1,outfilename2,&randomStruct);



  unencryption();

  free(Publickey);
  free(Privatekey);

  return 0;
}

static int GetKey(fn,Private_key,Public_key)
char * fn;
R_RSA_PRIVATE_KEY* Private_key;
R_RSA_PUBLIC_KEY* Public_key;
{
  R_RSA_PUBLIC_KEY PUBLIC_KEY3;
  R_RSA_PRIVATE_KEY PRIVATE_KEY3;
  R_RSA_PROTO_KEY protoKey;
  int KEYPAIR3_READY = 0;

  int status=0;
  int i=0;
  int len;

  FILE *pfprivate,*pfpublic;
  char fnprivate[255],fnpublic[255];
  unsigned char *date=NULL;
  strcpy(fnprivate,fn);
  strcpy(fnpublic,fn);
  
  strcat(fnpublic,"public.bin");
  strcat(fnprivate,"private.bin");
  
  //創建文件公鑰文件
  if((pfpublic = fopen(fnpublic,"wb"))==NULL)
  {
	  printf("create public key file aborted!\n");
	  return 0;
  }
  //創建私鑰文件;

  if((pfprivate = fopen(fnprivate,"wb")) == NULL)
  {
	  printf("create private key file aborted !\n");

	  fclose(pfpublic);

	  return 0;
  }

 

 
  protoKey.bits = 512;
  protoKey.useFermat4 = 1;

  if (status = R_GeneratePEMKeys(&PUBLIC_KEY3, &PRIVATE_KEY3, &protoKey,&randomStruct)) {
    PrintError("generating keys", status);
    return 0;
  }

  memcpy(Public_key,&PUBLIC_KEY3,sizeof(PUBLIC_KEY3));

  memcpy(Private_key,&PRIVATE_KEY3,sizeof(PRIVATE_KEY3));


//  KEYPAIR3_READY = 1;

  fprintf(pfpublic, "Public Key, %u bits:\n", PUBLIC_KEY3.bits);
  fprintf(pfpublic, "  modulus: ");

  date = PUBLIC_KEY3.modulus;

  for(i=0; i< (len = sizeof(PUBLIC_KEY3.modulus)) ;i++,date++)
  {
      fprintf(pfpublic," 0x%02x",*date);
  }


 // WriteBigInteger(pfpublic,PUBLIC_KEY3.modulus,sizeof(PUBLIC_KEY3.modulus));
  fprintf(pfpublic,"\n");  
  fprintf(pfpublic, "  exponent: ");
  date=PUBLIC_KEY3.exponent;

  for(i=0;i<sizeof(PUBLIC_KEY3.exponent);i++,date++)
  {
	  fprintf(pfpublic," 0x%02x",*date);
  }

//  WriteBigInteger(pfpublic,PUBLIC_KEY3.exponent,sizeof(PUBLIC_KEY3.exponent));
  fprintf(pfpublic,"\n");  

  fprintf (pfprivate, "private Key, %u bits:\n", PRIVATE_KEY3.bits);
  fprintf (pfprivate, "  modulus: ");
  
  date = PRIVATE_KEY3.modulus;

  for(i=0;i<sizeof(PRIVATE_KEY3.modulus);i++,date++)
  {
	  fprintf(pfprivate," 0x%02x",*date);
  }
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.modulus,sizeof(PRIVATE_KEY3.modulus));

   fprintf(pfprivate, "public exponent: ");

  date=PRIVATE_KEY3.publicExponent;

  for(i=0;i<sizeof(PRIVATE_KEY3.publicExponent);i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
  }
  fprintf(pfprivate,"\n");
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.publicExponent,sizeof(PRIVATE_KEY3.publicExponent));
  
  date=PRIVATE_KEY3.exponent;

  fprintf(pfprivate, "exponent: ");
  for(i=0;i<sizeof(PRIVATE_KEY3.exponent);i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
 }

  fprintf(pfprivate,"\n");
   //WriteBigInteger(pfprivate,PRIVATE_KEY3.exponent,sizeof(PRIVATE_KEY3.exponent));

  date=PRIVATE_KEY3.prime[0];

  fprintf(pfprivate, "prime 1: ");
  for(i=0;i<sizeof(PRIVATE_KEY3.prime[0]);i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
  }

  fprintf(pfprivate,"\n");  
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.prime[0],sizeof(PRIVATE_KEY3.prime[0]));

  date=PRIVATE_KEY3.prime[1];

  fprintf(pfprivate, "prime 2: ");
  for(i=0;i<sizeof(PRIVATE_KEY3.prime[1]);i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
  }
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.prime[1],sizeof(PRIVATE_KEY3.prime[1]));
  
  fprintf(pfprivate,"\n");

  date=PRIVATE_KEY3.primeExponent[0];

  fprintf(pfprivate, "primeExponent 1: ");
  for(i=0;i<sizeof(PRIVATE_KEY3.primeExponent[0]);i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
  }
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.primeExponent[0],sizeof(PRIVATE_KEY3.primeExponent[0]));
  
  fprintf(pfprivate,"\n");

  date=PRIVATE_KEY3.primeExponent[1];

  fprintf(pfprivate, "primeExponent 2: ");
  for(i=0; i < sizeof(PRIVATE_KEY3.primeExponent[1]); i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
  }
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.primeExponent[1],sizeof(PRIVATE_KEY3.primeExponent[1]));
  
  fprintf(pfprivate,"\n");

  date=PRIVATE_KEY3.coefficient;

  fprintf(pfprivate,"coefficient : ");
  for(i=0; i < sizeof(PRIVATE_KEY3.coefficient); i++,date++)
  {

	  fprintf(pfprivate," 0x%02x",*date);
  }

  fprintf(pfprivate,"\n");
//   WriteBigInteger(pfprivate,PRIVATE_KEY3.coefficient,sizeof(PRIVATE_KEY3.coefficient));

  fclose(pfpublic);
  fclose(pfprivate);

  return 1;

}

static void InitRandomStruct(randomStruct)
R_RANDOM_STRUCT *randomStruct;
{
  static unsigned char seedByte = 0;
  unsigned int bytesNeeded;
  
  R_RandomInit (randomStruct);
  
  /* Initialize with all zero seed bytes, which will not yield an actual
       random number output.
   */
  while (1) {
    R_GetRandomBytesNeeded (&bytesNeeded, randomStruct);
    if (bytesNeeded == 0)
      break;
    
    R_RandomUpdate (randomStruct,&seedByte,1);
  }
}

static void PrintError (task, type)
char *task;
int type;
{
  char *typeString, buf[80];

  if (type == 0) {
    puts (task);
    return;
  }
  
  /* Convert the type to a string if it is recognized.
   */
  switch (type) {
  case RE_KEY:
    typeString = "Recovered DES key cannot decrypt encrypted content";
    break;
  case RE_LEN:
    typeString = "Encrypted key length or signature length is out of range";
    break;
  case RE_MODULUS_LEN:
    typeString = "Modulus length is out of range";
    break;
  case RE_PRIVATE_KEY:
    typeString = "Private key cannot encrypt message digest, or cannot decrypt encrypted key";
    break;
  case RE_PUBLIC_KEY:
    typeString = "Public key cannot encrypt data encryption key, or cannot decrypt signature";
    break;
  case RE_SIGNATURE:
    typeString = "Signature is incorrect";
    break;
    
  default:
    sprintf (buf, "Code 0x%04x", type);
    typeString = buf;
  }

  printf ("ERROR: %s while %s\n", typeString, task);  
  fflush (stdout);
}
static void WriteBigInteger (file, integer, integerLen)
FILE *file;
unsigned char *integer;
unsigned int integerLen;
{
  while (*integer == 0 && integerLen > 0) {
    integer++;
    integerLen--;
  }
  
  if (integerLen == 0) {
    /* Special case, just print a zero. */
    fprintf (file, "00\n");
    return;
  }
  
  for (; integerLen > 0; integerLen--)
    fprintf (file, "%02x ", (unsigned int)(*integer++));

  fprintf (file, "\n");
}
//加密
static void encryption(infn,outfn,randomStruct)
char *infn;
char *outfn;
R_RANDOM_STRUCT *randomStruct;
{
	
	FILE *pfIn,*pfOut,*ecpkey,*inivec;
    
   R_ENVELOPE_CTX context;
   R_RSA_PUBLIC_KEY *publicKey;
   int encryptionAlgorithm;
   unsigned char encryptedKey[MAX_ENCRYPTED_KEY_LEN], *encryptedKeys[1],
    iv[8], partIn[24], partOut[31];

   unsigned int encryptedKeyLen, partInLen, partOutLen;
   char encrypfn[127];
   char inivecfn[127];

   encryptionAlgorithm = EA_DES_CBC;
   publicKey = Publickey;
   encryptedKeys[0] = encryptedKey;

	if((pfIn=fopen(infn,"rb"))==NULL)
	{
		printf("open thi infile failed!");
	
		return ;
	}

	if((pfOut = fopen(outfn,"wb")) ==NULL)
	{
		printf("open this outfile failed!");
		
		fclose(pfIn);

        return;
	}

	
    if(R_SealInit(&context,encryptedKeys,&encryptedKeyLen,iv,1,
		           &publicKey,encryptionAlgorithm,randomStruct))
	{	
		fclose(pfIn);
		fclose(pfOut);
		return ;
	}


	while(!feof(pfIn))
	{
		partInLen=fread(partIn,1,sizeof(partIn),pfIn);
        if(R_SealUpdate(&context,partOut,&partOutLen,partIn,partInLen))
			return;
		fwrite(partOut,1,partOutLen,pfOut);
	}

	if(R_SealFinal(&context,partOut,&partOutLen))
  		return;

	fwrite(partOut,1,partOutLen,pfOut);

	fclose(pfIn);
	fclose(pfOut);
    do
	{
	   printf("please enter filename for save encrypted key!\n");
	   scanf("%s",encrypfn);
	   printf("please enter filename for initializing vector\n");
	   scanf("%s",inivecfn);

    }while((strlen(encrypfn) == 0) || (strlen(inivecfn) == 0));

	if((ecpkey=fopen(encrypfn,"wb")) ==NULL)
	{
		printf("open encryped file failed!");

		return;
	}
    
	if((inivec=fopen(inivecfn,"wb"))==NULL)
	{
		printf("open ini vector file failed!");
        fclose(ecpkey);
		return ;
	}

    fwrite(encryptedKey,1,encryptedKeyLen,ecpkey);
	fwrite(iv,1,8,inivec);

	fclose(ecpkey);
	fclose(inivec);

    R_memset ((POINTER)&context, 0, sizeof (context));
    R_memset ((POINTER)partIn, 0, sizeof (partIn));


}
static void unencryption()
{
	FILE *pfIn,*pfOut,*pfKey,*pfVec;

    R_ENVELOPE_CTX context;
    R_RSA_PRIVATE_KEY *privateKey;
    int encryptionAlgorithm, status;
    unsigned char encryptedKey[MAX_ENCRYPTED_KEY_LEN], iv[8], partIn[24],
    partOut[31];
    unsigned int encryptedKeyLen, ivLen, partInLen, partOutLen;
	int ret;

	char ecyfile[127];
	char uncfyfile[127];
	char UnKeyfile[127];
	char Vecfile[127];

    encryptionAlgorithm = EA_DES_CBC;
	privateKey = Privatekey;

	printf("please enter the encrypted file to open!\n");
	scanf("%s",ecyfile);
	printf("please enter the filename file for save decrypted!\n");
	scanf("%s",uncfyfile);
	printf("please enter the key file to open!\n");
	scanf("%s",UnKeyfile);
	printf("please enter the vector file to open!\n");
	scanf("%s",Vecfile);

	if((pfIn = fopen(ecyfile,"rb")) == NULL)
	{
		printf("open encrypted file failed!");

		return ;

	}
	if((pfOut = fopen(uncfyfile,"wb")) == NULL)
	{
		printf("create decrypted file failed!\n");
   
		fclose(pfIn);
		return ;

	}

	if((pfKey = fopen(UnKeyfile,"rb")) == NULL)
	{
		printf("open key file failed!\n");
   
		fclose(pfIn);
		fclose(pfOut);
		return ;

	}
	if((pfVec = fopen(Vecfile,"rb")) == NULL)
	{
		printf("open Vector file failed!\n");
   
		fclose(pfIn);
		fclose(pfOut);
		fclose(pfKey);
		return ;

	}
    
    if((encryptedKeyLen=fread(encryptedKey,1,sizeof(encryptedKey),pfKey)) ==0)
	{
		
		fclose(pfIn);
		fclose(pfOut);
		fclose(pfKey);
		fclose(pfVec);
		return ;

	}
	if((ivLen=fread(iv,1,sizeof(iv),pfVec)) == 0)
	{
		fclose(pfIn);
		fclose(pfOut);
		fclose(pfKey);
		fclose(pfVec);
        return ;

	}

    if ((ret=R_OpenInit(&context, encryptionAlgorithm, encryptedKey, encryptedKeyLen, iv,
          privateKey)) != 0)
	{
		fclose(pfIn);
		fclose(pfOut);
		fclose(pfKey);
		fclose(pfVec);
        return ;
	}

	while(!feof(pfIn))
	{
		partInLen = fread(partIn,1,sizeof(partIn),pfIn);

		if(R_OpenUpdate(&context, partOut, &partOutLen, partIn, partInLen))
		{
		fclose(pfIn);
		fclose(pfOut);
		fclose(pfKey);
		fclose(pfVec);
        return ;
		}
		fwrite(partOut,1,partOutLen,pfOut);

	}
    if ((status = R_OpenFinal (&context, partOut, &partOutLen)) != 0)
	{
		fclose(pfIn);
		fclose(pfOut);
		fclose(pfKey);
		fclose(pfVec);
        return ;
	
	}
	fwrite(partOut,1,partOutLen,pfOut);
    R_memset ((POINTER)&context, 0, sizeof (context));
    R_memset ((POINTER)partOut, 0, sizeof (partOut));

	fclose(pfIn);
	fclose(pfOut);
	fclose(pfKey);
	fclose(pfVec);
   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品欧美日韩精品 | 国产欧美一区二区精品婷婷| 国产福利不卡视频| 91看片淫黄大片一级| 91精品国产手机| 亚洲天堂福利av| 国内外成人在线| 欧美日韩的一区二区| 中文字幕在线不卡视频| 麻豆精品精品国产自在97香蕉| 成人福利在线看| 精品久久久久av影院| 亚洲国产精品久久不卡毛片| 国产一区二区三区av电影| 欧美精品九九99久久| 亚洲欧美日韩国产综合| 福利一区二区在线观看| 欧美一区二区大片| 一区二区在线观看不卡| 成人免费毛片高清视频| 久久精品日韩一区二区三区| 日韩国产欧美在线观看| 在线观看亚洲精品| 亚洲欧洲www| 99免费精品视频| 国产精品久久久久久一区二区三区| 蜜臀a∨国产成人精品| 欧美肥妇free| 日韩影视精彩在线| 欧美色中文字幕| 亚洲午夜电影在线| 欧美人伦禁忌dvd放荡欲情| 亚洲色图20p| 色成年激情久久综合| 亚洲免费观看高清| 在线免费不卡视频| 视频一区视频二区中文| 欧美日韩国产美| 日本人妖一区二区| 日韩欧美国产小视频| 韩国理伦片一区二区三区在线播放| 欧美日韩国产成人在线免费| 五月天视频一区| 日韩一级片在线播放| 精品亚洲成a人在线观看| 久久综合久久鬼色中文字| 精品国产第一区二区三区观看体验| 成人av在线网| 久久毛片高清国产| 日韩一区二区在线观看| 久久午夜老司机| 26uuu色噜噜精品一区| 欧美三级日韩三级国产三级| 成人国产视频在线观看 | 7777精品伊人久久久大香线蕉最新版| 成人精品视频一区| 国产日韩欧美精品综合| 激情综合色播激情啊| 精品嫩草影院久久| 亚洲视频 欧洲视频| 色哟哟国产精品| 亚洲午夜一区二区三区| 欧美日韩一区二区不卡| 天天影视网天天综合色在线播放| 欧美图区在线视频| 五月天视频一区| 日韩天堂在线观看| 精品在线一区二区三区| 久久网站最新地址| 99国产精品久| 狂野欧美性猛交blacked| 久久久精品影视| 欧美系列一区二区| 欧美一三区三区四区免费在线看 | 夜夜精品浪潮av一区二区三区| 国产精品123区| 日韩欧美亚洲另类制服综合在线| 精品国产不卡一区二区三区| 大尺度一区二区| 亚洲欧美视频在线观看| 国产福利91精品一区二区三区| 欧美一区二区在线免费观看| 国产日韩v精品一区二区| 一区二区在线观看av| 黄色资源网久久资源365| 欧洲在线/亚洲| 中文字幕欧美区| 美女国产一区二区| 精品国产凹凸成av人导航| 亚洲乱码中文字幕| 成人午夜碰碰视频| 欧美大度的电影原声| 婷婷综合在线观看| 成人精品一区二区三区四区| 久久久五月婷婷| 国内精品国产成人| 88在线观看91蜜桃国自产| 中文字幕不卡在线| 欧美日韩国产一级| 国产一区二区美女诱惑| 欧美激情中文不卡| 日本久久一区二区三区| 日本不卡高清视频| 国产精品毛片大码女人| 欧美一区二区在线免费观看| 丁香天五香天堂综合| 久久久综合网站| 国产一区二区在线影院| 91视频免费观看| 国产精品每日更新在线播放网址| 国产999精品久久| 一区二区三区在线不卡| 亚洲欧洲日韩综合一区二区| 一卡二卡三卡日韩欧美| 色综合久久久久| 99久精品国产| 99视频国产精品| 99精品一区二区| 91免费小视频| 91小视频免费看| 99国产精品久| 91激情在线视频| 欧美午夜宅男影院| 欧美日韩1234| 日韩欧美另类在线| 久久婷婷国产综合国色天香| www欧美成人18+| 亚洲影院在线观看| 亚洲一区二区影院| 全国精品久久少妇| 国产麻豆成人传媒免费观看| 国产经典欧美精品| a级高清视频欧美日韩| 91视频你懂的| 欧美日韩1234| 久久精品一区二区三区不卡| 国产欧美精品区一区二区三区| 欧美极品xxx| 一区二区三区**美女毛片| 亚洲大片精品永久免费| 美女久久久精品| 成人丝袜视频网| 欧美色图激情小说| 欧美成人一区二区三区片免费 | 视频一区二区国产| 捆绑调教美女网站视频一区| 国产激情一区二区三区四区| 99久久er热在这里只有精品15| 日本道精品一区二区三区| 在线不卡免费av| 国产欧美一区二区在线| 亚洲欧美另类图片小说| 日本亚洲天堂网| av资源网一区| 欧美一区二区三区四区五区| 久久久美女毛片| 亚洲无线码一区二区三区| 国产福利91精品一区二区三区| 99re热这里只有精品免费视频| 69久久夜色精品国产69蝌蚪网| 国产日韩v精品一区二区| 亚洲国产精品久久久男人的天堂| 国产在线精品免费| 欧美亚洲综合久久| 国产精品三级av在线播放| 亚洲午夜电影在线| 成人国产精品视频| 日韩精品一区二区三区在线| 国产精品你懂的| 久久er99热精品一区二区| 色狠狠色噜噜噜综合网| 久久免费的精品国产v∧| 亚洲成av人片在线观看无码| 粉嫩13p一区二区三区| 91麻豆精品国产91久久久更新时间 | 欧美成人精品二区三区99精品| 国产精品国产自产拍高清av| 久久99精品视频| 91精品国产欧美一区二区18| 亚洲欧美色综合| av电影一区二区| 久久亚洲精品国产精品紫薇| 性感美女久久精品| 色悠悠亚洲一区二区| 在线观看日韩电影| 国模套图日韩精品一区二区| 精品国产伦一区二区三区观看体验| 男女男精品网站| 国产亚洲欧美日韩日本| 一本一道综合狠狠老| 毛片不卡一区二区| 91精品国产一区二区三区| 奇米精品一区二区三区在线观看一| 972aa.com艺术欧美| 亚洲成人先锋电影| 亚洲成人激情av| 国产一区二区三区精品欧美日韩一区二区三区 | 国产免费观看久久| 国产专区综合网| 久久在线免费观看|