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:
parent
174a4a8c89
commit
53b1899e3c
5
STATUS
5
STATUS
@ -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
|
||||||
|
|
||||||
|
11
apps/apps.c
11
apps/apps.c
@ -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);
|
||||||
|
}
|
||||||
|
@ -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
|
||||||
|
16
apps/ca.c
16
apps/ca.c
@ -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;
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user