Commit 53b1899e authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Fix a couple of outstanding issues: update STATUS file, fix NO_FP_API problems.

Update docs, change 'ca' to use the new callback parameter. Now moved key_callback
into app.c because some other utilities will use it soon.
parent 174a4a8c
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line

  OpenSSL STATUS                           Last modified at
  ______________                           $Date: 1999/10/30 19:09:01 $
  ______________                           $Date: 1999/11/11 13:58:22 $

  DEVELOPMENT STATE

@@ -29,6 +29,7 @@
	Private key, certificate and CRL API and implementation.
	Checking and bugfixing PKCS#7 (S/MIME code).
        Various X509 issues: character sets, certificate request extensions.
	Documentation for the openssl utility.

    o Mark is currently working on:
        Folding in any changes that are in the C2Net code base that were
@@ -60,10 +61,8 @@

  NEEDS PATCH

    o  Arne Ansper: d2i_ASN1_bytes bug
    o  salzr@certco.com (Rich Salz): Bug in X509_name_print
       <29E0A6D39ABED111A36000A0C99609CA2C2BA4@macertco-srv1.ma.certco.com>
    o  NO_FP_API ("Andrija Antonijevic" <TheAntony@bigfoot.com>)
    o  $(PERL) in */Makefile.ssl
    o  "Sign the certificate?" - "n" creates empty certificate file

+11 −0
Original line number Diff line number Diff line
@@ -324,3 +324,14 @@ int app_init(long mesgwin)
	return(1);
	}
#endif

int MS_CALLBACK key_callback(char *buf, int len, int verify, void *key)
	{
	int i;

	if (key == NULL) return(0);
	i=strlen(key);
	i=(i > len)?len:i;
	memcpy(buf,key,i);
	return(i);
	}
+1 −0
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ int args_from_file(char *file, int *argc, char **argv[]);
int str2fmt(char *s);
void program_name(char *in,char *out,int size);
int chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]);
int MS_CALLBACK key_callback(char *buf,int len,int verify,void *u);
#define FORMAT_UNDEF    0
#define FORMAT_ASN1     1
#define FORMAT_TEXT     2
+2 −14
Original line number Diff line number Diff line
@@ -178,7 +178,6 @@ extern int EF_ALIGNMENT;

static int add_oid_section(LHASH *conf);
static void lookup_fail(char *name,char *tag);
static int MS_CALLBACK key_callback(char *buf,int len,int verify,void *u);
static unsigned long index_serial_hash(char **a);
static int index_serial_cmp(char **a, char **b);
static unsigned long index_name_hash(char **a);
@@ -209,7 +208,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
static int do_revoke(X509 *x509, TXT_DB *db);
static int check_time_format(char *str);
static LHASH *conf=NULL;
static char *key=NULL;
static char *section=NULL;

static int preserve=0;
@@ -217,6 +215,7 @@ static int msie_hack=0;

int MAIN(int argc, char **argv)
	{
	char *key=NULL;
	int total=0;
	int total_done=0;
	int badops=0;
@@ -535,7 +534,7 @@ bad:
		pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL);
	else
		{
		pkey=PEM_read_bio_PrivateKey(in,NULL,key_callback,NULL);
		pkey=PEM_read_bio_PrivateKey(in,NULL,key_callback,key);
		memset(key,0,strlen(key));
		}
	if (pkey == NULL)
@@ -1250,17 +1249,6 @@ static void lookup_fail(char *name, char *tag)
	BIO_printf(bio_err,"variable lookup failed for %s::%s\n",name,tag);
	}

static int MS_CALLBACK key_callback(char *buf, int len, int verify, void *u)
	{
	int i;

	if (key == NULL) return(0);
	i=strlen(key);
	i=(i > len)?len:i;
	memcpy(buf,key,i);
	return(i);
	}

static unsigned long index_serial_hash(char **a)
	{
	char *n;
+6 −12
Original line number Diff line number Diff line
@@ -86,28 +86,21 @@ const char *CONF_version="CONF" OPENSSL_VERSION_PTEXT;
LHASH *CONF_load(LHASH *h, const char *file, long *line)
	{
	LHASH *ltmp;
	FILE *in=NULL;
	BIO *in=NULL;

#ifdef VMS
	in=fopen(file,"r");
#else
	in=fopen(file,"rb");
#endif
	in=BIO_new_file(file, "rb");
	if (in == NULL)
		{
		SYSerr(SYS_F_FOPEN,get_last_sys_error());
		ERR_set_error_data(BUF_strdup(file),
			ERR_TXT_MALLOCED|ERR_TXT_STRING);
		CONFerr(CONF_F_CONF_LOAD,ERR_R_SYS_LIB);
		return NULL;
		}

	ltmp = CONF_load_fp(h, in, line);
	fclose(in);
	ltmp = CONF_load_bio(h, in, line);
	BIO_free(in);

	return ltmp;
}

#ifndef NO_FP_API
LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
{
	BIO *btmp;
@@ -120,6 +113,7 @@ LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
	BIO_free(btmp);
	return ltmp;
}
#endif

LHASH *CONF_load_bio(LHASH *h, BIO *in, long *line)
	{
Loading