Commit 08853ba8 authored by Ben Laurie's avatar Ben Laurie
Browse files

Finally(?) fix DES stuff.

parent c09c3c4b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ my %table=(
# A few of my development configs
"purify",	"purify gcc:-g -DPURIFY -Wall:-lsocket -lnsl::::",
"debug",	"gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:-lefence::::",
"debug-ben",	"gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -Wformat -Wshadow -Werror:::::",
"debug-rse","gcc:-DTERMIOS -DL_ENDIAN -O -g -ggdb3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
"dist",		"cc:-O -DNOPROTO::::",

+12 −12
Original line number Diff line number Diff line
@@ -1190,7 +1190,7 @@ err:
	}

static int certify(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,days,
	batch,ext_sect,conf,verbose)
		   batch,ext_sect,lconf,verbose)
X509 **xret;
char *infile;
EVP_PKEY *pkey;
@@ -1203,7 +1203,7 @@ char *startdate;
int days;
int batch;
char *ext_sect;
LHASH *conf;
LHASH *lconf;
int verbose;
	{
	X509_REQ *req=NULL;
@@ -1252,7 +1252,7 @@ int verbose;
		BIO_printf(bio_err,"Signature ok\n");

	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
		days,batch,verbose,req,ext_sect,conf);
		days,batch,verbose,req,ext_sect,lconf);

err:
	if (req != NULL) X509_REQ_free(req);
@@ -1261,7 +1261,7 @@ err:
	}

static int certify_cert(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,
	days, batch,ext_sect,conf,verbose)
			days,batch,ext_sect,lconf,verbose)
X509 **xret;
char *infile;
EVP_PKEY *pkey;
@@ -1274,7 +1274,7 @@ char *startdate;
int days;
int batch;
char *ext_sect;
LHASH *conf;
LHASH *lconf;
int verbose;
	{
	X509 *req=NULL;
@@ -1326,7 +1326,7 @@ int verbose;
		goto err;

	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
		batch,verbose,rreq,ext_sect,conf);
		batch,verbose,rreq,ext_sect,lconf);

err:
	if (rreq != NULL) X509_REQ_free(rreq);
@@ -1336,7 +1336,7 @@ err:
	}

static int do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
	batch,verbose,req, ext_sect,conf)
		   batch,verbose,req,ext_sect,lconf)
X509 **xret;
EVP_PKEY *pkey;
X509 *x509;
@@ -1350,7 +1350,7 @@ int batch;
int verbose;
X509_REQ *req;
char *ext_sect;
LHASH *conf;
LHASH *lconf;
	{
	X509_NAME *name=NULL,*CAname=NULL,*subject=NULL;
	ASN1_UTCTIME *tm,*tmptm;
@@ -1687,7 +1687,7 @@ again2:
		ctx.crl = NULL;
		ctx.flags = 0;

		if(!X509V3_EXT_add_conf(conf, &ctx, ext_sect, ret)) goto err;
		if(!X509V3_EXT_add_conf(lconf, &ctx, ext_sect, ret)) goto err;

		}

@@ -1811,7 +1811,7 @@ int output_der;
	}

static int certify_spkac(xret,infile,pkey,x509,dgst,policy,db,serial,
	startdate,days,ext_sect,conf,verbose)
			 startdate,days,ext_sect,lconf,verbose)
X509 **xret;
char *infile;
EVP_PKEY *pkey;
@@ -1823,7 +1823,7 @@ BIGNUM *serial;
char *startdate;
int days;
char *ext_sect;
LHASH *conf;
LHASH *lconf;
int verbose;
	{
	STACK *sk=NULL;
@@ -1969,7 +1969,7 @@ int verbose;
	X509_REQ_set_pubkey(req,pktmp);
	EVP_PKEY_free(pktmp);
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
		days,1,verbose,req,ext_sect,conf);
		   days,1,verbose,req,ext_sect,lconf);
err:
	if (req != NULL) X509_REQ_free(req);
	if (parms != NULL) CONF_free(parms);
+2 −0
Original line number Diff line number Diff line
@@ -471,6 +471,8 @@ ASN1_GENERALIZEDTIME * d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a,unsigne

int		i2d_ASN1_TIME(ASN1_TIME *a,unsigned char **pp);
ASN1_TIME *	d2i_ASN1_TIME(ASN1_TIME **a,unsigned char **pp, long length);
ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);


  /* for the is_set parameter to i2d_ASN1_SET */
