Merge from main trunk, all conflicts resolved.

This commit is contained in:
Richard Levitte
2000-10-10 08:40:05 +00:00
parent 73701c27b3
commit 5209202f3b
77 changed files with 551 additions and 318 deletions

25
CHANGES
View File

@@ -2,6 +2,31 @@
OpenSSL CHANGES OpenSSL CHANGES
_______________ _______________
Changes between 0.9.6 and 0.9.7 [xx XXX 2000]
*) Fix for bug in DirectoryString mask setting. Add support for
X509_NAME_print_ex() in 'req' and X509_print_ex() function
to allow certificate printing to more controllable, additional
'certopt' option to 'x509' to allow new printing options to be
set.
[Steve Henson]
*) Clean old EAY MD5 hack from e_os.h.
[Richard Levitte]
*) Fix SSL_CTX_set_read_ahead macro to actually use its argument.
Copy SSL_CTX's read_ahead flag to SSL object directly in SSL_new
and not in SSL_clear because the latter is also used by the
accept/connect functions; previously, the settings made by
SSL_set_read_ahead would be lost during the handshake.
[Bodo Moeller; problems reported by Anders Gertz <gertz@epact.se>]
*) Correct util/mkdef.pl to be selective about disabled algorithms.
Previously, it would create entries for disableed algorithms no
matter what.
[Richard Levitte]
Changes between 0.9.5a and 0.9.6 [24 Sep 2000] Changes between 0.9.5a and 0.9.6 [24 Sep 2000]
*) In ssl23_get_client_hello, generate an error message when faced *) In ssl23_get_client_hello, generate an error message when faced

View File

@@ -289,8 +289,8 @@ my %table=(
# #
# <appro@fy.chalmers.se> # <appro@fy.chalmers.se>
# #
"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o::", "linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o:dlfcn:linux-shared:-fPIC",
"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o::", "linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o:dlfcn:linux-shared:-fPIC",
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::", "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::",
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::", "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::",
@@ -740,6 +740,10 @@ if ($shared_cflag ne "")
$shared_mark2 = ".shlib."; $shared_mark2 = ".shlib.";
} }
} }
else
{
$no_shared = 1;
}
#my ($bn1)=split(/\s+/,$bn_obj); #my ($bn1)=split(/\s+/,$bn_obj);
#$bn1 = "" unless defined $bn1; #$bn1 = "" unless defined $bn1;

View File

@@ -462,7 +462,8 @@ install: all install_docs
if [ -f "$$i" ]; then \ if [ -f "$$i" ]; then \
( echo installing $$i; \ ( echo installing $$i; \
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
$(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ (echo $$i | grep '\\.a$$' > /dev/null 2>&1) \
&& $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
fi \ fi \
done done
@@ -473,19 +474,19 @@ install_docs:
$(INSTALL_PREFIX)$(MANDIR)/man3 \ $(INSTALL_PREFIX)$(MANDIR)/man3 \
$(INSTALL_PREFIX)$(MANDIR)/man5 \ $(INSTALL_PREFIX)$(MANDIR)/man5 \
$(INSTALL_PREFIX)$(MANDIR)/man7 $(INSTALL_PREFIX)$(MANDIR)/man7
@echo installing man 1 and man 5
@for i in doc/apps/*.pod; do \ @for i in doc/apps/*.pod; do \
fn=`basename $$i .pod`; \ fn=`basename $$i .pod`; \
sec=`[ "$$fn" = "config" ] && echo 5 || echo 1`; \ sec=`[ "$$fn" = "config" ] && echo 5 || echo 1`; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `dirname $$i`; \ (cd `dirname $$i`; \
$(PERL) ../../util/pod2man.pl --section=$$sec --center=OpenSSL \ $(PERL) ../../util/pod2man.pl --section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`) \ --release=$(VERSION) `basename $$i`) \
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
done done
@echo installing man 3 and man 7
@for i in doc/crypto/*.pod doc/ssl/*.pod; do \ @for i in doc/crypto/*.pod doc/ssl/*.pod; do \
fn=`basename $$i .pod`; \ fn=`basename $$i .pod`; \
sec=`[ "$$fn" = "des_modes" ] && echo 7 || echo 3`; \ sec=`[ "$$fn" = "des_modes" ] && echo 7 || echo 3`; \
echo "installing man$$sec/`basename $$i .pod`.$$sec"; \
(cd `dirname $$i`; \ (cd `dirname $$i`; \
$(PERL) ../../util/pod2man.pl --section=$$sec --center=OpenSSL \ $(PERL) ../../util/pod2man.pl --section=$$sec --center=OpenSSL \
--release=$(VERSION) `basename $$i`) \ --release=$(VERSION) `basename $$i`) \

2
README
View File

@@ -1,5 +1,5 @@
OpenSSL 0.9.6 [engine] 24 Sep 2000 OpenSSL 0.9.7-dev [engine] 24 Sep 2000
Copyright (c) 1998-2000 The OpenSSL Project Copyright (c) 1998-2000 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

3
STATUS
View File

@@ -1,9 +1,10 @@
OpenSSL STATUS Last modified at OpenSSL STATUS Last modified at
______________ $Date: 2000/09/24 16:04:33 $ ______________ $Date: 2000/10/10 08:39:58 $
DEVELOPMENT STATE DEVELOPMENT STATE
o OpenSSL 0.9.7: Under development...
o OpenSSL 0.9.6: Released on September 24th, 2000 o OpenSSL 0.9.6: Released on September 24th, 2000
o OpenSSL 0.9.5a: Released on April 1st, 2000 o OpenSSL 0.9.5a: Released on April 1st, 2000
o OpenSSL 0.9.5: Released on February 28th, 2000 o OpenSSL 0.9.5: Released on February 28th, 2000

View File

@@ -74,6 +74,14 @@
# include "bss_file.c" # include "bss_file.c"
#endif #endif
typedef struct {
char *name;
unsigned long flag;
unsigned long mask;
} NAME_EX_TBL;
static int set_table_opts(unsigned long *flags, const char *arg, const NAME_EX_TBL *in_tbl);
int app_init(long mesgwin); int app_init(long mesgwin);
#ifdef undef /* never finished - probably never will be :-) */ #ifdef undef /* never finished - probably never will be :-) */
int args_from_file(char *file, int *argc, char **argv[]) int args_from_file(char *file, int *argc, char **argv[])
@@ -696,16 +704,43 @@ end:
return(othercerts); return(othercerts);
} }
typedef struct {
char *name; #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
unsigned long flag; /* Return error for unknown extensions */
unsigned long mask; #define X509V3_EXT_DEFAULT 0
} NAME_EX_TBL; /* Print error for unknown extensions */
#define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
/* ASN1 parse unknown extensions */
#define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
/* BIO_dump unknown extensions */
#define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
int set_cert_ex(unsigned long *flags, const char *arg)
{
static const NAME_EX_TBL cert_tbl[] = {
{ "compatible", X509_FLAG_COMPAT, 0xffffffffl},
{ "no_header", X509_FLAG_NO_HEADER, 0},
{ "no_version", X509_FLAG_NO_VERSION, 0},
{ "no_serial", X509_FLAG_NO_SERIAL, 0},
{ "no_signame", X509_FLAG_NO_SIGNAME, 0},
{ "no_validity", X509_FLAG_NO_VALIDITY, 0},
{ "no_subject", X509_FLAG_NO_SUBJECT, 0},
{ "no_pubkey", X509_FLAG_NO_PUBKEY, 0},
{ "no_extensions", X509_FLAG_NO_EXTENSIONS, 0},
{ "no_sigdump", X509_FLAG_NO_SIGDUMP, 0},
{ "no_aux", X509_FLAG_NO_AUX, 0},
{ "ext_default", X509V3_EXT_DEFAULT, X509V3_EXT_UNKNOWN_MASK},
{ "ext_error", X509V3_EXT_ERROR_UNKNOWN, X509V3_EXT_UNKNOWN_MASK},
{ "ext_parse", X509V3_EXT_PARSE_UNKNOWN, X509V3_EXT_UNKNOWN_MASK},
{ "ext_dump", X509V3_EXT_DUMP_UNKNOWN, X509V3_EXT_UNKNOWN_MASK},
{ NULL, 0, 0}
};
return set_table_opts(flags, arg, cert_tbl);
}
int set_name_ex(unsigned long *flags, const char *arg) int set_name_ex(unsigned long *flags, const char *arg)
{ {
char c; static const NAME_EX_TBL ex_tbl[] = {
const NAME_EX_TBL *ptbl, ex_tbl[] = {
{ "esc_2253", ASN1_STRFLGS_ESC_2253, 0}, { "esc_2253", ASN1_STRFLGS_ESC_2253, 0},
{ "esc_ctrl", ASN1_STRFLGS_ESC_CTRL, 0}, { "esc_ctrl", ASN1_STRFLGS_ESC_CTRL, 0},
{ "esc_msb", ASN1_STRFLGS_ESC_MSB, 0}, { "esc_msb", ASN1_STRFLGS_ESC_MSB, 0},
@@ -733,7 +768,13 @@ int set_name_ex(unsigned long *flags, const char *arg)
{ "multiline", XN_FLAG_MULTILINE, 0xffffffffL}, { "multiline", XN_FLAG_MULTILINE, 0xffffffffL},
{ NULL, 0, 0} { NULL, 0, 0}
}; };
return set_table_opts(flags, arg, ex_tbl);
}
static int set_table_opts(unsigned long *flags, const char *arg, const NAME_EX_TBL *in_tbl)
{
char c;
const NAME_EX_TBL *ptbl;
c = arg[0]; c = arg[0];
if(c == '-') { if(c == '-') {
@@ -744,7 +785,7 @@ int set_name_ex(unsigned long *flags, const char *arg)
arg++; arg++;
} else c = 1; } else c = 1;
for(ptbl = ex_tbl; ptbl->name; ptbl++) { for(ptbl = in_tbl; ptbl->name; ptbl++) {
if(!strcmp(arg, ptbl->name)) { if(!strcmp(arg, ptbl->name)) {
*flags &= ~ptbl->mask; *flags &= ~ptbl->mask;
if(c) *flags |= ptbl->flag; if(c) *flags |= ptbl->flag;

View File

@@ -147,6 +147,7 @@ int chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]);
int dump_cert_text(BIO *out, X509 *x); int dump_cert_text(BIO *out, X509 *x);
void print_name(BIO *out, char *title, X509_NAME *nm, unsigned long lflags); void print_name(BIO *out, char *title, X509_NAME *nm, unsigned long lflags);
#endif #endif
int set_cert_ex(unsigned long *flags, const char *arg);
int set_name_ex(unsigned long *flags, const char *arg); int set_name_ex(unsigned long *flags, const char *arg);
int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2); int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2);
int add_oid_section(BIO *err, LHASH *conf); int add_oid_section(BIO *err, LHASH *conf);

View File

@@ -145,6 +145,7 @@ int MAIN(int argc, char **argv)
#ifndef NO_DSA #ifndef NO_DSA
DSA *dsa_params=NULL; DSA *dsa_params=NULL;
#endif #endif
unsigned long nmflag = 0;
int ex=1,x509=0,days=30; int ex=1,x509=0,days=30;
X509 *x509ss=NULL; X509 *x509ss=NULL;
X509_REQ *req=NULL; X509_REQ *req=NULL;
@@ -152,7 +153,7 @@ int MAIN(int argc, char **argv)
int i,badops=0,newreq=0,newkey= -1,pkey_type=0; int i,badops=0,newreq=0,newkey= -1,pkey_type=0;
BIO *in=NULL,*out=NULL; BIO *in=NULL,*out=NULL;
int informat,outformat,verify=0,noout=0,text=0,keyform=FORMAT_PEM; int informat,outformat,verify=0,noout=0,text=0,keyform=FORMAT_PEM;
int nodes=0,kludge=0,newhdr=0; int nodes=0,kludge=0,newhdr=0,subject=0;
char *infile,*outfile,*prog,*keyfile=NULL,*template=NULL,*keyout=NULL; char *infile,*outfile,*prog,*keyfile=NULL,*template=NULL,*keyout=NULL;
char *engine=NULL; char *engine=NULL;
char *extensions = NULL; char *extensions = NULL;
@@ -330,6 +331,13 @@ int MAIN(int argc, char **argv)
nodes=1; nodes=1;
else if (strcmp(*argv,"-noout") == 0) else if (strcmp(*argv,"-noout") == 0)
noout=1; noout=1;
else if (strcmp(*argv,"-nameopt") == 0)
{
if (--argc < 1) goto bad;
if (!set_name_ex(&nmflag, *(++argv))) goto bad;
}
else if (strcmp(*argv,"-subject") == 0)
subject=1;
else if (strcmp(*argv,"-text") == 0) else if (strcmp(*argv,"-text") == 0)
text=1; text=1;
else if (strcmp(*argv,"-x509") == 0) else if (strcmp(*argv,"-x509") == 0)
@@ -843,7 +851,7 @@ loop:
BIO_printf(bio_err,"verify OK\n"); BIO_printf(bio_err,"verify OK\n");
} }
if (noout && !text && !modulus) if (noout && !text && !modulus && !subject)
{ {
ex=0; ex=0;
goto end; goto end;
@@ -880,6 +888,14 @@ loop:
X509_REQ_print(out,req); X509_REQ_print(out,req);
} }
if(subject)
{
if(x509)
print_name(out, "subject=", X509_get_subject_name(x509ss), nmflag);
else
print_name(out, "subject=", X509_REQ_get_subject_name(req), nmflag);
}
if (modulus) if (modulus)
{ {
EVP_PKEY *pubkey; EVP_PKEY *pubkey;

View File

@@ -131,6 +131,7 @@ static char *x509_usage[]={
" -clrext - delete extensions before signing and input certificate\n", " -clrext - delete extensions before signing and input certificate\n",
" -nameopt arg - various certificate name options\n", " -nameopt arg - various certificate name options\n",
" -engine e - use engine e, possibly a hardware device.\n", " -engine e - use engine e, possibly a hardware device.\n",
" -certopt arg - various certificate text options\n",
NULL NULL
}; };
@@ -177,7 +178,7 @@ int MAIN(int argc, char **argv)
char *extsect = NULL, *extfile = NULL, *passin = NULL, *passargin = NULL; char *extsect = NULL, *extfile = NULL, *passin = NULL, *passargin = NULL;
int need_rand = 0; int need_rand = 0;
int checkend=0,checkoffset=0; int checkend=0,checkoffset=0;
unsigned long nmflag = 0; unsigned long nmflag = 0, certflag = 0;
char *engine=NULL; char *engine=NULL;
reqfile=0; reqfile=0;
@@ -330,6 +331,11 @@ int MAIN(int argc, char **argv)
alias= *(++argv); alias= *(++argv);
trustout = 1; trustout = 1;
} }
else if (strcmp(*argv,"-certopt") == 0)
{
if (--argc < 1) goto bad;
if (!set_cert_ex(&certflag, *(++argv))) goto bad;
}
else if (strcmp(*argv,"-nameopt") == 0) else if (strcmp(*argv,"-nameopt") == 0)
{ {
if (--argc < 1) goto bad; if (--argc < 1) goto bad;
@@ -801,7 +807,7 @@ bad:
} }
else if (text == i) else if (text == i)
{ {
X509_print(out,x); X509_print_ex(out,x,nmflag, certflag);
} }
else if (startdate == i) else if (startdate == i)
{ {

View File

@@ -90,7 +90,8 @@ links:
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
libs: libs:

View File

@@ -75,7 +75,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -491,12 +491,24 @@ static int do_name_ex(char_io *io_ch, void *arg, X509_NAME *n,
int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags) int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags)
{ {
if(flags == XN_FLAG_COMPAT)
return X509_NAME_print(out, nm, indent);
return do_name_ex(send_bio_chars, out, nm, indent, flags); return do_name_ex(send_bio_chars, out, nm, indent, flags);
} }
int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long flags) int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long flags)
{ {
if(flags == XN_FLAG_COMPAT)
{
BIO *btmp;
int ret;
btmp = BIO_new_fp(fp, BIO_NOCLOSE);
if(!btmp) return -1;
ret = X509_NAME_print(btmp, nm, indent);
BIO_free(btmp);
return ret;
}
return do_name_ex(send_fp_chars, fp, nm, indent, flags); return do_name_ex(send_fp_chars, fp, nm, indent, flags);
} }

