⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsagen.c

📁 SecuDe是一个由安全应用程序接口组成,对验证机制、证件处理、PEM、X.400报文处理和密钥管理提供支持。SecuDe提供DES、 RSA杂凑函数、密钥生成以及数字签名的生成和核实等多种密码机制。
💻 C
字号:
/* *  SecuDE Release 4.1 (GMD) *//******************************************************************** * Copyright (C) 1991, GMD. All rights reserved.                    * *                                                                  * *                                                                  * *                         NOTICE                                   * *                                                                  * *    Acquisition, use, and distribution of this module             * *    and related materials are subject to restrictions             * *    mentioned in each volume of the documentation.                * *                                                                  * ********************************************************************//* * RSA - module for RSA key generation *  * rsa_gen_key() */#include "arithmetic.h"#include "rsa.h"#include "rsa_debug.h"#include "secure.h"/*----------------------------------------------rsa_gen_key---*/#define MINKEYSIZE      64#define MAXKEYSIZE      (MAXLGTH<<SWBITS)RCrsa_gen_key(keysize,skey,pkey)int     keysize;BitString  **skey, **pkey;{	Skeys   rsaparm;	rndmstart zufall;	L_NUMBER        a[MAXGENL];	L_NUMBER        b[MAXGENL/2];	int     repeat;	if ((keysize<MINKEYSIZE) || (keysize>MAXKEYSIZE)) return -1;	PrintSTART("RSA genkey Prolog ...    ",6);	primzahl(zufall.p,a,(keysize+11)/2);	primzahl(zufall.q,b,(keysize+11)/2);	mult (zufall.p,zufall.q,zufall.modul);	mult(a,b,a);	start (zufall.p,a,zufall.modul);	start (zufall.q,a,zufall.modul);	repeat = 1;	for( ; repeat; ){		repeat = genrsa (&rsaparm,keysize,&zufall);		/* weitersetzen der Zufallswerte */		mmult (zufall.p,zufall.p,zufall.p,zufall.modul);		mmult (zufall.q,zufall.q,zufall.q,zufall.modul);	}	{       /* return generated key pair */	KeyBits         Kbits;	char    k1[MAXLGTH*WBYTES], k2[MAXLGTH*WBYTES];	L_NUMBER modul[MAXGENL];extern  L_NUMBER lz_fermat5[];  /* 5. Fermatzahl F4 */	Kbits.part1.octets = k1;	Kbits.part2.octets = k2;	Kbits.part3.noctets = 0;	Kbits.part4.noctets = 0;	lntoINTEGER(rsaparm.p,&Kbits.part1);	lntoINTEGER(rsaparm.q,&Kbits.part2);	*skey = e_KeyBits(&Kbits);	mult (rsaparm.p,rsaparm.q,modul);	/* ERASE SECRET KEY */	bzero(&rsaparm,sizeof(rsaparm));	lntoINTEGER(modul,&Kbits.part1);	lntoINTEGER(lz_fermat5,&Kbits.part2);	*pkey = e_KeyBits(&Kbits);	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -