From 31dbf5249c74bc884a4f1c6fbb3f13ae58d67022 Mon Sep 17 00:00:00 2001 From: cvs2svn Date: Fri, 26 Mar 1999 18:24:02 +0000 Subject: This commit was manufactured by cvs2git to create tag 'OPENBSD_2_5_BASE'. --- src/lib/libcrypto/err/Makefile.ssl | 80 +++++++++++++++ src/lib/libcrypto/err/err_code.pl | 105 ++++++++++++++++++++ src/lib/libcrypto/err/err_genc.pl | 198 +++++++++++++++++++++++++++++++++++++ src/lib/libcrypto/err/error.err | 13 +++ src/lib/libcrypto/err/ssleay.ec | 57 +++++++++++ 5 files changed, 453 insertions(+) create mode 100644 src/lib/libcrypto/err/Makefile.ssl create mode 100644 src/lib/libcrypto/err/err_code.pl create mode 100644 src/lib/libcrypto/err/err_genc.pl create mode 100644 src/lib/libcrypto/err/error.err create mode 100644 src/lib/libcrypto/err/ssleay.ec (limited to 'src/lib/libcrypto/err') diff --git a/src/lib/libcrypto/err/Makefile.ssl b/src/lib/libcrypto/err/Makefile.ssl new file mode 100644 index 0000000000..57c87eb041 --- /dev/null +++ b/src/lib/libcrypto/err/Makefile.ssl @@ -0,0 +1,80 @@ +# +# SSLeay/crypto/err/Makefile +# + +DIR= err +TOP= ../.. +CC= cc +INCLUDES= -I.. -I../../include +CFLAG=-g +INSTALLTOP=/usr/local/ssl +MAKE= make -f Makefile.ssl +MAKEDEPEND= makedepend -f Makefile.ssl +MAKEFILE= Makefile.ssl +AR= ar r + +CFLAGS= $(INCLUDES) $(CFLAG) + +GENERAL=Makefile +TEST= +APPS= + +LIB=$(TOP)/libcrypto.a +LIBSRC=err.c err_all.c err_prn.c +LIBOBJ=err.o err_all.o err_prn.o + +SRC= $(LIBSRC) + +EXHEADER= err.h +HEADER= $(EXHEADER) + +ALL= $(GENERAL) $(SRC) $(HEADER) + +top: + (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all) + +all: lib + +lib: $(LIBOBJ) + $(AR) $(LIB) $(LIBOBJ) + sh $(TOP)/util/ranlib.sh $(LIB) + @touch lib + +files: + perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO + +links: + /bin/rm -f Makefile + $(TOP)/util/point.sh Makefile.ssl Makefile ; + $(TOP)/util/mklink.sh ../../include $(EXHEADER) + $(TOP)/util/mklink.sh ../../test $(TEST) + $(TOP)/util/mklink.sh ../../apps $(APPS) + +install: + @for i in $(EXHEADER) ; \ + do \ + (cp $$i $(INSTALLTOP)/include/$$i; \ + chmod 644 $(INSTALLTOP)/include/$$i ); \ + done; + +tags: + ctags $(SRC) + +tests: + +lint: + lint -DLINT $(INCLUDES) $(SRC)>fluff + +depend: + $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) + +dclean: + perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new + mv -f Makefile.new $(MAKEFILE) + +clean: + /bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff + +errors: + +# DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/src/lib/libcrypto/err/err_code.pl b/src/lib/libcrypto/err/err_code.pl new file mode 100644 index 0000000000..ebc8eef913 --- /dev/null +++ b/src/lib/libcrypto/err/err_code.pl @@ -0,0 +1,105 @@ +#!/usr/bin/perl + +while (@ARGV) + { + $in=shift(@ARGV); + if ($in =~ /^-conf$/) + { + $in=shift(@ARGV); + open(IN,"<$in") || die "unable to open '$in'\n"; + while () + { + s/#.*$//; + s/\s+$//; + next if (/^$/); + if (/^L\s+(\S+)\s+(\S+)$/) + { $errfile{$1}=$2; } + elsif (/^F\s+(\S+)$/) + { $function{$1}=1; } + elsif (/^R\s+(\S+)\s+(\S+)$/) + { $r_value{$1}=$2; } + else { die "bad input line: $in:$.\n"; } + } + close(IN); + next; + } + + open(IN,"<$in") || die "unable to open '$in'\n"; + $last=""; + while () + { + if (/err\(([A-Z0-9]+_F_[0-9A-Z_]+)\s*,\s*([0-9A-Z]+_R_[0-9A-Z_]+)\s*\)/) + { + if ($1 != $last) + { + if ($function{$1} == 0) + { + printf STDERR "$. $1 is bad\n"; + } + } + $function{$1}++; + $last=$1; + $reason{$2}++; + } + } + close(IN); + } + +foreach (keys %function,keys %reason) + { + /^([A-Z0-9]+)_/; + $prefix{$1}++; + } + +@F=sort keys %function; +@R=sort keys %reason; +foreach $j (sort keys %prefix) + { + next if $errfile{$j} eq "NONE"; + printf STDERR "doing %-6s - ",$j; + if (defined($errfile{$j})) + { + open(OUT,">$errfile{$j}") || + die "unable to open '$errfile{$j}':$!\n"; + $close_file=1; + } + else + { + *OUT=*STDOUT; + $close=0; + } + @f=grep(/^${j}_/,@F); + @r=grep(/^${j}_/,@R); + $num=100; + print OUT "/* Error codes for the $j functions. */\n\n"; + print OUT "/* Function codes. */\n"; + $f_count=0; + foreach $i (@f) + { + $z=6-int(length($i)/8); + printf OUT "#define $i%s $num\n","\t" x $z; + $num++; + $f_count++; + } + $num=100; + print OUT "\n/* Reason codes. */\n"; + $r_count=0; + foreach $i (@r) + { + $z=6-int(length($i)/8); + if (defined($r_value{$i})) + { + printf OUT "#define $i%s $r_value{$i}\n","\t" x $z; + } + else + { + printf OUT "#define $i%s $num\n","\t" x $z; + $num++; + } + $r_count++; + } + close(OUT) if $close_file; + + printf STDERR "%3d functions, %3d reasons\n",$f_count,$r_count; + } + diff --git a/src/lib/libcrypto/err/err_genc.pl b/src/lib/libcrypto/err/err_genc.pl new file mode 100644 index 0000000000..a8e36c2f0c --- /dev/null +++ b/src/lib/libcrypto/err/err_genc.pl @@ -0,0 +1,198 @@ +#!/usr/bin/perl + +if ($ARGV[0] eq "-s") { $static=1; shift @ARGV; } + +($#ARGV == 1) || die "usage: $0 [-s]
\n"; +open(IN,"<$ARGV[0]") || die "unable to open $ARGV[0]:$!\n"; +open(STDOUT,">$ARGV[1]") || die "unable to open $ARGV[1]:$!\n"; + +$Func=0; +$Reas=0; +$fuction{'FOPEN'}='fopen'; +while () + { + if (/(\S+)\s*\(\);/) + { + $t=$1; + $t =~ s/\*//; + ($upper=$t) =~ tr/a-z/A-Z/; + $fuction{$upper}=$t; + } + next unless (/^#define\s+(\S+)\s/); + + $o=$1; + if ($o =~ /^([^_]+)_F_(.*)/) + { + $type=$1; + $Func++; + $n=$2; + $n=$fuction{$n} if (defined($fuction{$n})); + $out{$1."_str_functs"}.= + sprintf("{ERR_PACK(0,%s,0),\t\"$n\"},\n",$o); + } + elsif ($o =~ /^([^_]+)_R_(.*)/) + { + $type=$1; + $Reas++; + $r=$2; + $r =~ tr/A-Z_/a-z /; + $pkg{$type."_str_reasons"}=$type; + $out{$type."_str_reasons"}.=sprintf("{%-40s,\"$r\"},\n",$o); + } + elsif ($ARGV[0] =~ /rsaref/ && $o =~ /^RE_(.*)/) + { + $type="RSAREF"; + $Reas++; + $r=$1; + $r =~ tr/A-Z_/a-z /; + $pkg{$type."_str_reasons"}=$type; + $out{$type."_str_reasons"}.=sprintf("{%-40s,\"$r\"},\n",$o); + } + } +close(IN); + +&header($type,$ARGV[0]); + +foreach (sort keys %out) + { + print "static ERR_STRING_DATA ${_}[]=\n\t{\n"; + print $out{$_}; + print "{0,NULL},\n"; + print "\t};\n\n"; + } +print "#endif\n"; + +if ($static) + { $lib="ERR_LIB_$type"; } +else + { $lib="${type}_lib_error_code"; } + +$str=""; +$str.="#ifndef NO_ERR\n"; +$str.="\t\tERR_load_strings($lib,${type}_str_functs);\n" if $Func; +$str.="\t\tERR_load_strings($lib,${type}_str_reasons);\n" if $Reas; +$str.="#endif\n"; + +if (!$static) + { +print <<"EOF"; + +static int ${type}_lib_error_code=0; + +void ERR_load_${type}_strings() + { + static int init=1; + + if (${type}_lib_error_code == 0) + ${type}_lib_error_code=ERR_get_next_error_library(); + + if (init); + {; + init=0; +$str + } + } + +void ERR_${type}_error(function,reason,file,line) +int function; +int reason; +char *file; +int line; + { + if (${type}_lib_error_code == 0) + ${type}_lib_error_code=ERR_get_next_error_library(); + ERR_PUT_error(${type}_lib_error_code,function,reason,file,line); + } +EOF + } +else # $static + { + print <<"EOF"; + +void ERR_load_${type}_strings() + { + static int init=1; + + if (init); + {; + init=0; +$str + } + } +EOF + } + +sub header + { + ($type,$header)=@_; + + ($lc=$type) =~ tr/A-Z/a-z/; + $header =~ s/^.*\///; + + print "/* lib/$lc/${lc}\_err.c */\n"; + print <<'EOF'; +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +EOF + + print "#include \n"; + print "#include \"err.h\"\n"; + print "#include \"$header\"\n"; + print "\n/* BEGIN ERROR CODES */\n"; + print "#ifndef NO_ERR\n"; + } + diff --git a/src/lib/libcrypto/err/error.err b/src/lib/libcrypto/err/error.err new file mode 100644 index 0000000000..f09557d8d9 --- /dev/null +++ b/src/lib/libcrypto/err/error.err @@ -0,0 +1,13 @@ +/* Error codes for the ERR functions. */ + +/* Function codes. */ + +/* Reason codes. */ +#define ERR_R_BN_LIB 100 +#define ERR_R_DER_LIB 101 +#define ERR_R_MALLOC_FAILURE 102 +#define ERR_R_PEM_LIB 103 +#define ERR_R_RSA_LIB 104 +#define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED 105 +#define ERR_R_SYS_LIB 106 +#define ERR_R_X509_LIB 107 diff --git a/src/lib/libcrypto/err/ssleay.ec b/src/lib/libcrypto/err/ssleay.ec new file mode 100644 index 0000000000..10b5dbb59d --- /dev/null +++ b/src/lib/libcrypto/err/ssleay.ec @@ -0,0 +1,57 @@ +L ERR NONE +L CRYPTO crypto.err +L BN bn/bn.err +L RSA rsa/rsa.err +L DSA dsa/dsa.err +L DH dh/dh.err +L EVP evp/evp.err +L BUF buffer/buffer.err +L BIO bio/bio.err +L OBJ objects/objects.err +L PEM pem/pem.err +L X509 x509/x509.err +L METH meth/meth.err +L ASN1 asn1/asn1.err +L CONF conf/conf.err +L PROXY proxy/proxy.err +L PKCS7 pkcs7/pkcs7.err +L RSAREF ../rsaref/rsaref.err +L SSL ../ssl/ssl.err +L SSL2 ../ssl/ssl2.err +L SSL3 ../ssl/ssl3.err +L SSL23 ../ssl/ssl23.err + +F RSAREF_F_RSA_BN2BIN +F RSAREF_F_RSA_PRIVATE_DECRYPT +F RSAREF_F_RSA_PRIVATE_ENCRYPT +F RSAREF_F_RSA_PUBLIC_DECRYPT +F RSAREF_F_RSA_PUBLIC_ENCRYPT +#F SSL_F_CLIENT_CERTIFICATE + +R SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 +R SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 +R SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 +R SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 +R SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 +R SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 +R SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 +R SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 +R SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 +R SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 +R SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 + +R RSAREF_R_CONTENT_ENCODING 0x0400 +R RSAREF_R_DATA 0x0401 +R RSAREF_R_DIGEST_ALGORITHM 0x0402 +R RSAREF_R_ENCODING 0x0403 +R RSAREF_R_KEY 0x0404 +R RSAREF_R_KEY_ENCODING 0x0405 +R RSAREF_R_LEN 0x0406 +R RSAREF_R_MODULUS_LEN 0x0407 +R RSAREF_R_NEED_RANDOM 0x0408 +R RSAREF_R_PRIVATE_KEY 0x0409 +R RSAREF_R_PUBLIC_KEY 0x040a +R RSAREF_R_SIGNATURE 0x040b +R RSAREF_R_SIGNATURE_ENCODING 0x040c +R RSAREF_R_ENCRYPTION_ALGORITHM 0x040d + -- cgit v1.2.3-55-g6feb