View File

@@ -133,7 +133,7 @@ ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in,
if(tbl) { if(tbl) {
mask = tbl->mask; mask = tbl->mask;
if(!(tbl->flags & STABLE_NO_MASK)) mask &= global_mask; if(!(tbl->flags & STABLE_NO_MASK)) mask &= global_mask;
ret = ASN1_mbstring_ncopy(out, in, inlen, inform, tbl->mask, ret = ASN1_mbstring_ncopy(out, in, inlen, inform, mask,
tbl->minsize, tbl->maxsize); tbl->minsize, tbl->maxsize);
} else ret = ASN1_mbstring_copy(out, in, inlen, inform, DIRSTRING_TYPE & global_mask); } else ret = ASN1_mbstring_copy(out, in, inlen, inform, DIRSTRING_TYPE & global_mask);
if(ret <= 0) return NULL; if(ret <= 0) return NULL;

View File

@@ -72,6 +72,11 @@
#ifndef NO_FP_API #ifndef NO_FP_API
int X509_print_fp(FILE *fp, X509 *x) int X509_print_fp(FILE *fp, X509 *x)
{
return X509_print_ex_fp(fp, x, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
}
int X509_print_ex_fp(FILE *fp, X509 *x, unsigned long nmflag, unsigned long cflag)
{ {
BIO *b; BIO *b;
int ret; int ret;
@@ -82,17 +87,23 @@ int X509_print_fp(FILE *fp, X509 *x)
return(0); return(0);
} }
BIO_set_fp(b,fp,BIO_NOCLOSE); BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=X509_print(b, x); ret=X509_print_ex(b, x, nmflag, cflag);
BIO_free(b); BIO_free(b);
return(ret); return(ret);
} }
#endif #endif
int X509_print(BIO *bp, X509 *x) int X509_print(BIO *bp, X509 *x)
{
return X509_print_ex(bp, x, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
}
int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
{ {
long l; long l;
int ret=0,i,j,n; int ret=0,i,j,n;
char *m=NULL,*s; char *m=NULL,*s, mlch = ' ';
int nmindent = 0;
X509_CINF *ci; X509_CINF *ci;
ASN1_INTEGER *bs; ASN1_INTEGER *bs;
EVP_PKEY *pkey=NULL; EVP_PKEY *pkey=NULL;
@@ -100,89 +111,127 @@ int X509_print(BIO *bp, X509 *x)
X509_EXTENSION *ex; X509_EXTENSION *ex;
ASN1_STRING *str=NULL; ASN1_STRING *str=NULL;
if((nmflags & XN_FLAG_SEP_MASK) == XN_FLAG_SEP_MULTILINE) {
mlch = '\n';
nmindent = 16;
}
if(nmflags == X509_FLAG_COMPAT)
nmindent = 16;
ci=x->cert_info; ci=x->cert_info;
if (BIO_write(bp,"Certificate:\n",13) <= 0) goto err; if(!(cflag & X509_FLAG_NO_HEADER))
if (BIO_write(bp," Data:\n",10) <= 0) goto err;
l=X509_get_version(x);
if (BIO_printf(bp,"%8sVersion: %lu (0x%lx)\n","",l+1,l) <= 0) goto err;
if (BIO_write(bp," Serial Number:",22) <= 0) goto err;
bs=X509_get_serialNumber(x);
if (bs->length <= 4)
{ {
l=ASN1_INTEGER_get(bs); if (BIO_write(bp,"Certificate:\n",13) <= 0) goto err;
if (l < 0) if (BIO_write(bp," Data:\n",10) <= 0) goto err;
{
l= -l;
neg="-";
}
else
neg="";
if (BIO_printf(bp," %s%lu (%s0x%lx)\n",neg,l,neg,l) <= 0)
goto err;
} }
else if(!(cflag & X509_FLAG_NO_VERSION))
{
l=X509_get_version(x);
if (BIO_printf(bp,"%8sVersion: %lu (0x%lx)\n","",l+1,l) <= 0) goto err;
}
if(!(cflag & X509_FLAG_NO_SERIAL))
{ {
neg=(bs->type == V_ASN1_NEG_INTEGER)?" (Negative)":"";
if (BIO_printf(bp,"\n%12s%s","",neg) <= 0) goto err;
for (i=0; i<bs->length; i++) if (BIO_write(bp," Serial Number:",22) <= 0) goto err;
bs=X509_get_serialNumber(x);
if (bs->length <= 4)
{ {
if (BIO_printf(bp,"%02x%c",bs->data[i], l=ASN1_INTEGER_get(bs);
((i+1 == bs->length)?'\n':':')) <= 0) if (l < 0)
{
l= -l;
neg="-";
}
else
neg="";
if (BIO_printf(bp," %s%lu (%s0x%lx)\n",neg,l,neg,l) <= 0)
goto err; goto err;
} }
else
{
neg=(bs->type == V_ASN1_NEG_INTEGER)?" (Negative)":"";
if (BIO_printf(bp,"\n%12s%s","",neg) <= 0) goto err;
for (i=0; i<bs->length; i++)
{
if (BIO_printf(bp,"%02x%c",bs->data[i],
((i+1 == bs->length)?'\n':':')) <= 0)
goto err;
}
}
} }
i=OBJ_obj2nid(ci->signature->algorithm); if(!(cflag & X509_FLAG_NO_SIGNAME))
if (BIO_printf(bp,"%8sSignature Algorithm: %s\n","",
(i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)) <= 0)
goto err;
if (BIO_write(bp," Issuer: ",16) <= 0) goto err;
if (!X509_NAME_print(bp,X509_get_issuer_name(x),16)) goto err;
if (BIO_write(bp,"\n Validity\n",18) <= 0) goto err;
if (BIO_write(bp," Not Before: ",24) <= 0) goto err;
if (!ASN1_TIME_print(bp,X509_get_notBefore(x))) goto err;
if (BIO_write(bp,"\n Not After : ",25) <= 0) goto err;
if (!ASN1_TIME_print(bp,X509_get_notAfter(x))) goto err;
if (BIO_write(bp,"\n Subject: ",18) <= 0) goto err;
if (!X509_NAME_print(bp,X509_get_subject_name(x),16)) goto err;
if (BIO_write(bp,"\n Subject Public Key Info:\n",34) <= 0)
goto err;
i=OBJ_obj2nid(ci->key->algor->algorithm);
if (BIO_printf(bp,"%12sPublic Key Algorithm: %s\n","",
(i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)) <= 0) goto err;
pkey=X509_get_pubkey(x);
if (pkey == NULL)
{ {
BIO_printf(bp,"%12sUnable to load Public Key\n",""); i=OBJ_obj2nid(ci->signature->algorithm);
ERR_print_errors(bp); if (BIO_printf(bp,"%8sSignature Algorithm: %s\n","",
(i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)) <= 0)
goto err;
} }
else
if(!(cflag & X509_FLAG_NO_ISSUER))
{
if (BIO_printf(bp," Issuer:%c",mlch) <= 0) goto err;
if (!X509_NAME_print_ex(bp,X509_get_issuer_name(x),nmindent, nmflags)) goto err;
}
if(!(cflag & X509_FLAG_NO_VALIDITY))
{
if (BIO_write(bp,"\n Validity\n",18) <= 0) goto err;
if (BIO_write(bp," Not Before: ",24) <= 0) goto err;
if (!ASN1_TIME_print(bp,X509_get_notBefore(x))) goto err;
if (BIO_write(bp,"\n Not After : ",25) <= 0) goto err;
if (!ASN1_TIME_print(bp,X509_get_notAfter(x))) goto err;
if (BIO_write(bp,"\n",1) <= 0) goto err;
}
if(!(cflag & X509_FLAG_NO_SUBJECT))
{
if (BIO_printf(bp," Subject:%c",mlch) <= 0) goto err;
if (!X509_NAME_print_ex(bp,X509_get_subject_name(x),nmindent, nmflags)) goto err;
}
if(!(cflag & X509_FLAG_NO_PUBKEY))
{
if (BIO_write(bp,"\n Subject Public Key Info:\n",34) <= 0)
goto err;
i=OBJ_obj2nid(ci->key->algor->algorithm);
if (BIO_printf(bp,"%12sPublic Key Algorithm: %s\n","",
(i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)) <= 0) goto err;
pkey=X509_get_pubkey(x);
if (pkey == NULL)
{
BIO_printf(bp,"%12sUnable to load Public Key\n","");
ERR_print_errors(bp);
}
else
#ifndef NO_RSA #ifndef NO_RSA
if (pkey->type == EVP_PKEY_RSA) if (pkey->type == EVP_PKEY_RSA)
{ {
BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","", BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","",
BN_num_bits(pkey->pkey.rsa->n)); BN_num_bits(pkey->pkey.rsa->n));
RSA_print(bp,pkey->pkey.rsa,16); RSA_print(bp,pkey->pkey.rsa,16);
} }
else else
#endif #endif
#ifndef NO_DSA #ifndef NO_DSA
if (pkey->type == EVP_PKEY_DSA) if (pkey->type == EVP_PKEY_DSA)
{ {
BIO_printf(bp,"%12sDSA Public Key:\n",""); BIO_printf(bp,"%12sDSA Public Key:\n","");
DSA_print(bp,pkey->pkey.dsa,16); DSA_print(bp,pkey->pkey.dsa,16);
} }
else else
#endif #endif
BIO_printf(bp,"%12sUnknown Public Key:\n",""); BIO_printf(bp,"%12sUnknown Public Key:\n","");
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
}
n=X509_get_ext_count(x); if (cflag & X509_FLAG_NO_EXTENSIONS)
n = 0;
else
n=X509_get_ext_count(x);
if (n > 0) if (n > 0)
{ {
BIO_printf(bp,"%8sX509v3 extensions:\n",""); BIO_printf(bp,"%8sX509v3 extensions:\n","");
@@ -196,7 +245,7 @@ int X509_print(BIO *bp, X509 *x)
j=X509_EXTENSION_get_critical(ex); j=X509_EXTENSION_get_critical(ex);
if (BIO_printf(bp,": %s\n",j?"critical":"","") <= 0) if (BIO_printf(bp,": %s\n",j?"critical":"","") <= 0)
goto err; goto err;
if(!X509V3_EXT_print(bp, ex, 0, 16)) if(!X509V3_EXT_print(bp, ex, cflag, 16))
{ {
BIO_printf(bp, "%16s", ""); BIO_printf(bp, "%16s", "");
M_ASN1_OCTET_STRING_print(bp,ex->value); M_ASN1_OCTET_STRING_print(bp,ex->value);
@@ -205,21 +254,27 @@ int X509_print(BIO *bp, X509 *x)
} }
} }
i=OBJ_obj2nid(x->sig_alg->algorithm); if(!(cflag & X509_FLAG_NO_SIGDUMP))
if (BIO_printf(bp,"%4sSignature Algorithm: %s","",
(i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)) <= 0) goto err;
n=x->signature->length;
s=(char *)x->signature->data;
for (i=0; i<n; i++)
{ {
if ((i%18) == 0) i=OBJ_obj2nid(x->sig_alg->algorithm);
if (BIO_write(bp,"\n ",9) <= 0) goto err; if (BIO_printf(bp,"%4sSignature Algorithm: %s","",
if (BIO_printf(bp,"%02x%s",(unsigned char)s[i], (i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)) <= 0) goto err;
((i+1) == n)?"":":") <= 0) goto err;
n=x->signature->length;
s=(char *)x->signature->data;
for (i=0; i<n; i++)
{
if ((i%18) == 0)
if (BIO_write(bp,"\n ",9) <= 0) goto err;
if (BIO_printf(bp,"%02x%s",(unsigned char)s[i],
((i+1) == n)?"":":") <= 0) goto err;
}
if (BIO_write(bp,"\n",1) != 1) goto err;
}
if(!(cflag & X509_FLAG_NO_AUX))
{
if (!X509_CERT_AUX_print(bp, x->aux, 0)) goto err;
} }
if (BIO_write(bp,"\n",1) != 1) goto err;
if (!X509_CERT_AUX_print(bp, x->aux, 0)) goto err;
ret=1; ret=1;
err: err:
if (str != NULL) ASN1_STRING_free(str); if (str != NULL) ASN1_STRING_free(str);

View File

@@ -44,7 +44,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -49,7 +49,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -113,8 +113,8 @@ int BIO_get_host_ip(const char *str, unsigned char *ip)
/* At this point, we have something that is most probably correct /* At this point, we have something that is most probably correct
in some way, so let's init the socket. */ in some way, so let's init the socket. */
if (!BIO_sock_init()) if (BIO_sock_init() != 1)
return(0); /* don't generate another error code here */ return 0; /* don't generate another error code here */
/* If the string actually contained an IP address, we need not do /* If the string actually contained an IP address, we need not do
anything more */ anything more */
@@ -527,7 +527,7 @@ int BIO_get_accept_socket(char *host, int bind_mode)
unsigned long l; unsigned long l;
int err_num; int err_num;
if (!BIO_sock_init()) return(INVALID_SOCKET); if (BIO_sock_init() != 1) return(INVALID_SOCKET);
if ((str=BUF_strdup(host)) == NULL) return(INVALID_SOCKET); if ((str=BUF_strdup(host)) == NULL) return(INVALID_SOCKET);

View File

@@ -68,7 +68,8 @@ bnbug: bnbug.c ../../libcrypto.a top
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -1611,7 +1611,7 @@ bn_mul_comba4
.IMPORT $global$,DATA .IMPORT $global$,DATA
.SPACE $TEXT$ .SPACE $TEXT$
.SUBSPA $CODE$ .SUBSPA $CODE$
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16 .SUBSPA $LIT$,ACCESS=0x2c
C$7 C$7
.ALIGN 8 .ALIGN 8
.STRINGZ "Division would overflow (%d)\n" .STRINGZ "Division would overflow (%d)\n"

View File

@@ -1598,7 +1598,7 @@ bn_mul_comba4
.IMPORT $global$,DATA .IMPORT $global$,DATA
.SPACE $TEXT$ .SPACE $TEXT$
.SUBSPA $CODE$ .SUBSPA $CODE$
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16 .SUBSPA $LIT$,ACCESS=0x2c
C$4 C$4
.ALIGN 8 .ALIGN 8
.STRINGZ "Division would overflow (%d)\n" .STRINGZ "Division would overflow (%d)\n"

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -47,7 +47,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -42,7 +42,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -40,7 +40,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -57,7 +57,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
des: des.o cbc3_enc.o lib des: des.o cbc3_enc.o lib

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -41,7 +41,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -41,7 +41,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -206,40 +206,35 @@ void ERR_load_DSO_strings(void);
/* Function codes. */ /* Function codes. */
#define DSO_F_DLFCN_BIND_FUNC 100 #define DSO_F_DLFCN_BIND_FUNC 100
#define DSO_F_DLFCN_BIND_VAR 101 #define DSO_F_DLFCN_BIND_VAR 101
#define DSO_F_DLFCN_CTRL 102 #define DSO_F_DLFCN_LOAD 102
#define DSO_F_DLFCN_LOAD 103 #define DSO_F_DLFCN_UNLOAD 103
#define DSO_F_DLFCN_UNLOAD 104 #define DSO_F_DL_BIND_FUNC 104
#define DSO_F_DL_BIND_FUNC 105 #define DSO_F_DL_BIND_VAR 105
#define DSO_F_DL_BIND_VAR 106 #define DSO_F_DL_LOAD 106
#define DSO_F_DL_CTRL 107 #define DSO_F_DL_UNLOAD 107
#define DSO_F_DL_LOAD 108 #define DSO_F_DSO_BIND_FUNC 108
#define DSO_F_DL_UNLOAD 109 #define DSO_F_DSO_BIND_VAR 109
#define DSO_F_DSO_BIND_FUNC 110 #define DSO_F_DSO_CTRL 110
#define DSO_F_DSO_BIND_VAR 111 #define DSO_F_DSO_FREE 111
#define DSO_F_DSO_CTRL 112 #define DSO_F_DSO_LOAD 112
#define DSO_F_DSO_FREE 113 #define DSO_F_DSO_NEW_METHOD 113
#define DSO_F_DSO_LOAD 114 #define DSO_F_DSO_UP 114
#define DSO_F_DSO_NEW_METHOD 115 #define DSO_F_VMS_BIND_VAR 115
#define DSO_F_DSO_UP 116 #define DSO_F_VMS_LOAD 116
#define DSO_F_VMS_BIND_VAR 122 #define DSO_F_VMS_UNLOAD 117
#define DSO_F_VMS_CTRL 123 #define DSO_F_WIN32_BIND_FUNC 118
#define DSO_F_VMS_LOAD 124 #define DSO_F_WIN32_BIND_VAR 119
#define DSO_F_VMS_UNLOAD 125
#define DSO_F_WIN32_BIND_FUNC 117
#define DSO_F_WIN32_BIND_VAR 118
#define DSO_F_WIN32_CTRL 119
#define DSO_F_WIN32_LOAD 120 #define DSO_F_WIN32_LOAD 120
#define DSO_F_WIN32_UNLOAD 121 #define DSO_F_WIN32_UNLOAD 121
/* Reason codes. */ /* Reason codes. */
#define DSO_R_CTRL_FAILED 100 #define DSO_R_CTRL_FAILED 100
#define DSO_R_FILENAME_TOO_BIG 109 #define DSO_R_FILENAME_TOO_BIG 101
#define DSO_R_FINISH_FAILED 101 #define DSO_R_FINISH_FAILED 102
#define DSO_R_LOAD_FAILED 102 #define DSO_R_LOAD_FAILED 103
#define DSO_R_NULL_HANDLE 103 #define DSO_R_NULL_HANDLE 104
#define DSO_R_STACK_ERROR 104 #define DSO_R_STACK_ERROR 105
#define DSO_R_SYM_FAILURE 105 #define DSO_R_SYM_FAILURE 106
#define DSO_R_UNKNOWN_COMMAND 106
#define DSO_R_UNLOAD_FAILED 107 #define DSO_R_UNLOAD_FAILED 107
#define DSO_R_UNSUPPORTED 108 #define DSO_R_UNSUPPORTED 108

View File

@@ -81,8 +81,8 @@ static int dl_unbind_var(DSO *dso, char *symname, void *symptr);
static int dl_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr); static int dl_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr);
static int dl_init(DSO *dso); static int dl_init(DSO *dso);
static int dl_finish(DSO *dso); static int dl_finish(DSO *dso);
#endif
static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg); static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg);
#endif
static DSO_METHOD dso_meth_dl = { static DSO_METHOD dso_meth_dl = {
"OpenSSL 'dl' shared library method", "OpenSSL 'dl' shared library method",
@@ -95,7 +95,7 @@ static DSO_METHOD dso_meth_dl = {
NULL, /* unbind_var */ NULL, /* unbind_var */
NULL, /* unbind_func */ NULL, /* unbind_func */
#endif #endif
dl_ctrl, NULL, /* ctrl */
NULL, /* init */ NULL, /* init */
NULL /* finish */ NULL /* finish */
}; };
@@ -224,28 +224,4 @@ static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
return((DSO_FUNC_TYPE)sym); return((DSO_FUNC_TYPE)sym);
} }
static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg)
{
if(dso == NULL)
{
DSOerr(DSO_F_DL_CTRL,ERR_R_PASSED_NULL_PARAMETER);
return(-1);
}
switch(cmd)
{
case DSO_CTRL_GET_FLAGS:
return dso->flags;
case DSO_CTRL_SET_FLAGS:
dso->flags = (int)larg;
return(0);
case DSO_CTRL_OR_FLAGS:
dso->flags |= (int)larg;
return(0);
default:
break;
}
DSOerr(DSO_F_DL_CTRL,DSO_R_UNKNOWN_COMMAND);
return(-1);
}
#endif /* DSO_DL */ #endif /* DSO_DL */