#define IS_SEQUENCE	0
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ const unsigned char *in;
des_cblock out;
long length;
des_key_schedule schedule;
des_cblock iv;
const des_cblock iv;
	{
	register DES_LONG tout0,tout1,tin0,tin1;
	register long l=length;
+69 −52
Original line number Diff line number Diff line
@@ -80,6 +80,8 @@ extern "C" {
#endif

typedef unsigned char des_cblock[8];
typedef unsigned char *des_cblocks; /* Unfortunately there's no way to say that
				       we want a multiple of 8 */
typedef struct des_ks_struct
	{
	union	{
@@ -151,21 +153,25 @@ extern int des_set_weak_key_flag; /* set the weak key flag */
#endif
#ifndef NOPROTO
char *des_options(void);
void des_ecb3_encrypt(des_cblock *input,des_cblock *output,
void des_ecb3_encrypt(const unsigned char *input,unsigned char *output,
		      des_key_schedule ks1,des_key_schedule ks2,
		      des_key_schedule ks3, int enc);
DES_LONG des_cbc_cksum(des_cblock *input,des_cblock *output,
	long length,des_key_schedule schedule,des_cblock *ivec);
void des_cbc_encrypt(des_cblock *input,des_cblock *output,long length,
	des_key_schedule schedule,des_cblock *ivec,int enc);
void des_ncbc_encrypt(des_cblock *input,des_cblock *output,long length,
	des_key_schedule schedule,des_cblock *ivec,int enc);
void des_xcbc_encrypt(des_cblock *input,des_cblock *output,long length,
	des_key_schedule schedule,des_cblock *ivec,
	des_cblock *inw,des_cblock *outw,int enc);
void des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits,
	long length,des_key_schedule schedule,des_cblock *ivec,int enc);
void des_ecb_encrypt(des_cblock *input,des_cblock *output,
DES_LONG des_cbc_cksum(const unsigned char *input,des_cblock output,
		       long length,des_key_schedule schedule,
		       const des_cblock ivec);
void des_cbc_encrypt(const unsigned char *input,unsigned char *output,
		     long length,des_key_schedule schedule,des_cblock ivec,
		     int enc);
void des_ncbc_encrypt(const unsigned char *input,unsigned char *output,
		      long length,des_key_schedule schedule,des_cblock ivec,
		      int enc);
void des_xcbc_encrypt(const unsigned char *input,unsigned char *output,
		      long length,des_key_schedule schedule,des_cblock ivec,
		      const des_cblock inw,const des_cblock outw,int enc);
void des_cfb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
		     long length,des_key_schedule schedule,des_cblock ivec,
		     int enc);
void des_ecb_encrypt(const des_cblock input,des_cblock output,
		     des_key_schedule ks,int enc);
void des_encrypt(DES_LONG *data,des_key_schedule ks, int enc);
void des_encrypt2(DES_LONG *data,des_key_schedule ks, int enc);
@@ -173,23 +179,32 @@ void des_encrypt3(DES_LONG *data, des_key_schedule ks1,
	des_key_schedule ks2, des_key_schedule ks3);
void des_decrypt3(DES_LONG *data, des_key_schedule ks1,
	des_key_schedule ks2, des_key_schedule ks3);
void des_ede3_cbc_encrypt(des_cblock *input, des_cblock *output, 
	long length, des_key_schedule ks1, des_key_schedule ks2, 
	des_key_schedule ks3, des_cblock *ivec, int enc);
void des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out,
	long length, des_key_schedule ks1, des_key_schedule ks2,
	des_key_schedule ks3, des_cblock *ivec, int *num, int enc);
void des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out,
	long length, des_key_schedule ks1, des_key_schedule ks2,
	des_key_schedule ks3, des_cblock *ivec, int *num);
void des_ede3_cbc_encrypt(const unsigned char *input,unsigned char *output, 
			  long length,
			  des_key_schedule ks1,des_key_schedule ks2,
			  des_key_schedule ks3,des_cblock ivec,int enc);
void des_ede3_cbcm_encrypt(const unsigned char *in,unsigned char *out,
			   long length,
			   des_key_schedule ks1,des_key_schedule ks2,
			   des_key_schedule ks3,
			   des_cblock ivec1,des_cblock ivec2,
			   int enc);
void des_ede3_cfb64_encrypt(const unsigned char *in,unsigned char *out,
			    long length,des_key_schedule ks1,
			    des_key_schedule ks2,des_key_schedule ks3,
			    des_cblock ivec,int *num,int enc);
void des_ede3_ofb64_encrypt(const unsigned char *in,unsigned char *out,
			    long length,des_key_schedule ks1,
			    des_key_schedule ks2,des_key_schedule ks3,
			    des_cblock ivec,int *num);

void des_xwhite_in2out(des_cblock (*des_key), des_cblock (*in_white),
	des_cblock (*out_white));
void des_xwhite_in2out(const des_cblock des_key,const des_cblock in_white,
		       des_cblock out_white);

int des_enc_read(int fd,char *buf,int len,des_key_schedule sched,
	des_cblock *iv);
int des_enc_write(int fd,char *buf,int len,des_key_schedule sched,
	des_cblock *iv);
		 des_cblock iv);
int des_enc_write(int fd,const char *buf,int len,des_key_schedule sched,
		  des_cblock iv);
char *des_fcrypt(const char *buf,const char *salt, char *ret);
#if defined(PERL5) || defined(__FreeBSD__)
char *des_crypt(const char *buf,const char *salt);
@@ -202,32 +217,34 @@ char *crypt(const char *buf,const char *salt);
char *crypt();
#endif
#endif
void des_ofb_encrypt(unsigned char *in,unsigned char *out,
	int numbits,long length,des_key_schedule schedule,des_cblock *ivec);
void des_pcbc_encrypt(des_cblock *input,des_cblock *output,long length,
	des_key_schedule schedule,des_cblock *ivec,int enc);
DES_LONG des_quad_cksum(des_cblock *input,des_cblock *output,
	long length,int out_count,des_cblock *seed);
void des_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
		     long length,des_key_schedule schedule,des_cblock ivec);
void des_pcbc_encrypt(const unsigned char *input,unsigned char *output,
		      long length,des_key_schedule schedule,des_cblock ivec,
		      int enc);
DES_LONG des_quad_cksum(const unsigned char *input,des_cblocks output,
			long length,int out_count,des_cblock seed);
void des_random_seed(des_cblock key);
void des_random_key(des_cblock ret);
int des_read_password(des_cblock *key,char *prompt,int verify);
int des_read_2passwords(des_cblock *key1,des_cblock *key2,
	char *prompt,int verify);
int des_read_pw_string(char *buf,int length,char *prompt,int verify);
void des_set_odd_parity(des_cblock *key);
int des_is_weak_key(des_cblock *key);
int des_set_key(des_cblock *key,des_key_schedule schedule);
int des_key_sched(des_cblock *key,des_key_schedule schedule);
void des_string_to_key(char *str,des_cblock *key);
void des_string_to_2keys(char *str,des_cblock *key1,des_cblock *key2);
void des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
	des_key_schedule schedule, des_cblock *ivec, int *num, int enc);
void des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
	des_key_schedule schedule, des_cblock *ivec, int *num);
int des_read_pw(char *buf, char *buff, int size, char *prompt, int verify);
int des_read_password(des_cblock key,const char *prompt,int verify);
int des_read_2passwords(des_cblock key1,des_cblock key2,
			const char *prompt,int verify);
int des_read_pw_string(char *buf,int length,const char *prompt,int verify);
void des_set_odd_parity(des_cblock key);
int des_is_weak_key(const des_cblock key);
int des_set_key(const des_cblock key,des_key_schedule schedule);
int des_key_sched(const des_cblock key,des_key_schedule schedule);
void des_string_to_key(const char *str,des_cblock key);
void des_string_to_2keys(const char *str,des_cblock key1,des_cblock key2);
void des_cfb64_encrypt(const unsigned char *in,unsigned char *out,long length,
		       des_key_schedule schedule,des_cblock ivec,int *num,
		       int enc);
void des_ofb64_encrypt(const unsigned char *in,unsigned char *out,long length,
		       des_key_schedule schedule,des_cblock ivec,int *num);
int des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify);

/* Extra functions from Mark Murray <mark@grondar.za> */
void des_cblock_print_file(des_cblock *cb, FILE *fp);
void des_cblock_print_file(const des_cblock cb, FILE *fp);
/* The following functions are not in the normal unix build or the
 * SSLeay build.  When using the SSLeay build, use RAND_seed()
 * and RAND_bytes() instead. */
Loading