From f5d7a031a3c3e7b1700a67d6dc19daf3718ce6ee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ulf=20M=C3=B6ller?= Date: Tue, 27 Apr 1999 01:14:46 +0000 Subject: [PATCH] New Configure option no- (rsa, idea, rc5, ...). --- CHANGES | 3 +++ Configure | 30 +++++++++++++++++++------- Makefile.org | 3 ++- STATUS | 9 +------- apps/Makefile.ssl | 2 +- apps/ciphers.c | 4 ++++ apps/dh.c | 2 ++ apps/dsa.c | 3 ++- apps/dsaparam.c | 2 ++ apps/enc.c | 2 +- apps/gendh.c | 4 ++-- apps/gendsa.c | 4 ++-- apps/genrsa.c | 4 ++-- apps/pem_mail.c | 2 ++ apps/rsa.c | 3 ++- apps/s_client.c | 4 ++++ apps/s_server.c | 12 +++++++++-- apps/s_time.c | 4 ++++ apps/speed.c | 43 ++++++++++++++++++++----------------- apps/version.c | 2 +- crypto/Makefile.ssl | 4 ++-- crypto/asn1/Makefile.ssl | 2 +- crypto/asn1/d2i_dhp.c | 3 ++- crypto/asn1/d2i_dsap.c | 3 ++- crypto/asn1/d2i_r_pr.c | 3 ++- crypto/asn1/d2i_r_pu.c | 3 ++- crypto/asn1/d2i_s_pr.c | 3 ++- crypto/asn1/d2i_s_pu.c | 5 +++-- crypto/asn1/i2d_dhp.c | 2 ++ crypto/asn1/i2d_dsap.c | 2 ++ crypto/asn1/i2d_r_pr.c | 2 ++ crypto/asn1/i2d_r_pu.c | 3 ++- crypto/asn1/i2d_s_pr.c | 3 ++- crypto/asn1/i2d_s_pu.c | 3 ++- crypto/asn1/n_pkey.c | 4 +++- crypto/bf/Makefile.ssl | 2 +- crypto/bf/bftest.c | 9 ++++++++ crypto/bf/blowfish.h | 4 ++++ crypto/bio/Makefile.ssl | 2 +- crypto/bn/Makefile.ssl | 2 +- crypto/buffer/Makefile.ssl | 2 +- crypto/cast/Makefile.ssl | 2 +- crypto/cast/cast.h | 4 ++++ crypto/cast/casttest.c | 10 ++++++++- crypto/comp/Makefile.ssl | 2 +- crypto/conf/Makefile.ssl | 2 +- crypto/des/Makefile.ssl | 2 +- crypto/des/des.h | 4 ++++ crypto/des/destest.c | 13 +++++++++-- crypto/des/ede_cbcm_enc.c | 2 ++ crypto/dh/Makefile.ssl | 2 +- crypto/dh/dh.h | 4 ++++ crypto/dh/dhtest.c | 9 ++++++++ crypto/dsa/Makefile.ssl | 2 +- crypto/dsa/dsa.h | 4 ++++ crypto/dsa/dsatest.c | 13 ++++++++--- crypto/err/Makefile.ssl | 2 +- crypto/evp/Makefile.ssl | 2 +- crypto/evp/evp.h | 24 ++++++++++----------- crypto/evp/evp_pkey.c | 23 ++++++++++++++------ crypto/evp/p_open.c | 2 ++ crypto/evp/p_seal.c | 2 ++ crypto/hmac/Makefile.ssl | 2 +- crypto/hmac/hmac.h | 4 ++++ crypto/hmac/hmactest.c | 9 ++++++++ crypto/idea/Makefile.ssl | 2 +- crypto/idea/idea.h | 4 ++++ crypto/idea/ideatest.c | 10 ++++++++- crypto/lhash/Makefile.ssl | 2 +- crypto/md2/Makefile.ssl | 2 +- crypto/md2/md2.h | 4 ++++ crypto/md2/md2test.c | 9 ++++++++ crypto/md5/Makefile.ssl | 2 +- crypto/md5/md5.h | 4 ++++ crypto/md5/md5test.c | 9 ++++++++ crypto/mdc2/Makefile.ssl | 2 +- crypto/mdc2/mdc2.h | 4 ++++ crypto/mdc2/mdc2test.c | 14 +++++++++++- crypto/objects/Makefile.ssl | 2 +- crypto/objects/obj_dat.h | 2 +- crypto/pem/Makefile.ssl | 2 +- crypto/pem/pem.h | 34 +++++++++++++++++++++++++++-- crypto/pem/pem_seal.c | 2 ++ crypto/pkcs12/Makefile.ssl | 2 +- crypto/pkcs12/p12_crpt.c | 4 ++++ crypto/pkcs7/Makefile.ssl | 2 +- crypto/rand/Makefile.ssl | 2 +- crypto/rc2/Makefile.ssl | 2 +- crypto/rc2/rc2.h | 4 ++++ crypto/rc2/rc2test.c | 9 ++++++++ crypto/rc4/Makefile.ssl | 2 +- crypto/rc4/rc4.h | 4 ++++ crypto/rc4/rc4test.c | 10 ++++++++- crypto/rc5/Makefile.ssl | 2 +- crypto/rc5/rc5.h | 4 ++++ crypto/rc5/rc5test.c | 9 ++++++++ crypto/ripemd/Makefile.ssl | 2 +- crypto/ripemd/ripemd.h | 4 ++++ crypto/ripemd/rmdtest.c | 10 ++++++++- crypto/rsa/Makefile.ssl | 2 +- crypto/rsa/rsa.h | 4 ++++ crypto/rsa/rsa_oaep_test.c | 10 ++++++++- crypto/sha/Makefile.ssl | 2 +- crypto/sha/sha.h | 8 +++++++ crypto/sha/sha1_one.c | 2 ++ crypto/sha/sha1dgst.c | 2 ++ crypto/sha/sha1test.c | 9 ++++++++ crypto/sha/sha_dgst.c | 3 ++- crypto/sha/sha_one.c | 2 ++ crypto/sha/shatest.c | 9 ++++++++ crypto/stack/Makefile.ssl | 2 +- crypto/txt_db/Makefile.ssl | 2 +- crypto/x509/Makefile.ssl | 2 +- crypto/x509/x509.h | 24 ++++++++++++--------- crypto/x509v3/Makefile.ssl | 2 +- 115 files changed, 480 insertions(+), 140 deletions(-) diff --git a/CHANGES b/CHANGES index 61c31e2af4..dacdb63c4d 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,9 @@ Changes between 0.9.2b and 0.9.3 + *) New Configure option no- (rsa, idea, rc5, ...). + [Ulf Möller] + *) Add the PKCS#12 API documentation to openssl.txt. Preliminary support for extension adding in x509 utility. [Steve Henson] diff --git a/Configure b/Configure index 98644fb182..4ea12475d5 100755 --- a/Configure +++ b/Configure @@ -20,16 +20,9 @@ my $usage="Usage: Configure [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [rsaref] [no # rsaref use RSAref # no-asm do not use assembler # 386 generate 80386 code +# no-CIPHER build without specified algorithm # -D, -L, -l, -f, -K: compiler options are passed through # -# -DRSAref build to use RSAref -# -DNO_IDEA build with no IDEA algorithm -# -DNO_RC4 build with no RC4 algorithm -# -DNO_RC2 build with no RC2 algorithm -# -DNO_BF build with no Blowfish algorithm -# -DNO_DES build with no DES/3DES algorithm -# -DNO_MD2 build with no MD2 algorithm -# # DES_PTR use pointer lookup vs arrays in the DES in crypto/des/des_locl.h # DES_RISC1 use different DES_ENCRYPT macro that helps reduce register # dependancies but needs to more registers, good for RISC CPU's @@ -255,6 +248,7 @@ my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32 my $installprefix=""; my $openssldir=""; my $no_asm=0; +my @skip=(); my $Makefile="Makefile.ssl"; my $des_locl="crypto/des/des_locl.h"; my $des ="crypto/des/des.h"; @@ -284,12 +278,21 @@ $perl=&which("perl5") or $perl=&which("perl"); &usage if ($#ARGV < 0); my $flags=""; +my $depflags=""; my $libs=""; my $target=""; foreach (@ARGV) { if (/^no-asm$/) { $no_asm=1; } + elsif (/^no-(.+)$/) + { + my $algo=$1; + push @skip,$algo; + $algo =~ tr/[a-z]/[A-Z]/; + $flags .= "-DNO_$algo "; + $depflags .= "-DNO_$algo "; + } elsif (/^386$/) { $processor=386; } elsif (/^rsaref$/) @@ -390,14 +393,24 @@ if ($rmd160_obj =~ /\.o$/) open(IN,'$Makefile") || die "unable to create $Makefile:$!\n"; +my $sdirs=0; while () { chop; + $sdirs = 1 if /^SDIRS=/; + $sdirs = 0 unless /\\$/; + if ($sdirs) { + my $dir; + foreach $dir (@skip) { + s/$dir//; + } + } s/^INSTALLTOP=.*$/INSTALLTOP=$installprefix/; s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/; s/^PLATFORM=.*$/PLATFORM=$target/; s/^CC=.*$/CC= $cc/; s/^CFLAG=.*$/CFLAG= $cflags/; + s/^DEPFLAG=.*$/DEPFLAG= $depflags/; s/^EX_LIBS=.*$/EX_LIBS= $lflags/; s/^BN_ASM=.*$/BN_ASM= $bn_obj/; s/^DES_ENC=.*$/DES_ENC= $des_obj/; @@ -551,6 +564,7 @@ if($IsWindows) { close(OUT); } else { (system 'make -f Makefile.ssl links') == 0 or exit $?; + (system 'make depend') == 0 or exit $? if $depflags ne ""; &dofile("tools/c_rehash",$openssldir,'^DIR=', 'DIR=%s',); &dofile("util/mk1mf.pl",$openssldir, ('^\$INSTALLTOP=','$INSTALLTOP="%s";',)); diff --git a/Makefile.org b/Makefile.org index 869fe8cc5a..7531f5a2db 100644 --- a/Makefile.org +++ b/Makefile.org @@ -43,6 +43,7 @@ OPENSSLDIR=/usr/local/ssl CC= gcc #CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM +DEPFLAG= PEX_LIBS= -L. -L.. -L../.. -L../../.. EX_LIBS= AR=ar r @@ -246,7 +247,7 @@ depend: @for i in $(DIRS) ;\ do \ (cd $$i && echo "making dependancies $$i..." && \ - $(MAKE) SDIRS='${SDIRS}' depend ) || exit 1; \ + $(MAKE) SDIRS='${SDIRS}' DEPFLAG='${DEPFLAG}' depend ) || exit 1; \ done; lint: diff --git a/STATUS b/STATUS index ec13da99d6..f34d06aca1 100644 --- a/STATUS +++ b/STATUS @@ -1,6 +1,6 @@ OpenSSL STATUS Last modified at - ______________ $Date: 1999/04/27 00:36:14 $ + ______________ $Date: 1999/04/27 01:13:19 $ DEVELOPMENT STATE @@ -149,13 +149,6 @@ o Properly initialize the PRNG in the absence of /dev/random. - o > NO_RSA (ejs@bfd.com) - > ./Configure -DNO_IDEA -DNO_RC5 -DNO_RC4 -DNO_RC2 -DNO_RSA -DNO_ERR linux-elf - > I tried for a whole day to do this and could not get it to work. Linux - > machine, kernel 2.0.36 and 2.2.1, redhat 5.2 latest, gcc and egcs , no - > go. I also noticed the even with -DNO_IDEA, _DNO_RC2, etc. the make - > still goes into those subdirectories and 'makes'. - o ERR_error_string(..., buf) does not know how large buf is, there should be ERR_error_string_n(..., buf, bufsize) or similar. diff --git a/apps/Makefile.ssl b/apps/Makefile.ssl index 83c19aad14..5971ada4cc 100644 --- a/apps/Makefile.ssl +++ b/apps/Makefile.ssl @@ -109,7 +109,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(SRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(SRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/apps/ciphers.c b/apps/ciphers.c index 3c76782b7e..08e47be4f7 100644 --- a/apps/ciphers.c +++ b/apps/ciphers.c @@ -66,6 +66,10 @@ #include #include +#if defined(NO_RSA) && !defined(NO_SSL2) +#define NO_SSL2 +#endif + #undef PROG #define PROG ciphers_main diff --git a/apps/dh.c b/apps/dh.c index 02742485ce..b4abbe7f09 100644 --- a/apps/dh.c +++ b/apps/dh.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DH #include #include #include @@ -308,3 +309,4 @@ end: if (dh != NULL) DH_free(dh); EXIT(ret); } +#endif diff --git a/apps/dsa.c b/apps/dsa.c index dc282b77d0..977955ae59 100644 --- a/apps/dsa.c +++ b/apps/dsa.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include #include @@ -252,4 +253,4 @@ end: if (dsa != NULL) DSA_free(dsa); EXIT(ret); } - +#endif diff --git a/apps/dsaparam.c b/apps/dsaparam.c index bd368a3a30..118d974bb0 100644 --- a/apps/dsaparam.c +++ b/apps/dsaparam.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include #include @@ -349,3 +350,4 @@ static void MS_CALLBACK dsa_cb(int p, int n, char *arg) p=n; #endif } +#endif diff --git a/apps/enc.c b/apps/enc.c index ce5f7f0638..ca5691dd33 100644 --- a/apps/enc.c +++ b/apps/enc.c @@ -65,7 +65,7 @@ #include #include #include -#ifdef NO_MD5 +#ifndef NO_MD5 #include #endif #include diff --git a/apps/gendh.c b/apps/gendh.c index e3be0827c1..b3c19581d3 100644 --- a/apps/gendh.c +++ b/apps/gendh.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DH #include #include #include @@ -219,5 +220,4 @@ static long dh_load_rand(char *name) } return(tot); } - - +#endif diff --git a/apps/gendsa.c b/apps/gendsa.c index e43fd6a3a2..da43245f8b 100644 --- a/apps/gendsa.c +++ b/apps/gendsa.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include #include @@ -228,5 +229,4 @@ static long dsa_load_rand(char *name) } return(tot); } - - +#endif diff --git a/apps/genrsa.c b/apps/genrsa.c index 2218fb06d2..1cba9f5925 100644 --- a/apps/genrsa.c +++ b/apps/genrsa.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include #include @@ -262,5 +263,4 @@ static long gr_load_rand(char *name) } return(tot); } - - +#endif diff --git a/apps/pem_mail.c b/apps/pem_mail.c index b60c9a3922..f85c7b1c83 100644 --- a/apps/pem_mail.c +++ b/apps/pem_mail.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include #include @@ -166,3 +167,4 @@ err: ERR_print_errors(bio_err); EXIT(1); } +#endif diff --git a/apps/rsa.c b/apps/rsa.c index 1372a5fac9..3be1f67657 100644 --- a/apps/rsa.c +++ b/apps/rsa.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include #include @@ -298,4 +299,4 @@ end: if (rsa != NULL) RSA_free(rsa); EXIT(ret); } - +#endif diff --git a/apps/s_client.c b/apps/s_client.c index ae3ce3e4e8..44f228a31c 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -70,6 +70,10 @@ #include #include "s_apps.h" +#if defined(NO_RSA) && !defined(NO_SSL2) +#define NO_SSL2 +#endif + #undef PROG #define PROG s_client_main diff --git a/apps/s_server.c b/apps/s_server.c index dc218db924..7d1b569269 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -74,7 +74,13 @@ #include #include "s_apps.h" +#if defined(NO_RSA) && !defined(NO_SSL2) +#define NO_SSL2 +#endif + +#ifndef NO_RSA static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export,int keylength); +#endif static int sv_body(char *hostname, int s, unsigned char *context); static int www_body(char *hostname, int s, unsigned char *context); static void close_accept_socket(void ); @@ -470,6 +476,7 @@ bad: goto end; } +#ifndef NO_RSA #if 1 SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb); #else @@ -490,6 +497,7 @@ bad: RSA_free(rsa); BIO_printf(bio_s_out,"\n"); } +#endif #endif if (cipher != NULL) @@ -1199,6 +1207,7 @@ err: return(ret); } +#ifndef NO_RSA static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export, int keylength) { static RSA *rsa_tmp=NULL; @@ -1210,9 +1219,7 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export, int keylength) BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength); BIO_flush(bio_err); } -#ifndef NO_RSA rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL); -#endif if (!s_quiet) { BIO_printf(bio_err,"\n"); @@ -1221,3 +1228,4 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int export, int keylength) } return(rsa_tmp); } +#endif diff --git a/apps/s_time.c b/apps/s_time.c index ae16192f5e..c5e3dcd5ae 100644 --- a/apps/s_time.c +++ b/apps/s_time.c @@ -67,6 +67,10 @@ #include #include +#if defined(NO_RSA) && !defined(NO_SSL2) +#define NO_SSL2 +#endif + #ifdef NO_STDIO #define APPS_WIN16 #endif diff --git a/apps/speed.c b/apps/speed.c index ce489e6055..4c48fd5b92 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -127,10 +127,10 @@ struct tms { #include #include #endif -#ifndef NO_SHA1 +#ifndef NO_SHA #include #endif -#ifndef NO_RMD160 +#ifndef NO_RIPEMD #include #endif #ifndef NO_RC4 @@ -145,7 +145,7 @@ struct tms { #ifndef NO_IDEA #include #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF #include #endif #ifndef NO_CAST @@ -153,9 +153,9 @@ struct tms { #endif #ifndef NO_RSA #include +#include "./testrsa.h" #endif #include -#include "./testrsa.h" #ifndef NO_DSA #include "./testdsa.h" #endif @@ -261,10 +261,10 @@ int MAIN(int argc, char **argv) unsigned char md5[MD5_DIGEST_LENGTH]; unsigned char hmac[MD5_DIGEST_LENGTH]; #endif -#ifndef NO_SHA1 +#ifndef NO_SHA unsigned char sha[SHA_DIGEST_LENGTH]; #endif -#ifndef NO_RMD160 +#ifndef NO_RIPEMD unsigned char rmd160[RIPEMD160_DIGEST_LENGTH]; #endif #ifndef NO_RC4 @@ -279,7 +279,7 @@ int MAIN(int argc, char **argv) #ifndef NO_IDEA IDEA_KEY_SCHEDULE idea_ks; #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF BF_KEY bf_ks; #endif #ifndef NO_CAST @@ -323,9 +323,9 @@ int MAIN(int argc, char **argv) #define R_RSA_1024 1 #define R_RSA_2048 2 #define R_RSA_4096 3 +#ifndef NO_RSA RSA *rsa_key[RSA_NUM]; long rsa_c[RSA_NUM][2]; -#ifndef NO_RSA double rsa_results[RSA_NUM][2]; static unsigned int rsa_bits[RSA_NUM]={512,1024,2048,4096}; static unsigned char *rsa_data[RSA_NUM]= @@ -346,7 +346,7 @@ int MAIN(int argc, char **argv) int pr_header=0; apps_startup(); -#ifdef NO_DSA +#ifndef NO_DSA memset(dsa_key,0,sizeof(dsa_key)); #endif @@ -402,13 +402,13 @@ int MAIN(int argc, char **argv) if (strcmp(*argv,"hmac") == 0) doit[D_HMAC]=1; else #endif -#ifndef NO_SHA1 +#ifndef NO_SHA if (strcmp(*argv,"sha1") == 0) doit[D_SHA1]=1; else if (strcmp(*argv,"sha") == 0) doit[D_SHA1]=1; else #endif -#ifndef NO_RMD160 +#ifndef NO_RIPEMD if (strcmp(*argv,"ripemd") == 0) doit[D_RMD160]=1; else if (strcmp(*argv,"rmd160") == 0) doit[D_RMD160]=1; @@ -464,7 +464,7 @@ int MAIN(int argc, char **argv) else if (strcmp(*argv,"idea") == 0) doit[D_CBC_IDEA]=1; else #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF if (strcmp(*argv,"bf-cbc") == 0) doit[D_CBC_BF]=1; else if (strcmp(*argv,"blowfish") == 0) doit[D_CBC_BF]=1; else if (strcmp(*argv,"bf") == 0) doit[D_CBC_BF]=1; @@ -514,10 +514,10 @@ int MAIN(int argc, char **argv) #ifndef NO_RC5 BIO_printf(bio_err,"rc5-cbc "); #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF BIO_printf(bio_err,"bf-cbc"); #endif -#if !defined(NO_IDEA) && !defined(NO_RC2) && !defined(NO_BLOWFISH) && !defined(NO_RC5) +#if !defined(NO_IDEA) && !defined(NO_RC2) && !defined(NO_BF) && !defined(NO_RC5) BIO_printf(bio_err,"\n"); #endif BIO_printf(bio_err,"des-cbc des-ede3 "); @@ -601,14 +601,15 @@ int MAIN(int argc, char **argv) #ifndef NO_RC5 RC5_32_set_key(&rc5_ks,16,key16,12); #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF BF_set_key(&bf_ks,16,key16); #endif #ifndef NO_CAST CAST_set_key(&cast_ks,16,key16); #endif - +#ifndef NO_RSA memset(rsa_c,0,sizeof(rsa_c)); +#endif #ifndef SIGALRM BIO_printf(bio_err,"First we calculate the approximate speed ...\n"); count=10; @@ -659,6 +660,7 @@ int MAIN(int argc, char **argv) c[D_CBC_BF][i]=c[D_CBC_BF][i-1]*l0/l1; c[D_CBC_CAST][i]=c[D_CBC_CAST][i-1]*l0/l1; } +#ifndef NO_RSA rsa_c[R_RSA_512][0]=count/2000; rsa_c[R_RSA_512][1]=count/400; for (i=1; ifluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/asn1/d2i_dhp.c b/crypto/asn1/d2i_dhp.c index a0f514dc7e..a077211a4c 100644 --- a/crypto/asn1/d2i_dhp.c +++ b/crypto/asn1/d2i_dhp.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DH #include #include "cryptlib.h" #include @@ -97,4 +98,4 @@ err: if (bs != NULL) ASN1_BIT_STRING_free(bs); return(NULL); } - +#endif diff --git a/crypto/asn1/d2i_dsap.c b/crypto/asn1/d2i_dsap.c index 2582b8fd45..51863a8b13 100644 --- a/crypto/asn1/d2i_dsap.c +++ b/crypto/asn1/d2i_dsap.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include "cryptlib.h" #include @@ -90,4 +91,4 @@ err: if (bs != NULL) ASN1_BIT_STRING_free(bs); return(NULL); } - +#endif diff --git a/crypto/asn1/d2i_r_pr.c b/crypto/asn1/d2i_r_pr.c index f6d118937c..18f11b6f5e 100644 --- a/crypto/asn1/d2i_r_pr.c +++ b/crypto/asn1/d2i_r_pr.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -117,4 +118,4 @@ err: if (bs != NULL) ASN1_INTEGER_free(bs); return(NULL); } - +#endif diff --git a/crypto/asn1/d2i_r_pu.c b/crypto/asn1/d2i_r_pu.c index 80deaab71a..04cfe5671e 100644 --- a/crypto/asn1/d2i_r_pu.c +++ b/crypto/asn1/d2i_r_pu.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -89,4 +90,4 @@ err: if (bs != NULL) ASN1_INTEGER_free(bs); return(NULL); } - +#endif diff --git a/crypto/asn1/d2i_s_pr.c b/crypto/asn1/d2i_s_pr.c index cf64a2edad..050e1cc5fb 100644 --- a/crypto/asn1/d2i_s_pr.c +++ b/crypto/asn1/d2i_s_pr.c @@ -58,6 +58,7 @@ /* Original version from Steven Schoch */ +#ifndef NO_DSA #include #include "cryptlib.h" #include @@ -101,4 +102,4 @@ err: if (bs != NULL) ASN1_INTEGER_free(bs); return(NULL); } - +#endif diff --git a/crypto/asn1/d2i_s_pu.c b/crypto/asn1/d2i_s_pu.c index 4d65cef5a9..2b1bf638c1 100644 --- a/crypto/asn1/d2i_s_pu.c +++ b/crypto/asn1/d2i_s_pu.c @@ -56,8 +56,9 @@ * [including the GNU Public Licence.] */ -/* Origional version from Steven Schoch */ +/* Original version from Steven Schoch */ +#ifndef NO_DSA #include #include "cryptlib.h" #include @@ -113,4 +114,4 @@ err: if (bs != NULL) ASN1_INTEGER_free(bs); return(NULL); } - +#endif diff --git a/crypto/asn1/i2d_dhp.c b/crypto/asn1/i2d_dhp.c index e82f2a96af..1b2b4b8ebe 100644 --- a/crypto/asn1/i2d_dhp.c +++ b/crypto/asn1/i2d_dhp.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DH #include #include "cryptlib.h" #include @@ -119,3 +120,4 @@ err: *pp=p; return(ret); } +#endif diff --git a/crypto/asn1/i2d_dsap.c b/crypto/asn1/i2d_dsap.c index 9317110464..f36f0da4e2 100644 --- a/crypto/asn1/i2d_dsap.c +++ b/crypto/asn1/i2d_dsap.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include "cryptlib.h" #include @@ -112,4 +113,5 @@ err: *pp=p; return(ret); } +#endif diff --git a/crypto/asn1/i2d_r_pr.c b/crypto/asn1/i2d_r_pr.c index 617c10af46..27e6844a7f 100644 --- a/crypto/asn1/i2d_r_pr.c +++ b/crypto/asn1/i2d_r_pr.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -122,4 +123,5 @@ int i2d_RSAPrivateKey(RSA *a, unsigned char **pp) *pp=p; return(t); } +#endif diff --git a/crypto/asn1/i2d_r_pu.c b/crypto/asn1/i2d_r_pu.c index 03f7348527..6d01bfa8b5 100644 --- a/crypto/asn1/i2d_r_pu.c +++ b/crypto/asn1/i2d_r_pu.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -108,4 +109,4 @@ int i2d_RSAPublicKey(RSA *a, unsigned char **pp) *pp=p; return(t); } - +#endif diff --git a/crypto/asn1/i2d_s_pr.c b/crypto/asn1/i2d_s_pr.c index f3a5e8fe9d..5d3dcdf197 100644 --- a/crypto/asn1/i2d_s_pr.c +++ b/crypto/asn1/i2d_s_pr.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include "cryptlib.h" #include @@ -119,4 +120,4 @@ int i2d_DSAPrivateKey(DSA *a, unsigned char **pp) *pp=p; return(t); } - +#endif diff --git a/crypto/asn1/i2d_s_pu.c b/crypto/asn1/i2d_s_pu.c index 7903ea410d..25b150794a 100644 --- a/crypto/asn1/i2d_s_pu.c +++ b/crypto/asn1/i2d_s_pu.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_DSA #include #include "cryptlib.h" #include @@ -124,4 +125,4 @@ int i2d_DSAPublicKey(DSA *a, unsigned char **pp) *pp=p; return(t); } - +#endif diff --git a/crypto/asn1/n_pkey.c b/crypto/asn1/n_pkey.c index 9133bc6d29..cdc0d8b7c4 100644 --- a/crypto/asn1/n_pkey.c +++ b/crypto/asn1/n_pkey.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -78,6 +79,7 @@ static int i2d_NETSCAPE_PKEY(NETSCAPE_PKEY *a, unsigned char **pp); static NETSCAPE_PKEY *d2i_NETSCAPE_PKEY(NETSCAPE_PKEY **a,unsigned char **pp, long length); static NETSCAPE_PKEY *NETSCAPE_PKEY_new(void); static void NETSCAPE_PKEY_free(NETSCAPE_PKEY *); + int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)()) { int i,j,l[6]; @@ -336,4 +338,4 @@ static void NETSCAPE_PKEY_free(NETSCAPE_PKEY *a) } #endif /* NO_RC4 */ - +#endif diff --git a/crypto/bf/Makefile.ssl b/crypto/bf/Makefile.ssl index b1de95010c..225d818eca 100644 --- a/crypto/bf/Makefile.ssl +++ b/crypto/bf/Makefile.ssl @@ -91,7 +91,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/bf/bftest.c b/crypto/bf/bftest.c index 091c8081a9..80182c0a2f 100644 --- a/crypto/bf/bftest.c +++ b/crypto/bf/bftest.c @@ -62,6 +62,14 @@ #include #include #include + +#ifdef NO_BF +int main(int argc, char *argv[]) +{ + printf("No BF support\n"); + return(0); +} +#else #include char *bf_key[2]={ @@ -511,3 +519,4 @@ static int test(void) return(err); } +#endif diff --git a/crypto/bf/blowfish.h b/crypto/bf/blowfish.h index 005d0ed7b6..a18dfee1a4 100644 --- a/crypto/bf/blowfish.h +++ b/crypto/bf/blowfish.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_BF +#error BF is disabled. +#endif + #define BF_ENCRYPT 1 #define BF_DECRYPT 0 diff --git a/crypto/bio/Makefile.ssl b/crypto/bio/Makefile.ssl index 8a0f3f9e65..c1ccfd889d 100644 --- a/crypto/bio/Makefile.ssl +++ b/crypto/bio/Makefile.ssl @@ -73,7 +73,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/bn/Makefile.ssl b/crypto/bn/Makefile.ssl index 6cd865a683..ca55875eee 100644 --- a/crypto/bn/Makefile.ssl +++ b/crypto/bn/Makefile.ssl @@ -140,7 +140,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/buffer/Makefile.ssl b/crypto/buffer/Makefile.ssl index 0512a209cb..717615c801 100644 --- a/crypto/buffer/Makefile.ssl +++ b/crypto/buffer/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/cast/Makefile.ssl b/crypto/cast/Makefile.ssl index e29da45ddf..d44484c486 100644 --- a/crypto/cast/Makefile.ssl +++ b/crypto/cast/Makefile.ssl @@ -94,7 +94,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/cast/cast.h b/crypto/cast/cast.h index c2657981b2..215356dbe4 100644 --- a/crypto/cast/cast.h +++ b/crypto/cast/cast.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_CAST +#error CAST is disabled. +#endif + #define CAST_ENCRYPT 1 #define CAST_DECRYPT 0 diff --git a/crypto/cast/casttest.c b/crypto/cast/casttest.c index a8a707c711..3244b119e9 100644 --- a/crypto/cast/casttest.c +++ b/crypto/cast/casttest.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_CAST +int main(int argc, char *argv[]) +{ + printf("No CAST support\n"); + return(0); +} +#else #include #define FULL_TEST @@ -219,4 +227,4 @@ int main(int argc, char *argv[]) exit(err); return(err); } - +#endif diff --git a/crypto/comp/Makefile.ssl b/crypto/comp/Makefile.ssl index 89620a8fc8..2ccc8ed156 100644 --- a/crypto/comp/Makefile.ssl +++ b/crypto/comp/Makefile.ssl @@ -68,7 +68,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/conf/Makefile.ssl b/crypto/conf/Makefile.ssl index a3e5a072f4..b84c53ce18 100644 --- a/crypto/conf/Makefile.ssl +++ b/crypto/conf/Makefile.ssl @@ -66,7 +66,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/des/Makefile.ssl b/crypto/des/Makefile.ssl index 9bb5575ead..f243a90ddd 100644 --- a/crypto/des/Makefile.ssl +++ b/crypto/des/Makefile.ssl @@ -123,7 +123,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/des/des.h b/crypto/des/des.h index 18ceaa2a25..392d8bbea0 100644 --- a/crypto/des/des.h +++ b/crypto/des/des.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_DES +#error DES is disabled. +#endif + #include #include /* DES_LONG */ diff --git a/crypto/des/destest.c b/crypto/des/destest.c index 6b67e34cef..107635fcec 100644 --- a/crypto/des/destest.c +++ b/crypto/des/destest.c @@ -70,6 +70,14 @@ #include #endif #include + +#ifdef NO_DES +int main(int argc, char *argv[]) +{ + printf("No DES support\n"); + return(0); +} +#else #include #if defined(PERL5) || defined(__FreeBSD__) @@ -318,6 +326,7 @@ int main(int argc, char *argv[]) int num; char *str; +#ifndef NO_DESCBCM printf("Doing cbcm\n"); if ((j=des_key_sched(cbc_key,ks)) != 0) { @@ -368,7 +377,7 @@ int main(int argc, char *argv[]) printf("\n"); err=1; } - +#endif printf("Doing ecb\n"); for (i=0; ifluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/dh/dh.h b/crypto/dh/dh.h index 3ae16f3b0c..6a0a186fe3 100644 --- a/crypto/dh/dh.h +++ b/crypto/dh/dh.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_DH +#error DH is disabled. +#endif + #include #define DH_FLAG_CACHE_MONT_P 0x01 diff --git a/crypto/dh/dhtest.c b/crypto/dh/dhtest.c index c638e16bba..370784b964 100644 --- a/crypto/dh/dhtest.c +++ b/crypto/dh/dhtest.c @@ -65,6 +65,14 @@ #include #include #include + +#ifdef NO_DH +int main(int argc, char *argv[]) +{ + printf("No DH support\n"); + return(0); +} +#else #include #ifdef WIN16 @@ -177,3 +185,4 @@ static void MS_CALLBACK cb(int p, int n, char *arg) p=n; #endif } +#endif diff --git a/crypto/dsa/Makefile.ssl b/crypto/dsa/Makefile.ssl index e80750b95b..435349c396 100644 --- a/crypto/dsa/Makefile.ssl +++ b/crypto/dsa/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/dsa/dsa.h b/crypto/dsa/dsa.h index 3fc15194e3..d9ff1933ee 100644 --- a/crypto/dsa/dsa.h +++ b/crypto/dsa/dsa.h @@ -69,6 +69,10 @@ extern "C" { #endif +#ifdef NO_DSA +#error DSA is disabled. +#endif + #include #define DSA_FLAG_CACHE_MONT_P 0x01 diff --git a/crypto/dsa/dsatest.c b/crypto/dsa/dsatest.c index c0209936af..363eab6217 100644 --- a/crypto/dsa/dsatest.c +++ b/crypto/dsa/dsatest.c @@ -65,11 +65,19 @@ #include #include #include -#include #ifdef WINDOWS #include "../bio/bss_file.c" #endif +#ifdef NO_DSA +int main(int argc, char *argv[]) +{ + printf("No DSA support\n"); + return(0); +} +#else +#include + #ifdef WIN16 #define MS_CALLBACK _far _loadds #else @@ -206,5 +214,4 @@ static void MS_CALLBACK dsa_cb(int p, int n, char *arg) exit(1); } } - - +#endif diff --git a/crypto/err/Makefile.ssl b/crypto/err/Makefile.ssl index d3030b98c8..f92b3ae6c5 100644 --- a/crypto/err/Makefile.ssl +++ b/crypto/err/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/evp/Makefile.ssl b/crypto/evp/Makefile.ssl index 3491f2ceb3..08f0a79a83 100644 --- a/crypto/evp/Makefile.ssl +++ b/crypto/evp/Makefile.ssl @@ -92,7 +92,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/evp/evp.h b/crypto/evp/evp.h index 4b5af77b2a..ccb7d51474 100644 --- a/crypto/evp/evp.h +++ b/crypto/evp/evp.h @@ -69,10 +69,10 @@ extern "C" { #ifndef NO_MD5 #include #endif -#if !defined(NO_SHA) || !defined(NO_SHA1) +#ifndef NO_SHA #include #endif -#ifndef NO_RMD160 +#ifndef NO_RIPEMD #include #endif #ifndef NO_DES @@ -87,7 +87,7 @@ extern "C" { #ifndef NO_RC5 #include #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF #include #endif #ifndef NO_CAST @@ -111,20 +111,14 @@ extern "C" { #ifndef NO_RSA #include -#else -#define RSA long #endif #ifndef NO_DSA #include -#else -#define DSA long #endif #ifndef NO_DH #include -#else -#define DH long #endif #include @@ -159,9 +153,15 @@ typedef struct evp_pkey_st int references; union { char *ptr; +#ifndef NO_RSA struct rsa_st *rsa; /* RSA */ +#endif +#ifndef NO_DSA struct dsa_st *dsa; /* DSA */ +#endif +#ifndef NO_DH struct dh_st *dh; /* DH */ +#endif } pkey; int save_parameters; STACK /*X509_ATTRIBUTE*/ *attributes; /* [ 0 ] */ @@ -294,10 +294,10 @@ typedef struct env_md_ctx_st #ifndef NO_MD5 MD5_CTX md5; #endif -#ifndef NO_RMD160 +#ifndef NO_RIPEMD RIPEMD160_CTX ripemd160; #endif -#if !defined(NO_SHA) || !defined(NO_SHA1) +#ifndef NO_SHA SHA_CTX sha; #endif #ifndef NO_MDC2 @@ -372,7 +372,7 @@ typedef struct evp_cipher_ctx_st #ifndef NO_RC5 RC5_32_KEY rc5_ks;/* key schedule */ #endif -#ifndef NO_BLOWFISH +#ifndef NO_BF BF_KEY bf_ks;/* key schedule */ #endif #ifndef NO_CAST diff --git a/crypto/evp/evp_pkey.c b/crypto/evp/evp_pkey.c index 8bea61ebbd..421e452db1 100644 --- a/crypto/evp/evp_pkey.c +++ b/crypto/evp/evp_pkey.c @@ -67,14 +67,19 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) { EVP_PKEY *pkey; +#ifndef NO_RSA RSA *rsa; +#endif +#ifndef NO_DSA DSA *dsa; ASN1_INTEGER *dsapriv; - X509_ALGOR *a; STACK *ndsa; BN_CTX *ctx; + int plen; +#endif + X509_ALGOR *a; unsigned char *p; - int plen, pkeylen; + int pkeylen; char obj_tmp[80]; switch (p8->broken) { @@ -100,6 +105,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) a = p8->pkeyalg; switch (OBJ_obj2nid(a->algorithm)) { +#ifndef NO_RSA case NID_rsaEncryption: if (!(rsa = d2i_RSAPrivateKey (NULL, &p, pkeylen))) { EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR); @@ -107,7 +113,8 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) } EVP_PKEY_assign_RSA (pkey, rsa); break; - +#endif +#ifndef NO_DSA case NID_dsa: /* PKCS#8 DSA is weird: you just get a private key integer * and parameters in the AlgorithmIdentifier the pubkey must @@ -174,7 +181,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) EVP_PKEY_assign_DSA (pkey, dsa); BN_CTX_free (ctx); break; - +#endif default: EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM); if (!a->algorithm) strcpy (obj_tmp, "NULL"); @@ -191,9 +198,11 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey) { PKCS8_PRIV_KEY_INFO *p8; +#ifndef NO_DSA ASN1_INTEGER *dpkey; unsigned char *p, *q; int len; +#endif if (!(p8 = PKCS8_PRIV_KEY_INFO_new())) { EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE); return NULL; @@ -205,6 +214,7 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey) return NULL; } switch (EVP_PKEY_type(pkey->type)) { +#ifndef NO_RSA case EVP_PKEY_RSA: p8->pkeyalg->algorithm = OBJ_nid2obj(NID_rsaEncryption); @@ -216,7 +226,8 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey) return NULL; } break; - +#endif +#ifndef NO_DSA case EVP_PKEY_DSA: p8->pkeyalg->algorithm = OBJ_nid2obj(NID_dsa); @@ -249,7 +260,7 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey) } ASN1_INTEGER_free (dpkey); break; - +#endif default: EVPerr(EVP_F_EVP_PKEY2PKCS8, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM); PKCS8_PRIV_KEY_INFO_free (p8); diff --git a/crypto/evp/p_open.c b/crypto/evp/p_open.c index 6b532949a7..ddb9fd6942 100644 --- a/crypto/evp/p_open.c +++ b/crypto/evp/p_open.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -109,3 +110,4 @@ int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) EVP_DecryptInit(ctx,NULL,NULL,NULL); return(i); } +#endif diff --git a/crypto/evp/p_seal.c b/crypto/evp/p_seal.c index cd29276773..09b46f4b0e 100644 --- a/crypto/evp/p_seal.c +++ b/crypto/evp/p_seal.c @@ -59,7 +59,9 @@ #include #include "cryptlib.h" #include +#ifndef NO_RSA #include +#endif #include #include #include diff --git a/crypto/hmac/Makefile.ssl b/crypto/hmac/Makefile.ssl index f6d3bd13b2..6e1f964ead 100644 --- a/crypto/hmac/Makefile.ssl +++ b/crypto/hmac/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/hmac/hmac.h b/crypto/hmac/hmac.h index 2efce942e2..91b2f8d663 100644 --- a/crypto/hmac/hmac.h +++ b/crypto/hmac/hmac.h @@ -62,6 +62,10 @@ extern "C" { #endif +#ifdef NO_HMAC +#error No HMAC support. +#endif + #include #define HMAC_MAX_MD_CBLOCK 64 diff --git a/crypto/hmac/hmactest.c b/crypto/hmac/hmactest.c index 0a3db6852c..15eb0c416f 100644 --- a/crypto/hmac/hmactest.c +++ b/crypto/hmac/hmactest.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_HMAC +int main(int argc, char *argv[]) +{ + printf("No HMAC support\n"); + return(0); +} +#else #include struct test_st @@ -137,3 +145,4 @@ static char *pt(unsigned char *md) sprintf(&(buf[i*2]),"%02x",md[i]); return(buf); } +#endif diff --git a/crypto/idea/Makefile.ssl b/crypto/idea/Makefile.ssl index b643086dab..a61defe6f5 100644 --- a/crypto/idea/Makefile.ssl +++ b/crypto/idea/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/idea/idea.h b/crypto/idea/idea.h index 0075426d94..ae32f5692e 100644 --- a/crypto/idea/idea.h +++ b/crypto/idea/idea.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_IDEA +#error IDEA is disabled. +#endif + #define IDEA_ENCRYPT 1 #define IDEA_DECRYPT 0 diff --git a/crypto/idea/ideatest.c b/crypto/idea/ideatest.c index 4593d9e694..64b9353e41 100644 --- a/crypto/idea/ideatest.c +++ b/crypto/idea/ideatest.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_IDEA +int main(int argc, char *argv[]) +{ + printf("No IDEA support\n"); + return(0); +} +#else #include unsigned char k[16]={ @@ -219,4 +227,4 @@ static char *pt(unsigned char *p) ret[16]='\0'; return(ret); } - +#endif diff --git a/crypto/lhash/Makefile.ssl b/crypto/lhash/Makefile.ssl index dc56cec3da..15bf962fde 100644 --- a/crypto/lhash/Makefile.ssl +++ b/crypto/lhash/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/md2/Makefile.ssl b/crypto/md2/Makefile.ssl index cc7afffc62..d5faa85ecf 100644 --- a/crypto/md2/Makefile.ssl +++ b/crypto/md2/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/md2/md2.h b/crypto/md2/md2.h index e0285a3b88..0d3592506c 100644 --- a/crypto/md2/md2.h +++ b/crypto/md2/md2.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_MD2 +#error MD2 is disabled. +#endif + #define MD2_DIGEST_LENGTH 16 #define MD2_BLOCK 16 #include /* MD2_INT */ diff --git a/crypto/md2/md2test.c b/crypto/md2/md2test.c index 2368ec3332..63404b1833 100644 --- a/crypto/md2/md2test.c +++ b/crypto/md2/md2test.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_MD2 +int main(int argc, char *argv[]) +{ + printf("No MD2 support\n"); + return(0); +} +#else #include char *test[]={ @@ -120,3 +128,4 @@ static char *pt(unsigned char *md) sprintf(&(buf[i*2]),"%02x",md[i]); return(buf); } +#endif diff --git a/crypto/md5/Makefile.ssl b/crypto/md5/Makefile.ssl index f91b46289f..4a78035697 100644 --- a/crypto/md5/Makefile.ssl +++ b/crypto/md5/Makefile.ssl @@ -89,7 +89,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/md5/md5.h b/crypto/md5/md5.h index fc767872ed..6e97fe1e4f 100644 --- a/crypto/md5/md5.h +++ b/crypto/md5/md5.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_MD5 +#error MD5 is disabled. +#endif + #define MD5_CBLOCK 64 #define MD5_LBLOCK 16 #define MD5_BLOCK 16 diff --git a/crypto/md5/md5test.c b/crypto/md5/md5test.c index 2778b40ef6..a192a62bb3 100644 --- a/crypto/md5/md5test.c +++ b/crypto/md5/md5test.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_MD5 +int main(int argc, char *argv[]) +{ + printf("No MD5 support\n"); + return(0); +} +#else #include char *test[]={ @@ -120,3 +128,4 @@ static char *pt(unsigned char *md) sprintf(&(buf[i*2]),"%02x",md[i]); return(buf); } +#endif diff --git a/crypto/mdc2/Makefile.ssl b/crypto/mdc2/Makefile.ssl index 924a8b3fbe..eb0f0d627e 100644 --- a/crypto/mdc2/Makefile.ssl +++ b/crypto/mdc2/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/mdc2/mdc2.h b/crypto/mdc2/mdc2.h index 39a6c9e9ff..ec8e159fc9 100644 --- a/crypto/mdc2/mdc2.h +++ b/crypto/mdc2/mdc2.h @@ -65,6 +65,10 @@ extern "C" { #include +#ifdef NO_MDC2 +#error MDC2 is disabled. +#endif + #define MDC2_BLOCK 8 #define MDC2_DIGEST_LENGTH 16 diff --git a/crypto/mdc2/mdc2test.c b/crypto/mdc2/mdc2test.c index f627162988..6fc6c0ed00 100644 --- a/crypto/mdc2/mdc2test.c +++ b/crypto/mdc2/mdc2test.c @@ -59,6 +59,18 @@ #include #include #include + +#ifdef NO_DES +#define NO_MDC2 +#endif + +#ifdef NO_MDC2 +int main(int argc, char *argv[]) +{ + printf("No MDC2 support\n"); + return(0); +} +#else #include static unsigned char pad1[16]={ @@ -117,4 +129,4 @@ int main(int argc, char *argv[]) exit(ret); return(ret); } - +#endif diff --git a/crypto/objects/Makefile.ssl b/crypto/objects/Makefile.ssl index e139fe41ea..a7ad157d09 100644 --- a/crypto/objects/Makefile.ssl +++ b/crypto/objects/Makefile.ssl @@ -68,7 +68,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h index 03ba60c255..10a6304af5 100644 --- a/crypto/objects/obj_dat.h +++ b/crypto/objects/obj_dat.h @@ -761,8 +761,8 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={ &(nid_objs[19]),/* OBJ_rsa 2 5 8 1 1 */ &(nid_objs[96]),/* OBJ_mdc2WithRSA 2 5 8 3 100 */ &(nid_objs[95]),/* OBJ_mdc2 2 5 8 3 101 */ -&(nid_objs[125]),/* OBJ_zlib_compression 1 1 1 1 666.2 */ &(nid_objs[124]),/* OBJ_rle_compression 1 1 1 1 666.1 */ +&(nid_objs[125]),/* OBJ_zlib_compression 1 1 1 1 666.2 */ &(nid_objs[104]),/* OBJ_md5WithRSA 1 3 14 3 2 3 */ &(nid_objs[29]),/* OBJ_des_ecb 1 3 14 3 2 6 */ &(nid_objs[31]),/* OBJ_des_cbc 1 3 14 3 2 7 */ diff --git a/crypto/pem/Makefile.ssl b/crypto/pem/Makefile.ssl index 3582404cf4..519547a953 100644 --- a/crypto/pem/Makefile.ssl +++ b/crypto/pem/Makefile.ssl @@ -66,7 +66,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/pem/pem.h b/crypto/pem/pem.h index e9eb5477e7..6f0f09fcbe 100644 --- a/crypto/pem/pem.h +++ b/crypto/pem/pem.h @@ -372,28 +372,42 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str); X509 *PEM_read_X509(FILE *fp,X509 **x,int (*cb)()); X509_REQ *PEM_read_X509_REQ(FILE *fp,X509_REQ **x,int (*cb)()); X509_CRL *PEM_read_X509_CRL(FILE *fp,X509_CRL **x,int (*cb)()); +#ifndef NO_RSA RSA *PEM_read_RSAPrivateKey(FILE *fp,RSA **x,int (*cb)()); RSA *PEM_read_RSAPublicKey(FILE *fp,RSA **x,int (*cb)()); +#endif +#ifndef NO_DSA DSA *PEM_read_DSAPrivateKey(FILE *fp,DSA **x,int (*cb)()); +DSA *PEM_read_DSAparams(FILE *fp,DSA **x,int (*cb)()); +#endif +#ifndef NO_DH +DH *PEM_read_DHparams(FILE *fp,DH **x,int (*cb)()); +#endif EVP_PKEY *PEM_read_PrivateKey(FILE *fp,EVP_PKEY **x,int (*cb)()); PKCS7 *PEM_read_PKCS7(FILE *fp,PKCS7 **x,int (*cb)()); -DH *PEM_read_DHparams(FILE *fp,DH **x,int (*cb)()); -DSA *PEM_read_DSAparams(FILE *fp,DSA **x,int (*cb)()); NETSCAPE_CERT_SEQUENCE *PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *fp,NETSCAPE_CERT_SEQUENCE **x,int (*cb)()); int PEM_write_X509(FILE *fp,X509 *x); int PEM_write_X509_REQ(FILE *fp,X509_REQ *x); int PEM_write_X509_CRL(FILE *fp,X509_CRL *x); +#ifndef NO_RSA int PEM_write_RSAPrivateKey(FILE *fp,RSA *x,EVP_CIPHER *enc,unsigned char *kstr, int klen,int (*cb)()); int PEM_write_RSAPublicKey(FILE *fp,RSA *x); +#endif +#ifndef NO_DSA int PEM_write_DSAPrivateKey(FILE *fp,DSA *x,const EVP_CIPHER *enc, unsigned char *kstr, int klen,int (*cb)()); +#endif int PEM_write_PrivateKey(FILE *fp,EVP_PKEY *x,EVP_CIPHER *enc, unsigned char *kstr,int klen,int (*cb)()); int PEM_write_PKCS7(FILE *fp,PKCS7 *x); +#ifndef NO_DH int PEM_write_DHparams(FILE *fp,DH *x); +#endif +#ifndef NO_DSA int PEM_write_DSAparams(FILE *fp,DSA *x); +#endif int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp,NETSCAPE_CERT_SEQUENCE *x); #endif @@ -401,27 +415,43 @@ int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp,NETSCAPE_CERT_SEQUENCE *x); X509 *PEM_read_bio_X509(BIO *bp,X509 **x,int (*cb)()); X509_REQ *PEM_read_bio_X509_REQ(BIO *bp,X509_REQ **x,int (*cb)()); X509_CRL *PEM_read_bio_X509_CRL(BIO *bp,X509_CRL **x,int (*cb)()); +#ifndef NO_RSA RSA *PEM_read_bio_RSAPrivateKey(BIO *bp,RSA **x,int (*cb)()); RSA *PEM_read_bio_RSAPublicKey(BIO *bp,RSA **x,int (*cb)()); +#endif +#ifndef NO_DSA DSA *PEM_read_bio_DSAPrivateKey(BIO *bp,DSA **x,int (*cb)()); +#endif EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp,EVP_PKEY **x,int (*cb)()); PKCS7 *PEM_read_bio_PKCS7(BIO *bp,PKCS7 **x,int (*cb)()); +#ifndef NO_DH DH *PEM_read_bio_DHparams(BIO *bp,DH **x,int (*cb)()); +#endif NETSCAPE_CERT_SEQUENCE *PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp,NETSCAPE_CERT_SEQUENCE **x,int (*cb)()); +#ifndef NO_DSA DSA *PEM_read_bio_DSAparams(BIO *bp,DSA **x,int (*cb)()); +#endif int PEM_write_bio_X509(BIO *bp,X509 *x); int PEM_write_bio_X509_REQ(BIO *bp,X509_REQ *x); int PEM_write_bio_X509_CRL(BIO *bp,X509_CRL *x); +#ifndef NO_RSA int PEM_write_bio_RSAPrivateKey(BIO *fp,RSA *x,const EVP_CIPHER *enc, unsigned char *kstr,int klen,int (*cb)()); int PEM_write_bio_RSAPublicKey(BIO *fp,RSA *x); +#endif +#ifndef NO_DSA int PEM_write_bio_DSAPrivateKey(BIO *fp,DSA *x,const EVP_CIPHER *enc, unsigned char *kstr,int klen,int (*cb)()); +#endif int PEM_write_bio_PrivateKey(BIO *fp,EVP_PKEY *x,EVP_CIPHER *enc, unsigned char *kstr,int klen,int (*cb)()); int PEM_write_bio_PKCS7(BIO *bp,PKCS7 *x); +#ifndef NO_DH int PEM_write_bio_DHparams(BIO *bp,DH *x); +#endif +#ifndef NO_DSA int PEM_write_bio_DSAparams(BIO *bp,DSA *x); +#endif int PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp,NETSCAPE_CERT_SEQUENCE *x); #endif diff --git a/crypto/pem/pem_seal.c b/crypto/pem/pem_seal.c index 5f5d2c0e43..23f95beb1e 100644 --- a/crypto/pem/pem_seal.c +++ b/crypto/pem/pem_seal.c @@ -56,6 +56,7 @@ * [including the GNU Public Licence.] */ +#ifndef NO_RSA #include #include "cryptlib.h" #include @@ -174,3 +175,4 @@ err: if (s != NULL) Free(s); return(ret); } +#endif diff --git a/crypto/pkcs12/Makefile.ssl b/crypto/pkcs12/Makefile.ssl index b4d5a53941..f86ef95a22 100644 --- a/crypto/pkcs12/Makefile.ssl +++ b/crypto/pkcs12/Makefile.ssl @@ -71,7 +71,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/pkcs12/p12_crpt.c b/crypto/pkcs12/p12_crpt.c index 137d7cd360..9e37436c92 100644 --- a/crypto/pkcs12/p12_crpt.c +++ b/crypto/pkcs12/p12_crpt.c @@ -64,18 +64,22 @@ void PKCS12_PBE_add(void) { +#ifndef NO_RC4 EVP_PBE_alg_add(NID_pbe_WithSHA1And128BitRC4, EVP_rc4(), EVP_sha1(), PKCS12_PBE_keyivgen); EVP_PBE_alg_add(NID_pbe_WithSHA1And40BitRC4, EVP_rc4_40(), EVP_sha1(), PKCS12_PBE_keyivgen); +#endif EVP_PBE_alg_add(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, EVP_des_ede3_cbc(), EVP_sha1(), PKCS12_PBE_keyivgen); EVP_PBE_alg_add(NID_pbe_WithSHA1And2_Key_TripleDES_CBC, EVP_des_ede_cbc(), EVP_sha1(), PKCS12_PBE_keyivgen); +#ifndef NO_RC2 EVP_PBE_alg_add(NID_pbe_WithSHA1And128BitRC2_CBC, EVP_rc2_cbc(), EVP_sha1(), PKCS12_PBE_keyivgen); EVP_PBE_alg_add(NID_pbe_WithSHA1And40BitRC2_CBC, EVP_rc2_40_cbc(), EVP_sha1(), PKCS12_PBE_keyivgen); +#endif } int PKCS12_PBE_keyivgen (const char *pass, int passlen, unsigned char *salt, diff --git a/crypto/pkcs7/Makefile.ssl b/crypto/pkcs7/Makefile.ssl index e81cb1bba4..b2607f905f 100644 --- a/crypto/pkcs7/Makefile.ssl +++ b/crypto/pkcs7/Makefile.ssl @@ -67,7 +67,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/rand/Makefile.ssl b/crypto/rand/Makefile.ssl index 7a001647ee..17591e0bb8 100644 --- a/crypto/rand/Makefile.ssl +++ b/crypto/rand/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/rc2/Makefile.ssl b/crypto/rc2/Makefile.ssl index c78a099aaa..50a46c751d 100644 --- a/crypto/rc2/Makefile.ssl +++ b/crypto/rc2/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/rc2/rc2.h b/crypto/rc2/rc2.h index 0204745f6f..9571efb755 100644 --- a/crypto/rc2/rc2.h +++ b/crypto/rc2/rc2.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_RC2 +#error RC2 is disabled. +#endif + #define RC2_ENCRYPT 1 #define RC2_DECRYPT 0 diff --git a/crypto/rc2/rc2test.c b/crypto/rc2/rc2test.c index e6b355f434..6a5defa6ea 100644 --- a/crypto/rc2/rc2test.c +++ b/crypto/rc2/rc2test.c @@ -62,6 +62,14 @@ #include #include #include + +#ifdef NO_RC2 +int main(int argc, char *argv[]) +{ + printf("No RC2 support\n"); + return(0); +} +#else #include unsigned char RC2key[4][16]={ @@ -258,3 +266,4 @@ static char *pt(unsigned char *p) } #endif +#endif diff --git a/crypto/rc4/Makefile.ssl b/crypto/rc4/Makefile.ssl index 60e419f809..389c4ea1c0 100644 --- a/crypto/rc4/Makefile.ssl +++ b/crypto/rc4/Makefile.ssl @@ -93,7 +93,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/rc4/rc4.h b/crypto/rc4/rc4.h index 8d2b165dc2..7418c2a9a2 100644 --- a/crypto/rc4/rc4.h +++ b/crypto/rc4/rc4.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_RC4 +#error RC4 is disabled. +#endif + #include /* RC4_INT */ typedef struct rc4_key_st diff --git a/crypto/rc4/rc4test.c b/crypto/rc4/rc4test.c index 1410b72951..5abf8cff30 100644 --- a/crypto/rc4/rc4test.c +++ b/crypto/rc4/rc4test.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_RC4 +int main(int argc, char *argv[]) +{ + printf("No RC4 support\n"); + return(0); +} +#else #include unsigned char keys[7][30]={ @@ -190,4 +198,4 @@ int main(int argc, char *argv[]) exit(err); return(0); } - +#endif diff --git a/crypto/rc5/Makefile.ssl b/crypto/rc5/Makefile.ssl index 98b70be225..31349ed40f 100644 --- a/crypto/rc5/Makefile.ssl +++ b/crypto/rc5/Makefile.ssl @@ -91,7 +91,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/rc5/rc5.h b/crypto/rc5/rc5.h index c18d943995..38e901502b 100644 --- a/crypto/rc5/rc5.h +++ b/crypto/rc5/rc5.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_RC5 +#error RC5 is disabled. +#endif + #define RC5_ENCRYPT 1 #define RC5_DECRYPT 0 diff --git a/crypto/rc5/rc5test.c b/crypto/rc5/rc5test.c index d24da3c381..d819284607 100644 --- a/crypto/rc5/rc5test.c +++ b/crypto/rc5/rc5test.c @@ -62,6 +62,14 @@ #include #include #include + +#ifdef NO_RC5 +int main(int argc, char *argv[]) +{ + printf("No RC5 support\n"); + return(0); +} +#else #include unsigned char RC5key[5][16]={ @@ -373,3 +381,4 @@ static char *pt(unsigned char *p) } #endif +#endif diff --git a/crypto/ripemd/Makefile.ssl b/crypto/ripemd/Makefile.ssl index 8e81d85d52..c43c2e0c13 100644 --- a/crypto/ripemd/Makefile.ssl +++ b/crypto/ripemd/Makefile.ssl @@ -89,7 +89,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/ripemd/ripemd.h b/crypto/ripemd/ripemd.h index b2708d59ca..ab76be4c33 100644 --- a/crypto/ripemd/ripemd.h +++ b/crypto/ripemd/ripemd.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_RIPEMD +#error RIPEMD is disabled. +#endif + #define RIPEMD160_CBLOCK 64 #define RIPEMD160_LBLOCK 16 #define RIPEMD160_BLOCK 16 diff --git a/crypto/ripemd/rmdtest.c b/crypto/ripemd/rmdtest.c index 11737e24a6..8a19f29999 100644 --- a/crypto/ripemd/rmdtest.c +++ b/crypto/ripemd/rmdtest.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_RIPEMD +int main(int argc, char *argv[]) +{ + printf("No ripemd support\n"); + return(0); +} +#else #include char *test[]={ @@ -122,4 +130,4 @@ static char *pt(unsigned char *md) sprintf(&(buf[i*2]),"%02x",md[i]); return(buf); } - +#endif diff --git a/crypto/rsa/Makefile.ssl b/crypto/rsa/Makefile.ssl index 9487b6f514..96480f4902 100644 --- a/crypto/rsa/Makefile.ssl +++ b/crypto/rsa/Makefile.ssl @@ -67,7 +67,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/rsa/rsa.h b/crypto/rsa/rsa.h index f006b890db..2f53ff04b9 100644 --- a/crypto/rsa/rsa.h +++ b/crypto/rsa/rsa.h @@ -66,6 +66,10 @@ extern "C" { #include #include +#ifdef NO_RSA +#error RSA is disabled. +#endif + typedef struct rsa_st RSA; typedef struct rsa_meth_st diff --git a/crypto/rsa/rsa_oaep_test.c b/crypto/rsa/rsa_oaep_test.c index 4005aa5ed2..4dd078ddbe 100644 --- a/crypto/rsa/rsa_oaep_test.c +++ b/crypto/rsa/rsa_oaep_test.c @@ -3,8 +3,15 @@ #include #include #include -#include #include +#ifdef NO_RSA +int main(int argc, char *argv[]) +{ + printf("No RSA support\n"); + return(0); +} +#else +#include #define SetKey \ key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \ @@ -291,3 +298,4 @@ int main() } return err; } +#endif diff --git a/crypto/sha/Makefile.ssl b/crypto/sha/Makefile.ssl index 4033cd8c8c..4f5413cbd7 100644 --- a/crypto/sha/Makefile.ssl +++ b/crypto/sha/Makefile.ssl @@ -88,7 +88,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/sha/sha.h b/crypto/sha/sha.h index ac10d4c517..105d4c8575 100644 --- a/crypto/sha/sha.h +++ b/crypto/sha/sha.h @@ -63,6 +63,10 @@ extern "C" { #endif +#ifdef NO_SHA +#error SHA is disabled. +#endif + #define SHA_CBLOCK 64 #define SHA_LBLOCK 16 #define SHA_BLOCK 16 @@ -84,16 +88,20 @@ typedef struct SHAstate_st int num; } SHA_CTX; +#ifndef NO_SHA0 void SHA_Init(SHA_CTX *c); void SHA_Update(SHA_CTX *c, unsigned char *data, unsigned long len); void SHA_Final(unsigned char *md, SHA_CTX *c); unsigned char *SHA(unsigned char *d, unsigned long n,unsigned char *md); void SHA_Transform(SHA_CTX *c, unsigned char *data); +#endif +#ifndef NO_SHA1 void SHA1_Init(SHA_CTX *c); void SHA1_Update(SHA_CTX *c, unsigned char *data, unsigned long len); void SHA1_Final(unsigned char *md, SHA_CTX *c); unsigned char *SHA1(unsigned char *d, unsigned long n,unsigned char *md); void SHA1_Transform(SHA_CTX *c, unsigned char *data); +#endif #ifdef __cplusplus } #endif diff --git a/crypto/sha/sha1_one.c b/crypto/sha/sha1_one.c index b5a93d96e1..864e2a89cb 100644 --- a/crypto/sha/sha1_one.c +++ b/crypto/sha/sha1_one.c @@ -60,6 +60,7 @@ #include #include +#ifndef NO_SHA1 unsigned char *SHA1(unsigned char *d, unsigned long n, unsigned char *md) { SHA_CTX c; @@ -72,3 +73,4 @@ unsigned char *SHA1(unsigned char *d, unsigned long n, unsigned char *md) memset(&c,0,sizeof(c)); return(md); } +#endif diff --git a/crypto/sha/sha1dgst.c b/crypto/sha/sha1dgst.c index 18a492d0e6..532f53baa4 100644 --- a/crypto/sha/sha1dgst.c +++ b/crypto/sha/sha1dgst.c @@ -64,6 +64,7 @@ #include "sha_locl.h" #include +#ifndef NO_SHA1 char *SHA1_version="SHA1" OPENSSL_VERSION_PTEXT; /* Implemented from SHA-1 document - The Secure Hash Algorithm @@ -446,4 +447,5 @@ void SHA1_Final(unsigned char *md, SHA_CTX *c) c->num=0; /* memset((char *)&c,0,sizeof(c));*/ } +#endif diff --git a/crypto/sha/sha1test.c b/crypto/sha/sha1test.c index 9e4d3f178b..6a34a9ae13 100644 --- a/crypto/sha/sha1test.c +++ b/crypto/sha/sha1test.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_SHA +int main(int argc, char *argv[]) +{ + printf("No SHA support\n"); + return(0); +} +#else #include #undef SHA_0 /* FIPS 180 */ @@ -145,3 +153,4 @@ static char *pt(unsigned char *md) sprintf(&(buf[i*2]),"%02x",md[i]); return(buf); } +#endif diff --git a/crypto/sha/sha_dgst.c b/crypto/sha/sha_dgst.c index 950c69c07a..e75c66c220 100644 --- a/crypto/sha/sha_dgst.c +++ b/crypto/sha/sha_dgst.c @@ -64,6 +64,7 @@ #include "sha_locl.h" #include +#ifndef NO_SHA0 char *SHA_version="SHA" OPENSSL_VERSION_PTEXT; /* Implemented from SHA-0 document - The Secure Hash Algorithm @@ -424,4 +425,4 @@ void SHA_Final(unsigned char *md, SHA_CTX *c) c->num=0; /* memset((char *)&c,0,sizeof(c));*/ } - +#endif diff --git a/crypto/sha/sha_one.c b/crypto/sha/sha_one.c index 80b0697380..6ef3f06a37 100644 --- a/crypto/sha/sha_one.c +++ b/crypto/sha/sha_one.c @@ -60,6 +60,7 @@ #include #include +#ifndef NO_SHA0 unsigned char *SHA(unsigned char *d, unsigned long n, unsigned char *md) { SHA_CTX c; @@ -72,3 +73,4 @@ unsigned char *SHA(unsigned char *d, unsigned long n, unsigned char *md) memset(&c,0,sizeof(c)); return(md); } +#endif diff --git a/crypto/sha/shatest.c b/crypto/sha/shatest.c index 4e201ed7ea..6ebcbb13da 100644 --- a/crypto/sha/shatest.c +++ b/crypto/sha/shatest.c @@ -59,6 +59,14 @@ #include #include #include + +#ifdef NO_SHA +int main(int argc, char *argv[]) +{ + printf("No SHA support\n"); + return(0); +} +#else #include #define SHA_0 /* FIPS 180 */ @@ -145,3 +153,4 @@ static char *pt(unsigned char *md) sprintf(&(buf[i*2]),"%02x",md[i]); return(buf); } +#endif diff --git a/crypto/stack/Makefile.ssl b/crypto/stack/Makefile.ssl index 3abe0bc523..4d34e5ff4f 100644 --- a/crypto/stack/Makefile.ssl +++ b/crypto/stack/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/txt_db/Makefile.ssl b/crypto/txt_db/Makefile.ssl index 6b9e5b6219..8bae0e70c6 100644 --- a/crypto/txt_db/Makefile.ssl +++ b/crypto/txt_db/Makefile.ssl @@ -65,7 +65,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/x509/Makefile.ssl b/crypto/x509/Makefile.ssl index c724a74f9b..1fc144f165 100644 --- a/crypto/x509/Makefile.ssl +++ b/crypto/x509/Makefile.ssl @@ -75,7 +75,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h index 1ba0be7786..7c3ab2fedb 100644 --- a/crypto/x509/x509.h +++ b/crypto/x509/x509.h @@ -69,20 +69,14 @@ extern "C" { #ifndef NO_RSA #include -#else -#define RSA long #endif #ifndef NO_DSA #include -#else -#define DSA long #endif #ifndef NO_DH #include -#else -#define DH long #endif #include @@ -549,13 +543,17 @@ X509_CRL *d2i_X509_CRL_fp(FILE *fp,X509_CRL *crl); int i2d_X509_CRL_fp(FILE *fp,X509_CRL *crl); X509_REQ *d2i_X509_REQ_fp(FILE *fp,X509_REQ *req); int i2d_X509_REQ_fp(FILE *fp,X509_REQ *req); +#ifndef NO_RSA RSA *d2i_RSAPrivateKey_fp(FILE *fp,RSA *rsa); int i2d_RSAPrivateKey_fp(FILE *fp,RSA *rsa); -DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA *dsa); -int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); RSA *d2i_RSAPublicKey_fp(FILE *fp,RSA *rsa); int i2d_RSAPublicKey_fp(FILE *fp,RSA *rsa); #endif +#ifndef NO_DSA +DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA *dsa); +int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); +#endif +#endif #ifdef HEADER_BIO_H X509 *d2i_X509_bio(BIO *bp,X509 *x509); @@ -564,13 +562,17 @@ X509_CRL *d2i_X509_CRL_bio(BIO *bp,X509_CRL *crl); int i2d_X509_CRL_bio(BIO *bp,X509_CRL *crl); X509_REQ *d2i_X509_REQ_bio(BIO *bp,X509_REQ *req); int i2d_X509_REQ_bio(BIO *bp,X509_REQ *req); +#ifndef NO_RSA RSA *d2i_RSAPrivateKey_bio(BIO *bp,RSA *rsa); int i2d_RSAPrivateKey_bio(BIO *bp,RSA *rsa); -DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA *dsa); -int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); RSA *d2i_RSAPublicKey_bio(BIO *bp,RSA *rsa); int i2d_RSAPublicKey_bio(BIO *bp,RSA *rsa); #endif +#ifndef NO_DSA +DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA *dsa); +int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); +#endif +#endif X509 *X509_dup(X509 *x509); X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); @@ -580,8 +582,10 @@ X509_REQ *X509_REQ_dup(X509_REQ *req); X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); X509_NAME *X509_NAME_dup(X509_NAME *xn); X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); +#ifndef NO_RSA RSA *RSAPublicKey_dup(RSA *rsa); RSA *RSAPrivateKey_dup(RSA *rsa); +#endif #endif /* !SSLEAY_MACROS */ diff --git a/crypto/x509v3/Makefile.ssl b/crypto/x509v3/Makefile.ssl index a46f10a209..84e6ad3eef 100644 --- a/crypto/x509v3/Makefile.ssl +++ b/crypto/x509v3/Makefile.ssl @@ -69,7 +69,7 @@ lint: lint -DLINT $(INCLUDES) $(SRC)>fluff depend: - $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + $(MAKEDEPEND) $(INCLUDES) $(DEPFLFAG) $(PROGS) $(LIBSRC) dclean: $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new -- 2.25.1