View File

@@ -82,8 +82,8 @@ static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname);
static int dlfcn_unbind(DSO *dso, char *symname, void *symptr); static int dlfcn_unbind(DSO *dso, char *symname, void *symptr);
static int dlfcn_init(DSO *dso); static int dlfcn_init(DSO *dso);
static int dlfcn_finish(DSO *dso); static int dlfcn_finish(DSO *dso);
#endif
static long dlfcn_ctrl(DSO *dso, int cmd, long larg, void *parg); static long dlfcn_ctrl(DSO *dso, int cmd, long larg, void *parg);
#endif
static DSO_METHOD dso_meth_dlfcn = { static DSO_METHOD dso_meth_dlfcn = {
"OpenSSL 'dlfcn' shared library method", "OpenSSL 'dlfcn' shared library method",
@@ -96,7 +96,7 @@ static DSO_METHOD dso_meth_dlfcn = {
NULL, /* unbind_var */ NULL, /* unbind_var */
NULL, /* unbind_func */ NULL, /* unbind_func */
#endif #endif
dlfcn_ctrl, NULL, /* ctrl */
NULL, /* init */ NULL, /* init */
NULL /* finish */ NULL /* finish */
}; };
@@ -249,28 +249,4 @@ static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
return(sym); return(sym);
} }
static long dlfcn_ctrl(DSO *dso, int cmd, long larg, void *parg)
{
if(dso == NULL)
{
DSOerr(DSO_F_DLFCN_CTRL,ERR_R_PASSED_NULL_PARAMETER);
return(-1);
}
switch(cmd)
{
case DSO_CTRL_GET_FLAGS:
return dso->flags;
case DSO_CTRL_SET_FLAGS:
dso->flags = (int)larg;
return(0);
case DSO_CTRL_OR_FLAGS:
dso->flags |= (int)larg;
return(0);
default:
break;
}
DSOerr(DSO_F_DLFCN_CTRL,DSO_R_UNKNOWN_COMMAND);
return(-1);
}
#endif /* DSO_DLFCN */ #endif /* DSO_DLFCN */

