📄 main.bak
字号:
#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#include "rsa_incl.h"
int SaveKeys(char* filename,R_RSA_PUBLIC_KEY publicKey,R_RSA_PRIVATE_KEY privateKey);
int LodeKeys(char* filename,R_RSA_PUBLIC_KEY * publicKey,R_RSA_PRIVATE_KEY * privateKey);
int FilePublicDecrypt(char* inputfile,char* outputfile,R_RSA_PUBLIC_KEY * publicKey);
int FilePublicEncrypt(char* inputfile,char* outputfile,R_RSA_PUBLIC_KEY * publicKey);
int FilePrivateDecrypt(char* inputfile,char* outputfile,R_RSA_PRIVATE_KEY * privateKey);
int FilePrivateEncrypt(char* inputfile,char* outputfile,R_RSA_PRIVATE_KEY * privateKey);
int main()
{
int status;
R_RSA_PUBLIC_KEY publicKey; /* new RSA public key */
R_RSA_PRIVATE_KEY privateKey; /* new RSA private key */
R_RSA_PROTO_KEY protoKey; /* RSA prototype key */
R_RANDOM_STRUCT randomStruct; /* random structure */
R_RSA_PUBLIC_KEY publicKey1; /* new RSA public key */
R_RSA_PRIVATE_KEY privateKey1; /* new RSA private key */
unsigned char output[128];
unsigned int outputLen; /* length of output block */
unsigned char input[130]; /* input block */
unsigned int inputLen=117; /* length of input block */
DWORD start,end;
char filename[100];
R_RandomCreate(&randomStruct);
protoKey.bits=1024;
protoKey.useFermat4=1;
strcpy(filename,"PEMKeys");
// status=R_GeneratePEMKeys(&publicKey, &privateKey, &protoKey, &randomStruct);
// SaveKeys(filename,publicKey,privateKey);
LodeKeys(filename,&publicKey1,&privateKey1);
//////////////////////////////////////////////////////////////////////////////
R_memcpy(input,"ScanDisk checked drive C for problems, with the following results: Directory structure Scan Disk did not perform any.\0",inputLen+1);
inputLen=117;
printf("%s\n",input);
start = timeGetTime();
status=RSAPublicEncrypt(output, &outputLen, input, inputLen, &publicKey1);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PublicEncrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPrivateDecrypt(output, &outputLen, input, inputLen, &privateKey1);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PrivateDecrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPrivateEncrypt(output, &outputLen, input, inputLen, &privateKey1);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PrivateEncrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPublicDecrypt(output, &outputLen, input, inputLen, &publicKey1);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PublicDecrypt time:%u\n" , end-start );
///////////////////////////////////////////////////////////////////
/*
R_memcpy(input,"ScanDisk checked drive C for problems, with the following results: Directory structure Scan Disk did not perform any.\0",inputLen+1);
inputLen=117;
printf("%s\n",input);
start = timeGetTime();
status=RSAPublicEncrypt(output, &outputLen, input, inputLen, &publicKey,&randomStruct);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PublicEncrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPrivateDecrypt(output, &outputLen, input, inputLen, &privateKey);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PrivateDecrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPrivateEncrypt(output, &outputLen, input, inputLen, &privateKey);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PrivateEncrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPublicDecrypt(output, &outputLen, input, inputLen, &publicKey);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PublicDecrypt time:%u\n" , end-start );
*/
/*
R_RandomCreate(&randomStruct);
protoKey.bits=1024;
protoKey.useFermat4=1;
start = timeGetTime();
status=R_GeneratePEMKeys(&publicKey, &privateKey, &protoKey, &randomStruct);
end = timeGetTime();
printf("Generate Keys time:%u\n" , end-start );
R_memcpy(input,"ScanDisk checked drive C for problems, with the following results: Directory structure Scan Disk did not perform any.\0",inputLen+1);
printf("%s\n",input);
start = timeGetTime();
status=RSAPublicEncrypt(output, &outputLen, input, inputLen, &publicKey,&randomStruct);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PublicEncrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPrivateDecrypt(output, &outputLen, input, inputLen, &privateKey);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PrivateDecrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPrivateEncrypt(output, &outputLen, input, inputLen, &privateKey);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PrivateEncrypt time:%u\n" , end-start );
R_memcpy(input,output,outputLen);
inputLen=outputLen;
start = timeGetTime();
status=RSAPublicDecrypt(output, &outputLen, input, inputLen, &publicKey);
end = timeGetTime();
output[outputLen]=0;
printf("%s--%d\n",output,outputLen);
printf("PublicDecrypt time:%u\n" , end-start );
*/
return 0;
}
int SaveKeys(char* filename,R_RSA_PUBLIC_KEY publicKey,R_RSA_PRIVATE_KEY privateKey)
{
FILE* KeyFile;
KeyFile=fopen(filename,"wb");
if( KeyFile== NULL )
return 0;
fwrite(&publicKey,sizeof(R_RSA_PUBLIC_KEY),1,KeyFile);
fwrite(&privateKey,sizeof(R_RSA_PRIVATE_KEY),1,KeyFile);
fclose(KeyFile);
return 1;
/*
FILE* KeyFile;
int i;
KeyFile=fopen(filename,"wt");
if( KeyFile== NULL )
return 0;
// typedef struct {
// unsigned short int bits;
// unsigned char modulus[MAX_RSA_MODULUS_LEN];
// unsigned char exponent[MAX_RSA_MODULUS_LEN];
// } R_RSA_PUBLIC_KEY;
fprintf(KeyFile,"%d\n",publicKey.bits);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fprintf(KeyFile,"%d\n",publicKey.modulus[i]);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fprintf(KeyFile,"%d\n",publicKey.exponent[i]);
// typedef struct {
// unsigned short int bits;
// unsigned char modulus[MAX_RSA_MODULUS_LEN];
// unsigned char publicExponent[MAX_RSA_MODULUS_LEN];
// unsigned char exponent[MAX_RSA_MODULUS_LEN];
// unsigned char prime[2][MAX_RSA_PRIME_LEN];
// unsigned char primeExponent[2][MAX_RSA_PRIME_LEN];
// unsigned char coefficient[MAX_RSA_PRIME_LEN];
// } R_RSA_PRIVATE_KEY;
fprintf(KeyFile,"%d\n",privateKey.bits);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.modulus[i]);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.publicExponent[i]);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.exponent[i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.prime[0][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.prime[1][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.primeExponent[0][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.primeExponent[1][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fprintf(KeyFile,"%d\n",privateKey.coefficient[i]);
fclose(KeyFile);
return 1;
*/
}
int LodeKeys(char* filename,R_RSA_PUBLIC_KEY * publicKey,R_RSA_PRIVATE_KEY * privateKey)
{
FILE* KeyFile;
KeyFile=fopen(filename,"rb");
if( KeyFile== NULL )
return 0;
fread(publicKey,sizeof(R_RSA_PUBLIC_KEY),1,KeyFile);
fread(privateKey,sizeof(R_RSA_PRIVATE_KEY),1,KeyFile);
fclose(KeyFile);
return 1;
/*
FILE* KeyFile;
int i;
KeyFile=fopen(filename,"rt");
if( KeyFile== NULL )
return 0;
// typedef struct {
// unsigned short int bits;
// unsigned char modulus[MAX_RSA_MODULUS_LEN];
// unsigned char exponent[MAX_RSA_MODULUS_LEN];
// } R_RSA_PUBLIC_KEY;
fscanf(KeyFile,"%d",&publicKey->bits);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fscanf(KeyFile,"%d",&publicKey->modulus[i]);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fscanf(KeyFile,"%d",&publicKey->exponent[i]);
// typedef struct {
// unsigned short int bits;
// unsigned char modulus[MAX_RSA_MODULUS_LEN];
// unsigned char publicExponent[MAX_RSA_MODULUS_LEN];
// unsigned char exponent[MAX_RSA_MODULUS_LEN];
// unsigned char prime[2][MAX_RSA_PRIME_LEN];
// unsigned char primeExponent[2][MAX_RSA_PRIME_LEN];
// unsigned char coefficient[MAX_RSA_PRIME_LEN];
// } R_RSA_PRIVATE_KEY;
fscanf(KeyFile,"%d",&privateKey->bits);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->modulus[i]);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->publicExponent[i]);
for(i=0;i<MAX_RSA_MODULUS_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->exponent[i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->prime[0][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->prime[1][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->primeExponent[0][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->primeExponent[1][i]);
for(i=0;i<MAX_RSA_PRIME_LEN;i++)
fscanf(KeyFile,"%d",&privateKey->coefficient[i]);
fclose(KeyFile);
return 1;
*/
}
int FilePublicDecrypt(char* inputfile,char* outputfile,R_RSA_PUBLIC_KEY * publicKey)
{
return 0;
}
int FilePublicEncrypt(char* inputfile,char* outputfile,R_RSA_PUBLIC_KEY * publicKey)
{
return 0;
}
int FilePrivateDecrypt(char* inputfile,char* outputfile,R_RSA_PRIVATE_KEY * privateKey)
{
return 0;
}
int FilePrivateEncrypt(char* inputfile,char* outputfile,R_RSA_PRIVATE_KEY * privateKey)
{
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -