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.
This commit is contained in:
Dr. Stephen Henson 1999-11-11 13:58:41 +00:00
parent 174a4a8c89
commit 53b1899e3c
8 changed files with 32 additions and 34 deletions

5
STATUS
View File

@ -1,6 +1,6 @@
OpenSSL STATUS Last modified at OpenSSL STATUS Last modified at
______________ $Date: 1999/10/30 19:09:01 $ ______________ $Date: 1999/11/11 13:58:22 $
DEVELOPMENT STATE DEVELOPMENT STATE
@ -29,6 +29,7 @@
Private key, certificate and CRL API and implementation. Private key, certificate and CRL API and implementation.
Checking and bugfixing PKCS#7 (S/MIME code). Checking and bugfixing PKCS#7 (S/MIME code).
Various X509 issues: character sets, certificate request extensions. Various X509 issues: character sets, certificate request extensions.
Documentation for the openssl utility.
o Mark is currently working on: o Mark is currently working on:
Folding in any changes that are in the C2Net code base that were Folding in any changes that are in the C2Net code base that were
@ -60,10 +61,8 @@
NEEDS PATCH NEEDS PATCH
o Arne Ansper: d2i_ASN1_bytes bug
o salzr@certco.com (Rich Salz): Bug in X509_name_print o salzr@certco.com (Rich Salz): Bug in X509_name_print
<29E0A6D39ABED111A36000A0C99609CA2C2BA4@macertco-srv1.ma.certco.com> <29E0A6D39ABED111A36000A0C99609CA2C2BA4@macertco-srv1.ma.certco.com>
o NO_FP_API ("Andrija Antonijevic" <TheAntony@bigfoot.com>)
o $(PERL) in */Makefile.ssl o $(PERL) in */Makefile.ssl
o "Sign the certificate?" - "n" creates empty certificate file o "Sign the certificate?" - "n" creates empty certificate file

View File

@ -324,3 +324,14 @@ int app_init(long mesgwin)
return(1); return(1);
} }
#endif #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);
}

View File

@ -142,6 +142,7 @@ int args_from_file(char *file, int *argc, char **argv[]);
int str2fmt(char *s); int str2fmt(char *s);
void program_name(char *in,char *out,int size); void program_name(char *in,char *out,int size);
int chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]); 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_UNDEF 0
#define FORMAT_ASN1 1 #define FORMAT_ASN1 1
#define FORMAT_TEXT 2 #define FORMAT_TEXT 2

View File

@ -178,7 +178,6 @@ extern int EF_ALIGNMENT;
static int add_oid_section(LHASH *conf); static int add_oid_section(LHASH *conf);
static void lookup_fail(char *name,char *tag); 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 unsigned long index_serial_hash(char **a);
static int index_serial_cmp(char **a, char **b); static int index_serial_cmp(char **a, char **b);
static unsigned long index_name_hash(char **a); 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 do_revoke(X509 *x509, TXT_DB *db);
static int check_time_format(char *str); static int check_time_format(char *str);
static LHASH *conf=NULL; static LHASH *conf=NULL;
static char *key=NULL;
static char *section=NULL; static char *section=NULL;
static int preserve=0; static int preserve=0;
@ -217,6 +215,7 @@ static int msie_hack=0;
int MAIN(int argc, char **argv) int MAIN(int argc, char **argv)
{ {
char *key=NULL;
int total=0; int total=0;
int total_done=0; int total_done=0;
int badops=0; int badops=0;
@ -535,7 +534,7 @@ bad:
pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL); pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL);
else 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)); memset(key,0,strlen(key));
} }
if (pkey == NULL) 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); 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) static unsigned long index_serial_hash(char **a)
{ {
char *n; char *n;

View File

@ -86,28 +86,21 @@ const char *CONF_version="CONF" OPENSSL_VERSION_PTEXT;
LHASH *CONF_load(LHASH *h, const char *file, long *line) LHASH *CONF_load(LHASH *h, const char *file, long *line)
{ {
LHASH *ltmp; LHASH *ltmp;
FILE *in=NULL; BIO *in=NULL;
#ifdef VMS in=BIO_new_file(file, "rb");
in=fopen(file,"r");
#else
in=fopen(file,"rb");
#endif
if (in == NULL) 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); CONFerr(CONF_F_CONF_LOAD,ERR_R_SYS_LIB);
return NULL; return NULL;
} }
ltmp = CONF_load_fp(h, in, line); ltmp = CONF_load_bio(h, in, line);
fclose(in); BIO_free(in);
return ltmp; return ltmp;
} }
#ifndef NO_FP_API
LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line) LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
{ {
BIO *btmp; BIO *btmp;
@ -120,6 +113,7 @@ LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
BIO_free(btmp); BIO_free(btmp);
return ltmp; return ltmp;
} }
#endif
LHASH *CONF_load_bio(LHASH *h, BIO *in, long *line) LHASH *CONF_load_bio(LHASH *h, BIO *in, long *line)
{ {

View File

@ -78,7 +78,9 @@ typedef struct
DECLARE_STACK_OF(CONF_VALUE) DECLARE_STACK_OF(CONF_VALUE)
LHASH *CONF_load(LHASH *conf,const char *file,long *eline); LHASH *CONF_load(LHASH *conf,const char *file,long *eline);
#ifndef NO_FP_API
LHASH *CONF_load_fp(LHASH *conf, FILE *fp,long *eline); LHASH *CONF_load_fp(LHASH *conf, FILE *fp,long *eline);
#endif
LHASH *CONF_load_bio(LHASH *conf, BIO *bp,long *eline); LHASH *CONF_load_bio(LHASH *conf, BIO *bp,long *eline);
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section); STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section);
char *CONF_get_string(LHASH *conf,char *group,char *name); char *CONF_get_string(LHASH *conf,char *group,char *name);

View File

@ -816,7 +816,7 @@ int PEM_write_bio_PKCS8PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,
return ret; return ret;
} }
} }
#ifndef NO_FP_API
int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
char *kstr, int klen, pem_password_cb *cb, void *u) char *kstr, int klen, pem_password_cb *cb, void *u)
{ {
@ -830,3 +830,4 @@ int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
BIO_free(bp); BIO_free(bp);
return ret; return ret;
} }
#endif

View File

@ -130,7 +130,7 @@ for more information.
=item B<-msie_hack> =item B<-msie_hack>
this is a legacy option for compatability with very old versions of this is a legacy option to make B<ca> work with very old versions of
the IE certificate enrollment control "certenr3". It used UniversalStrings the IE certificate enrollment control "certenr3". It used UniversalStrings
for almost everything. Since the old control has various security bugs for almost everything. Since the old control has various security bugs
its use is strongly discouraged. The newer control "Xenroll" does not its use is strongly discouraged. The newer control "Xenroll" does not
@ -138,9 +138,11 @@ need this option.
=item B<-preserveDN> =item B<-preserveDN>
this option is also for compatability with the older IE enrollment Normally the DN order of a certificate is the same as the order of the
control. It only accepts certificates if their DNs match the fields in the relevant policy section. When this option is set the order
order of the request. This is not needed for Xenroll. is the same as the request. This is largely for compatability with the
older IE enrollment control which would only accept certificates if their
DNs match the order of the request. This is not needed for Xenroll.
=item B<-batch> =item B<-batch>