View File

@@ -68,12 +68,10 @@ static ERR_STRING_DATA DSO_str_functs[]=
{ {
{ERR_PACK(0,DSO_F_DLFCN_BIND_FUNC,0), "DLFCN_BIND_FUNC"}, {ERR_PACK(0,DSO_F_DLFCN_BIND_FUNC,0), "DLFCN_BIND_FUNC"},
{ERR_PACK(0,DSO_F_DLFCN_BIND_VAR,0), "DLFCN_BIND_VAR"}, {ERR_PACK(0,DSO_F_DLFCN_BIND_VAR,0), "DLFCN_BIND_VAR"},
{ERR_PACK(0,DSO_F_DLFCN_CTRL,0), "DLFCN_CTRL"},
{ERR_PACK(0,DSO_F_DLFCN_LOAD,0), "DLFCN_LOAD"}, {ERR_PACK(0,DSO_F_DLFCN_LOAD,0), "DLFCN_LOAD"},
{ERR_PACK(0,DSO_F_DLFCN_UNLOAD,0), "DLFCN_UNLOAD"}, {ERR_PACK(0,DSO_F_DLFCN_UNLOAD,0), "DLFCN_UNLOAD"},
{ERR_PACK(0,DSO_F_DL_BIND_FUNC,0), "DL_BIND_FUNC"}, {ERR_PACK(0,DSO_F_DL_BIND_FUNC,0), "DL_BIND_FUNC"},
{ERR_PACK(0,DSO_F_DL_BIND_VAR,0), "DL_BIND_VAR"}, {ERR_PACK(0,DSO_F_DL_BIND_VAR,0), "DL_BIND_VAR"},
{ERR_PACK(0,DSO_F_DL_CTRL,0), "DL_CTRL"},
{ERR_PACK(0,DSO_F_DL_LOAD,0), "DL_LOAD"}, {ERR_PACK(0,DSO_F_DL_LOAD,0), "DL_LOAD"},
{ERR_PACK(0,DSO_F_DL_UNLOAD,0), "DL_UNLOAD"}, {ERR_PACK(0,DSO_F_DL_UNLOAD,0), "DL_UNLOAD"},
{ERR_PACK(0,DSO_F_DSO_BIND_FUNC,0), "DSO_bind_func"}, {ERR_PACK(0,DSO_F_DSO_BIND_FUNC,0), "DSO_bind_func"},
@@ -84,12 +82,10 @@ static ERR_STRING_DATA DSO_str_functs[]=
{ERR_PACK(0,DSO_F_DSO_NEW_METHOD,0), "DSO_new_method"}, {ERR_PACK(0,DSO_F_DSO_NEW_METHOD,0), "DSO_new_method"},
{ERR_PACK(0,DSO_F_DSO_UP,0), "DSO_up"}, {ERR_PACK(0,DSO_F_DSO_UP,0), "DSO_up"},
{ERR_PACK(0,DSO_F_VMS_BIND_VAR,0), "VMS_BIND_VAR"}, {ERR_PACK(0,DSO_F_VMS_BIND_VAR,0), "VMS_BIND_VAR"},
{ERR_PACK(0,DSO_F_VMS_CTRL,0), "VMS_CTRL"},
{ERR_PACK(0,DSO_F_VMS_LOAD,0), "VMS_LOAD"}, {ERR_PACK(0,DSO_F_VMS_LOAD,0), "VMS_LOAD"},
{ERR_PACK(0,DSO_F_VMS_UNLOAD,0), "VMS_UNLOAD"}, {ERR_PACK(0,DSO_F_VMS_UNLOAD,0), "VMS_UNLOAD"},
{ERR_PACK(0,DSO_F_WIN32_BIND_FUNC,0), "WIN32_BIND_FUNC"}, {ERR_PACK(0,DSO_F_WIN32_BIND_FUNC,0), "WIN32_BIND_FUNC"},
{ERR_PACK(0,DSO_F_WIN32_BIND_VAR,0), "WIN32_BIND_VAR"}, {ERR_PACK(0,DSO_F_WIN32_BIND_VAR,0), "WIN32_BIND_VAR"},
{ERR_PACK(0,DSO_F_WIN32_CTRL,0), "WIN32_CTRL"},
{ERR_PACK(0,DSO_F_WIN32_LOAD,0), "WIN32_LOAD"}, {ERR_PACK(0,DSO_F_WIN32_LOAD,0), "WIN32_LOAD"},
{ERR_PACK(0,DSO_F_WIN32_UNLOAD,0), "WIN32_UNLOAD"}, {ERR_PACK(0,DSO_F_WIN32_UNLOAD,0), "WIN32_UNLOAD"},
{0,NULL} {0,NULL}
@@ -104,7 +100,6 @@ static ERR_STRING_DATA DSO_str_reasons[]=
{DSO_R_NULL_HANDLE ,"a null shared library handle was used"}, {DSO_R_NULL_HANDLE ,"a null shared library handle was used"},
{DSO_R_STACK_ERROR ,"the meth_data stack is corrupt"}, {DSO_R_STACK_ERROR ,"the meth_data stack is corrupt"},
{DSO_R_SYM_FAILURE ,"could not bind to the requested symbol name"}, {DSO_R_SYM_FAILURE ,"could not bind to the requested symbol name"},
{DSO_R_UNKNOWN_COMMAND ,"unknown control command"},
{DSO_R_UNLOAD_FAILED ,"could not unload the shared library"}, {DSO_R_UNLOAD_FAILED ,"could not unload the shared library"},
{DSO_R_UNSUPPORTED ,"functionality not supported"}, {DSO_R_UNSUPPORTED ,"functionality not supported"},
{0,NULL} {0,NULL}

View File

@@ -297,6 +297,22 @@ long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
DSOerr(DSO_F_DSO_CTRL,ERR_R_PASSED_NULL_PARAMETER); DSOerr(DSO_F_DSO_CTRL,ERR_R_PASSED_NULL_PARAMETER);
return(-1); return(-1);
} }
/* We should intercept certain generic commands and only pass control
* to the method-specific ctrl() function if it's something we don't
* handle. */
switch(cmd)
{
case DSO_CTRL_GET_FLAGS:
return dso->flags;
case DSO_CTRL_SET_FLAGS:
dso->flags = (int)larg;
return(0);
case DSO_CTRL_OR_FLAGS:
dso->flags |= (int)larg;
return(0);
default:
break;
}
if((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL)) if((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL))
{ {
DSOerr(DSO_F_DSO_CTRL,DSO_R_UNSUPPORTED); DSOerr(DSO_F_DSO_CTRL,DSO_R_UNSUPPORTED);

View File

@@ -87,8 +87,8 @@ static int vms_unbind_var(DSO *dso, char *symname, void *symptr);
static int vms_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr); static int vms_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr);
static int vms_init(DSO *dso); static int vms_init(DSO *dso);
static int vms_finish(DSO *dso); static int vms_finish(DSO *dso);
#endif
static long vms_ctrl(DSO *dso, int cmd, long larg, void *parg); static long vms_ctrl(DSO *dso, int cmd, long larg, void *parg);
#endif
static DSO_METHOD dso_meth_vms = { static DSO_METHOD dso_meth_vms = {
"OpenSSL 'VMS' shared library method", "OpenSSL 'VMS' shared library method",
@@ -101,7 +101,7 @@ static DSO_METHOD dso_meth_vms = {
NULL, /* unbind_var */ NULL, /* unbind_var */
NULL, /* unbind_func */ NULL, /* unbind_func */
#endif #endif
vms_ctrl, NULL, /* ctrl */
NULL, /* init */ NULL, /* init */
NULL /* finish */ NULL /* finish */
}; };
@@ -344,28 +344,4 @@ static DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname)
return sym; return sym;
} }
static long vms_ctrl(DSO *dso, int cmd, long larg, void *parg)
{
if(dso == NULL)
{
DSOerr(DSO_F_VMS_CTRL,ERR_R_PASSED_NULL_PARAMETER);
return(-1);
}
switch(cmd)
{
case DSO_CTRL_GET_FLAGS:
return dso->flags;
case DSO_CTRL_SET_FLAGS:
dso->flags = (int)larg;
return(0);
case DSO_CTRL_OR_FLAGS:
dso->flags |= (int)larg;
return(0);
default:
break;
}
DSOerr(DSO_F_VMS_CTRL,DSO_R_UNKNOWN_COMMAND);
return(-1);
}
#endif /* VMS */ #endif /* VMS */

View File

@@ -80,8 +80,8 @@ static int win32_unbind_var(DSO *dso, char *symname, void *symptr);
static int win32_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr); static int win32_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr);
static int win32_init(DSO *dso); static int win32_init(DSO *dso);
static int win32_finish(DSO *dso); static int win32_finish(DSO *dso);
#endif
static long win32_ctrl(DSO *dso, int cmd, long larg, void *parg); static long win32_ctrl(DSO *dso, int cmd, long larg, void *parg);
#endif
static DSO_METHOD dso_meth_win32 = { static DSO_METHOD dso_meth_win32 = {
"OpenSSL 'win32' shared library method", "OpenSSL 'win32' shared library method",
@@ -94,7 +94,7 @@ static DSO_METHOD dso_meth_win32 = {
NULL, /* unbind_var */ NULL, /* unbind_var */
NULL, /* unbind_func */ NULL, /* unbind_func */
#endif #endif
win32_ctrl, NULL, /* ctrl */
NULL, /* init */ NULL, /* init */
NULL /* finish */ NULL /* finish */
}; };
@@ -246,28 +246,4 @@ static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
return((DSO_FUNC_TYPE)sym); return((DSO_FUNC_TYPE)sym);
} }
static long win32_ctrl(DSO *dso, int cmd, long larg, void *parg)
{
if(dso == NULL)
{
DSOerr(DSO_F_WIN32_CTRL,ERR_R_PASSED_NULL_PARAMETER);
return(-1);
}
switch(cmd)
{
case DSO_CTRL_GET_FLAGS:
return dso->flags;
case DSO_CTRL_SET_FLAGS:
dso->flags = (int)larg;
return(0);
case DSO_CTRL_OR_FLAGS:
dso->flags |= (int)larg;
return(0);
default:
break;
}
DSOerr(DSO_F_WIN32_CTRL,DSO_R_UNKNOWN_COMMAND);
return(-1);
}
#endif /* WIN32 */ #endif /* WIN32 */

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -58,7 +58,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -463,12 +463,20 @@ typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
ASN1_TYPE *param, EVP_CIPHER *cipher, ASN1_TYPE *param, EVP_CIPHER *cipher,
EVP_MD *md, int en_de); EVP_MD *md, int en_de);
#ifndef NO_RSA
#define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ #define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
(char *)(rsa)) (char *)(rsa))
#endif
#ifndef NO_DSA
#define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ #define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
(char *)(dsa)) (char *)(dsa))
#endif
#ifndef NO_DH
#define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ #define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\
(char *)(dh)) (char *)(dh))
#endif
/* Add some extra combinations */ /* Add some extra combinations */
#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) #define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
@@ -612,17 +620,29 @@ void BIO_set_cipher(BIO *b,const EVP_CIPHER *c,unsigned char *k,
#endif #endif
EVP_MD *EVP_md_null(void); EVP_MD *EVP_md_null(void);
#ifndef NO_MD2
EVP_MD *EVP_md2(void); EVP_MD *EVP_md2(void);
#endif
#ifndef NO_MD4
EVP_MD *EVP_md4(void); EVP_MD *EVP_md4(void);
#endif
#ifndef NO_MD5
EVP_MD *EVP_md5(void); EVP_MD *EVP_md5(void);
#endif
#ifndef NO_SHA
EVP_MD *EVP_sha(void); EVP_MD *EVP_sha(void);
EVP_MD *EVP_sha1(void); EVP_MD *EVP_sha1(void);
EVP_MD *EVP_dss(void); EVP_MD *EVP_dss(void);
EVP_MD *EVP_dss1(void); EVP_MD *EVP_dss1(void);
#endif
#ifndef NO_MDC2
EVP_MD *EVP_mdc2(void); EVP_MD *EVP_mdc2(void);
#endif
#ifndef NO_RIPEMD
EVP_MD *EVP_ripemd160(void); EVP_MD *EVP_ripemd160(void);
#endif
EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
#ifndef NO_DES
EVP_CIPHER *EVP_des_ecb(void); EVP_CIPHER *EVP_des_ecb(void);
EVP_CIPHER *EVP_des_ede(void); EVP_CIPHER *EVP_des_ede(void);
EVP_CIPHER *EVP_des_ede3(void); EVP_CIPHER *EVP_des_ede3(void);
@@ -636,31 +656,43 @@ EVP_CIPHER *EVP_des_cbc(void);
EVP_CIPHER *EVP_des_ede_cbc(void); EVP_CIPHER *EVP_des_ede_cbc(void);
EVP_CIPHER *EVP_des_ede3_cbc(void); EVP_CIPHER *EVP_des_ede3_cbc(void);
EVP_CIPHER *EVP_desx_cbc(void); EVP_CIPHER *EVP_desx_cbc(void);
#endif
#ifndef NO_RC4
EVP_CIPHER *EVP_rc4(void); EVP_CIPHER *EVP_rc4(void);
EVP_CIPHER *EVP_rc4_40(void); EVP_CIPHER *EVP_rc4_40(void);
#endif
#ifndef NO_IDEA
EVP_CIPHER *EVP_idea_ecb(void); EVP_CIPHER *EVP_idea_ecb(void);
EVP_CIPHER *EVP_idea_cfb(void); EVP_CIPHER *EVP_idea_cfb(void);
EVP_CIPHER *EVP_idea_ofb(void); EVP_CIPHER *EVP_idea_ofb(void);
EVP_CIPHER *EVP_idea_cbc(void); EVP_CIPHER *EVP_idea_cbc(void);
#endif
#ifndef NO_RC2
EVP_CIPHER *EVP_rc2_ecb(void); EVP_CIPHER *EVP_rc2_ecb(void);
EVP_CIPHER *EVP_rc2_cbc(void); EVP_CIPHER *EVP_rc2_cbc(void);
EVP_CIPHER *EVP_rc2_40_cbc(void); EVP_CIPHER *EVP_rc2_40_cbc(void);
EVP_CIPHER *EVP_rc2_64_cbc(void); EVP_CIPHER *EVP_rc2_64_cbc(void);
EVP_CIPHER *EVP_rc2_cfb(void); EVP_CIPHER *EVP_rc2_cfb(void);
EVP_CIPHER *EVP_rc2_ofb(void); EVP_CIPHER *EVP_rc2_ofb(void);
#endif
#ifndef NO_BF
EVP_CIPHER *EVP_bf_ecb(void); EVP_CIPHER *EVP_bf_ecb(void);
EVP_CIPHER *EVP_bf_cbc(void); EVP_CIPHER *EVP_bf_cbc(void);
EVP_CIPHER *EVP_bf_cfb(void); EVP_CIPHER *EVP_bf_cfb(void);
EVP_CIPHER *EVP_bf_ofb(void); EVP_CIPHER *EVP_bf_ofb(void);
#endif
#ifndef NO_CAST
EVP_CIPHER *EVP_cast5_ecb(void); EVP_CIPHER *EVP_cast5_ecb(void);
EVP_CIPHER *EVP_cast5_cbc(void); EVP_CIPHER *EVP_cast5_cbc(void);
EVP_CIPHER *EVP_cast5_cfb(void); EVP_CIPHER *EVP_cast5_cfb(void);
EVP_CIPHER *EVP_cast5_ofb(void); EVP_CIPHER *EVP_cast5_ofb(void);
#endif
#ifndef NO_RC5
EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); EVP_CIPHER *EVP_rc5_32_12_16_cbc(void);
EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); EVP_CIPHER *EVP_rc5_32_12_16_ecb(void);
EVP_CIPHER *EVP_rc5_32_12_16_cfb(void); EVP_CIPHER *EVP_rc5_32_12_16_cfb(void);
EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); EVP_CIPHER *EVP_rc5_32_12_16_ofb(void);
#endif
void OpenSSL_add_all_algorithms(void); void OpenSSL_add_all_algorithms(void);
void OpenSSL_add_all_ciphers(void); void OpenSSL_add_all_ciphers(void);
void OpenSSL_add_all_digests(void); void OpenSSL_add_all_digests(void);

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -40,7 +40,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -50,7 +50,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: obj_dat.h lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -25,8 +25,8 @@
* (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
* major minor fix final patch/beta) * major minor fix final patch/beta)
*/ */
#define OPENSSL_VERSION_NUMBER 0x0090600fL #define OPENSSL_VERSION_NUMBER 0x00907000L
#define OPENSSL_VERSION_TEXT "OpenSSL 0.9.6 [engine] 24 Sep 2000" #define OPENSSL_VERSION_TEXT "OpenSSL 0.9.7-dev [engine] 24 Sep 2000"
#define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT #define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT

View File

@@ -40,7 +40,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -45,7 +45,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -58,7 +58,8 @@ verify: verify.o example.o lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -47,7 +47,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -44,7 +44,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -42,7 +42,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -41,7 +41,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -42,7 +42,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
# elf # elf

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -49,7 +49,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -320,6 +320,21 @@ DECLARE_STACK_OF(X509_TRUST)
#define X509_TRUST_REJECTED 2 #define X509_TRUST_REJECTED 2
#define X509_TRUST_UNTRUSTED 3 #define X509_TRUST_UNTRUSTED 3
/* Flags for X509_print_ex() */
#define X509_FLAG_COMPAT 0
#define X509_FLAG_NO_HEADER 1L
#define X509_FLAG_NO_VERSION (1L << 1)
#define X509_FLAG_NO_SERIAL (1L << 2)
#define X509_FLAG_NO_SIGNAME (1L << 3)
#define X509_FLAG_NO_ISSUER (1L << 4)
#define X509_FLAG_NO_VALIDITY (1L << 5)
#define X509_FLAG_NO_SUBJECT (1L << 6)
#define X509_FLAG_NO_PUBKEY (1L << 7)
#define X509_FLAG_NO_EXTENSIONS (1L << 8)
#define X509_FLAG_NO_SIGDUMP (1L << 9)
#define X509_FLAG_NO_AUX (1L << 10)
/* Flags specific to X509_NAME_print_ex() */ /* Flags specific to X509_NAME_print_ex() */
/* The field separator information */ /* The field separator information */
@@ -1034,6 +1049,7 @@ unsigned long X509_NAME_hash(X509_NAME *x);
int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
#ifndef NO_FP_API #ifndef NO_FP_API
int X509_print_ex_fp(FILE *bp,X509 *x, unsigned long nmflag, unsigned long cflag);
int X509_print_fp(FILE *bp,X509 *x); int X509_print_fp(FILE *bp,X509 *x);
int X509_CRL_print_fp(FILE *bp,X509_CRL *x); int X509_CRL_print_fp(FILE *bp,X509_CRL *x);
int X509_REQ_print_fp(FILE *bp,X509_REQ *req); int X509_REQ_print_fp(FILE *bp,X509_REQ *req);
@@ -1043,6 +1059,7 @@ int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long fla
#ifndef NO_BIO #ifndef NO_BIO
int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); int X509_NAME_print(BIO *bp, X509_NAME *name, int obase);
int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags); int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags);
int X509_print_ex(BIO *bp,X509 *x, unsigned long nmflag, unsigned long cflag);
int X509_print(BIO *bp,X509 *x); int X509_print(BIO *bp,X509 *x);
int X509_CERT_AUX_print(BIO *bp,X509_CERT_AUX *x, int indent); int X509_CERT_AUX_print(BIO *bp,X509_CERT_AUX *x, int indent);
int X509_CRL_print(BIO *bp,X509_CRL *x); int X509_CRL_print(BIO *bp,X509_CRL *x);

View File

@@ -43,7 +43,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -64,6 +64,8 @@
/* Extension printing routines */ /* Extension printing routines */
static int unknown_ext_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent, int supported);
/* Print out a name+value stack */ /* Print out a name+value stack */
void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml) void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml)
@@ -96,16 +98,18 @@ void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml)
/* Main routine: print out a general extension */ /* Main routine: print out a general extension */
int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, int flag, int indent) int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent)
{ {
char *ext_str = NULL, *value = NULL; char *ext_str = NULL, *value = NULL;
unsigned char *p; unsigned char *p;
X509V3_EXT_METHOD *method; X509V3_EXT_METHOD *method;
STACK_OF(CONF_VALUE) *nval = NULL; STACK_OF(CONF_VALUE) *nval = NULL;
int ok = 1; int ok = 1;
if(!(method = X509V3_EXT_get(ext))) return 0; if(!(method = X509V3_EXT_get(ext)))
return unknown_ext_print(out, ext, flag, indent, 0);
p = ext->value->data; p = ext->value->data;
if(!(ext_str = method->d2i(NULL, &p, ext->value->length))) return 0; if(!(ext_str = method->d2i(NULL, &p, ext->value->length)))
return unknown_ext_print(out, ext, flag, indent, 1);
if(method->i2s) { if(method->i2s) {
if(!(value = method->i2s(method, ext_str))) { if(!(value = method->i2s(method, ext_str))) {
ok = 0; ok = 0;
@@ -138,6 +142,32 @@ int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, int flag, int indent)
return ok; return ok;
} }
static int unknown_ext_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent, int supported)
{
switch(flag & X509V3_EXT_UNKNOWN_MASK) {
case X509V3_EXT_DEFAULT:
return 0;
case X509V3_EXT_ERROR_UNKNOWN:
if(supported)
BIO_printf(out, "%*s<Parse Error>", indent, "");
else
BIO_printf(out, "%*s<Not Supported>", indent, "");
return 1;
case X509V3_EXT_PARSE_UNKNOWN:
return ASN1_parse_dump(out,
ext->value->data, ext->value->length, indent, -1);
case X509V3_EXT_DUMP_UNKNOWN:
return BIO_dump_indent(out, (char *)ext->value->data, ext->value->length, indent);
default:
return 1;
}
}
#ifndef NO_FP_API #ifndef NO_FP_API
int X509V3_EXT_print_fp(FILE *fp, X509_EXTENSION *ext, int flag, int indent) int X509V3_EXT_print_fp(FILE *fp, X509_EXTENSION *ext, int flag, int indent)
{ {

View File

@@ -352,6 +352,18 @@ typedef struct x509_purpose_st {
#define X509_PURPOSE_MIN 1 #define X509_PURPOSE_MIN 1
#define X509_PURPOSE_MAX 7 #define X509_PURPOSE_MAX 7
/* Flags for X509V3_EXT_print() */
#define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
/* Return error for unknown extensions */
#define X509V3_EXT_DEFAULT 0
/* Print error for unknown extensions */
#define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
/* ASN1 parse unknown extensions */
#define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
/* BIO_dump unknown extensions */
#define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
DECLARE_STACK_OF(X509_PURPOSE) DECLARE_STACK_OF(X509_PURPOSE)
void ERR_load_X509V3_strings(void); void ERR_load_X509V3_strings(void);
@@ -528,7 +540,7 @@ int name_cmp(const char *name, const char *cmp);
void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent,
int ml); int ml);
int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, int flag, int indent); int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent);
int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
int X509_check_purpose(X509 *x, int id, int ca); int X509_check_purpose(X509 *x, int id, int ca);

View File

@@ -345,7 +345,7 @@ the MIT Kerberos library.
=head1 SEE ALSO =head1 SEE ALSO
crypt(3), L<des_modes(3)|des_modes(3)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)> crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)>
=head1 HISTORY =head1 HISTORY

View File

@@ -10,7 +10,7 @@ evp - high-level cryptographic functions
=head1 DESCRIPTION =head1 DESCRIPTION
The EVP library provided a high-level interface to cryptographic The EVP library provides a high-level interface to cryptographic
functions. functions.
B<EVP_Seal>I<...> and B<EVP_Open>I<...> provide public key encryption B<EVP_Seal>I<...> and B<EVP_Open>I<...> provide public key encryption

View File

@@ -25,6 +25,19 @@ L<SSL_read(3)|SSL_read(3)>.
The number of bytes pending is returned. The number of bytes pending is returned.
=head1 BUGS
SSL_pending() takes into account only bytes from the TLS/SSL record
that is currently being processed (if any). If the B<SSL> object's
I<read_ahead> flag is set, additional protocol bytes may have been
read containing more TLS/SSL records; these are ignored by
SSL_pending().
SSL_pending() does not check if the record type of pending data is
application data.
=head1 SEE ALSO
L<SSL_read(3)|SSL_read(3)>, L<ssl(3)|ssl(3)> L<SSL_read(3)|SSL_read(3)>, L<ssl(3)|ssl(3)>
=cut =cut

View File

@@ -625,15 +625,21 @@ connection defined in the B<SSL> structure.
L<openssl(1)|openssl(1)>, L<crypto(3)|crypto(3)>, L<openssl(1)|openssl(1)>, L<crypto(3)|crypto(3)>,
L<SSL_accept(3)|SSL_accept(3)>, L<SSL_clear(3)|SSL_clear(3)>, L<SSL_accept(3)|SSL_accept(3)>, L<SSL_clear(3)|SSL_clear(3)>,
L<SSL_connect(3)|SSL_connect(3)>, L<SSL_CTX_new(3)|SSL_CTX_new(3)>, L<SSL_connect(3)|SSL_connect(3)>,
L<SSL_CTX_load_verify_locations(3)|SSL_CTX_load_verify_locations(3)>
L<SSL_CTX_new(3)|SSL_CTX_new(3)>,
L<SSL_CTX_set_client_CA_list(3)|SSL_CTX_set_client_CA_list(3)>
L<SSL_CTX_set_ssl_version(3)|SSL_CTX_set_ssl_version(3)>, L<SSL_CTX_set_ssl_version(3)|SSL_CTX_set_ssl_version(3)>,
L<SSL_get_ciphers(3)|SSL_get_ciphers(3)>, L<SSL_get_ciphers(3)|SSL_get_ciphers(3)>,
L<SSL_get_client_CA_list(3)|SSL_get_client_CA_list(3)>,
L<SSL_get_error(3)|SSL_get_error(3)>, L<SSL_get_fd(3)|SSL_get_fd(3)>, L<SSL_get_error(3)|SSL_get_error(3)>, L<SSL_get_fd(3)|SSL_get_fd(3)>,
L<SSL_get_peer_cert_chain(3)|SSL_get_peer_cert_chain(3)>, L<SSL_get_peer_cert_chain(3)|SSL_get_peer_cert_chain(3)>,
L<SSL_get_rbio(3)|SSL_get_rbio(3)>, L<SSL_get_rbio(3)|SSL_get_rbio(3)>,
L<SSL_get_session(3)|SSL_get_session(3)>, L<SSL_get_session(3)|SSL_get_session(3)>,
L<SSL_get_verify_result(3)|SSL_get_verify_result(3)>, L<SSL_get_verify_result(3)|SSL_get_verify_result(3)>,
L<SSL_library_init(3)|SSL_library_init(3)>, L<SSL_new(3)|SSL_new(3)>, L<SSL_library_init(3)|SSL_library_init(3)>,
L<SSL_load_client_CA_file(3)|SSL_load_client_CA_file(3)>,
L<SSL_new(3)|SSL_new(3)>,
L<SSL_read(3)|SSL_read(3)>, L<SSL_set_bio(3)|SSL_set_bio(3)>, L<SSL_read(3)|SSL_read(3)>, L<SSL_set_bio(3)|SSL_set_bio(3)>,
L<SSL_set_fd(3)|SSL_set_fd(3)>, L<SSL_pending(3)|SSL_pending(3)>, L<SSL_set_fd(3)|SSL_set_fd(3)>, L<SSL_pending(3)|SSL_pending(3)>,
L<SSL_set_session(3)|SSL_set_session(3)>, L<SSL_set_session(3)|SSL_set_session(3)>,

15
e_os.h
View File

@@ -355,12 +355,14 @@ extern HINSTANCE _hInstance;
# if defined(VMS) && !defined(__DECC) # if defined(VMS) && !defined(__DECC)
# include <socket.h> # include <socket.h>
# include <in.h> # include <in.h>
# include <inet.h>
# else # else
# include <sys/socket.h> # include <sys/socket.h>
# ifdef FILIO_H # ifdef FILIO_H
# include <sys/filio.h> /* Added for FIONBIO under unixware */ # include <sys/filio.h> /* Added for FIONBIO under unixware */
# endif # endif
# include <netinet/in.h> # include <netinet/in.h>
# include <arpa/inet.h>
# endif # endif
# if defined(NeXT) || defined(_NEXT_SOURCE) # if defined(NeXT) || defined(_NEXT_SOURCE)
@@ -448,19 +450,6 @@ extern char *sys_errlist[]; extern int sys_nerr;
#define IRIX_CC_BUG /* CDS++ up to V2.0Bsomething suffered from the same bug.*/ #define IRIX_CC_BUG /* CDS++ up to V2.0Bsomething suffered from the same bug.*/
#endif #endif
#ifdef NO_MD2
#define MD2_Init MD2Init
#define MD2_Update MD2Update
#define MD2_Final MD2Final
#define MD2_DIGEST_LENGTH 16
#endif
#ifdef NO_MD5
#define MD5_Init MD5Init
#define MD5_Update MD5Update
#define MD5_Final MD5Final
#define MD5_DIGEST_LENGTH 16
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
@echo=off @echo off
set test=..\ms set test=..\ms
set opath=%PATH% set opath=%PATH%

View File

@@ -96,8 +96,8 @@ perl util/perlpath.pl /usr/bin/perl
#!#./Configure %{CONFIG_FLAGS} --openssldir=%{openssldir} linux-ppc shared #!#./Configure %{CONFIG_FLAGS} --openssldir=%{openssldir} linux-ppc shared
%endif %endif
%ifarch alpha %ifarch alpha
./Configure %{CONFIG_FLAGS} --openssldir=%{openssldir} linux-alpha ./Configure %{CONFIG_FLAGS} --openssldir=%{openssldir} linux-alpha-gcc
#!#./Configure %{CONFIG_FLAGS} --openssldir=%{openssldir} linux-alpha shared #!#./Configure %{CONFIG_FLAGS} --openssldir=%{openssldir} linux-alpha-gcc shared
%endif %endif
LD_LIBRARY_PATH=`pwd` make LD_LIBRARY_PATH=`pwd` make
LD_LIBRARY_PATH=`pwd` make rehash LD_LIBRARY_PATH=`pwd` make rehash

View File

@@ -39,7 +39,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -55,7 +55,8 @@ all: lib
lib: $(LIBOBJ) lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ) $(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) @echo You may get an error following this line. Please ignore.
- $(RANLIB) $(LIB)
@touch lib @touch lib
files: files:

View File

@@ -1178,7 +1178,7 @@ int SSL_get_ex_data_X509_STORE_CTX_idx(void );
#define SSL_CTX_get_read_ahead(ctx) \ #define SSL_CTX_get_read_ahead(ctx) \
SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL)
#define SSL_CTX_set_read_ahead(ctx,m) \ #define SSL_CTX_set_read_ahead(ctx,m) \
SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,0,NULL) SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL)
/* NB: the keylength is only applicable when is_export is true */ /* NB: the keylength is only applicable when is_export is true */
#ifndef NO_RSA #ifndef NO_RSA

View File

@@ -119,7 +119,9 @@ int SSL_clear(SSL *s)
s->client_version=s->version; s->client_version=s->version;
s->rwstate=SSL_NOTHING; s->rwstate=SSL_NOTHING;
s->rstate=SSL_ST_READ_HEADER; s->rstate=SSL_ST_READ_HEADER;
#if 0
s->read_ahead=s->ctx->read_ahead; s->read_ahead=s->ctx->read_ahead;
#endif
if (s->init_buf != NULL) if (s->init_buf != NULL)
{ {
@@ -229,6 +231,7 @@ SSL *SSL_new(SSL_CTX *ctx)
s->server=(ctx->method->ssl_accept == ssl_undefined_function)?0:1; s->server=(ctx->method->ssl_accept == ssl_undefined_function)?0:1;
s->options=ctx->options; s->options=ctx->options;
s->mode=ctx->mode; s->mode=ctx->mode;
s->read_ahead=ctx->read_ahead; /* used to happen in SSL_clear */
SSL_clear(s); SSL_clear(s);
CRYPTO_new_ex_data(ssl_meth,s,&s->ex_data); CRYPTO_new_ex_data(ssl_meth,s,&s->ex_data);

View File

@@ -301,8 +301,8 @@ EVP_des_ede_cfb 308 EXIST::FUNCTION:DES
EVP_des_ede_ofb 309 EXIST::FUNCTION:DES EVP_des_ede_ofb 309 EXIST::FUNCTION:DES
EVP_des_ofb 310 EXIST::FUNCTION:DES EVP_des_ofb 310 EXIST::FUNCTION:DES
EVP_desx_cbc 311 EXIST::FUNCTION:DES EVP_desx_cbc 311 EXIST::FUNCTION:DES
EVP_dss 312 EXIST::FUNCTION:DSA EVP_dss 312 EXIST::FUNCTION:DSA,SHA
EVP_dss1 313 EXIST::FUNCTION:DSA EVP_dss1 313 EXIST::FUNCTION:DSA,SHA
EVP_enc_null 314 EXIST::FUNCTION: EVP_enc_null 314 EXIST::FUNCTION:
EVP_get_cipherbyname 315 EXIST::FUNCTION: EVP_get_cipherbyname 315 EXIST::FUNCTION:
EVP_get_digestbyname 316 EXIST::FUNCTION: EVP_get_digestbyname 316 EXIST::FUNCTION:
@@ -926,7 +926,7 @@ PKCS7_add_signature 938 EXIST::FUNCTION:
PKCS7_cert_from_signer_info 939 EXIST::FUNCTION: PKCS7_cert_from_signer_info 939 EXIST::FUNCTION:
PKCS7_get_signer_info 940 EXIST::FUNCTION: PKCS7_get_signer_info 940 EXIST::FUNCTION:
EVP_delete_alias 941 NOEXIST::FUNCTION: EVP_delete_alias 941 NOEXIST::FUNCTION:
EVP_mdc2 942 EXIST::FUNCTION: EVP_mdc2 942 EXIST::FUNCTION:MDC2
PEM_read_bio_RSAPublicKey 943 EXIST::FUNCTION:RSA PEM_read_bio_RSAPublicKey 943 EXIST::FUNCTION:RSA
PEM_write_bio_RSAPublicKey 944 EXIST::FUNCTION:RSA PEM_write_bio_RSAPublicKey 944 EXIST::FUNCTION:RSA
d2i_RSAPublicKey_bio 945 EXIST::FUNCTION:RSA d2i_RSAPublicKey_bio 945 EXIST::FUNCTION:RSA

View File

@@ -119,7 +119,7 @@ foreach (@ARGV, split(/ /, $options))
elsif (/^no-rc4$/) { $no_rc4=1; } elsif (/^no-rc4$/) { $no_rc4=1; }
elsif (/^no-rc5$/) { $no_rc5=1; } elsif (/^no-rc5$/) { $no_rc5=1; }
elsif (/^no-idea$/) { $no_idea=1; } elsif (/^no-idea$/) { $no_idea=1; }
elsif (/^no-des$/) { $no_des=1; } elsif (/^no-des$/) { $no_des=1; $no_mdc2=1; }
elsif (/^no-bf$/) { $no_bf=1; } elsif (/^no-bf$/) { $no_bf=1; }
elsif (/^no-cast$/) { $no_cast=1; } elsif (/^no-cast$/) { $no_cast=1; }
elsif (/^no-md2$/) { $no_md2=1; } elsif (/^no-md2$/) { $no_md2=1; }
@@ -705,7 +705,8 @@ EOF
} else { } else {
(my $n, my $i) = split /\\/, $nums{$s}; (my $n, my $i) = split /\\/, $nums{$s};
my %pf = (); my %pf = ();
my @p = split(/,/, ($i =~ /^.*?:(.*?):/,$1)); my @p = split(/,/, ($i =~ /^[^:]*:([^:]*):/,$1));
my @a = split(/,/, ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1));
# @p_purged must contain hardware platforms only # @p_purged must contain hardware platforms only
my @p_purged = (); my @p_purged = ();
foreach $ptmp (@p) { foreach $ptmp (@p) {
@@ -727,7 +728,26 @@ EOF
|| (!$negatives || (!$negatives
&& ($rsaref || !grep(/^RSAREF$/,@p))) && ($rsaref || !grep(/^RSAREF$/,@p)))
|| ($negatives || ($negatives
&& (!$rsaref || !grep(/^!RSAREF$/,@p))))) { && (!$rsaref || !grep(/^!RSAREF$/,@p))))
&& (!@a || (!$no_rc2 || !grep(/^RC2$/,@a)))
&& (!@a || (!$no_rc4 || !grep(/^RC4$/,@a)))
&& (!@a || (!$no_rc5 || !grep(/^RC5$/,@a)))
&& (!@a || (!$no_idea || !grep(/^IDEA$/,@a)))
&& (!@a || (!$no_des || !grep(/^DES$/,@a)))
&& (!@a || (!$no_bf || !grep(/^BF$/,@a)))
&& (!@a || (!$no_cast || !grep(/^CAST$/,@a)))
&& (!@a || (!$no_md2 || !grep(/^MD2$/,@a)))
&& (!@a || (!$no_md4 || !grep(/^MD4$/,@a)))
&& (!@a || (!$no_md5 || !grep(/^MD5$/,@a)))
&& (!@a || (!$no_sha || !grep(/^SHA$/,@a)))
&& (!@a || (!$no_ripemd || !grep(/^RIPEMD$/,@a)))
&& (!@a || (!$no_mdc2 || !grep(/^MDC2$/,@a)))
&& (!@a || (!$no_rsa || !grep(/^RSA$/,@a)))
&& (!@a || (!$no_dsa || !grep(/^DSA$/,@a)))
&& (!@a || (!$no_dh || !grep(/^DH$/,@a)))
&& (!@a || (!$no_hmac || !grep(/^HMAC$/,@a)))
&& (!@a || (!$no_fp_api || !grep(/^FP_API$/,@a)))
) {
printf OUT " %s%-40s@%d\n",($W32)?"":"_",$s,$n; printf OUT " %s%-40s@%d\n",($W32)?"":"_",$s,$n;
# } else { # } else {
# print STDERR "DEBUG: \"$sym\" (@p):", # print STDERR "DEBUG: \"$sym\" (@p):",