summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/util')
-rw-r--r--src/lib/libcrypto/util/FreeBSD.sh6
-rw-r--r--src/lib/libcrypto/util/add_cr.pl123
-rw-r--r--src/lib/libcrypto/util/bat.sh134
-rw-r--r--src/lib/libcrypto/util/checkhash.pl222
-rw-r--r--src/lib/libcrypto/util/ck_errf.pl45
-rw-r--r--src/lib/libcrypto/util/clean-depend.pl54
-rw-r--r--src/lib/libcrypto/util/cygwin.sh127
-rw-r--r--src/lib/libcrypto/util/deleof.pl7
-rw-r--r--src/lib/libcrypto/util/dirname.pl18
-rw-r--r--src/lib/libcrypto/util/do_ms.sh19
-rw-r--r--src/lib/libcrypto/util/domd34
-rw-r--r--src/lib/libcrypto/util/err-ins.pl33
-rw-r--r--src/lib/libcrypto/util/extract-names.pl26
-rw-r--r--src/lib/libcrypto/util/files.pl61
-rw-r--r--src/lib/libcrypto/util/fipslink.pl78
-rw-r--r--src/lib/libcrypto/util/fixNT.sh14
-rw-r--r--src/lib/libcrypto/util/install.sh108
-rw-r--r--src/lib/libcrypto/util/libeay.num2869
-rw-r--r--src/lib/libcrypto/util/mk1mf.pl944
-rw-r--r--src/lib/libcrypto/util/mkcerts.sh220
-rw-r--r--src/lib/libcrypto/util/mkdef.pl1404
-rw-r--r--src/lib/libcrypto/util/mkdir-p.pl33
-rw-r--r--src/lib/libcrypto/util/mkerr.pl37
-rw-r--r--src/lib/libcrypto/util/mkfiles.pl125
-rw-r--r--src/lib/libcrypto/util/mklink.pl70
-rwxr-xr-xsrc/lib/libcrypto/util/opensslwrap.sh22
-rw-r--r--src/lib/libcrypto/util/perlpath.pl35
-rw-r--r--src/lib/libcrypto/util/pl/BC-16.pl151
-rw-r--r--src/lib/libcrypto/util/pl/BC-32.pl140
-rw-r--r--src/lib/libcrypto/util/pl/Mingw32.pl109
-rw-r--r--src/lib/libcrypto/util/pl/OS2-EMX.pl124
-rw-r--r--src/lib/libcrypto/util/pl/VC-16.pl177
-rw-r--r--src/lib/libcrypto/util/pl/VC-32-GMAKE.pl222
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl145
-rw-r--r--src/lib/libcrypto/util/pl/VC-CE.pl116
-rw-r--r--src/lib/libcrypto/util/pl/linux.pl109
-rw-r--r--src/lib/libcrypto/util/pl/ultrix.pl43
-rw-r--r--src/lib/libcrypto/util/pl/unix.pl101
-rw-r--r--src/lib/libcrypto/util/pod2man.pl1183
-rw-r--r--src/lib/libcrypto/util/pod2mantest58
-rw-r--r--src/lib/libcrypto/util/pod2mantest.pod15
-rw-r--r--src/lib/libcrypto/util/point.sh10
-rw-r--r--src/lib/libcrypto/util/selftest.pl195
-rwxr-xr-xsrc/lib/libcrypto/util/shlib_wrap.sh70
-rw-r--r--src/lib/libcrypto/util/sp-diff.pl80
-rw-r--r--src/lib/libcrypto/util/speed.sh39
-rw-r--r--src/lib/libcrypto/util/src-dep.pl147
-rw-r--r--src/lib/libcrypto/util/ssleay.num217
-rw-r--r--src/lib/libcrypto/util/tab_num.pl17
-rw-r--r--src/lib/libcrypto/util/x86asm.sh42
50 files changed, 10348 insertions, 30 deletions
diff --git a/src/lib/libcrypto/util/FreeBSD.sh b/src/lib/libcrypto/util/FreeBSD.sh
new file mode 100644
index 0000000000..db8edfc6aa
--- /dev/null
+++ b/src/lib/libcrypto/util/FreeBSD.sh
@@ -0,0 +1,6 @@
1#!/bin/sh
2
3perl util/perlpath.pl /usr/bin
4perl util/ssldir.pl /usr/local
5perl util/mk1mf.pl FreeBSD >Makefile.FreeBSD
6perl Configure FreeBSD
diff --git a/src/lib/libcrypto/util/add_cr.pl b/src/lib/libcrypto/util/add_cr.pl
new file mode 100644
index 0000000000..c7b62c11ec
--- /dev/null
+++ b/src/lib/libcrypto/util/add_cr.pl
@@ -0,0 +1,123 @@
1#!/usr/local/bin/perl
2#
3# This adds a copyright message to a souce code file.
4# It also gets the file name correct.
5#
6# perl util/add_cr.pl *.[ch] */*.[ch] */*/*.[ch]
7#
8
9foreach (@ARGV)
10 {
11 &dofile($_);
12 }
13
14sub dofile
15 {
16 local($file)=@_;
17
18 open(IN,"<$file") || die "unable to open $file:$!\n";
19
20 print STDERR "doing $file\n";
21 @in=<IN>;
22
23 return(1) if ($in[0] =~ / NOCW /);
24
25 @out=();
26 open(OUT,">$file.out") || die "unable to open $file.$$:$!\n";
27 push(@out,"/* $file */\n");
28 if (($in[1] !~ /^\/\* Copyright \(C\) [0-9-]+ Eric Young \(eay\@cryptsoft.com\)/))
29 {
30 push(@out,&Copyright);
31 $i=2;
32 @a=grep(/ Copyright \(C\) /,@in);
33 if ($#a >= 0)
34 {
35 while (($i <= $#in) && ($in[$i] ne " */\n"))
36 { $i++; }
37 $i++ if ($in[$i] eq " */\n");
38
39 while (($i <= $#in) && ($in[$i] =~ /^\s*$/))
40 { $i++; }
41
42 push(@out,"\n");
43 for ( ; $i <= $#in; $i++)
44 { push(@out,$in[$i]); }
45 }
46 else
47 { push(@out,@in); }
48 }
49 else
50 {
51 shift(@in);
52 push(@out,@in);
53 }
54 print OUT @out;
55 close(IN);
56 close(OUT);
57 rename("$file","$file.orig") || die "unable to rename $file:$!\n";
58 rename("$file.out",$file) || die "unable to rename $file.out:$!\n";
59 }
60
61
62
63sub Copyright
64 {
65 return <<'EOF';
66/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
67 * All rights reserved.
68 *
69 * This package is an SSL implementation written
70 * by Eric Young (eay@cryptsoft.com).
71 * The implementation was written so as to conform with Netscapes SSL.
72 *
73 * This library is free for commercial and non-commercial use as long as
74 * the following conditions are aheared to. The following conditions
75 * apply to all code found in this distribution, be it the RC4, RSA,
76 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
77 * included with this distribution is covered by the same copyright terms
78 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
79 *
80 * Copyright remains Eric Young's, and as such any Copyright notices in
81 * the code are not to be removed.
82 * If this package is used in a product, Eric Young should be given attribution
83 * as the author of the parts of the library used.
84 * This can be in the form of a textual message at program startup or
85 * in documentation (online or textual) provided with the package.
86 *
87 * Redistribution and use in source and binary forms, with or without
88 * modification, are permitted provided that the following conditions
89 * are met:
90 * 1. Redistributions of source code must retain the copyright
91 * notice, this list of conditions and the following disclaimer.
92 * 2. Redistributions in binary form must reproduce the above copyright
93 * notice, this list of conditions and the following disclaimer in the
94 * documentation and/or other materials provided with the distribution.
95 * 3. All advertising materials mentioning features or use of this software
96 * must display the following acknowledgement:
97 * "This product includes cryptographic software written by
98 * Eric Young (eay@cryptsoft.com)"
99 * The word 'cryptographic' can be left out if the rouines from the library
100 * being used are not cryptographic related :-).
101 * 4. If you include any Windows specific code (or a derivative thereof) from
102 * the apps directory (application code) you must include an acknowledgement:
103 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
104 *
105 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
106 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
107 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
108 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
109 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
110 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
111 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
112 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
113 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
114 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
115 * SUCH DAMAGE.
116 *
117 * The licence and distribution terms for any publically available version or
118 * derivative of this code cannot be changed. i.e. this code cannot simply be
119 * copied and put under another distribution licence
120 * [including the GNU Public Licence.]
121 */
122EOF
123 }
diff --git a/src/lib/libcrypto/util/bat.sh b/src/lib/libcrypto/util/bat.sh
new file mode 100644
index 0000000000..4d9a8287d0
--- /dev/null
+++ b/src/lib/libcrypto/util/bat.sh
@@ -0,0 +1,134 @@
1#!/usr/local/bin/perl
2
3$infile="/home/eay/ssl/SSLeay/MINFO";
4
5open(IN,"<$infile") || die "unable to open $infile:$!\n";
6$_=<IN>;
7for (;;)
8 {
9 chop;
10
11 ($key,$val)=/^([^=]+)=(.*)/;
12 if ($key eq "RELATIVE_DIRECTORY")
13 {
14 if ($lib ne "")
15 {
16 $uc=$lib;
17 $uc =~ s/^lib(.*)\.a/$1/;
18 $uc =~ tr/a-z/A-Z/;
19 $lib_nam{$uc}=$uc;
20 $lib_obj{$uc}.=$libobj." ";
21 }
22 last if ($val eq "FINISHED");
23 $lib="";
24 $libobj="";
25 $dir=$val;
26 }
27
28 if ($key eq "TEST")
29 { $test.=&var_add($dir,$val); }
30
31 if (($key eq "PROGS") || ($key eq "E_OBJ"))
32 { $e_exe.=&var_add($dir,$val); }
33
34 if ($key eq "LIB")
35 {
36 $lib=$val;
37 $lib =~ s/^.*\/([^\/]+)$/$1/;
38 }
39
40 if ($key eq "EXHEADER")
41 { $exheader.=&var_add($dir,$val); }
42
43 if ($key eq "HEADER")
44 { $header.=&var_add($dir,$val); }
45
46 if ($key eq "LIBSRC")
47 { $libsrc.=&var_add($dir,$val); }
48
49 if (!($_=<IN>))
50 { $_="RELATIVE_DIRECTORY=FINISHED\n"; }
51 }
52close(IN);
53
54@a=split(/\s+/,$libsrc);
55foreach (@a)
56 {
57 print "${_}.c\n";
58 }
59
60sub var_add
61 {
62 local($dir,$val)=@_;
63 local(@a,$_,$ret);
64
65 return("") if $no_engine && $dir =~ /\/engine/;
66 return("") if $no_idea && $dir =~ /\/idea/;
67 return("") if $no_rc2 && $dir =~ /\/rc2/;
68 return("") if $no_rc4 && $dir =~ /\/rc4/;
69 return("") if $no_rsa && $dir =~ /\/rsa/;
70 return("") if $no_rsa && $dir =~ /^rsaref/;
71 return("") if $no_dsa && $dir =~ /\/dsa/;
72 return("") if $no_dh && $dir =~ /\/dh/;
73 if ($no_des && $dir =~ /\/des/)
74 {
75 if ($val =~ /read_pwd/)
76 { return("$dir/read_pwd "); }
77 else
78 { return(""); }
79 }
80 return("") if $no_mdc2 && $dir =~ /\/mdc2/;
81 return("") if $no_sock && $dir =~ /\/proxy/;
82 return("") if $no_bf && $dir =~ /\/bf/;
83 return("") if $no_cast && $dir =~ /\/cast/;
84
85 $val =~ s/^\s*(.*)\s*$/$1/;
86 @a=split(/\s+/,$val);
87 grep(s/\.[och]$//,@a);
88
89 @a=grep(!/^e_.*_3d$/,@a) if $no_des;
90 @a=grep(!/^e_.*_d$/,@a) if $no_des;
91 @a=grep(!/^e_.*_i$/,@a) if $no_idea;
92 @a=grep(!/^e_.*_r2$/,@a) if $no_rc2;
93 @a=grep(!/^e_.*_bf$/,@a) if $no_bf;
94 @a=grep(!/^e_.*_c$/,@a) if $no_cast;
95 @a=grep(!/^e_rc4$/,@a) if $no_rc4;
96
97 @a=grep(!/(^s2_)|(^s23_)/,@a) if $no_ssl2;
98 @a=grep(!/(^s3_)|(^s23_)/,@a) if $no_ssl3;
99
100 @a=grep(!/(_sock$)|(_acpt$)|(_conn$)|(^pxy_)/,@a) if $no_sock;
101
102 @a=grep(!/(^md2)|(_md2$)/,@a) if $no_md2;
103 @a=grep(!/(^md5)|(_md5$)/,@a) if $no_md5;
104
105 @a=grep(!/(^d2i_r_)|(^i2d_r_)/,@a) if $no_rsa;
106 @a=grep(!/(^p_open$)|(^p_seal$)/,@a) if $no_rsa;
107 @a=grep(!/(^pem_seal$)/,@a) if $no_rsa;
108
109 @a=grep(!/(m_dss$)|(m_dss1$)/,@a) if $no_dsa;
110 @a=grep(!/(^d2i_s_)|(^i2d_s_)|(_dsap$)/,@a) if $no_dsa;
111
112 @a=grep(!/^n_pkey$/,@a) if $no_rsa || $no_rc4;
113
114 @a=grep(!/_dhp$/,@a) if $no_dh;
115
116 @a=grep(!/(^sha[^1])|(_sha$)|(m_dss$)/,@a) if $no_sha;
117 @a=grep(!/(^sha1)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
118 @a=grep(!/_mdc2$/,@a) if $no_mdc2;
119
120 @a=grep(!/^engine$/,@a) if $no_engine;
121 @a=grep(!/(^rsa$)|(^genrsa$)|(^req$)|(^ca$)/,@a) if $no_rsa;
122 @a=grep(!/(^dsa$)|(^gendsa$)|(^dsaparam$)/,@a) if $no_dsa;
123 @a=grep(!/^gendsa$/,@a) if $no_sha1;
124 @a=grep(!/(^dh$)|(^gendh$)/,@a) if $no_dh;
125
126 @a=grep(!/(^dh)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
127
128 grep($_="$dir/$_",@a);
129 @a=grep(!/(^|\/)s_/,@a) if $no_sock;
130 @a=grep(!/(^|\/)bio_sock/,@a) if $no_sock;
131 $ret=join(' ',@a)." ";
132 return($ret);
133 }
134
diff --git a/src/lib/libcrypto/util/checkhash.pl b/src/lib/libcrypto/util/checkhash.pl
new file mode 100644
index 0000000000..c61fa72178
--- /dev/null
+++ b/src/lib/libcrypto/util/checkhash.pl
@@ -0,0 +1,222 @@
1#!/usr/bin/env perl -w
2
3my $package = caller;
4
5if (!(defined $package))
6 {
7 my $retval = check_hashes(@ARGV);
8 exit $retval;
9 }
10
111;
12
13sub check_hashes
14 {
15
16 my @args = @_;
17
18 my $change_dir = "";
19 my $check_program = "sha/fips_standalone_sha1";
20
21 my $verbose = 0;
22 my $badfiles = 0;
23 my $rebuild = 0;
24 my $force_rewrite = 0;
25 my $hash_file = "fipshashes.c";
26 my $recurse = 0;
27
28 my @fingerprint_files;
29
30 while (@args)
31 {
32 my $arg = $args[0];
33 if ($arg eq "-chdir")
34 {
35 shift @args;
36 $change_dir = shift @args;
37 }
38 elsif ($arg eq "-rebuild")
39 {
40 shift @args;
41 $rebuild = 1;
42 }
43 elsif ($arg eq "-verbose")
44 {
45 shift @args;
46 $verbose = 1;
47 }
48 elsif ($arg eq "-force-rewrite")
49 {
50 shift @args;
51 $force_rewrite = 1;
52 }
53 elsif ($arg eq "-hash_file")
54 {
55 shift @args;
56 $hash_file = shift @args;
57 }
58 elsif ($arg eq "-recurse")
59 {
60 shift @args;
61 $recurse = 1;
62 }
63 elsif ($arg eq "-program_path")
64 {
65 shift @args;
66 $check_program = shift @args;
67 }
68 else
69 {
70 print STDERR "Unknown Option $arg";
71 return 1;
72 }
73
74 }
75
76 chdir $change_dir if $change_dir ne "";
77
78 if ($recurse)
79 {
80 @fingerprint_files = ("fingerprint.sha1",
81 <*/fingerprint.sha1>);
82 }
83 else
84 {
85 push @fingerprint_files, $hash_file;
86 }
87
88 foreach $fp (@fingerprint_files)
89 {
90 if (!open(IN, "$fp"))
91 {
92 print STDERR "Can't open file $fp";
93 return 1;
94 }
95 print STDERR "Opening Fingerprint file $fp\n" if $verbose;
96 my $dir = $fp;
97 $dir =~ s/[^\/]*$//;
98 while (<IN>)
99 {
100 chomp;
101 if (!(($file, $hash) = /^\"HMAC-SHA1\((.*)\)\s*=\s*(\w*)\",$/))
102 {
103 /^\"/ || next;
104 print STDERR "FATAL: Invalid syntax in file $fp\n";
105 print STDERR "Line:\n$_\n";
106 fatal_error();
107 return 1;
108 }
109 if (!$rebuild && length($hash) != 40)
110 {
111 print STDERR "FATAL: Invalid hash length in $fp for file $file\n";
112 fatal_error();
113 return 1;
114 }
115 push @hashed_files, "$dir$file";
116 if (exists $hashes{"$dir$file"})
117 {
118 print STDERR "FATAL: Duplicate Hash file $dir$file\n";
119 fatal_error();
120 return 1;
121 }
122 if (! -r "$dir$file")
123 {
124 print STDERR "FATAL: Can't access $dir$file\n";
125 fatal_error();
126 return 1;
127 }
128 $hashes{"$dir$file"} = $hash;
129 }
130 close IN;
131 }
132
133 @checked_hashes = `$check_program @hashed_files`;
134
135 if ($? != 0)
136 {
137 print STDERR "Error running hash program $check_program\n";
138 fatal_error();
139 return 1;
140 }
141
142 if (@checked_hashes != @hashed_files)
143 {
144 print STDERR "FATAL: hash count incorrect\n";
145 fatal_error();
146 return 1;
147 }
148
149 foreach (@checked_hashes)
150 {
151 chomp;
152 if (!(($file, $hash) = /^HMAC-SHA1\((.*)\)\s*=\s*(\w*)$/))
153 {
154 print STDERR "FATAL: Invalid syntax in file $fp\n";
155 print STDERR "Line:\n$_\n";
156 fatal_error();
157 return 1;
158 }
159 if (length($hash) != 40)
160 {
161 print STDERR "FATAL: Invalid hash length for file $file\n";
162 fatal_error();
163 return 1;
164 }
165 if ($hash ne $hashes{$file})
166 {
167 if ($rebuild)
168 {
169 print STDERR "Updating hash on file $file\n";
170 $hashes{$file} = $hash;
171 }
172 else
173 {
174 print STDERR "Hash check failed for file $file\n";
175 }
176 $badfiles++;
177 }
178 elsif ($verbose)
179 { print "Hash Check OK for $file\n";}
180 }
181
182
183 if ($badfiles && !$rebuild)
184 {
185 print STDERR "FATAL: hash mismatch on $badfiles files\n";
186 fatal_error();
187 return 1;
188 }
189
190 if ($badfiles || $force_rewrite)
191 {
192 print "Updating Hash file $hash_file\n";
193 if (!open(OUT, ">$hash_file"))
194 {
195 print STDERR "Error rewriting $hash_file";
196 return 1;
197 }
198 print OUT "const char * const FIPS_source_hashes[] = {\n";
199 foreach (@hashed_files)
200 {
201 print OUT "\"HMAC-SHA1($_)= $hashes{$_}\",\n";
202 }
203 print OUT "};\n";
204 close OUT;
205 }
206
207 if (!$badfiles)
208 {
209 print "FIPS hash check successful\n";
210 }
211
212 return 0;
213
214 }
215
216
217sub fatal_error
218 {
219 print STDERR "*** Your source code does not match the FIPS validated source ***\n";
220 }
221
222
diff --git a/src/lib/libcrypto/util/ck_errf.pl b/src/lib/libcrypto/util/ck_errf.pl
new file mode 100644
index 0000000000..7a24d6c5a2
--- /dev/null
+++ b/src/lib/libcrypto/util/ck_errf.pl
@@ -0,0 +1,45 @@
1#!/usr/local/bin/perl
2#
3# This is just a quick script to scan for cases where the 'error'
4# function name in a XXXerr() macro is wrong.
5#
6# Run in the top level by going
7# perl util/ck_errf.pl */*.c */*/*.c
8#
9
10foreach $file (@ARGV)
11 {
12 open(IN,"<$file") || die "unable to open $file\n";
13 $func="";
14 while (<IN>)
15 {
16 if (/^[a-zA-Z].+[\s*]([A-Za-z_0-9]+)\(.*\)/)
17 {
18 $func=$1;
19 $func =~ tr/A-Z/a-z/;
20 }
21 if (/([A-Z0-9]+)err\(([^,]+)/)
22 {
23 next if ($func eq "");
24 $errlib=$1;
25 $n=$2;
26 if ($n !~ /([^_]+)_F_(.+)$/)
27 {
28 # print "check -$file:$.:$func:$n\n";
29 next;
30 }
31 $lib=$1;
32 $n=$2;
33
34 if ($lib ne $errlib)
35 { print "$file:$.:$func:$n\n"; next; }
36
37 $n =~ tr/A-Z/a-z/;
38 if (($n ne $func) && ($errlib ne "SYS"))
39 { print "$file:$.:$func:$n\n"; next; }
40 # print "$func:$1\n";
41 }
42 }
43 close(IN);
44 }
45
diff --git a/src/lib/libcrypto/util/clean-depend.pl b/src/lib/libcrypto/util/clean-depend.pl
new file mode 100644
index 0000000000..6c485d1e2f
--- /dev/null
+++ b/src/lib/libcrypto/util/clean-depend.pl
@@ -0,0 +1,54 @@
1#!/usr/local/bin/perl -w
2# Clean the dependency list in a makefile of standard includes...
3# Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999
4
5use strict;
6
7while(<STDIN>) {
8 print;
9 last if /^# DO NOT DELETE THIS LINE/;
10}
11
12my %files;
13
14my $thisfile="";
15while(<STDIN>) {
16 my ($dummy, $file,$deps)=/^((.*):)? (.*)$/;
17 my $origfile="";
18 $thisfile=$file if defined $file;
19 next if !defined $deps;
20 $origfile=$thisfile;
21 $origfile=~s/\.o$/.c/;
22 my @deps=split ' ',$deps;
23 @deps=grep(!/^\//,@deps);
24 @deps=grep(!/^\\$/,@deps);
25 @deps=grep(!/^$origfile$/,@deps);
26# pull out the kludged kerberos header (if present).
27 @deps=grep(!/^[.\/]+\/krb5.h/,@deps);
28 push @{$files{$thisfile}},@deps;
29}
30
31my $file;
32foreach $file (sort keys %files) {
33 my $len=0;
34 my $dep;
35 my $origfile=$file;
36 $origfile=~s/\.o$/.c/;
37 $file=~s/^\.\///;
38 push @{$files{$file}},$origfile;
39 my $prevdep="";
40 foreach $dep (sort @{$files{$file}}) {
41 $dep=~s/^\.\///;
42 next if $prevdep eq $dep; # to exterminate duplicates...
43 $prevdep = $dep;
44 $len=0 if $len+length($dep)+1 >= 80;
45 if($len == 0) {
46 print "\n$file:";
47 $len=length($file)+1;
48 }
49 print " $dep";
50 $len+=length($dep)+1;
51 }
52}
53
54print "\n";
diff --git a/src/lib/libcrypto/util/cygwin.sh b/src/lib/libcrypto/util/cygwin.sh
new file mode 100644
index 0000000000..7f791d47f4
--- /dev/null
+++ b/src/lib/libcrypto/util/cygwin.sh
@@ -0,0 +1,127 @@
1#!/bin/bash
2#
3# This script configures, builds and packs the binary package for
4# the Cygwin net distribution version of OpenSSL
5#
6
7# Uncomment when debugging
8#set -x
9
10CONFIG_OPTIONS="--prefix=/usr shared no-idea no-rc5 no-mdc2"
11INSTALL_PREFIX=/tmp/install
12
13VERSION=
14SUBVERSION=$1
15
16function cleanup()
17{
18 rm -rf ${INSTALL_PREFIX}/etc
19 rm -rf ${INSTALL_PREFIX}/usr
20}
21
22function get_openssl_version()
23{
24 eval `grep '^VERSION=' Makefile`
25 if [ -z "${VERSION}" ]
26 then
27 echo "Error: Couldn't retrieve OpenSSL version from Makefile."
28 echo " Check value of variable VERSION in Makefile."
29 exit 1
30 fi
31}
32
33function base_install()
34{
35 mkdir -p ${INSTALL_PREFIX}
36 cleanup
37 make install INSTALL_PREFIX="${INSTALL_PREFIX}"
38}
39
40function doc_install()
41{
42 DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl
43
44 mkdir -p ${DOC_DIR}
45 cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR}
46
47 create_cygwin_readme
48}
49
50function create_cygwin_readme()
51{
52 README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
53 README_FILE=${README_DIR}/openssl-${VERSION}.README
54
55 mkdir -p ${README_DIR}
56 cat > ${README_FILE} <<- EOF
57 The Cygwin version has been built using the following configure:
58
59 ./config ${CONFIG_OPTIONS}
60
61 The IDEA, RC5 and MDC2 algorithms are disabled due to patent and/or
62 licensing issues.
63 EOF
64}
65
66function create_profile_files()
67{
68 PROFILE_DIR=${INSTALL_PREFIX}/etc/profile.d
69
70 mkdir -p $PROFILE_DIR
71 cat > ${PROFILE_DIR}/openssl.sh <<- "EOF"
72 export MANPATH="${MANPATH}:/usr/ssl/man"
73 EOF
74 cat > ${PROFILE_DIR}/openssl.csh <<- "EOF"
75 if ( $?MANPATH ) then
76 setenv MANPATH "${MANPATH}:/usr/ssl/man"
77 else
78 setenv MANPATH ":/usr/ssl/man"
79 endif
80 EOF
81}
82
83if [ -z "${SUBVERSION}" ]
84then
85 echo "Usage: $0 subversion"
86 exit 1
87fi
88
89if [ ! -f config ]
90then
91 echo "You must start this script in the OpenSSL toplevel source dir."
92 exit 1
93fi
94
95./config ${CONFIG_OPTIONS}
96
97get_openssl_version
98
99make depend || exit 1
100
101make || exit 1
102
103base_install
104
105doc_install
106
107create_cygwin_readme
108
109create_profile_files
110
111cd ${INSTALL_PREFIX}
112strip usr/bin/*.exe usr/bin/*.dll
113
114# Runtime package
115find etc usr/bin usr/share/doc usr/ssl/certs usr/ssl/man/man[157] \
116 usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d |
117tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
118# Development package
119find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d |
120tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 -
121
122ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2
123ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2
124
125cleanup
126
127exit 0
diff --git a/src/lib/libcrypto/util/deleof.pl b/src/lib/libcrypto/util/deleof.pl
new file mode 100644
index 0000000000..155acd88ff
--- /dev/null
+++ b/src/lib/libcrypto/util/deleof.pl
@@ -0,0 +1,7 @@
1#!/usr/local/bin/perl
2
3while (<>)
4 {
5 print
6 last if (/^# DO NOT DELETE THIS LINE/);
7 }
diff --git a/src/lib/libcrypto/util/dirname.pl b/src/lib/libcrypto/util/dirname.pl
new file mode 100644
index 0000000000..d7a66d96ac
--- /dev/null
+++ b/src/lib/libcrypto/util/dirname.pl
@@ -0,0 +1,18 @@
1#!/usr/local/bin/perl
2
3if ($#ARGV < 0) {
4 die "dirname.pl: too few arguments\n";
5} elsif ($#ARGV > 0) {
6 die "dirname.pl: too many arguments\n";
7}
8
9my $d = $ARGV[0];
10
11if ($d =~ m|.*/.*|) {
12 $d =~ s|/[^/]*$||;
13} else {
14 $d = ".";
15}
16
17print $d,"\n";
18exit(0);
diff --git a/src/lib/libcrypto/util/do_ms.sh b/src/lib/libcrypto/util/do_ms.sh
new file mode 100644
index 0000000000..515b074cff
--- /dev/null
+++ b/src/lib/libcrypto/util/do_ms.sh
@@ -0,0 +1,19 @@
1#!/bin/sh
2#
3# generate the Microsoft makefiles and .def files
4#
5
6PATH=util:../util:$PATH
7
8# perl util/mk1mf.pl no-sock VC-MSDOS >ms/msdos.mak
9# perl util/mk1mf.pl VC-W31-32 >ms/w31.mak
10perl util/mk1mf.pl dll VC-WIN16 >ms/w31dll.mak
11# perl util/mk1mf.pl VC-WIN32 >ms/nt.mak
12perl util/mk1mf.pl dll VC-WIN32 >ms/ntdll.mak
13perl util/mk1mf.pl Mingw32 >ms/mingw32.mak
14perl util/mk1mf.pl Mingw32-files >ms/mingw32f.mak
15
16perl util/mkdef.pl 16 libeay > ms/libeay16.def
17perl util/mkdef.pl 32 libeay > ms/libeay32.def
18perl util/mkdef.pl 16 ssleay > ms/ssleay16.def
19perl util/mkdef.pl 32 ssleay > ms/ssleay32.def
diff --git a/src/lib/libcrypto/util/domd b/src/lib/libcrypto/util/domd
new file mode 100644
index 0000000000..5610521f0b
--- /dev/null
+++ b/src/lib/libcrypto/util/domd
@@ -0,0 +1,34 @@
1#!/bin/sh
2# Do a makedepend, only leave out the standard headers
3# Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999
4
5TOP=$1
6shift
7if [ "$1" = "-MD" ]; then
8 shift
9 MAKEDEPEND=$1
10 shift
11fi
12if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi
13
14cp Makefile Makefile.save
15# fake the presence of Kerberos
16touch $TOP/krb5.h
17if [ "$MAKEDEPEND" = "gcc" ]; then
18 args=""
19 while [ $# -gt 0 ]; do
20 if [ "$1" != "--" ]; then args="$args $1"; fi
21 shift
22 done
23 sed -e '/^# DO NOT DELETE.*/,$d' < Makefile > Makefile.tmp
24 echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp
25 gcc -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp
26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new
27 rm -f Makefile.tmp
28else
29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile $@
30 ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new
31fi
32mv Makefile.new Makefile
33# unfake the presence of Kerberos
34rm $TOP/krb5.h
diff --git a/src/lib/libcrypto/util/err-ins.pl b/src/lib/libcrypto/util/err-ins.pl
new file mode 100644
index 0000000000..31b70df8d0
--- /dev/null
+++ b/src/lib/libcrypto/util/err-ins.pl
@@ -0,0 +1,33 @@
1#!/usr/local/bin/perl
2#
3# tack error codes onto the end of a file
4#
5
6open(ERR,$ARGV[0]) || die "unable to open error file '$ARGV[0]':$!\n";
7@err=<ERR>;
8close(ERR);
9
10open(IN,$ARGV[1]) || die "unable to open header file '$ARGV[1]':$!\n";
11
12@out="";
13while (<IN>)
14 {
15 push(@out,$_);
16 last if /BEGIN ERROR CODES/;
17 }
18close(IN);
19
20open(OUT,">$ARGV[1]") || die "unable to open header file '$ARGV[1]':$1\n";
21print OUT @out;
22print OUT @err;
23print OUT <<"EOF";
24
25#ifdef __cplusplus
26}
27#endif
28#endif
29
30EOF
31close(OUT);
32
33
diff --git a/src/lib/libcrypto/util/extract-names.pl b/src/lib/libcrypto/util/extract-names.pl
new file mode 100644
index 0000000000..35bd6ed843
--- /dev/null
+++ b/src/lib/libcrypto/util/extract-names.pl
@@ -0,0 +1,26 @@
1#!/usr/bin/perl
2
3$/ = ""; # Eat a paragraph at once.
4while(<STDIN>) {
5 chop;
6 s/\n/ /gm;
7 if (/^=head1 /) {
8 $name = 0;
9 } elsif ($name) {
10 if (/ - /) {
11 s/ - .*//;
12 s/,\s+/,/g;
13 s/\s+,/,/g;
14 s/^\s+//g;
15 s/\s+$//g;
16 s/\s/_/g;
17 push @words, split ',';
18 }
19 }
20 if (/^=head1 *NAME *$/) {
21 $name = 1;
22 }
23}
24
25print join("\n", @words),"\n";
26
diff --git a/src/lib/libcrypto/util/files.pl b/src/lib/libcrypto/util/files.pl
new file mode 100644
index 0000000000..41f033e3b9
--- /dev/null
+++ b/src/lib/libcrypto/util/files.pl
@@ -0,0 +1,61 @@
1#!/usr/local/bin/perl
2#
3# used to generate the file MINFO for use by util/mk1mf.pl
4# It is basically a list of all variables from the passed makefile
5#
6
7$s="";
8while (<>)
9 {
10 chop;
11 s/#.*//;
12 if (/^(\S+)\s*=\s*(.*)$/)
13 {
14 $o="";
15 ($s,$b)=($1,$2);
16 for (;;)
17 {
18 if ($b =~ /\\$/)
19 {
20 chop($b);
21 $o.=$b." ";
22 $b=<>;
23 chop($b);
24 }
25 else
26 {
27 $o.=$b." ";
28 last;
29 }
30 }
31 $o =~ s/^\s+//;
32 $o =~ s/\s+$//;
33 $o =~ s/\s+/ /g;
34
35 $o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
36 $sym{$s}=$o;
37 }
38 }
39
40$pwd=`pwd`; chop($pwd);
41
42if ($sym{'TOP'} eq ".")
43 {
44 $n=0;
45 $dir=".";
46 }
47else {
48 $n=split(/\//,$sym{'TOP'});
49 @_=split(/\//,$pwd);
50 $z=$#_-$n+1;
51 foreach $i ($z .. $#_) { $dir.=$_[$i]."/"; }
52 chop($dir);
53 }
54
55print "RELATIVE_DIRECTORY=$dir\n";
56
57foreach (sort keys %sym)
58 {
59 print "$_=$sym{$_}\n";
60 }
61print "RELATIVE_DIRECTORY=\n";
diff --git a/src/lib/libcrypto/util/fipslink.pl b/src/lib/libcrypto/util/fipslink.pl
new file mode 100644
index 0000000000..a893833c5c
--- /dev/null
+++ b/src/lib/libcrypto/util/fipslink.pl
@@ -0,0 +1,78 @@
1#!/usr/bin/perl
2
3sub check_env
4 {
5 my @ret;
6 foreach (@_)
7 {
8 die "Environment variable $_ not defined!\n" unless exists $ENV{$_};
9 push @ret, $ENV{$_};
10 }
11 return @ret;
12 }
13
14
15my ($fips_cc,$fips_cc_args, $fips_link,$fips_target, $fips_libdir, $sha1_exe)
16 = check_env("FIPS_CC", "FIPS_CC_ARGS", "FIPS_LINK", "FIPS_TARGET",
17 "FIPSLIB_D", "FIPS_SHA1_EXE");
18
19
20
21if (exists $ENV{"PREMAIN_DSO_EXE"})
22 {
23 $fips_premain_dso = $ENV{"PREMAIN_DSO_EXE"};
24 }
25 else
26 {
27 $fips_premain_dso = "";
28 }
29
30check_hash($sha1_exe, "fips_premain.c");
31check_hash($sha1_exe, "fipscanister.o");
32
33
34print "Integrity check OK\n";
35
36print "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c\n";
37system "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c";
38die "First stage Compile failure" if $? != 0;
39
40print "$fips_link @ARGV\n";
41system "$fips_link @ARGV";
42die "First stage Link failure" if $? != 0;
43
44
45print "$fips_premain_dso $fips_target\n";
46$fips_hash=`$fips_premain_dso $fips_target`;
47chomp $fips_hash;
48die "Get hash failure" if $? != 0;
49
50
51print "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c\n";
52system "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c";
53die "Second stage Compile failure" if $? != 0;
54
55
56print "$fips_link @ARGV\n";
57system "$fips_link @ARGV";
58die "Second stage Link failure" if $? != 0;
59
60sub check_hash
61 {
62 my ($sha1_exe, $filename) = @_;
63 my ($hashfile, $hashval);
64
65 open(IN, "${fips_libdir}/${filename}.sha1") || die "Cannot open file hash file ${fips_libdir}/${filename}.sha1";
66 $hashfile = <IN>;
67 close IN;
68 $hashval = `$sha1_exe ${fips_libdir}/$filename`;
69 chomp $hashfile;
70 chomp $hashval;
71 $hashfile =~ s/^.*=\s+//;
72 $hashval =~ s/^.*=\s+//;
73 die "Invalid hash syntax in file" if (length($hashfile) != 40);
74 die "Invalid hash received for file" if (length($hashval) != 40);
75 die "***HASH VALUE MISMATCH FOR FILE $filename ***" if ($hashval ne $hashfile);
76 }
77
78
diff --git a/src/lib/libcrypto/util/fixNT.sh b/src/lib/libcrypto/util/fixNT.sh
new file mode 100644
index 0000000000..ab9e766b86
--- /dev/null
+++ b/src/lib/libcrypto/util/fixNT.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2#
3# clean up the mess that NT makes of my source tree
4#
5
6if [ -f makefile -a ! -f Makefile ]; then
7 /bin/mv makefile Makefile
8fi
9chmod +x Configure util/*
10echo cleaning
11/bin/rm -f `find . -name '*.$$$' -print` 2>/dev/null >/dev/null
12echo 'removing those damn ^M'
13perl -pi -e 's/\015//' `find . -type 'f' -print |grep -v '.obj$' |grep -v '.der$' |grep -v '.gz'`
14make -f Makefile links
diff --git a/src/lib/libcrypto/util/install.sh b/src/lib/libcrypto/util/install.sh
new file mode 100644
index 0000000000..e1d0c982df
--- /dev/null
+++ b/src/lib/libcrypto/util/install.sh
@@ -0,0 +1,108 @@
1#!/bin/sh
2#
3# install - install a program, script, or datafile
4# This comes from X11R5; it is not part of GNU.
5#
6# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
7#
8# This script is compatible with the BSD install script, but was written
9# from scratch.
10#
11
12
13# set DOITPROG to echo to test this script
14
15doit="${DOITPROG:-}"
16
17
18# put in absolute paths if you don't have them in your path; or use env. vars.
19
20mvprog="${MVPROG:-mv}"
21cpprog="${CPPROG:-cp}"
22chmodprog="${CHMODPROG:-chmod}"
23chownprog="${CHOWNPROG:-chown}"
24chgrpprog="${CHGRPPROG:-chgrp}"
25stripprog="${STRIPPROG:-strip}"
26rmprog="${RMPROG:-rm}"
27
28instcmd="$mvprog"
29chmodcmd=""
30chowncmd=""
31chgrpcmd=""
32stripcmd=""
33rmcmd="$rmprog -f"
34src=""
35dst=""
36
37while [ x"$1" != x ]; do
38 case $1 in
39 -c) instcmd="$cpprog"
40 shift
41 continue;;
42
43 -m) chmodcmd="$chmodprog $2"
44 shift
45 shift
46 continue;;
47
48 -o) chowncmd="$chownprog $2"
49 shift
50 shift
51 continue;;
52
53 -g) chgrpcmd="$chgrpprog $2"
54 shift
55 shift
56 continue;;
57
58 -s) stripcmd="$stripprog"
59 shift
60 continue;;
61
62 *) if [ x"$src" = x ]
63 then
64 src=$1
65 else
66 dst=$1
67 fi
68 shift
69 continue;;
70 esac
71done
72
73if [ x"$src" = x ]
74then
75 echo "install: no input file specified"
76 exit 1
77fi
78
79if [ x"$dst" = x ]
80then
81 echo "install: no destination specified"
82 exit 1
83fi
84
85
86# if destination is a directory, append the input filename; if your system
87# does not like double slashes in filenames, you may need to add some logic
88
89if [ -d $dst ]
90then
91 dst="$dst"/`basename $src`
92fi
93
94
95# get rid of the old one and mode the new one in
96
97$doit $rmcmd $dst
98$doit $instcmd $src $dst
99
100
101# and set any options; do chmod last to preserve setuid bits
102
103if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; fi
104if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; fi
105if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; fi
106if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; fi
107
108exit 0
diff --git a/src/lib/libcrypto/util/libeay.num b/src/lib/libcrypto/util/libeay.num
new file mode 100644
index 0000000000..56fb7446e0
--- /dev/null
+++ b/src/lib/libcrypto/util/libeay.num
@@ -0,0 +1,2869 @@
1SSLeay 1 EXIST::FUNCTION:
2SSLeay_version 2 EXIST::FUNCTION:
3ASN1_BIT_STRING_asn1_meth 3 EXIST::FUNCTION:
4ASN1_HEADER_free 4 EXIST::FUNCTION:
5ASN1_HEADER_new 5 EXIST::FUNCTION:
6ASN1_IA5STRING_asn1_meth 6 EXIST::FUNCTION:
7ASN1_INTEGER_get 7 EXIST::FUNCTION:
8ASN1_INTEGER_set 8 EXIST::FUNCTION:
9ASN1_INTEGER_to_BN 9 EXIST::FUNCTION:
10ASN1_OBJECT_create 10 EXIST::FUNCTION:
11ASN1_OBJECT_free 11 EXIST::FUNCTION:
12ASN1_OBJECT_new 12 EXIST::FUNCTION:
13ASN1_PRINTABLE_type 13 EXIST::FUNCTION:
14ASN1_STRING_cmp 14 EXIST::FUNCTION:
15ASN1_STRING_dup 15 EXIST::FUNCTION:
16ASN1_STRING_free 16 EXIST::FUNCTION:
17ASN1_STRING_new 17 EXIST::FUNCTION:
18ASN1_STRING_print 18 EXIST::FUNCTION:BIO
19ASN1_STRING_set 19 EXIST::FUNCTION:
20ASN1_STRING_type_new 20 EXIST::FUNCTION:
21ASN1_TYPE_free 21 EXIST::FUNCTION:
22ASN1_TYPE_new 22 EXIST::FUNCTION:
23ASN1_UNIVERSALSTRING_to_string 23 EXIST::FUNCTION:
24ASN1_UTCTIME_check 24 EXIST::FUNCTION:
25ASN1_UTCTIME_print 25 EXIST::FUNCTION:BIO
26ASN1_UTCTIME_set 26 EXIST::FUNCTION:
27ASN1_check_infinite_end 27 EXIST::FUNCTION:
28ASN1_d2i_bio 28 EXIST::FUNCTION:BIO
29ASN1_d2i_fp 29 EXIST::FUNCTION:FP_API
30ASN1_digest 30 EXIST::FUNCTION:EVP
31ASN1_dup 31 EXIST::FUNCTION:
32ASN1_get_object 32 EXIST::FUNCTION:
33ASN1_i2d_bio 33 EXIST::FUNCTION:BIO
34ASN1_i2d_fp 34 EXIST::FUNCTION:FP_API
35ASN1_object_size 35 EXIST::FUNCTION:
36ASN1_parse 36 EXIST::FUNCTION:BIO
37ASN1_put_object 37 EXIST::FUNCTION:
38ASN1_sign 38 EXIST::FUNCTION:EVP
39ASN1_verify 39 EXIST::FUNCTION:EVP
40BF_cbc_encrypt 40 EXIST::FUNCTION:BF
41BF_cfb64_encrypt 41 EXIST::FUNCTION:BF
42BF_ecb_encrypt 42 EXIST::FUNCTION:BF
43BF_encrypt 43 EXIST::FUNCTION:BF
44BF_ofb64_encrypt 44 EXIST::FUNCTION:BF
45BF_options 45 EXIST::FUNCTION:BF
46BF_set_key 46 EXIST::FUNCTION:BF
47BIO_CONNECT_free 47 NOEXIST::FUNCTION:
48BIO_CONNECT_new 48 NOEXIST::FUNCTION:
49BIO_accept 51 EXIST::FUNCTION:
50BIO_ctrl 52 EXIST::FUNCTION:
51BIO_int_ctrl 53 EXIST::FUNCTION:
52BIO_debug_callback 54 EXIST::FUNCTION:
53BIO_dump 55 EXIST::FUNCTION:
54BIO_dup_chain 56 EXIST::FUNCTION:
55BIO_f_base64 57 EXIST::FUNCTION:BIO
56BIO_f_buffer 58 EXIST::FUNCTION:
57BIO_f_cipher 59 EXIST::FUNCTION:BIO
58BIO_f_md 60 EXIST::FUNCTION:BIO
59BIO_f_null 61 EXIST::FUNCTION:
60BIO_f_proxy_server 62 NOEXIST::FUNCTION:
61BIO_fd_non_fatal_error 63 EXIST::FUNCTION:
62BIO_fd_should_retry 64 EXIST::FUNCTION:
63BIO_find_type 65 EXIST::FUNCTION:
64BIO_free 66 EXIST::FUNCTION:
65BIO_free_all 67 EXIST::FUNCTION:
66BIO_get_accept_socket 69 EXIST::FUNCTION:
67BIO_get_filter_bio 70 NOEXIST::FUNCTION:
68BIO_get_host_ip 71 EXIST::FUNCTION:
69BIO_get_port 72 EXIST::FUNCTION:
70BIO_get_retry_BIO 73 EXIST::FUNCTION:
71BIO_get_retry_reason 74 EXIST::FUNCTION:
72BIO_gethostbyname 75 EXIST::FUNCTION:
73BIO_gets 76 EXIST::FUNCTION:
74BIO_new 78 EXIST::FUNCTION:
75BIO_new_accept 79 EXIST::FUNCTION:
76BIO_new_connect 80 EXIST::FUNCTION:
77BIO_new_fd 81 EXIST::FUNCTION:
78BIO_new_file 82 EXIST:!WIN16:FUNCTION:FP_API
79BIO_new_fp 83 EXIST:!WIN16:FUNCTION:FP_API
80BIO_new_socket 84 EXIST::FUNCTION:
81BIO_pop 85 EXIST::FUNCTION:
82BIO_printf 86 EXIST::FUNCTION:
83BIO_push 87 EXIST::FUNCTION:
84BIO_puts 88 EXIST::FUNCTION:
85BIO_read 89 EXIST::FUNCTION:
86BIO_s_accept 90 EXIST::FUNCTION:
87BIO_s_connect 91 EXIST::FUNCTION:
88BIO_s_fd 92 EXIST::FUNCTION:
89BIO_s_file 93 EXIST:!WIN16:FUNCTION:FP_API
90BIO_s_mem 95 EXIST::FUNCTION:
91BIO_s_null 96 EXIST::FUNCTION:
92BIO_s_proxy_client 97 NOEXIST::FUNCTION:
93BIO_s_socket 98 EXIST::FUNCTION:
94BIO_set 100 EXIST::FUNCTION:
95BIO_set_cipher 101 EXIST::FUNCTION:BIO
96BIO_set_tcp_ndelay 102 EXIST::FUNCTION:
97BIO_sock_cleanup 103 EXIST::FUNCTION:
98BIO_sock_error 104 EXIST::FUNCTION:
99BIO_sock_init 105 EXIST::FUNCTION:
100BIO_sock_non_fatal_error 106 EXIST::FUNCTION:
101BIO_sock_should_retry 107 EXIST::FUNCTION:
102BIO_socket_ioctl 108 EXIST::FUNCTION:
103BIO_write 109 EXIST::FUNCTION:
104BN_CTX_free 110 EXIST::FUNCTION:
105BN_CTX_new 111 EXIST::FUNCTION:
106BN_MONT_CTX_free 112 EXIST::FUNCTION:
107BN_MONT_CTX_new 113 EXIST::FUNCTION:
108BN_MONT_CTX_set 114 EXIST::FUNCTION:
109BN_add 115 EXIST::FUNCTION:
110BN_add_word 116 EXIST::FUNCTION:
111BN_hex2bn 117 EXIST::FUNCTION:
112BN_bin2bn 118 EXIST::FUNCTION:
113BN_bn2hex 119 EXIST::FUNCTION:
114BN_bn2bin 120 EXIST::FUNCTION:
115BN_clear 121 EXIST::FUNCTION:
116BN_clear_bit 122 EXIST::FUNCTION:
117BN_clear_free 123 EXIST::FUNCTION:
118BN_cmp 124 EXIST::FUNCTION:
119BN_copy 125 EXIST::FUNCTION:
120BN_div 126 EXIST::FUNCTION:
121BN_div_word 127 EXIST::FUNCTION:
122BN_dup 128 EXIST::FUNCTION:
123BN_free 129 EXIST::FUNCTION:
124BN_from_montgomery 130 EXIST::FUNCTION:
125BN_gcd 131 EXIST::FUNCTION:
126BN_generate_prime 132 EXIST::FUNCTION:
127BN_get_word 133 EXIST::FUNCTION:
128BN_is_bit_set 134 EXIST::FUNCTION:
129BN_is_prime 135 EXIST::FUNCTION:
130BN_lshift 136 EXIST::FUNCTION:
131BN_lshift1 137 EXIST::FUNCTION:
132BN_mask_bits 138 EXIST::FUNCTION:
133BN_mod 139 NOEXIST::FUNCTION:
134BN_mod_exp 140 EXIST::FUNCTION:
135BN_mod_exp_mont 141 EXIST::FUNCTION:
136BN_mod_exp_simple 143 EXIST::FUNCTION:
137BN_mod_inverse 144 EXIST::FUNCTION:
138BN_mod_mul 145 EXIST::FUNCTION:
139BN_mod_mul_montgomery 146 EXIST::FUNCTION:
140BN_mod_word 148 EXIST::FUNCTION:
141BN_mul 149 EXIST::FUNCTION:
142BN_new 150 EXIST::FUNCTION:
143BN_num_bits 151 EXIST::FUNCTION:
144BN_num_bits_word 152 EXIST::FUNCTION:
145BN_options 153 EXIST::FUNCTION:
146BN_print 154 EXIST::FUNCTION:
147BN_print_fp 155 EXIST::FUNCTION:FP_API
148BN_rand 156 EXIST::FUNCTION:
149BN_reciprocal 157 EXIST::FUNCTION:
150BN_rshift 158 EXIST::FUNCTION:
151BN_rshift1 159 EXIST::FUNCTION:
152BN_set_bit 160 EXIST::FUNCTION:
153BN_set_word 161 EXIST::FUNCTION:
154BN_sqr 162 EXIST::FUNCTION:
155BN_sub 163 EXIST::FUNCTION:
156BN_to_ASN1_INTEGER 164 EXIST::FUNCTION:
157BN_ucmp 165 EXIST::FUNCTION:
158BN_value_one 166 EXIST::FUNCTION:
159BUF_MEM_free 167 EXIST::FUNCTION:
160BUF_MEM_grow 168 EXIST::FUNCTION:
161BUF_MEM_new 169 EXIST::FUNCTION:
162BUF_strdup 170 EXIST::FUNCTION:
163CONF_free 171 EXIST::FUNCTION:
164CONF_get_number 172 EXIST::FUNCTION:
165CONF_get_section 173 EXIST::FUNCTION:
166CONF_get_string 174 EXIST::FUNCTION:
167CONF_load 175 EXIST::FUNCTION:
168CRYPTO_add_lock 176 EXIST::FUNCTION:
169CRYPTO_dbg_free 177 EXIST::FUNCTION:
170CRYPTO_dbg_malloc 178 EXIST::FUNCTION:
171CRYPTO_dbg_realloc 179 EXIST::FUNCTION:
172CRYPTO_dbg_remalloc 180 NOEXIST::FUNCTION:
173CRYPTO_free 181 EXIST::FUNCTION:
174CRYPTO_get_add_lock_callback 182 EXIST::FUNCTION:
175CRYPTO_get_id_callback 183 EXIST::FUNCTION:
176CRYPTO_get_lock_name 184 EXIST::FUNCTION:
177CRYPTO_get_locking_callback 185 EXIST::FUNCTION:
178CRYPTO_get_mem_functions 186 EXIST::FUNCTION:
179CRYPTO_lock 187 EXIST::FUNCTION:
180CRYPTO_malloc 188 EXIST::FUNCTION:
181CRYPTO_mem_ctrl 189 EXIST::FUNCTION:
182CRYPTO_mem_leaks 190 EXIST::FUNCTION:
183CRYPTO_mem_leaks_cb 191 EXIST::FUNCTION:
184CRYPTO_mem_leaks_fp 192 EXIST::FUNCTION:FP_API
185CRYPTO_realloc 193 EXIST::FUNCTION:
186CRYPTO_remalloc 194 EXIST::FUNCTION:
187CRYPTO_set_add_lock_callback 195 EXIST::FUNCTION:
188CRYPTO_set_id_callback 196 EXIST::FUNCTION:
189CRYPTO_set_locking_callback 197 EXIST::FUNCTION:
190CRYPTO_set_mem_functions 198 EXIST::FUNCTION:
191CRYPTO_thread_id 199 EXIST::FUNCTION:
192DH_check 200 EXIST::FUNCTION:DH
193DH_compute_key 201 EXIST::FUNCTION:DH
194DH_free 202 EXIST::FUNCTION:DH
195DH_generate_key 203 EXIST::FUNCTION:DH
196DH_generate_parameters 204 EXIST::FUNCTION:DH
197DH_new 205 EXIST::FUNCTION:DH
198DH_size 206 EXIST::FUNCTION:DH
199DHparams_print 207 EXIST::FUNCTION:BIO,DH
200DHparams_print_fp 208 EXIST::FUNCTION:DH,FP_API
201DSA_free 209 EXIST::FUNCTION:DSA
202DSA_generate_key 210 EXIST::FUNCTION:DSA
203DSA_generate_parameters 211 EXIST::FUNCTION:DSA
204DSA_is_prime 212 NOEXIST::FUNCTION:
205DSA_new 213 EXIST::FUNCTION:DSA
206DSA_print 214 EXIST::FUNCTION:BIO,DSA
207DSA_print_fp 215 EXIST::FUNCTION:DSA,FP_API
208DSA_sign 216 EXIST::FUNCTION:DSA
209DSA_sign_setup 217 EXIST::FUNCTION:DSA
210DSA_size 218 EXIST::FUNCTION:DSA
211DSA_verify 219 EXIST::FUNCTION:DSA
212DSAparams_print 220 EXIST::FUNCTION:BIO,DSA
213DSAparams_print_fp 221 EXIST::FUNCTION:DSA,FP_API
214ERR_clear_error 222 EXIST::FUNCTION:
215ERR_error_string 223 EXIST::FUNCTION:
216ERR_free_strings 224 EXIST::FUNCTION:
217ERR_func_error_string 225 EXIST::FUNCTION:
218ERR_get_err_state_table 226 EXIST::FUNCTION:LHASH
219ERR_get_error 227 EXIST::FUNCTION:
220ERR_get_error_line 228 EXIST::FUNCTION:
221ERR_get_state 229 EXIST::FUNCTION:
222ERR_get_string_table 230 EXIST::FUNCTION:LHASH
223ERR_lib_error_string 231 EXIST::FUNCTION:
224ERR_load_ASN1_strings 232 EXIST::FUNCTION:
225ERR_load_BIO_strings 233 EXIST::FUNCTION:
226ERR_load_BN_strings 234 EXIST::FUNCTION:
227ERR_load_BUF_strings 235 EXIST::FUNCTION:
228ERR_load_CONF_strings 236 EXIST::FUNCTION:
229ERR_load_DH_strings 237 EXIST::FUNCTION:DH
230ERR_load_DSA_strings 238 EXIST::FUNCTION:DSA
231ERR_load_ERR_strings 239 EXIST::FUNCTION:
232ERR_load_EVP_strings 240 EXIST::FUNCTION:
233ERR_load_OBJ_strings 241 EXIST::FUNCTION:
234ERR_load_PEM_strings 242 EXIST::FUNCTION:
235ERR_load_PROXY_strings 243 NOEXIST::FUNCTION:
236ERR_load_RSA_strings 244 EXIST::FUNCTION:RSA
237ERR_load_X509_strings 245 EXIST::FUNCTION:
238ERR_load_crypto_strings 246 EXIST::FUNCTION:
239ERR_load_strings 247 EXIST::FUNCTION:
240ERR_peek_error 248 EXIST::FUNCTION:
241ERR_peek_error_line 249 EXIST::FUNCTION:
242ERR_print_errors 250 EXIST::FUNCTION:BIO
243ERR_print_errors_fp 251 EXIST::FUNCTION:FP_API
244ERR_put_error 252 EXIST::FUNCTION:
245ERR_reason_error_string 253 EXIST::FUNCTION:
246ERR_remove_state 254 EXIST::FUNCTION:
247EVP_BytesToKey 255 EXIST::FUNCTION:
248EVP_CIPHER_CTX_cleanup 256 EXIST::FUNCTION:
249EVP_CipherFinal 257 EXIST::FUNCTION:
250EVP_CipherInit 258 EXIST::FUNCTION:
251EVP_CipherUpdate 259 EXIST::FUNCTION:
252EVP_DecodeBlock 260 EXIST::FUNCTION:
253EVP_DecodeFinal 261 EXIST::FUNCTION:
254EVP_DecodeInit 262 EXIST::FUNCTION:
255EVP_DecodeUpdate 263 EXIST::FUNCTION:
256EVP_DecryptFinal 264 EXIST::FUNCTION:
257EVP_DecryptInit 265 EXIST::FUNCTION:
258EVP_DecryptUpdate 266 EXIST::FUNCTION:
259EVP_DigestFinal 267 EXIST::FUNCTION:
260EVP_DigestInit 268 EXIST::FUNCTION:
261EVP_DigestUpdate 269 EXIST::FUNCTION:
262EVP_EncodeBlock 270 EXIST::FUNCTION:
263EVP_EncodeFinal 271 EXIST::FUNCTION:
264EVP_EncodeInit 272 EXIST::FUNCTION:
265EVP_EncodeUpdate 273 EXIST::FUNCTION:
266EVP_EncryptFinal 274 EXIST::FUNCTION:
267EVP_EncryptInit 275 EXIST::FUNCTION:
268EVP_EncryptUpdate 276 EXIST::FUNCTION:
269EVP_OpenFinal 277 EXIST::FUNCTION:RSA
270EVP_OpenInit 278 EXIST::FUNCTION:RSA
271EVP_PKEY_assign 279 EXIST::FUNCTION:
272EVP_PKEY_copy_parameters 280 EXIST::FUNCTION:
273EVP_PKEY_free 281 EXIST::FUNCTION:
274EVP_PKEY_missing_parameters 282 EXIST::FUNCTION:
275EVP_PKEY_new 283 EXIST::FUNCTION:
276EVP_PKEY_save_parameters 284 EXIST::FUNCTION:
277EVP_PKEY_size 285 EXIST::FUNCTION:
278EVP_PKEY_type 286 EXIST::FUNCTION:
279EVP_SealFinal 287 EXIST::FUNCTION:RSA
280EVP_SealInit 288 EXIST::FUNCTION:RSA
281EVP_SignFinal 289 EXIST::FUNCTION:
282EVP_VerifyFinal 290 EXIST::FUNCTION:
283EVP_add_alias 291 NOEXIST::FUNCTION:
284EVP_add_cipher 292 EXIST::FUNCTION:
285EVP_add_digest 293 EXIST::FUNCTION:
286EVP_bf_cbc 294 EXIST::FUNCTION:BF
287EVP_bf_cfb64 295 EXIST::FUNCTION:BF
288EVP_bf_ecb 296 EXIST::FUNCTION:BF
289EVP_bf_ofb 297 EXIST::FUNCTION:BF
290EVP_cleanup 298 EXIST::FUNCTION:
291EVP_des_cbc 299 EXIST::FUNCTION:DES
292EVP_des_cfb64 300 EXIST::FUNCTION:DES
293EVP_des_ecb 301 EXIST::FUNCTION:DES
294EVP_des_ede 302 EXIST::FUNCTION:DES
295EVP_des_ede3 303 EXIST::FUNCTION:DES
296EVP_des_ede3_cbc 304 EXIST::FUNCTION:DES
297EVP_des_ede3_cfb64 305 EXIST::FUNCTION:DES
298EVP_des_ede3_ofb 306 EXIST::FUNCTION:DES
299EVP_des_ede_cbc 307 EXIST::FUNCTION:DES
300EVP_des_ede_cfb64 308 EXIST::FUNCTION:DES
301EVP_des_ede_ofb 309 EXIST::FUNCTION:DES
302EVP_des_ofb 310 EXIST::FUNCTION:DES
303EVP_desx_cbc 311 EXIST::FUNCTION:DES
304EVP_dss 312 EXIST::FUNCTION:DSA,SHA
305EVP_dss1 313 EXIST::FUNCTION:DSA,SHA
306EVP_enc_null 314 EXIST::FUNCTION:
307EVP_get_cipherbyname 315 EXIST::FUNCTION:
308EVP_get_digestbyname 316 EXIST::FUNCTION:
309EVP_get_pw_prompt 317 EXIST::FUNCTION:
310EVP_idea_cbc 318 EXIST::FUNCTION:IDEA
311EVP_idea_cfb64 319 EXIST::FUNCTION:IDEA
312EVP_idea_ecb 320 EXIST::FUNCTION:IDEA
313EVP_idea_ofb 321 EXIST::FUNCTION:IDEA
314EVP_md2 322 EXIST::FUNCTION:MD2
315EVP_md5 323 EXIST::FUNCTION:MD5
316EVP_md_null 324 EXIST::FUNCTION:
317EVP_rc2_cbc 325 EXIST::FUNCTION:RC2
318EVP_rc2_cfb64 326 EXIST::FUNCTION:RC2
319EVP_rc2_ecb 327 EXIST::FUNCTION:RC2
320EVP_rc2_ofb 328 EXIST::FUNCTION:RC2
321EVP_rc4 329 EXIST::FUNCTION:RC4
322EVP_read_pw_string 330 EXIST::FUNCTION:
323EVP_set_pw_prompt 331 EXIST::FUNCTION:
324EVP_sha 332 EXIST::FUNCTION:SHA
325EVP_sha1 333 EXIST::FUNCTION:SHA
326MD2 334 EXIST::FUNCTION:MD2
327MD2_Final 335 EXIST::FUNCTION:MD2
328MD2_Init 336 EXIST::FUNCTION:MD2
329MD2_Update 337 EXIST::FUNCTION:MD2
330MD2_options 338 EXIST::FUNCTION:MD2
331MD5 339 EXIST::FUNCTION:MD5
332MD5_Final 340 EXIST::FUNCTION:MD5
333MD5_Init 341 EXIST::FUNCTION:MD5
334MD5_Update 342 EXIST::FUNCTION:MD5
335MDC2 343 EXIST::FUNCTION:MDC2
336MDC2_Final 344 EXIST::FUNCTION:MDC2
337MDC2_Init 345 EXIST::FUNCTION:MDC2
338MDC2_Update 346 EXIST::FUNCTION:MDC2
339NETSCAPE_SPKAC_free 347 EXIST::FUNCTION:
340NETSCAPE_SPKAC_new 348 EXIST::FUNCTION:
341NETSCAPE_SPKI_free 349 EXIST::FUNCTION:
342NETSCAPE_SPKI_new 350 EXIST::FUNCTION:
343NETSCAPE_SPKI_sign 351 EXIST::FUNCTION:EVP
344NETSCAPE_SPKI_verify 352 EXIST::FUNCTION:EVP
345OBJ_add_object 353 EXIST::FUNCTION:
346OBJ_bsearch 354 EXIST::FUNCTION:
347OBJ_cleanup 355 EXIST::FUNCTION:
348OBJ_cmp 356 EXIST::FUNCTION:
349OBJ_create 357 EXIST::FUNCTION:
350OBJ_dup 358 EXIST::FUNCTION:
351OBJ_ln2nid 359 EXIST::FUNCTION:
352OBJ_new_nid 360 EXIST::FUNCTION:
353OBJ_nid2ln 361 EXIST::FUNCTION:
354OBJ_nid2obj 362 EXIST::FUNCTION:
355OBJ_nid2sn 363 EXIST::FUNCTION:
356OBJ_obj2nid 364 EXIST::FUNCTION:
357OBJ_sn2nid 365 EXIST::FUNCTION:
358OBJ_txt2nid 366 EXIST::FUNCTION:
359PEM_ASN1_read 367 EXIST:!WIN16:FUNCTION:
360PEM_ASN1_read_bio 368 EXIST::FUNCTION:BIO
361PEM_ASN1_write 369 EXIST:!WIN16:FUNCTION:
362PEM_ASN1_write_bio 370 EXIST::FUNCTION:BIO
363PEM_SealFinal 371 EXIST::FUNCTION:RSA
364PEM_SealInit 372 EXIST::FUNCTION:RSA
365PEM_SealUpdate 373 EXIST::FUNCTION:RSA
366PEM_SignFinal 374 EXIST::FUNCTION:
367PEM_SignInit 375 EXIST::FUNCTION:
368PEM_SignUpdate 376 EXIST::FUNCTION:
369PEM_X509_INFO_read 377 EXIST:!WIN16:FUNCTION:
370PEM_X509_INFO_read_bio 378 EXIST::FUNCTION:BIO
371PEM_X509_INFO_write_bio 379 EXIST::FUNCTION:BIO
372PEM_dek_info 380 EXIST::FUNCTION:
373PEM_do_header 381 EXIST::FUNCTION:
374PEM_get_EVP_CIPHER_INFO 382 EXIST::FUNCTION:
375PEM_proc_type 383 EXIST::FUNCTION:
376PEM_read 384 EXIST:!WIN16:FUNCTION:
377PEM_read_DHparams 385 EXIST:!WIN16:FUNCTION:DH
378PEM_read_DSAPrivateKey 386 EXIST:!WIN16:FUNCTION:DSA
379PEM_read_DSAparams 387 EXIST:!WIN16:FUNCTION:DSA
380PEM_read_PKCS7 388 EXIST:!WIN16:FUNCTION:
381PEM_read_PrivateKey 389 EXIST:!WIN16:FUNCTION:
382PEM_read_RSAPrivateKey 390 EXIST:!WIN16:FUNCTION:RSA
383PEM_read_X509 391 EXIST:!WIN16:FUNCTION:
384PEM_read_X509_CRL 392 EXIST:!WIN16:FUNCTION:
385PEM_read_X509_REQ 393 EXIST:!WIN16:FUNCTION:
386PEM_read_bio 394 EXIST::FUNCTION:BIO
387PEM_read_bio_DHparams 395 EXIST::FUNCTION:DH
388PEM_read_bio_DSAPrivateKey 396 EXIST::FUNCTION:DSA
389PEM_read_bio_DSAparams 397 EXIST::FUNCTION:DSA
390PEM_read_bio_PKCS7 398 EXIST::FUNCTION:
391PEM_read_bio_PrivateKey 399 EXIST::FUNCTION:
392PEM_read_bio_RSAPrivateKey 400 EXIST::FUNCTION:RSA
393PEM_read_bio_X509 401 EXIST::FUNCTION:
394PEM_read_bio_X509_CRL 402 EXIST::FUNCTION:
395PEM_read_bio_X509_REQ 403 EXIST::FUNCTION:
396PEM_write 404 EXIST:!WIN16:FUNCTION:
397PEM_write_DHparams 405 EXIST:!WIN16:FUNCTION:DH
398PEM_write_DSAPrivateKey 406 EXIST:!WIN16:FUNCTION:DSA
399PEM_write_DSAparams 407 EXIST:!WIN16:FUNCTION:DSA
400PEM_write_PKCS7 408 EXIST:!WIN16:FUNCTION:
401PEM_write_PrivateKey 409 EXIST:!WIN16:FUNCTION:
402PEM_write_RSAPrivateKey 410 EXIST:!WIN16:FUNCTION:RSA
403PEM_write_X509 411 EXIST:!WIN16:FUNCTION:
404PEM_write_X509_CRL 412 EXIST:!WIN16:FUNCTION:
405PEM_write_X509_REQ 413 EXIST:!WIN16:FUNCTION:
406PEM_write_bio 414 EXIST::FUNCTION:BIO
407PEM_write_bio_DHparams 415 EXIST::FUNCTION:DH
408PEM_write_bio_DSAPrivateKey 416 EXIST::FUNCTION:DSA
409PEM_write_bio_DSAparams 417 EXIST::FUNCTION:DSA
410PEM_write_bio_PKCS7 418 EXIST::FUNCTION:
411PEM_write_bio_PrivateKey 419 EXIST::FUNCTION:
412PEM_write_bio_RSAPrivateKey 420 EXIST::FUNCTION:RSA
413PEM_write_bio_X509 421 EXIST::FUNCTION:
414PEM_write_bio_X509_CRL 422 EXIST::FUNCTION:
415PEM_write_bio_X509_REQ 423 EXIST::FUNCTION:
416PKCS7_DIGEST_free 424 EXIST::FUNCTION:
417PKCS7_DIGEST_new 425 EXIST::FUNCTION:
418PKCS7_ENCRYPT_free 426 EXIST::FUNCTION:
419PKCS7_ENCRYPT_new 427 EXIST::FUNCTION:
420PKCS7_ENC_CONTENT_free 428 EXIST::FUNCTION:
421PKCS7_ENC_CONTENT_new 429 EXIST::FUNCTION:
422PKCS7_ENVELOPE_free 430 EXIST::FUNCTION:
423PKCS7_ENVELOPE_new 431 EXIST::FUNCTION:
424PKCS7_ISSUER_AND_SERIAL_digest 432 EXIST::FUNCTION:
425PKCS7_ISSUER_AND_SERIAL_free 433 EXIST::FUNCTION:
426PKCS7_ISSUER_AND_SERIAL_new 434 EXIST::FUNCTION:
427PKCS7_RECIP_INFO_free 435 EXIST::FUNCTION:
428PKCS7_RECIP_INFO_new 436 EXIST::FUNCTION:
429PKCS7_SIGNED_free 437 EXIST::FUNCTION:
430PKCS7_SIGNED_new 438 EXIST::FUNCTION:
431PKCS7_SIGNER_INFO_free 439 EXIST::FUNCTION:
432PKCS7_SIGNER_INFO_new 440 EXIST::FUNCTION:
433PKCS7_SIGN_ENVELOPE_free 441 EXIST::FUNCTION:
434PKCS7_SIGN_ENVELOPE_new 442 EXIST::FUNCTION:
435PKCS7_dup 443 EXIST::FUNCTION:
436PKCS7_free 444 EXIST::FUNCTION:
437PKCS7_new 445 EXIST::FUNCTION:
438PROXY_ENTRY_add_noproxy 446 NOEXIST::FUNCTION:
439PROXY_ENTRY_clear_noproxy 447 NOEXIST::FUNCTION:
440PROXY_ENTRY_free 448 NOEXIST::FUNCTION:
441PROXY_ENTRY_get_noproxy 449 NOEXIST::FUNCTION:
442PROXY_ENTRY_new 450 NOEXIST::FUNCTION:
443PROXY_ENTRY_set_server 451 NOEXIST::FUNCTION:
444PROXY_add_noproxy 452 NOEXIST::FUNCTION:
445PROXY_add_server 453 NOEXIST::FUNCTION:
446PROXY_check_by_host 454 NOEXIST::FUNCTION:
447PROXY_check_url 455 NOEXIST::FUNCTION:
448PROXY_clear_noproxy 456 NOEXIST::FUNCTION:
449PROXY_free 457 NOEXIST::FUNCTION:
450PROXY_get_noproxy 458 NOEXIST::FUNCTION:
451PROXY_get_proxies 459 NOEXIST::FUNCTION:
452PROXY_get_proxy_entry 460 NOEXIST::FUNCTION:
453PROXY_load_conf 461 NOEXIST::FUNCTION:
454PROXY_new 462 NOEXIST::FUNCTION:
455PROXY_print 463 NOEXIST::FUNCTION:
456RAND_bytes 464 EXIST::FUNCTION:
457RAND_cleanup 465 EXIST::FUNCTION:
458RAND_file_name 466 EXIST::FUNCTION:
459RAND_load_file 467 EXIST::FUNCTION:
460RAND_screen 468 EXIST:WIN32:FUNCTION:
461RAND_seed 469 EXIST::FUNCTION:
462RAND_write_file 470 EXIST::FUNCTION:
463RC2_cbc_encrypt 471 EXIST::FUNCTION:RC2
464RC2_cfb64_encrypt 472 EXIST::FUNCTION:RC2
465RC2_ecb_encrypt 473 EXIST::FUNCTION:RC2
466RC2_encrypt 474 EXIST::FUNCTION:RC2
467RC2_ofb64_encrypt 475 EXIST::FUNCTION:RC2
468RC2_set_key 476 EXIST::FUNCTION:RC2
469RC4 477 EXIST::FUNCTION:RC4
470RC4_options 478 EXIST::FUNCTION:RC4
471RC4_set_key 479 EXIST::FUNCTION:RC4
472RSAPrivateKey_asn1_meth 480 EXIST::FUNCTION:RSA
473RSAPrivateKey_dup 481 EXIST::FUNCTION:RSA
474RSAPublicKey_dup 482 EXIST::FUNCTION:RSA
475RSA_PKCS1_SSLeay 483 EXIST::FUNCTION:RSA
476RSA_free 484 EXIST::FUNCTION:RSA
477RSA_generate_key 485 EXIST::FUNCTION:RSA
478RSA_new 486 EXIST::FUNCTION:RSA
479RSA_new_method 487 EXIST::FUNCTION:RSA
480RSA_print 488 EXIST::FUNCTION:BIO,RSA
481RSA_print_fp 489 EXIST::FUNCTION:FP_API,RSA
482RSA_private_decrypt 490 EXIST::FUNCTION:RSA
483RSA_private_encrypt 491 EXIST::FUNCTION:RSA
484RSA_public_decrypt 492 EXIST::FUNCTION:RSA
485RSA_public_encrypt 493 EXIST::FUNCTION:RSA
486RSA_set_default_method 494 EXIST::FUNCTION:RSA
487RSA_sign 495 EXIST::FUNCTION:RSA
488RSA_sign_ASN1_OCTET_STRING 496 EXIST::FUNCTION:RSA
489RSA_size 497 EXIST::FUNCTION:RSA
490RSA_verify 498 EXIST::FUNCTION:RSA
491RSA_verify_ASN1_OCTET_STRING 499 EXIST::FUNCTION:RSA
492SHA 500 EXIST::FUNCTION:SHA,SHA0
493SHA1 501 EXIST::FUNCTION:SHA,SHA1
494SHA1_Final 502 EXIST::FUNCTION:SHA,SHA1
495SHA1_Init 503 EXIST::FUNCTION:SHA,SHA1
496SHA1_Update 504 EXIST::FUNCTION:SHA,SHA1
497SHA_Final 505 EXIST::FUNCTION:SHA,SHA0
498SHA_Init 506 EXIST::FUNCTION:SHA,SHA0
499SHA_Update 507 EXIST::FUNCTION:SHA,SHA0
500OpenSSL_add_all_algorithms 508 NOEXIST::FUNCTION:
501OpenSSL_add_all_ciphers 509 EXIST::FUNCTION:
502OpenSSL_add_all_digests 510 EXIST::FUNCTION:
503TXT_DB_create_index 511 EXIST::FUNCTION:
504TXT_DB_free 512 EXIST::FUNCTION:
505TXT_DB_get_by_index 513 EXIST::FUNCTION:
506TXT_DB_insert 514 EXIST::FUNCTION:
507TXT_DB_read 515 EXIST::FUNCTION:BIO
508TXT_DB_write 516 EXIST::FUNCTION:BIO
509X509_ALGOR_free 517 EXIST::FUNCTION:
510X509_ALGOR_new 518 EXIST::FUNCTION:
511X509_ATTRIBUTE_free 519 EXIST::FUNCTION:
512X509_ATTRIBUTE_new 520 EXIST::FUNCTION:
513X509_CINF_free 521 EXIST::FUNCTION:
514X509_CINF_new 522 EXIST::FUNCTION:
515X509_CRL_INFO_free 523 EXIST::FUNCTION:
516X509_CRL_INFO_new 524 EXIST::FUNCTION:
517X509_CRL_add_ext 525 EXIST::FUNCTION:
518X509_CRL_cmp 526 EXIST::FUNCTION:
519X509_CRL_delete_ext 527 EXIST::FUNCTION:
520X509_CRL_dup 528 EXIST::FUNCTION:
521X509_CRL_free 529 EXIST::FUNCTION:
522X509_CRL_get_ext 530 EXIST::FUNCTION:
523X509_CRL_get_ext_by_NID 531 EXIST::FUNCTION:
524X509_CRL_get_ext_by_OBJ 532 EXIST::FUNCTION:
525X509_CRL_get_ext_by_critical 533 EXIST::FUNCTION:
526X509_CRL_get_ext_count 534 EXIST::FUNCTION:
527X509_CRL_new 535 EXIST::FUNCTION:
528X509_CRL_sign 536 EXIST::FUNCTION:EVP
529X509_CRL_verify 537 EXIST::FUNCTION:EVP
530X509_EXTENSION_create_by_NID 538 EXIST::FUNCTION:
531X509_EXTENSION_create_by_OBJ 539 EXIST::FUNCTION:
532X509_EXTENSION_dup 540 EXIST::FUNCTION:
533X509_EXTENSION_free 541 EXIST::FUNCTION:
534X509_EXTENSION_get_critical 542 EXIST::FUNCTION:
535X509_EXTENSION_get_data 543 EXIST::FUNCTION:
536X509_EXTENSION_get_object 544 EXIST::FUNCTION:
537X509_EXTENSION_new 545 EXIST::FUNCTION:
538X509_EXTENSION_set_critical 546 EXIST::FUNCTION:
539X509_EXTENSION_set_data 547 EXIST::FUNCTION:
540X509_EXTENSION_set_object 548 EXIST::FUNCTION:
541X509_INFO_free 549 EXIST::FUNCTION:EVP
542X509_INFO_new 550 EXIST::FUNCTION:EVP
543X509_LOOKUP_by_alias 551 EXIST::FUNCTION:
544X509_LOOKUP_by_fingerprint 552 EXIST::FUNCTION:
545X509_LOOKUP_by_issuer_serial 553 EXIST::FUNCTION:
546X509_LOOKUP_by_subject 554 EXIST::FUNCTION:
547X509_LOOKUP_ctrl 555 EXIST::FUNCTION:
548X509_LOOKUP_file 556 EXIST::FUNCTION:
549X509_LOOKUP_free 557 EXIST::FUNCTION:
550X509_LOOKUP_hash_dir 558 EXIST::FUNCTION:
551X509_LOOKUP_init 559 EXIST::FUNCTION:
552X509_LOOKUP_new 560 EXIST::FUNCTION:
553X509_LOOKUP_shutdown 561 EXIST::FUNCTION:
554X509_NAME_ENTRY_create_by_NID 562 EXIST::FUNCTION:
555X509_NAME_ENTRY_create_by_OBJ 563 EXIST::FUNCTION:
556X509_NAME_ENTRY_dup 564 EXIST::FUNCTION:
557X509_NAME_ENTRY_free 565 EXIST::FUNCTION:
558X509_NAME_ENTRY_get_data 566 EXIST::FUNCTION:
559X509_NAME_ENTRY_get_object 567 EXIST::FUNCTION:
560X509_NAME_ENTRY_new 568 EXIST::FUNCTION:
561X509_NAME_ENTRY_set_data 569 EXIST::FUNCTION:
562X509_NAME_ENTRY_set_object 570 EXIST::FUNCTION:
563X509_NAME_add_entry 571 EXIST::FUNCTION:
564X509_NAME_cmp 572 EXIST::FUNCTION:
565X509_NAME_delete_entry 573 EXIST::FUNCTION:
566X509_NAME_digest 574 EXIST::FUNCTION:EVP
567X509_NAME_dup 575 EXIST::FUNCTION:
568X509_NAME_entry_count 576 EXIST::FUNCTION:
569X509_NAME_free 577 EXIST::FUNCTION:
570X509_NAME_get_entry 578 EXIST::FUNCTION:
571X509_NAME_get_index_by_NID 579 EXIST::FUNCTION:
572X509_NAME_get_index_by_OBJ 580 EXIST::FUNCTION:
573X509_NAME_get_text_by_NID 581 EXIST::FUNCTION:
574X509_NAME_get_text_by_OBJ 582 EXIST::FUNCTION:
575X509_NAME_hash 583 EXIST::FUNCTION:
576X509_NAME_new 584 EXIST::FUNCTION:
577X509_NAME_oneline 585 EXIST::FUNCTION:EVP
578X509_NAME_print 586 EXIST::FUNCTION:BIO
579X509_NAME_set 587 EXIST::FUNCTION:
580X509_OBJECT_free_contents 588 EXIST::FUNCTION:
581X509_OBJECT_retrieve_by_subject 589 EXIST::FUNCTION:
582X509_OBJECT_up_ref_count 590 EXIST::FUNCTION:
583X509_PKEY_free 591 EXIST::FUNCTION:
584X509_PKEY_new 592 EXIST::FUNCTION:
585X509_PUBKEY_free 593 EXIST::FUNCTION:
586X509_PUBKEY_get 594 EXIST::FUNCTION:
587X509_PUBKEY_new 595 EXIST::FUNCTION:
588X509_PUBKEY_set 596 EXIST::FUNCTION:
589X509_REQ_INFO_free 597 EXIST::FUNCTION:
590X509_REQ_INFO_new 598 EXIST::FUNCTION:
591X509_REQ_dup 599 EXIST::FUNCTION:
592X509_REQ_free 600 EXIST::FUNCTION:
593X509_REQ_get_pubkey 601 EXIST::FUNCTION:
594X509_REQ_new 602 EXIST::FUNCTION:
595X509_REQ_print 603 EXIST::FUNCTION:BIO
596X509_REQ_print_fp 604 EXIST::FUNCTION:FP_API
597X509_REQ_set_pubkey 605 EXIST::FUNCTION:
598X509_REQ_set_subject_name 606 EXIST::FUNCTION:
599X509_REQ_set_version 607 EXIST::FUNCTION:
600X509_REQ_sign 608 EXIST::FUNCTION:EVP
601X509_REQ_to_X509 609 EXIST::FUNCTION:
602X509_REQ_verify 610 EXIST::FUNCTION:EVP
603X509_REVOKED_add_ext 611 EXIST::FUNCTION:
604X509_REVOKED_delete_ext 612 EXIST::FUNCTION:
605X509_REVOKED_free 613 EXIST::FUNCTION:
606X509_REVOKED_get_ext 614 EXIST::FUNCTION:
607X509_REVOKED_get_ext_by_NID 615 EXIST::FUNCTION:
608X509_REVOKED_get_ext_by_OBJ 616 EXIST::FUNCTION:
609X509_REVOKED_get_ext_by_critical 617 EXIST:!VMS:FUNCTION:
610X509_REVOKED_get_ext_by_critic 617 EXIST:VMS:FUNCTION:
611X509_REVOKED_get_ext_count 618 EXIST::FUNCTION:
612X509_REVOKED_new 619 EXIST::FUNCTION:
613X509_SIG_free 620 EXIST::FUNCTION:
614X509_SIG_new 621 EXIST::FUNCTION:
615X509_STORE_CTX_cleanup 622 EXIST::FUNCTION:
616X509_STORE_CTX_init 623 EXIST::FUNCTION:
617X509_STORE_add_cert 624 EXIST::FUNCTION:
618X509_STORE_add_lookup 625 EXIST::FUNCTION:
619X509_STORE_free 626 EXIST::FUNCTION:
620X509_STORE_get_by_subject 627 EXIST::FUNCTION:
621X509_STORE_load_locations 628 EXIST::FUNCTION:STDIO
622X509_STORE_new 629 EXIST::FUNCTION:
623X509_STORE_set_default_paths 630 EXIST::FUNCTION:STDIO
624X509_VAL_free 631 EXIST::FUNCTION:
625X509_VAL_new 632 EXIST::FUNCTION:
626X509_add_ext 633 EXIST::FUNCTION:
627X509_asn1_meth 634 EXIST::FUNCTION:
628X509_certificate_type 635 EXIST::FUNCTION:
629X509_check_private_key 636 EXIST::FUNCTION:
630X509_cmp_current_time 637 EXIST::FUNCTION:
631X509_delete_ext 638 EXIST::FUNCTION:
632X509_digest 639 EXIST::FUNCTION:EVP
633X509_dup 640 EXIST::FUNCTION:
634X509_free 641 EXIST::FUNCTION:
635X509_get_default_cert_area 642 EXIST::FUNCTION:
636X509_get_default_cert_dir 643 EXIST::FUNCTION:
637X509_get_default_cert_dir_env 644 EXIST::FUNCTION:
638X509_get_default_cert_file 645 EXIST::FUNCTION:
639X509_get_default_cert_file_env 646 EXIST::FUNCTION:
640X509_get_default_private_dir 647 EXIST::FUNCTION:
641X509_get_ext 648 EXIST::FUNCTION:
642X509_get_ext_by_NID 649 EXIST::FUNCTION:
643X509_get_ext_by_OBJ 650 EXIST::FUNCTION:
644X509_get_ext_by_critical 651 EXIST::FUNCTION:
645X509_get_ext_count 652 EXIST::FUNCTION:
646X509_get_issuer_name 653 EXIST::FUNCTION:
647X509_get_pubkey 654 EXIST::FUNCTION:
648X509_get_pubkey_parameters 655 EXIST::FUNCTION:
649X509_get_serialNumber 656 EXIST::FUNCTION:
650X509_get_subject_name 657 EXIST::FUNCTION:
651X509_gmtime_adj 658 EXIST::FUNCTION:
652X509_issuer_and_serial_cmp 659 EXIST::FUNCTION:
653X509_issuer_and_serial_hash 660 EXIST::FUNCTION:
654X509_issuer_name_cmp 661 EXIST::FUNCTION:
655X509_issuer_name_hash 662 EXIST::FUNCTION:
656X509_load_cert_file 663 EXIST::FUNCTION:STDIO
657X509_new 664 EXIST::FUNCTION:
658X509_print 665 EXIST::FUNCTION:BIO
659X509_print_fp 666 EXIST::FUNCTION:FP_API
660X509_set_issuer_name 667 EXIST::FUNCTION:
661X509_set_notAfter 668 EXIST::FUNCTION:
662X509_set_notBefore 669 EXIST::FUNCTION:
663X509_set_pubkey 670 EXIST::FUNCTION:
664X509_set_serialNumber 671 EXIST::FUNCTION:
665X509_set_subject_name 672 EXIST::FUNCTION:
666X509_set_version 673 EXIST::FUNCTION:
667X509_sign 674 EXIST::FUNCTION:EVP
668X509_subject_name_cmp 675 EXIST::FUNCTION:
669X509_subject_name_hash 676 EXIST::FUNCTION:
670X509_to_X509_REQ 677 EXIST::FUNCTION:
671X509_verify 678 EXIST::FUNCTION:EVP
672X509_verify_cert 679 EXIST::FUNCTION:
673X509_verify_cert_error_string 680 EXIST::FUNCTION:
674X509v3_add_ext 681 EXIST::FUNCTION:
675X509v3_add_extension 682 NOEXIST::FUNCTION:
676X509v3_add_netscape_extensions 683 NOEXIST::FUNCTION:
677X509v3_add_standard_extensions 684 NOEXIST::FUNCTION:
678X509v3_cleanup_extensions 685 NOEXIST::FUNCTION:
679X509v3_data_type_by_NID 686 NOEXIST::FUNCTION:
680X509v3_data_type_by_OBJ 687 NOEXIST::FUNCTION:
681X509v3_delete_ext 688 EXIST::FUNCTION:
682X509v3_get_ext 689 EXIST::FUNCTION:
683X509v3_get_ext_by_NID 690 EXIST::FUNCTION:
684X509v3_get_ext_by_OBJ 691 EXIST::FUNCTION:
685X509v3_get_ext_by_critical 692 EXIST::FUNCTION:
686X509v3_get_ext_count 693 EXIST::FUNCTION:
687X509v3_pack_string 694 NOEXIST::FUNCTION:
688X509v3_pack_type_by_NID 695 NOEXIST::FUNCTION:
689X509v3_pack_type_by_OBJ 696 NOEXIST::FUNCTION:
690X509v3_unpack_string 697 NOEXIST::FUNCTION:
691_des_crypt 698 NOEXIST::FUNCTION:
692a2d_ASN1_OBJECT 699 EXIST::FUNCTION:
693a2i_ASN1_INTEGER 700 EXIST::FUNCTION:BIO
694a2i_ASN1_STRING 701 EXIST::FUNCTION:BIO
695asn1_Finish 702 EXIST::FUNCTION:
696asn1_GetSequence 703 EXIST::FUNCTION:
697bn_div_words 704 EXIST::FUNCTION:
698bn_expand2 705 EXIST::FUNCTION:
699bn_mul_add_words 706 EXIST::FUNCTION:
700bn_mul_words 707 EXIST::FUNCTION:
701BN_uadd 708 EXIST::FUNCTION:
702BN_usub 709 EXIST::FUNCTION:
703bn_sqr_words 710 EXIST::FUNCTION:
704_ossl_old_crypt 711 EXIST:!NeXT,!PERL5:FUNCTION:DES
705d2i_ASN1_BIT_STRING 712 EXIST::FUNCTION:
706d2i_ASN1_BOOLEAN 713 EXIST::FUNCTION:
707d2i_ASN1_HEADER 714 EXIST::FUNCTION:
708d2i_ASN1_IA5STRING 715 EXIST::FUNCTION:
709d2i_ASN1_INTEGER 716 EXIST::FUNCTION:
710d2i_ASN1_OBJECT 717 EXIST::FUNCTION:
711d2i_ASN1_OCTET_STRING 718 EXIST::FUNCTION:
712d2i_ASN1_PRINTABLE 719 EXIST::FUNCTION:
713d2i_ASN1_PRINTABLESTRING 720 EXIST::FUNCTION:
714d2i_ASN1_SET 721 EXIST::FUNCTION:
715d2i_ASN1_T61STRING 722 EXIST::FUNCTION:
716d2i_ASN1_TYPE 723 EXIST::FUNCTION:
717d2i_ASN1_UTCTIME 724 EXIST::FUNCTION:
718d2i_ASN1_bytes 725 EXIST::FUNCTION:
719d2i_ASN1_type_bytes 726 EXIST::FUNCTION:
720d2i_DHparams 727 EXIST::FUNCTION:DH
721d2i_DSAPrivateKey 728 EXIST::FUNCTION:DSA
722d2i_DSAPrivateKey_bio 729 EXIST::FUNCTION:BIO,DSA
723d2i_DSAPrivateKey_fp 730 EXIST::FUNCTION:DSA,FP_API
724d2i_DSAPublicKey 731 EXIST::FUNCTION:DSA
725d2i_DSAparams 732 EXIST::FUNCTION:DSA
726d2i_NETSCAPE_SPKAC 733 EXIST::FUNCTION:
727d2i_NETSCAPE_SPKI 734 EXIST::FUNCTION:
728d2i_Netscape_RSA 735 EXIST::FUNCTION:RSA
729d2i_PKCS7 736 EXIST::FUNCTION:
730d2i_PKCS7_DIGEST 737 EXIST::FUNCTION:
731d2i_PKCS7_ENCRYPT 738 EXIST::FUNCTION:
732d2i_PKCS7_ENC_CONTENT 739 EXIST::FUNCTION:
733d2i_PKCS7_ENVELOPE 740 EXIST::FUNCTION:
734d2i_PKCS7_ISSUER_AND_SERIAL 741 EXIST::FUNCTION:
735d2i_PKCS7_RECIP_INFO 742 EXIST::FUNCTION:
736d2i_PKCS7_SIGNED 743 EXIST::FUNCTION:
737d2i_PKCS7_SIGNER_INFO 744 EXIST::FUNCTION:
738d2i_PKCS7_SIGN_ENVELOPE 745 EXIST::FUNCTION:
739d2i_PKCS7_bio 746 EXIST::FUNCTION:
740d2i_PKCS7_fp 747 EXIST::FUNCTION:FP_API
741d2i_PrivateKey 748 EXIST::FUNCTION:
742d2i_PublicKey 749 EXIST::FUNCTION:
743d2i_RSAPrivateKey 750 EXIST::FUNCTION:RSA
744d2i_RSAPrivateKey_bio 751 EXIST::FUNCTION:BIO,RSA
745d2i_RSAPrivateKey_fp 752 EXIST::FUNCTION:FP_API,RSA
746d2i_RSAPublicKey 753 EXIST::FUNCTION:RSA
747d2i_X509 754 EXIST::FUNCTION:
748d2i_X509_ALGOR 755 EXIST::FUNCTION:
749d2i_X509_ATTRIBUTE 756 EXIST::FUNCTION:
750d2i_X509_CINF 757 EXIST::FUNCTION:
751d2i_X509_CRL 758 EXIST::FUNCTION:
752d2i_X509_CRL_INFO 759 EXIST::FUNCTION:
753d2i_X509_CRL_bio 760 EXIST::FUNCTION:BIO
754d2i_X509_CRL_fp 761 EXIST::FUNCTION:FP_API
755d2i_X509_EXTENSION 762 EXIST::FUNCTION:
756d2i_X509_NAME 763 EXIST::FUNCTION:
757d2i_X509_NAME_ENTRY 764 EXIST::FUNCTION:
758d2i_X509_PKEY 765 EXIST::FUNCTION:
759d2i_X509_PUBKEY 766 EXIST::FUNCTION:
760d2i_X509_REQ 767 EXIST::FUNCTION:
761d2i_X509_REQ_INFO 768 EXIST::FUNCTION:
762d2i_X509_REQ_bio 769 EXIST::FUNCTION:BIO
763d2i_X509_REQ_fp 770 EXIST::FUNCTION:FP_API
764d2i_X509_REVOKED 771 EXIST::FUNCTION:
765d2i_X509_SIG 772 EXIST::FUNCTION:
766d2i_X509_VAL 773 EXIST::FUNCTION:
767d2i_X509_bio 774 EXIST::FUNCTION:BIO
768d2i_X509_fp 775 EXIST::FUNCTION:FP_API
769DES_cbc_cksum 777 EXIST::FUNCTION:DES
770DES_cbc_encrypt 778 EXIST::FUNCTION:DES
771DES_cblock_print_file 779 NOEXIST::FUNCTION:
772DES_cfb64_encrypt 780 EXIST::FUNCTION:DES
773DES_cfb_encrypt 781 EXIST::FUNCTION:DES
774DES_decrypt3 782 EXIST::FUNCTION:DES
775DES_ecb3_encrypt 783 EXIST::FUNCTION:DES
776DES_ecb_encrypt 784 EXIST::FUNCTION:DES
777DES_ede3_cbc_encrypt 785 EXIST::FUNCTION:DES
778DES_ede3_cfb64_encrypt 786 EXIST::FUNCTION:DES
779DES_ede3_ofb64_encrypt 787 EXIST::FUNCTION:DES
780DES_enc_read 788 EXIST::FUNCTION:DES
781DES_enc_write 789 EXIST::FUNCTION:DES
782DES_encrypt1 790 EXIST::FUNCTION:DES
783DES_encrypt2 791 EXIST::FUNCTION:DES
784DES_encrypt3 792 EXIST::FUNCTION:DES
785DES_fcrypt 793 EXIST::FUNCTION:DES
786DES_is_weak_key 794 EXIST::FUNCTION:DES
787DES_key_sched 795 EXIST::FUNCTION:DES
788DES_ncbc_encrypt 796 EXIST::FUNCTION:DES
789DES_ofb64_encrypt 797 EXIST::FUNCTION:DES
790DES_ofb_encrypt 798 EXIST::FUNCTION:DES
791DES_options 799 EXIST::FUNCTION:DES
792DES_pcbc_encrypt 800 EXIST::FUNCTION:DES
793DES_quad_cksum 801 EXIST::FUNCTION:DES
794DES_random_key 802 EXIST::FUNCTION:DES
795_ossl_old_des_random_seed 803 EXIST::FUNCTION:DES
796_ossl_old_des_read_2passwords 804 EXIST::FUNCTION:DES
797_ossl_old_des_read_password 805 EXIST::FUNCTION:DES
798_ossl_old_des_read_pw 806 EXIST::FUNCTION:
799_ossl_old_des_read_pw_string 807 EXIST::FUNCTION:
800DES_set_key 808 EXIST::FUNCTION:DES
801DES_set_odd_parity 809 EXIST::FUNCTION:DES
802DES_string_to_2keys 810 EXIST::FUNCTION:DES
803DES_string_to_key 811 EXIST::FUNCTION:DES
804DES_xcbc_encrypt 812 EXIST::FUNCTION:DES
805DES_xwhite_in2out 813 EXIST::FUNCTION:DES
806fcrypt_body 814 NOEXIST::FUNCTION:
807i2a_ASN1_INTEGER 815 EXIST::FUNCTION:BIO
808i2a_ASN1_OBJECT 816 EXIST::FUNCTION:BIO
809i2a_ASN1_STRING 817 EXIST::FUNCTION:BIO
810i2d_ASN1_BIT_STRING 818 EXIST::FUNCTION:
811i2d_ASN1_BOOLEAN 819 EXIST::FUNCTION:
812i2d_ASN1_HEADER 820 EXIST::FUNCTION:
813i2d_ASN1_IA5STRING 821 EXIST::FUNCTION:
814i2d_ASN1_INTEGER 822 EXIST::FUNCTION:
815i2d_ASN1_OBJECT 823 EXIST::FUNCTION:
816i2d_ASN1_OCTET_STRING 824 EXIST::FUNCTION:
817i2d_ASN1_PRINTABLE 825 EXIST::FUNCTION:
818i2d_ASN1_SET 826 EXIST::FUNCTION:
819i2d_ASN1_TYPE 827 EXIST::FUNCTION:
820i2d_ASN1_UTCTIME 828 EXIST::FUNCTION:
821i2d_ASN1_bytes 829 EXIST::FUNCTION:
822i2d_DHparams 830 EXIST::FUNCTION:DH
823i2d_DSAPrivateKey 831 EXIST::FUNCTION:DSA
824i2d_DSAPrivateKey_bio 832 EXIST::FUNCTION:BIO,DSA
825i2d_DSAPrivateKey_fp 833 EXIST::FUNCTION:DSA,FP_API
826i2d_DSAPublicKey 834 EXIST::FUNCTION:DSA
827i2d_DSAparams 835 EXIST::FUNCTION:DSA
828i2d_NETSCAPE_SPKAC 836 EXIST::FUNCTION:
829i2d_NETSCAPE_SPKI 837 EXIST::FUNCTION:
830i2d_Netscape_RSA 838 EXIST::FUNCTION:RSA
831i2d_PKCS7 839 EXIST::FUNCTION:
832i2d_PKCS7_DIGEST 840 EXIST::FUNCTION:
833i2d_PKCS7_ENCRYPT 841 EXIST::FUNCTION:
834i2d_PKCS7_ENC_CONTENT 842 EXIST::FUNCTION:
835i2d_PKCS7_ENVELOPE 843 EXIST::FUNCTION:
836i2d_PKCS7_ISSUER_AND_SERIAL 844 EXIST::FUNCTION:
837i2d_PKCS7_RECIP_INFO 845 EXIST::FUNCTION:
838i2d_PKCS7_SIGNED 846 EXIST::FUNCTION:
839i2d_PKCS7_SIGNER_INFO 847 EXIST::FUNCTION:
840i2d_PKCS7_SIGN_ENVELOPE 848 EXIST::FUNCTION:
841i2d_PKCS7_bio 849 EXIST::FUNCTION:
842i2d_PKCS7_fp 850 EXIST::FUNCTION:FP_API
843i2d_PrivateKey 851 EXIST::FUNCTION:
844i2d_PublicKey 852 EXIST::FUNCTION:
845i2d_RSAPrivateKey 853 EXIST::FUNCTION:RSA
846i2d_RSAPrivateKey_bio 854 EXIST::FUNCTION:BIO,RSA
847i2d_RSAPrivateKey_fp 855 EXIST::FUNCTION:FP_API,RSA
848i2d_RSAPublicKey 856 EXIST::FUNCTION:RSA
849i2d_X509 857 EXIST::FUNCTION:
850i2d_X509_ALGOR 858 EXIST::FUNCTION:
851i2d_X509_ATTRIBUTE 859 EXIST::FUNCTION:
852i2d_X509_CINF 860 EXIST::FUNCTION:
853i2d_X509_CRL 861 EXIST::FUNCTION:
854i2d_X509_CRL_INFO 862 EXIST::FUNCTION:
855i2d_X509_CRL_bio 863 EXIST::FUNCTION:BIO
856i2d_X509_CRL_fp 864 EXIST::FUNCTION:FP_API
857i2d_X509_EXTENSION 865 EXIST::FUNCTION:
858i2d_X509_NAME 866 EXIST::FUNCTION:
859i2d_X509_NAME_ENTRY 867 EXIST::FUNCTION:
860i2d_X509_PKEY 868 EXIST::FUNCTION:
861i2d_X509_PUBKEY 869 EXIST::FUNCTION:
862i2d_X509_REQ 870 EXIST::FUNCTION:
863i2d_X509_REQ_INFO 871 EXIST::FUNCTION:
864i2d_X509_REQ_bio 872 EXIST::FUNCTION:BIO
865i2d_X509_REQ_fp 873 EXIST::FUNCTION:FP_API
866i2d_X509_REVOKED 874 EXIST::FUNCTION:
867i2d_X509_SIG 875 EXIST::FUNCTION:
868i2d_X509_VAL 876 EXIST::FUNCTION:
869i2d_X509_bio 877 EXIST::FUNCTION:BIO
870i2d_X509_fp 878 EXIST::FUNCTION:FP_API
871idea_cbc_encrypt 879 EXIST::FUNCTION:IDEA
872idea_cfb64_encrypt 880 EXIST::FUNCTION:IDEA
873idea_ecb_encrypt 881 EXIST::FUNCTION:IDEA
874idea_encrypt 882 EXIST::FUNCTION:IDEA
875idea_ofb64_encrypt 883 EXIST::FUNCTION:IDEA
876idea_options 884 EXIST::FUNCTION:IDEA
877idea_set_decrypt_key 885 EXIST::FUNCTION:IDEA
878idea_set_encrypt_key 886 EXIST::FUNCTION:IDEA
879lh_delete 887 EXIST::FUNCTION:
880lh_doall 888 EXIST::FUNCTION:
881lh_doall_arg 889 EXIST::FUNCTION:
882lh_free 890 EXIST::FUNCTION:
883lh_insert 891 EXIST::FUNCTION:
884lh_new 892 EXIST::FUNCTION:
885lh_node_stats 893 EXIST::FUNCTION:FP_API
886lh_node_stats_bio 894 EXIST::FUNCTION:BIO
887lh_node_usage_stats 895 EXIST::FUNCTION:FP_API
888lh_node_usage_stats_bio 896 EXIST::FUNCTION:BIO
889lh_retrieve 897 EXIST::FUNCTION:
890lh_stats 898 EXIST::FUNCTION:FP_API
891lh_stats_bio 899 EXIST::FUNCTION:BIO
892lh_strhash 900 EXIST::FUNCTION:
893sk_delete 901 EXIST::FUNCTION:
894sk_delete_ptr 902 EXIST::FUNCTION:
895sk_dup 903 EXIST::FUNCTION:
896sk_find 904 EXIST::FUNCTION:
897sk_free 905 EXIST::FUNCTION:
898sk_insert 906 EXIST::FUNCTION:
899sk_new 907 EXIST::FUNCTION:
900sk_pop 908 EXIST::FUNCTION:
901sk_pop_free 909 EXIST::FUNCTION:
902sk_push 910 EXIST::FUNCTION:
903sk_set_cmp_func 911 EXIST::FUNCTION:
904sk_shift 912 EXIST::FUNCTION:
905sk_unshift 913 EXIST::FUNCTION:
906sk_zero 914 EXIST::FUNCTION:
907BIO_f_nbio_test 915 EXIST::FUNCTION:
908ASN1_TYPE_get 916 EXIST::FUNCTION:
909ASN1_TYPE_set 917 EXIST::FUNCTION:
910PKCS7_content_free 918 NOEXIST::FUNCTION:
911ERR_load_PKCS7_strings 919 EXIST::FUNCTION:
912X509_find_by_issuer_and_serial 920 EXIST::FUNCTION:
913X509_find_by_subject 921 EXIST::FUNCTION:
914PKCS7_ctrl 927 EXIST::FUNCTION:
915PKCS7_set_type 928 EXIST::FUNCTION:
916PKCS7_set_content 929 EXIST::FUNCTION:
917PKCS7_SIGNER_INFO_set 930 EXIST::FUNCTION:
918PKCS7_add_signer 931 EXIST::FUNCTION:
919PKCS7_add_certificate 932 EXIST::FUNCTION:
920PKCS7_add_crl 933 EXIST::FUNCTION:
921PKCS7_content_new 934 EXIST::FUNCTION:
922PKCS7_dataSign 935 NOEXIST::FUNCTION:
923PKCS7_dataVerify 936 EXIST::FUNCTION:
924PKCS7_dataInit 937 EXIST::FUNCTION:
925PKCS7_add_signature 938 EXIST::FUNCTION:
926PKCS7_cert_from_signer_info 939 EXIST::FUNCTION:
927PKCS7_get_signer_info 940 EXIST::FUNCTION:
928EVP_delete_alias 941 NOEXIST::FUNCTION:
929EVP_mdc2 942 EXIST::FUNCTION:MDC2
930PEM_read_bio_RSAPublicKey 943 EXIST::FUNCTION:RSA
931PEM_write_bio_RSAPublicKey 944 EXIST::FUNCTION:RSA
932d2i_RSAPublicKey_bio 945 EXIST::FUNCTION:BIO,RSA
933i2d_RSAPublicKey_bio 946 EXIST::FUNCTION:BIO,RSA
934PEM_read_RSAPublicKey 947 EXIST:!WIN16:FUNCTION:RSA
935PEM_write_RSAPublicKey 949 EXIST:!WIN16:FUNCTION:RSA
936d2i_RSAPublicKey_fp 952 EXIST::FUNCTION:FP_API,RSA
937i2d_RSAPublicKey_fp 954 EXIST::FUNCTION:FP_API,RSA
938BIO_copy_next_retry 955 EXIST::FUNCTION:
939RSA_flags 956 EXIST::FUNCTION:RSA
940X509_STORE_add_crl 957 EXIST::FUNCTION:
941X509_load_crl_file 958 EXIST::FUNCTION:STDIO
942EVP_rc2_40_cbc 959 EXIST::FUNCTION:RC2
943EVP_rc4_40 960 EXIST::FUNCTION:RC4
944EVP_CIPHER_CTX_init 961 EXIST::FUNCTION:
945HMAC 962 EXIST::FUNCTION:HMAC
946HMAC_Init 963 EXIST::FUNCTION:HMAC
947HMAC_Update 964 EXIST::FUNCTION:HMAC
948HMAC_Final 965 EXIST::FUNCTION:HMAC
949ERR_get_next_error_library 966 EXIST::FUNCTION:
950EVP_PKEY_cmp_parameters 967 EXIST::FUNCTION:
951HMAC_cleanup 968 NOEXIST::FUNCTION:
952BIO_ptr_ctrl 969 EXIST::FUNCTION:
953BIO_new_file_internal 970 EXIST:WIN16:FUNCTION:FP_API
954BIO_new_fp_internal 971 EXIST:WIN16:FUNCTION:FP_API
955BIO_s_file_internal 972 EXIST:WIN16:FUNCTION:FP_API
956BN_BLINDING_convert 973 EXIST::FUNCTION:
957BN_BLINDING_invert 974 EXIST::FUNCTION:
958BN_BLINDING_update 975 EXIST::FUNCTION:
959RSA_blinding_on 977 EXIST::FUNCTION:RSA
960RSA_blinding_off 978 EXIST::FUNCTION:RSA
961i2t_ASN1_OBJECT 979 EXIST::FUNCTION:
962BN_BLINDING_new 980 EXIST::FUNCTION:
963BN_BLINDING_free 981 EXIST::FUNCTION:
964EVP_cast5_cbc 983 EXIST::FUNCTION:CAST
965EVP_cast5_cfb64 984 EXIST::FUNCTION:CAST
966EVP_cast5_ecb 985 EXIST::FUNCTION:CAST
967EVP_cast5_ofb 986 EXIST::FUNCTION:CAST
968BF_decrypt 987 EXIST::FUNCTION:BF
969CAST_set_key 988 EXIST::FUNCTION:CAST
970CAST_encrypt 989 EXIST::FUNCTION:CAST
971CAST_decrypt 990 EXIST::FUNCTION:CAST
972CAST_ecb_encrypt 991 EXIST::FUNCTION:CAST
973CAST_cbc_encrypt 992 EXIST::FUNCTION:CAST
974CAST_cfb64_encrypt 993 EXIST::FUNCTION:CAST
975CAST_ofb64_encrypt 994 EXIST::FUNCTION:CAST
976RC2_decrypt 995 EXIST::FUNCTION:RC2
977OBJ_create_objects 997 EXIST::FUNCTION:
978BN_exp 998 EXIST::FUNCTION:
979BN_mul_word 999 EXIST::FUNCTION:
980BN_sub_word 1000 EXIST::FUNCTION:
981BN_dec2bn 1001 EXIST::FUNCTION:
982BN_bn2dec 1002 EXIST::FUNCTION:
983BIO_ghbn_ctrl 1003 NOEXIST::FUNCTION:
984CRYPTO_free_ex_data 1004 EXIST::FUNCTION:
985CRYPTO_get_ex_data 1005 EXIST::FUNCTION:
986CRYPTO_set_ex_data 1007 EXIST::FUNCTION:
987ERR_load_CRYPTO_strings 1009 EXIST:!OS2,!VMS,!WIN16:FUNCTION:
988ERR_load_CRYPTOlib_strings 1009 EXIST:OS2,VMS,WIN16:FUNCTION:
989EVP_PKEY_bits 1010 EXIST::FUNCTION:
990MD5_Transform 1011 EXIST::FUNCTION:MD5
991SHA1_Transform 1012 EXIST::FUNCTION:SHA,SHA1
992SHA_Transform 1013 EXIST::FUNCTION:SHA,SHA0
993X509_STORE_CTX_get_chain 1014 EXIST::FUNCTION:
994X509_STORE_CTX_get_current_cert 1015 EXIST::FUNCTION:
995X509_STORE_CTX_get_error 1016 EXIST::FUNCTION:
996X509_STORE_CTX_get_error_depth 1017 EXIST::FUNCTION:
997X509_STORE_CTX_get_ex_data 1018 EXIST::FUNCTION:
998X509_STORE_CTX_set_cert 1020 EXIST::FUNCTION:
999X509_STORE_CTX_set_chain 1021 EXIST::FUNCTION:
1000X509_STORE_CTX_set_error 1022 EXIST::FUNCTION:
1001X509_STORE_CTX_set_ex_data 1023 EXIST::FUNCTION:
1002CRYPTO_dup_ex_data 1025 EXIST::FUNCTION:
1003CRYPTO_get_new_lockid 1026 EXIST::FUNCTION:
1004CRYPTO_new_ex_data 1027 EXIST::FUNCTION:
1005RSA_set_ex_data 1028 EXIST::FUNCTION:RSA
1006RSA_get_ex_data 1029 EXIST::FUNCTION:RSA
1007RSA_get_ex_new_index 1030 EXIST::FUNCTION:RSA
1008RSA_padding_add_PKCS1_type_1 1031 EXIST::FUNCTION:RSA
1009RSA_padding_add_PKCS1_type_2 1032 EXIST::FUNCTION:RSA
1010RSA_padding_add_SSLv23 1033 EXIST::FUNCTION:RSA
1011RSA_padding_add_none 1034 EXIST::FUNCTION:RSA
1012RSA_padding_check_PKCS1_type_1 1035 EXIST::FUNCTION:RSA
1013RSA_padding_check_PKCS1_type_2 1036 EXIST::FUNCTION:RSA
1014RSA_padding_check_SSLv23 1037 EXIST::FUNCTION:RSA
1015RSA_padding_check_none 1038 EXIST::FUNCTION:RSA
1016bn_add_words 1039 EXIST::FUNCTION:
1017d2i_Netscape_RSA_2 1040 NOEXIST::FUNCTION:
1018CRYPTO_get_ex_new_index 1041 EXIST::FUNCTION:
1019RIPEMD160_Init 1042 EXIST::FUNCTION:RIPEMD
1020RIPEMD160_Update 1043 EXIST::FUNCTION:RIPEMD
1021RIPEMD160_Final 1044 EXIST::FUNCTION:RIPEMD
1022RIPEMD160 1045 EXIST::FUNCTION:RIPEMD
1023RIPEMD160_Transform 1046 EXIST::FUNCTION:RIPEMD
1024RC5_32_set_key 1047 EXIST::FUNCTION:RC5
1025RC5_32_ecb_encrypt 1048 EXIST::FUNCTION:RC5
1026RC5_32_encrypt 1049 EXIST::FUNCTION:RC5
1027RC5_32_decrypt 1050 EXIST::FUNCTION:RC5
1028RC5_32_cbc_encrypt 1051 EXIST::FUNCTION:RC5
1029RC5_32_cfb64_encrypt 1052 EXIST::FUNCTION:RC5
1030RC5_32_ofb64_encrypt 1053 EXIST::FUNCTION:RC5
1031BN_bn2mpi 1058 EXIST::FUNCTION:
1032BN_mpi2bn 1059 EXIST::FUNCTION:
1033ASN1_BIT_STRING_get_bit 1060 EXIST::FUNCTION:
1034ASN1_BIT_STRING_set_bit 1061 EXIST::FUNCTION:
1035BIO_get_ex_data 1062 EXIST::FUNCTION:
1036BIO_get_ex_new_index 1063 EXIST::FUNCTION:
1037BIO_set_ex_data 1064 EXIST::FUNCTION:
1038X509v3_get_key_usage 1066 NOEXIST::FUNCTION:
1039X509v3_set_key_usage 1067 NOEXIST::FUNCTION:
1040a2i_X509v3_key_usage 1068 NOEXIST::FUNCTION:
1041i2a_X509v3_key_usage 1069 NOEXIST::FUNCTION:
1042EVP_PKEY_decrypt 1070 EXIST::FUNCTION:
1043EVP_PKEY_encrypt 1071 EXIST::FUNCTION:
1044PKCS7_RECIP_INFO_set 1072 EXIST::FUNCTION:
1045PKCS7_add_recipient 1073 EXIST::FUNCTION:
1046PKCS7_add_recipient_info 1074 EXIST::FUNCTION:
1047PKCS7_set_cipher 1075 EXIST::FUNCTION:
1048ASN1_TYPE_get_int_octetstring 1076 EXIST::FUNCTION:
1049ASN1_TYPE_get_octetstring 1077 EXIST::FUNCTION:
1050ASN1_TYPE_set_int_octetstring 1078 EXIST::FUNCTION:
1051ASN1_TYPE_set_octetstring 1079 EXIST::FUNCTION:
1052ASN1_UTCTIME_set_string 1080 EXIST::FUNCTION:
1053ERR_add_error_data 1081 EXIST::FUNCTION:BIO
1054ERR_set_error_data 1082 EXIST::FUNCTION:
1055EVP_CIPHER_asn1_to_param 1083 EXIST::FUNCTION:
1056EVP_CIPHER_param_to_asn1 1084 EXIST::FUNCTION:
1057EVP_CIPHER_get_asn1_iv 1085 EXIST::FUNCTION:
1058EVP_CIPHER_set_asn1_iv 1086 EXIST::FUNCTION:
1059EVP_rc5_32_12_16_cbc 1087 EXIST::FUNCTION:RC5
1060EVP_rc5_32_12_16_cfb64 1088 EXIST::FUNCTION:RC5
1061EVP_rc5_32_12_16_ecb 1089 EXIST::FUNCTION:RC5
1062EVP_rc5_32_12_16_ofb 1090 EXIST::FUNCTION:RC5
1063asn1_add_error 1091 EXIST::FUNCTION:
1064d2i_ASN1_BMPSTRING 1092 EXIST::FUNCTION:
1065i2d_ASN1_BMPSTRING 1093 EXIST::FUNCTION:
1066BIO_f_ber 1094 NOEXIST::FUNCTION:
1067BN_init 1095 EXIST::FUNCTION:
1068COMP_CTX_new 1096 EXIST::FUNCTION:
1069COMP_CTX_free 1097 EXIST::FUNCTION:
1070COMP_CTX_compress_block 1098 NOEXIST::FUNCTION:
1071COMP_CTX_expand_block 1099 NOEXIST::FUNCTION:
1072X509_STORE_CTX_get_ex_new_index 1100 EXIST::FUNCTION:
1073OBJ_NAME_add 1101 EXIST::FUNCTION:
1074BIO_socket_nbio 1102 EXIST::FUNCTION:
1075EVP_rc2_64_cbc 1103 EXIST::FUNCTION:RC2
1076OBJ_NAME_cleanup 1104 EXIST::FUNCTION:
1077OBJ_NAME_get 1105 EXIST::FUNCTION:
1078OBJ_NAME_init 1106 EXIST::FUNCTION:
1079OBJ_NAME_new_index 1107 EXIST::FUNCTION:
1080OBJ_NAME_remove 1108 EXIST::FUNCTION:
1081BN_MONT_CTX_copy 1109 EXIST::FUNCTION:
1082BIO_new_socks4a_connect 1110 NOEXIST::FUNCTION:
1083BIO_s_socks4a_connect 1111 NOEXIST::FUNCTION:
1084PROXY_set_connect_mode 1112 NOEXIST::FUNCTION:
1085RAND_SSLeay 1113 EXIST::FUNCTION:
1086RAND_set_rand_method 1114 EXIST::FUNCTION:
1087RSA_memory_lock 1115 EXIST::FUNCTION:RSA
1088bn_sub_words 1116 EXIST::FUNCTION:
1089bn_mul_normal 1117 NOEXIST::FUNCTION:
1090bn_mul_comba8 1118 NOEXIST::FUNCTION:
1091bn_mul_comba4 1119 NOEXIST::FUNCTION:
1092bn_sqr_normal 1120 NOEXIST::FUNCTION:
1093bn_sqr_comba8 1121 NOEXIST::FUNCTION:
1094bn_sqr_comba4 1122 NOEXIST::FUNCTION:
1095bn_cmp_words 1123 NOEXIST::FUNCTION:
1096bn_mul_recursive 1124 NOEXIST::FUNCTION:
1097bn_mul_part_recursive 1125 NOEXIST::FUNCTION:
1098bn_sqr_recursive 1126 NOEXIST::FUNCTION:
1099bn_mul_low_normal 1127 NOEXIST::FUNCTION:
1100BN_RECP_CTX_init 1128 EXIST::FUNCTION:
1101BN_RECP_CTX_new 1129 EXIST::FUNCTION:
1102BN_RECP_CTX_free 1130 EXIST::FUNCTION:
1103BN_RECP_CTX_set 1131 EXIST::FUNCTION:
1104BN_mod_mul_reciprocal 1132 EXIST::FUNCTION:
1105BN_mod_exp_recp 1133 EXIST::FUNCTION:
1106BN_div_recp 1134 EXIST::FUNCTION:
1107BN_CTX_init 1135 EXIST::FUNCTION:
1108BN_MONT_CTX_init 1136 EXIST::FUNCTION:
1109RAND_get_rand_method 1137 EXIST::FUNCTION:
1110PKCS7_add_attribute 1138 EXIST::FUNCTION:
1111PKCS7_add_signed_attribute 1139 EXIST::FUNCTION:
1112PKCS7_digest_from_attributes 1140 EXIST::FUNCTION:
1113PKCS7_get_attribute 1141 EXIST::FUNCTION:
1114PKCS7_get_issuer_and_serial 1142 EXIST::FUNCTION:
1115PKCS7_get_signed_attribute 1143 EXIST::FUNCTION:
1116COMP_compress_block 1144 EXIST::FUNCTION:
1117COMP_expand_block 1145 EXIST::FUNCTION:
1118COMP_rle 1146 EXIST::FUNCTION:
1119COMP_zlib 1147 EXIST::FUNCTION:
1120ms_time_diff 1148 EXIST::FUNCTION:
1121ms_time_new 1149 EXIST::FUNCTION:
1122ms_time_free 1150 EXIST::FUNCTION:
1123ms_time_cmp 1151 EXIST::FUNCTION:
1124ms_time_get 1152 EXIST::FUNCTION:
1125PKCS7_set_attributes 1153 EXIST::FUNCTION:
1126PKCS7_set_signed_attributes 1154 EXIST::FUNCTION:
1127X509_ATTRIBUTE_create 1155 EXIST::FUNCTION:
1128X509_ATTRIBUTE_dup 1156 EXIST::FUNCTION:
1129ASN1_GENERALIZEDTIME_check 1157 EXIST::FUNCTION:
1130ASN1_GENERALIZEDTIME_print 1158 EXIST::FUNCTION:BIO
1131ASN1_GENERALIZEDTIME_set 1159 EXIST::FUNCTION:
1132ASN1_GENERALIZEDTIME_set_string 1160 EXIST::FUNCTION:
1133ASN1_TIME_print 1161 EXIST::FUNCTION:BIO
1134BASIC_CONSTRAINTS_free 1162 EXIST::FUNCTION:
1135BASIC_CONSTRAINTS_new 1163 EXIST::FUNCTION:
1136ERR_load_X509V3_strings 1164 EXIST::FUNCTION:
1137NETSCAPE_CERT_SEQUENCE_free 1165 EXIST::FUNCTION:
1138NETSCAPE_CERT_SEQUENCE_new 1166 EXIST::FUNCTION:
1139OBJ_txt2obj 1167 EXIST::FUNCTION:
1140PEM_read_NETSCAPE_CERT_SEQUENCE 1168 EXIST:!VMS,!WIN16:FUNCTION:
1141PEM_read_NS_CERT_SEQ 1168 EXIST:VMS:FUNCTION:
1142PEM_read_bio_NETSCAPE_CERT_SEQUENCE 1169 EXIST:!VMS:FUNCTION:
1143PEM_read_bio_NS_CERT_SEQ 1169 EXIST:VMS:FUNCTION:
1144PEM_write_NETSCAPE_CERT_SEQUENCE 1170 EXIST:!VMS,!WIN16:FUNCTION:
1145PEM_write_NS_CERT_SEQ 1170 EXIST:VMS:FUNCTION:
1146PEM_write_bio_NETSCAPE_CERT_SEQUENCE 1171 EXIST:!VMS:FUNCTION:
1147PEM_write_bio_NS_CERT_SEQ 1171 EXIST:VMS:FUNCTION:
1148X509V3_EXT_add 1172 EXIST::FUNCTION:
1149X509V3_EXT_add_alias 1173 EXIST::FUNCTION:
1150X509V3_EXT_add_conf 1174 EXIST::FUNCTION:
1151X509V3_EXT_cleanup 1175 EXIST::FUNCTION:
1152X509V3_EXT_conf 1176 EXIST::FUNCTION:
1153X509V3_EXT_conf_nid 1177 EXIST::FUNCTION:
1154X509V3_EXT_get 1178 EXIST::FUNCTION:
1155X509V3_EXT_get_nid 1179 EXIST::FUNCTION:
1156X509V3_EXT_print 1180 EXIST::FUNCTION:
1157X509V3_EXT_print_fp 1181 EXIST::FUNCTION:
1158X509V3_add_standard_extensions 1182 EXIST::FUNCTION:
1159X509V3_add_value 1183 EXIST::FUNCTION:
1160X509V3_add_value_bool 1184 EXIST::FUNCTION:
1161X509V3_add_value_int 1185 EXIST::FUNCTION:
1162X509V3_conf_free 1186 EXIST::FUNCTION:
1163X509V3_get_value_bool 1187 EXIST::FUNCTION:
1164X509V3_get_value_int 1188 EXIST::FUNCTION:
1165X509V3_parse_list 1189 EXIST::FUNCTION:
1166d2i_ASN1_GENERALIZEDTIME 1190 EXIST::FUNCTION:
1167d2i_ASN1_TIME 1191 EXIST::FUNCTION:
1168d2i_BASIC_CONSTRAINTS 1192 EXIST::FUNCTION:
1169d2i_NETSCAPE_CERT_SEQUENCE 1193 EXIST::FUNCTION:
1170d2i_ext_ku 1194 NOEXIST::FUNCTION:
1171ext_ku_free 1195 NOEXIST::FUNCTION:
1172ext_ku_new 1196 NOEXIST::FUNCTION:
1173i2d_ASN1_GENERALIZEDTIME 1197 EXIST::FUNCTION:
1174i2d_ASN1_TIME 1198 EXIST::FUNCTION:
1175i2d_BASIC_CONSTRAINTS 1199 EXIST::FUNCTION:
1176i2d_NETSCAPE_CERT_SEQUENCE 1200 EXIST::FUNCTION:
1177i2d_ext_ku 1201 NOEXIST::FUNCTION:
1178EVP_MD_CTX_copy 1202 EXIST::FUNCTION:
1179i2d_ASN1_ENUMERATED 1203 EXIST::FUNCTION:
1180d2i_ASN1_ENUMERATED 1204 EXIST::FUNCTION:
1181ASN1_ENUMERATED_set 1205 EXIST::FUNCTION:
1182ASN1_ENUMERATED_get 1206 EXIST::FUNCTION:
1183BN_to_ASN1_ENUMERATED 1207 EXIST::FUNCTION:
1184ASN1_ENUMERATED_to_BN 1208 EXIST::FUNCTION:
1185i2a_ASN1_ENUMERATED 1209 EXIST::FUNCTION:BIO
1186a2i_ASN1_ENUMERATED 1210 EXIST::FUNCTION:BIO
1187i2d_GENERAL_NAME 1211 EXIST::FUNCTION:
1188d2i_GENERAL_NAME 1212 EXIST::FUNCTION:
1189GENERAL_NAME_new 1213 EXIST::FUNCTION:
1190GENERAL_NAME_free 1214 EXIST::FUNCTION:
1191GENERAL_NAMES_new 1215 EXIST::FUNCTION:
1192GENERAL_NAMES_free 1216 EXIST::FUNCTION:
1193d2i_GENERAL_NAMES 1217 EXIST::FUNCTION:
1194i2d_GENERAL_NAMES 1218 EXIST::FUNCTION:
1195i2v_GENERAL_NAMES 1219 EXIST::FUNCTION:
1196i2s_ASN1_OCTET_STRING 1220 EXIST::FUNCTION:
1197s2i_ASN1_OCTET_STRING 1221 EXIST::FUNCTION:
1198X509V3_EXT_check_conf 1222 NOEXIST::FUNCTION:
1199hex_to_string 1223 EXIST::FUNCTION:
1200string_to_hex 1224 EXIST::FUNCTION:
1201DES_ede3_cbcm_encrypt 1225 EXIST::FUNCTION:DES
1202RSA_padding_add_PKCS1_OAEP 1226 EXIST::FUNCTION:RSA
1203RSA_padding_check_PKCS1_OAEP 1227 EXIST::FUNCTION:RSA
1204X509_CRL_print_fp 1228 EXIST::FUNCTION:FP_API
1205X509_CRL_print 1229 EXIST::FUNCTION:BIO
1206i2v_GENERAL_NAME 1230 EXIST::FUNCTION:
1207v2i_GENERAL_NAME 1231 EXIST::FUNCTION:
1208i2d_PKEY_USAGE_PERIOD 1232 EXIST::FUNCTION:
1209d2i_PKEY_USAGE_PERIOD 1233 EXIST::FUNCTION:
1210PKEY_USAGE_PERIOD_new 1234 EXIST::FUNCTION:
1211PKEY_USAGE_PERIOD_free 1235 EXIST::FUNCTION:
1212v2i_GENERAL_NAMES 1236 EXIST::FUNCTION:
1213i2s_ASN1_INTEGER 1237 EXIST::FUNCTION:
1214X509V3_EXT_d2i 1238 EXIST::FUNCTION:
1215name_cmp 1239 EXIST::FUNCTION:
1216str_dup 1240 NOEXIST::FUNCTION:
1217i2s_ASN1_ENUMERATED 1241 EXIST::FUNCTION:
1218i2s_ASN1_ENUMERATED_TABLE 1242 EXIST::FUNCTION:
1219BIO_s_log 1243 EXIST:!OS2,!WIN16,!WIN32,!macintosh:FUNCTION:
1220BIO_f_reliable 1244 EXIST::FUNCTION:BIO
1221PKCS7_dataFinal 1245 EXIST::FUNCTION:
1222PKCS7_dataDecode 1246 EXIST::FUNCTION:
1223X509V3_EXT_CRL_add_conf 1247 EXIST::FUNCTION:
1224BN_set_params 1248 EXIST::FUNCTION:
1225BN_get_params 1249 EXIST::FUNCTION:
1226BIO_get_ex_num 1250 NOEXIST::FUNCTION:
1227BIO_set_ex_free_func 1251 NOEXIST::FUNCTION:
1228EVP_ripemd160 1252 EXIST::FUNCTION:RIPEMD
1229ASN1_TIME_set 1253 EXIST::FUNCTION:
1230i2d_AUTHORITY_KEYID 1254 EXIST::FUNCTION:
1231d2i_AUTHORITY_KEYID 1255 EXIST::FUNCTION:
1232AUTHORITY_KEYID_new 1256 EXIST::FUNCTION:
1233AUTHORITY_KEYID_free 1257 EXIST::FUNCTION:
1234ASN1_seq_unpack 1258 EXIST::FUNCTION:
1235ASN1_seq_pack 1259 EXIST::FUNCTION:
1236ASN1_unpack_string 1260 EXIST::FUNCTION:
1237ASN1_pack_string 1261 EXIST::FUNCTION:
1238PKCS12_pack_safebag 1262 NOEXIST::FUNCTION:
1239PKCS12_MAKE_KEYBAG 1263 EXIST::FUNCTION:
1240PKCS8_encrypt 1264 EXIST::FUNCTION:
1241PKCS12_MAKE_SHKEYBAG 1265 EXIST::FUNCTION:
1242PKCS12_pack_p7data 1266 EXIST::FUNCTION:
1243PKCS12_pack_p7encdata 1267 EXIST::FUNCTION:
1244PKCS12_add_localkeyid 1268 EXIST::FUNCTION:
1245PKCS12_add_friendlyname_asc 1269 EXIST::FUNCTION:
1246PKCS12_add_friendlyname_uni 1270 EXIST::FUNCTION:
1247PKCS12_get_friendlyname 1271 EXIST::FUNCTION:
1248PKCS12_pbe_crypt 1272 EXIST::FUNCTION:
1249PKCS12_decrypt_d2i 1273 NOEXIST::FUNCTION:
1250PKCS12_i2d_encrypt 1274 NOEXIST::FUNCTION:
1251PKCS12_init 1275 EXIST::FUNCTION:
1252PKCS12_key_gen_asc 1276 EXIST::FUNCTION:
1253PKCS12_key_gen_uni 1277 EXIST::FUNCTION:
1254PKCS12_gen_mac 1278 EXIST::FUNCTION:
1255PKCS12_verify_mac 1279 EXIST::FUNCTION:
1256PKCS12_set_mac 1280 EXIST::FUNCTION:
1257PKCS12_setup_mac 1281 EXIST::FUNCTION:
1258asc2uni 1282 EXIST::FUNCTION:
1259uni2asc 1283 EXIST::FUNCTION:
1260i2d_PKCS12_BAGS 1284 EXIST::FUNCTION:
1261PKCS12_BAGS_new 1285 EXIST::FUNCTION:
1262d2i_PKCS12_BAGS 1286 EXIST::FUNCTION:
1263PKCS12_BAGS_free 1287 EXIST::FUNCTION:
1264i2d_PKCS12 1288 EXIST::FUNCTION:
1265d2i_PKCS12 1289 EXIST::FUNCTION:
1266PKCS12_new 1290 EXIST::FUNCTION:
1267PKCS12_free 1291 EXIST::FUNCTION:
1268i2d_PKCS12_MAC_DATA 1292 EXIST::FUNCTION:
1269PKCS12_MAC_DATA_new 1293 EXIST::FUNCTION:
1270d2i_PKCS12_MAC_DATA 1294 EXIST::FUNCTION:
1271PKCS12_MAC_DATA_free 1295 EXIST::FUNCTION:
1272i2d_PKCS12_SAFEBAG 1296 EXIST::FUNCTION:
1273PKCS12_SAFEBAG_new 1297 EXIST::FUNCTION:
1274d2i_PKCS12_SAFEBAG 1298 EXIST::FUNCTION:
1275PKCS12_SAFEBAG_free 1299 EXIST::FUNCTION:
1276ERR_load_PKCS12_strings 1300 EXIST::FUNCTION:
1277PKCS12_PBE_add 1301 EXIST::FUNCTION:
1278PKCS8_add_keyusage 1302 EXIST::FUNCTION:
1279PKCS12_get_attr_gen 1303 EXIST::FUNCTION:
1280PKCS12_parse 1304 EXIST::FUNCTION:
1281PKCS12_create 1305 EXIST::FUNCTION:
1282i2d_PKCS12_bio 1306 EXIST::FUNCTION:
1283i2d_PKCS12_fp 1307 EXIST::FUNCTION:
1284d2i_PKCS12_bio 1308 EXIST::FUNCTION:
1285d2i_PKCS12_fp 1309 EXIST::FUNCTION:
1286i2d_PBEPARAM 1310 EXIST::FUNCTION:
1287PBEPARAM_new 1311 EXIST::FUNCTION:
1288d2i_PBEPARAM 1312 EXIST::FUNCTION:
1289PBEPARAM_free 1313 EXIST::FUNCTION:
1290i2d_PKCS8_PRIV_KEY_INFO 1314 EXIST::FUNCTION:
1291PKCS8_PRIV_KEY_INFO_new 1315 EXIST::FUNCTION:
1292d2i_PKCS8_PRIV_KEY_INFO 1316 EXIST::FUNCTION:
1293PKCS8_PRIV_KEY_INFO_free 1317 EXIST::FUNCTION:
1294EVP_PKCS82PKEY 1318 EXIST::FUNCTION:
1295EVP_PKEY2PKCS8 1319 EXIST::FUNCTION:
1296PKCS8_set_broken 1320 EXIST::FUNCTION:
1297EVP_PBE_ALGOR_CipherInit 1321 NOEXIST::FUNCTION:
1298EVP_PBE_alg_add 1322 EXIST::FUNCTION:
1299PKCS5_pbe_set 1323 EXIST::FUNCTION:
1300EVP_PBE_cleanup 1324 EXIST::FUNCTION:
1301i2d_SXNET 1325 EXIST::FUNCTION:
1302d2i_SXNET 1326 EXIST::FUNCTION:
1303SXNET_new 1327 EXIST::FUNCTION:
1304SXNET_free 1328 EXIST::FUNCTION:
1305i2d_SXNETID 1329 EXIST::FUNCTION:
1306d2i_SXNETID 1330 EXIST::FUNCTION:
1307SXNETID_new 1331 EXIST::FUNCTION:
1308SXNETID_free 1332 EXIST::FUNCTION:
1309DSA_SIG_new 1333 EXIST::FUNCTION:DSA
1310DSA_SIG_free 1334 EXIST::FUNCTION:DSA
1311DSA_do_sign 1335 EXIST::FUNCTION:DSA
1312DSA_do_verify 1336 EXIST::FUNCTION:DSA
1313d2i_DSA_SIG 1337 EXIST::FUNCTION:DSA
1314i2d_DSA_SIG 1338 EXIST::FUNCTION:DSA
1315i2d_ASN1_VISIBLESTRING 1339 EXIST::FUNCTION:
1316d2i_ASN1_VISIBLESTRING 1340 EXIST::FUNCTION:
1317i2d_ASN1_UTF8STRING 1341 EXIST::FUNCTION:
1318d2i_ASN1_UTF8STRING 1342 EXIST::FUNCTION:
1319i2d_DIRECTORYSTRING 1343 EXIST::FUNCTION:
1320d2i_DIRECTORYSTRING 1344 EXIST::FUNCTION:
1321i2d_DISPLAYTEXT 1345 EXIST::FUNCTION:
1322d2i_DISPLAYTEXT 1346 EXIST::FUNCTION:
1323d2i_ASN1_SET_OF_X509 1379 NOEXIST::FUNCTION:
1324i2d_ASN1_SET_OF_X509 1380 NOEXIST::FUNCTION:
1325i2d_PBKDF2PARAM 1397 EXIST::FUNCTION:
1326PBKDF2PARAM_new 1398 EXIST::FUNCTION:
1327d2i_PBKDF2PARAM 1399 EXIST::FUNCTION:
1328PBKDF2PARAM_free 1400 EXIST::FUNCTION:
1329i2d_PBE2PARAM 1401 EXIST::FUNCTION:
1330PBE2PARAM_new 1402 EXIST::FUNCTION:
1331d2i_PBE2PARAM 1403 EXIST::FUNCTION:
1332PBE2PARAM_free 1404 EXIST::FUNCTION:
1333d2i_ASN1_SET_OF_GENERAL_NAME 1421 NOEXIST::FUNCTION:
1334i2d_ASN1_SET_OF_GENERAL_NAME 1422 NOEXIST::FUNCTION:
1335d2i_ASN1_SET_OF_SXNETID 1439 NOEXIST::FUNCTION:
1336i2d_ASN1_SET_OF_SXNETID 1440 NOEXIST::FUNCTION:
1337d2i_ASN1_SET_OF_POLICYQUALINFO 1457 NOEXIST::FUNCTION:
1338i2d_ASN1_SET_OF_POLICYQUALINFO 1458 NOEXIST::FUNCTION:
1339d2i_ASN1_SET_OF_POLICYINFO 1475 NOEXIST::FUNCTION:
1340i2d_ASN1_SET_OF_POLICYINFO 1476 NOEXIST::FUNCTION:
1341SXNET_add_id_asc 1477 EXIST::FUNCTION:
1342SXNET_add_id_ulong 1478 EXIST::FUNCTION:
1343SXNET_add_id_INTEGER 1479 EXIST::FUNCTION:
1344SXNET_get_id_asc 1480 EXIST::FUNCTION:
1345SXNET_get_id_ulong 1481 EXIST::FUNCTION:
1346SXNET_get_id_INTEGER 1482 EXIST::FUNCTION:
1347X509V3_set_conf_lhash 1483 EXIST::FUNCTION:
1348i2d_CERTIFICATEPOLICIES 1484 EXIST::FUNCTION:
1349CERTIFICATEPOLICIES_new 1485 EXIST::FUNCTION:
1350CERTIFICATEPOLICIES_free 1486 EXIST::FUNCTION:
1351d2i_CERTIFICATEPOLICIES 1487 EXIST::FUNCTION:
1352i2d_POLICYINFO 1488 EXIST::FUNCTION:
1353POLICYINFO_new 1489 EXIST::FUNCTION:
1354d2i_POLICYINFO 1490 EXIST::FUNCTION:
1355POLICYINFO_free 1491 EXIST::FUNCTION:
1356i2d_POLICYQUALINFO 1492 EXIST::FUNCTION:
1357POLICYQUALINFO_new 1493 EXIST::FUNCTION:
1358d2i_POLICYQUALINFO 1494 EXIST::FUNCTION:
1359POLICYQUALINFO_free 1495 EXIST::FUNCTION:
1360i2d_USERNOTICE 1496 EXIST::FUNCTION:
1361USERNOTICE_new 1497 EXIST::FUNCTION:
1362d2i_USERNOTICE 1498 EXIST::FUNCTION:
1363USERNOTICE_free 1499 EXIST::FUNCTION:
1364i2d_NOTICEREF 1500 EXIST::FUNCTION:
1365NOTICEREF_new 1501 EXIST::FUNCTION:
1366d2i_NOTICEREF 1502 EXIST::FUNCTION:
1367NOTICEREF_free 1503 EXIST::FUNCTION:
1368X509V3_get_string 1504 EXIST::FUNCTION:
1369X509V3_get_section 1505 EXIST::FUNCTION:
1370X509V3_string_free 1506 EXIST::FUNCTION:
1371X509V3_section_free 1507 EXIST::FUNCTION:
1372X509V3_set_ctx 1508 EXIST::FUNCTION:
1373s2i_ASN1_INTEGER 1509 EXIST::FUNCTION:
1374CRYPTO_set_locked_mem_functions 1510 EXIST::FUNCTION:
1375CRYPTO_get_locked_mem_functions 1511 EXIST::FUNCTION:
1376CRYPTO_malloc_locked 1512 EXIST::FUNCTION:
1377CRYPTO_free_locked 1513 EXIST::FUNCTION:
1378BN_mod_exp2_mont 1514 EXIST::FUNCTION:
1379ERR_get_error_line_data 1515 EXIST::FUNCTION:
1380ERR_peek_error_line_data 1516 EXIST::FUNCTION:
1381PKCS12_PBE_keyivgen 1517 EXIST::FUNCTION:
1382X509_ALGOR_dup 1518 EXIST::FUNCTION:
1383d2i_ASN1_SET_OF_DIST_POINT 1535 NOEXIST::FUNCTION:
1384i2d_ASN1_SET_OF_DIST_POINT 1536 NOEXIST::FUNCTION:
1385i2d_CRL_DIST_POINTS 1537 EXIST::FUNCTION:
1386CRL_DIST_POINTS_new 1538 EXIST::FUNCTION:
1387CRL_DIST_POINTS_free 1539 EXIST::FUNCTION:
1388d2i_CRL_DIST_POINTS 1540 EXIST::FUNCTION:
1389i2d_DIST_POINT 1541 EXIST::FUNCTION:
1390DIST_POINT_new 1542 EXIST::FUNCTION:
1391d2i_DIST_POINT 1543 EXIST::FUNCTION:
1392DIST_POINT_free 1544 EXIST::FUNCTION:
1393i2d_DIST_POINT_NAME 1545 EXIST::FUNCTION:
1394DIST_POINT_NAME_new 1546 EXIST::FUNCTION:
1395DIST_POINT_NAME_free 1547 EXIST::FUNCTION:
1396d2i_DIST_POINT_NAME 1548 EXIST::FUNCTION:
1397X509V3_add_value_uchar 1549 EXIST::FUNCTION:
1398d2i_ASN1_SET_OF_X509_ATTRIBUTE 1555 NOEXIST::FUNCTION:
1399i2d_ASN1_SET_OF_ASN1_TYPE 1560 NOEXIST::FUNCTION:
1400d2i_ASN1_SET_OF_X509_EXTENSION 1567 NOEXIST::FUNCTION:
1401d2i_ASN1_SET_OF_X509_NAME_ENTRY 1574 NOEXIST::FUNCTION:
1402d2i_ASN1_SET_OF_ASN1_TYPE 1589 NOEXIST::FUNCTION:
1403i2d_ASN1_SET_OF_X509_ATTRIBUTE 1615 NOEXIST::FUNCTION:
1404i2d_ASN1_SET_OF_X509_EXTENSION 1624 NOEXIST::FUNCTION:
1405i2d_ASN1_SET_OF_X509_NAME_ENTRY 1633 NOEXIST::FUNCTION:
1406X509V3_EXT_i2d 1646 EXIST::FUNCTION:
1407X509V3_EXT_val_prn 1647 EXIST::FUNCTION:
1408X509V3_EXT_add_list 1648 EXIST::FUNCTION:
1409EVP_CIPHER_type 1649 EXIST::FUNCTION:
1410EVP_PBE_CipherInit 1650 EXIST::FUNCTION:
1411X509V3_add_value_bool_nf 1651 EXIST::FUNCTION:
1412d2i_ASN1_UINTEGER 1652 EXIST::FUNCTION:
1413sk_value 1653 EXIST::FUNCTION:
1414sk_num 1654 EXIST::FUNCTION:
1415sk_set 1655 EXIST::FUNCTION:
1416i2d_ASN1_SET_OF_X509_REVOKED 1661 NOEXIST::FUNCTION:
1417sk_sort 1671 EXIST::FUNCTION:
1418d2i_ASN1_SET_OF_X509_REVOKED 1674 NOEXIST::FUNCTION:
1419i2d_ASN1_SET_OF_X509_ALGOR 1682 NOEXIST::FUNCTION:
1420i2d_ASN1_SET_OF_X509_CRL 1685 NOEXIST::FUNCTION:
1421d2i_ASN1_SET_OF_X509_ALGOR 1696 NOEXIST::FUNCTION:
1422d2i_ASN1_SET_OF_X509_CRL 1702 NOEXIST::FUNCTION:
1423i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO 1723 NOEXIST::FUNCTION:
1424i2d_ASN1_SET_OF_PKCS7_RECIP_INFO 1738 NOEXIST::FUNCTION:
1425d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO 1748 NOEXIST::FUNCTION:
1426d2i_ASN1_SET_OF_PKCS7_RECIP_INFO 1753 NOEXIST::FUNCTION:
1427PKCS5_PBE_add 1775 EXIST::FUNCTION:
1428PEM_write_bio_PKCS8 1776 EXIST::FUNCTION:
1429i2d_PKCS8_fp 1777 EXIST::FUNCTION:FP_API
1430PEM_read_bio_PKCS8_PRIV_KEY_INFO 1778 EXIST:!VMS:FUNCTION:
1431PEM_read_bio_P8_PRIV_KEY_INFO 1778 EXIST:VMS:FUNCTION:
1432d2i_PKCS8_bio 1779 EXIST::FUNCTION:BIO
1433d2i_PKCS8_PRIV_KEY_INFO_fp 1780 EXIST::FUNCTION:FP_API
1434PEM_write_bio_PKCS8_PRIV_KEY_INFO 1781 EXIST:!VMS:FUNCTION:
1435PEM_write_bio_P8_PRIV_KEY_INFO 1781 EXIST:VMS:FUNCTION:
1436PEM_read_PKCS8 1782 EXIST:!WIN16:FUNCTION:
1437d2i_PKCS8_PRIV_KEY_INFO_bio 1783 EXIST::FUNCTION:BIO
1438d2i_PKCS8_fp 1784 EXIST::FUNCTION:FP_API
1439PEM_write_PKCS8 1785 EXIST:!WIN16:FUNCTION:
1440PEM_read_PKCS8_PRIV_KEY_INFO 1786 EXIST:!VMS,!WIN16:FUNCTION:
1441PEM_read_P8_PRIV_KEY_INFO 1786 EXIST:VMS:FUNCTION:
1442PEM_read_bio_PKCS8 1787 EXIST::FUNCTION:
1443PEM_write_PKCS8_PRIV_KEY_INFO 1788 EXIST:!VMS,!WIN16:FUNCTION:
1444PEM_write_P8_PRIV_KEY_INFO 1788 EXIST:VMS:FUNCTION:
1445PKCS5_PBE_keyivgen 1789 EXIST::FUNCTION:
1446i2d_PKCS8_bio 1790 EXIST::FUNCTION:BIO
1447i2d_PKCS8_PRIV_KEY_INFO_fp 1791 EXIST::FUNCTION:FP_API
1448i2d_PKCS8_PRIV_KEY_INFO_bio 1792 EXIST::FUNCTION:BIO
1449BIO_s_bio 1793 EXIST::FUNCTION:
1450PKCS5_pbe2_set 1794 EXIST::FUNCTION:
1451PKCS5_PBKDF2_HMAC_SHA1 1795 EXIST::FUNCTION:
1452PKCS5_v2_PBE_keyivgen 1796 EXIST::FUNCTION:
1453PEM_write_bio_PKCS8PrivateKey 1797 EXIST::FUNCTION:
1454PEM_write_PKCS8PrivateKey 1798 EXIST::FUNCTION:
1455BIO_ctrl_get_read_request 1799 EXIST::FUNCTION:
1456BIO_ctrl_pending 1800 EXIST::FUNCTION:
1457BIO_ctrl_wpending 1801 EXIST::FUNCTION:
1458BIO_new_bio_pair 1802 EXIST::FUNCTION:
1459BIO_ctrl_get_write_guarantee 1803 EXIST::FUNCTION:
1460CRYPTO_num_locks 1804 EXIST::FUNCTION:
1461CONF_load_bio 1805 EXIST::FUNCTION:
1462CONF_load_fp 1806 EXIST::FUNCTION:FP_API
1463i2d_ASN1_SET_OF_ASN1_OBJECT 1837 NOEXIST::FUNCTION:
1464d2i_ASN1_SET_OF_ASN1_OBJECT 1844 NOEXIST::FUNCTION:
1465PKCS7_signatureVerify 1845 EXIST::FUNCTION:
1466RSA_set_method 1846 EXIST::FUNCTION:RSA
1467RSA_get_method 1847 EXIST::FUNCTION:RSA
1468RSA_get_default_method 1848 EXIST::FUNCTION:RSA
1469RSA_check_key 1869 EXIST::FUNCTION:RSA
1470OBJ_obj2txt 1870 EXIST::FUNCTION:
1471DSA_dup_DH 1871 EXIST::FUNCTION:DH,DSA
1472X509_REQ_get_extensions 1872 EXIST::FUNCTION:
1473X509_REQ_set_extension_nids 1873 EXIST::FUNCTION:
1474BIO_nwrite 1874 EXIST::FUNCTION:
1475X509_REQ_extension_nid 1875 EXIST::FUNCTION:
1476BIO_nread 1876 EXIST::FUNCTION:
1477X509_REQ_get_extension_nids 1877 EXIST::FUNCTION:
1478BIO_nwrite0 1878 EXIST::FUNCTION:
1479X509_REQ_add_extensions_nid 1879 EXIST::FUNCTION:
1480BIO_nread0 1880 EXIST::FUNCTION:
1481X509_REQ_add_extensions 1881 EXIST::FUNCTION:
1482BIO_new_mem_buf 1882 EXIST::FUNCTION:
1483DH_set_ex_data 1883 EXIST::FUNCTION:DH
1484DH_set_method 1884 EXIST::FUNCTION:DH
1485DSA_OpenSSL 1885 EXIST::FUNCTION:DSA
1486DH_get_ex_data 1886 EXIST::FUNCTION:DH
1487DH_get_ex_new_index 1887 EXIST::FUNCTION:DH
1488DSA_new_method 1888 EXIST::FUNCTION:DSA
1489DH_new_method 1889 EXIST::FUNCTION:DH
1490DH_OpenSSL 1890 EXIST::FUNCTION:DH
1491DSA_get_ex_new_index 1891 EXIST::FUNCTION:DSA
1492DH_get_default_method 1892 EXIST::FUNCTION:DH
1493DSA_set_ex_data 1893 EXIST::FUNCTION:DSA
1494DH_set_default_method 1894 EXIST::FUNCTION:DH
1495DSA_get_ex_data 1895 EXIST::FUNCTION:DSA
1496X509V3_EXT_REQ_add_conf 1896 EXIST::FUNCTION:
1497NETSCAPE_SPKI_print 1897 EXIST::FUNCTION:EVP
1498NETSCAPE_SPKI_set_pubkey 1898 EXIST::FUNCTION:EVP
1499NETSCAPE_SPKI_b64_encode 1899 EXIST::FUNCTION:EVP
1500NETSCAPE_SPKI_get_pubkey 1900 EXIST::FUNCTION:EVP
1501NETSCAPE_SPKI_b64_decode 1901 EXIST::FUNCTION:EVP
1502UTF8_putc 1902 EXIST::FUNCTION:
1503UTF8_getc 1903 EXIST::FUNCTION:
1504RSA_null_method 1904 EXIST::FUNCTION:RSA
1505ASN1_tag2str 1905 EXIST::FUNCTION:
1506BIO_ctrl_reset_read_request 1906 EXIST::FUNCTION:
1507DISPLAYTEXT_new 1907 EXIST::FUNCTION:
1508ASN1_GENERALIZEDTIME_free 1908 EXIST::FUNCTION:
1509X509_REVOKED_get_ext_d2i 1909 EXIST::FUNCTION:
1510X509_set_ex_data 1910 EXIST::FUNCTION:
1511X509_reject_set_bit_asc 1911 NOEXIST::FUNCTION:
1512X509_NAME_add_entry_by_txt 1912 EXIST::FUNCTION:
1513X509_NAME_add_entry_by_NID 1914 EXIST::FUNCTION:
1514X509_PURPOSE_get0 1915 EXIST::FUNCTION:
1515PEM_read_X509_AUX 1917 EXIST:!WIN16:FUNCTION:
1516d2i_AUTHORITY_INFO_ACCESS 1918 EXIST::FUNCTION:
1517PEM_write_PUBKEY 1921 EXIST:!WIN16:FUNCTION:
1518ACCESS_DESCRIPTION_new 1925 EXIST::FUNCTION:
1519X509_CERT_AUX_free 1926 EXIST::FUNCTION:
1520d2i_ACCESS_DESCRIPTION 1927 EXIST::FUNCTION:
1521X509_trust_clear 1928 EXIST::FUNCTION:
1522X509_TRUST_add 1931 EXIST::FUNCTION:
1523ASN1_VISIBLESTRING_new 1932 EXIST::FUNCTION:
1524X509_alias_set1 1933 EXIST::FUNCTION:
1525ASN1_PRINTABLESTRING_free 1934 EXIST::FUNCTION:
1526EVP_PKEY_get1_DSA 1935 EXIST::FUNCTION:DSA
1527ASN1_BMPSTRING_new 1936 EXIST::FUNCTION:
1528ASN1_mbstring_copy 1937 EXIST::FUNCTION:
1529ASN1_UTF8STRING_new 1938 EXIST::FUNCTION:
1530DSA_get_default_method 1941 EXIST::FUNCTION:DSA
1531i2d_ASN1_SET_OF_ACCESS_DESCRIPTION 1945 NOEXIST::FUNCTION:
1532ASN1_T61STRING_free 1946 EXIST::FUNCTION:
1533DSA_set_method 1949 EXIST::FUNCTION:DSA
1534X509_get_ex_data 1950 EXIST::FUNCTION:
1535ASN1_STRING_type 1951 EXIST::FUNCTION:
1536X509_PURPOSE_get_by_sname 1952 EXIST::FUNCTION:
1537ASN1_TIME_free 1954 EXIST::FUNCTION:
1538ASN1_OCTET_STRING_cmp 1955 EXIST::FUNCTION:
1539ASN1_BIT_STRING_new 1957 EXIST::FUNCTION:
1540X509_get_ext_d2i 1958 EXIST::FUNCTION:
1541PEM_read_bio_X509_AUX 1959 EXIST::FUNCTION:
1542ASN1_STRING_set_default_mask_asc 1960 EXIST:!VMS:FUNCTION:
1543ASN1_STRING_set_def_mask_asc 1960 EXIST:VMS:FUNCTION:
1544PEM_write_bio_RSA_PUBKEY 1961 EXIST::FUNCTION:RSA
1545ASN1_INTEGER_cmp 1963 EXIST::FUNCTION:
1546d2i_RSA_PUBKEY_fp 1964 EXIST::FUNCTION:FP_API,RSA
1547X509_trust_set_bit_asc 1967 NOEXIST::FUNCTION:
1548PEM_write_bio_DSA_PUBKEY 1968 EXIST::FUNCTION:DSA
1549X509_STORE_CTX_free 1969 EXIST::FUNCTION:
1550EVP_PKEY_set1_DSA 1970 EXIST::FUNCTION:DSA
1551i2d_DSA_PUBKEY_fp 1971 EXIST::FUNCTION:DSA,FP_API
1552X509_load_cert_crl_file 1972 EXIST::FUNCTION:STDIO
1553ASN1_TIME_new 1973 EXIST::FUNCTION:
1554i2d_RSA_PUBKEY 1974 EXIST::FUNCTION:RSA
1555X509_STORE_CTX_purpose_inherit 1976 EXIST::FUNCTION:
1556PEM_read_RSA_PUBKEY 1977 EXIST:!WIN16:FUNCTION:RSA
1557d2i_X509_AUX 1980 EXIST::FUNCTION:
1558i2d_DSA_PUBKEY 1981 EXIST::FUNCTION:DSA
1559X509_CERT_AUX_print 1982 EXIST::FUNCTION:BIO
1560PEM_read_DSA_PUBKEY 1984 EXIST:!WIN16:FUNCTION:DSA
1561i2d_RSA_PUBKEY_bio 1985 EXIST::FUNCTION:BIO,RSA
1562ASN1_BIT_STRING_num_asc 1986 EXIST::FUNCTION:
1563i2d_PUBKEY 1987 EXIST::FUNCTION:
1564ASN1_UTCTIME_free 1988 EXIST::FUNCTION:
1565DSA_set_default_method 1989 EXIST::FUNCTION:DSA
1566X509_PURPOSE_get_by_id 1990 EXIST::FUNCTION:
1567ACCESS_DESCRIPTION_free 1994 EXIST::FUNCTION:
1568PEM_read_bio_PUBKEY 1995 EXIST::FUNCTION:
1569ASN1_STRING_set_by_NID 1996 EXIST::FUNCTION:
1570X509_PURPOSE_get_id 1997 EXIST::FUNCTION:
1571DISPLAYTEXT_free 1998 EXIST::FUNCTION:
1572OTHERNAME_new 1999 EXIST::FUNCTION:
1573X509_CERT_AUX_new 2001 EXIST::FUNCTION:
1574X509_TRUST_cleanup 2007 EXIST::FUNCTION:
1575X509_NAME_add_entry_by_OBJ 2008 EXIST::FUNCTION:
1576X509_CRL_get_ext_d2i 2009 EXIST::FUNCTION:
1577X509_PURPOSE_get0_name 2011 EXIST::FUNCTION:
1578PEM_read_PUBKEY 2012 EXIST:!WIN16:FUNCTION:
1579i2d_DSA_PUBKEY_bio 2014 EXIST::FUNCTION:BIO,DSA
1580i2d_OTHERNAME 2015 EXIST::FUNCTION:
1581ASN1_OCTET_STRING_free 2016 EXIST::FUNCTION:
1582ASN1_BIT_STRING_set_asc 2017 EXIST::FUNCTION:
1583X509_get_ex_new_index 2019 EXIST::FUNCTION:
1584ASN1_STRING_TABLE_cleanup 2020 EXIST::FUNCTION:
1585X509_TRUST_get_by_id 2021 EXIST::FUNCTION:
1586X509_PURPOSE_get_trust 2022 EXIST::FUNCTION:
1587ASN1_STRING_length 2023 EXIST::FUNCTION:
1588d2i_ASN1_SET_OF_ACCESS_DESCRIPTION 2024 NOEXIST::FUNCTION:
1589ASN1_PRINTABLESTRING_new 2025 EXIST::FUNCTION:
1590X509V3_get_d2i 2026 EXIST::FUNCTION:
1591ASN1_ENUMERATED_free 2027 EXIST::FUNCTION:
1592i2d_X509_CERT_AUX 2028 EXIST::FUNCTION:
1593X509_STORE_CTX_set_trust 2030 EXIST::FUNCTION:
1594ASN1_STRING_set_default_mask 2032 EXIST::FUNCTION:
1595X509_STORE_CTX_new 2033 EXIST::FUNCTION:
1596EVP_PKEY_get1_RSA 2034 EXIST::FUNCTION:RSA
1597DIRECTORYSTRING_free 2038 EXIST::FUNCTION:
1598PEM_write_X509_AUX 2039 EXIST:!WIN16:FUNCTION:
1599ASN1_OCTET_STRING_set 2040 EXIST::FUNCTION:
1600d2i_DSA_PUBKEY_fp 2041 EXIST::FUNCTION:DSA,FP_API
1601d2i_RSA_PUBKEY 2044 EXIST::FUNCTION:RSA
1602X509_TRUST_get0_name 2046 EXIST::FUNCTION:
1603X509_TRUST_get0 2047 EXIST::FUNCTION:
1604AUTHORITY_INFO_ACCESS_free 2048 EXIST::FUNCTION:
1605ASN1_IA5STRING_new 2049 EXIST::FUNCTION:
1606d2i_DSA_PUBKEY 2050 EXIST::FUNCTION:DSA
1607X509_check_purpose 2051 EXIST::FUNCTION:
1608ASN1_ENUMERATED_new 2052 EXIST::FUNCTION:
1609d2i_RSA_PUBKEY_bio 2053 EXIST::FUNCTION:BIO,RSA
1610d2i_PUBKEY 2054 EXIST::FUNCTION:
1611X509_TRUST_get_trust 2055 EXIST::FUNCTION:
1612X509_TRUST_get_flags 2056 EXIST::FUNCTION:
1613ASN1_BMPSTRING_free 2057 EXIST::FUNCTION:
1614ASN1_T61STRING_new 2058 EXIST::FUNCTION:
1615ASN1_UTCTIME_new 2060 EXIST::FUNCTION:
1616i2d_AUTHORITY_INFO_ACCESS 2062 EXIST::FUNCTION:
1617EVP_PKEY_set1_RSA 2063 EXIST::FUNCTION:RSA
1618X509_STORE_CTX_set_purpose 2064 EXIST::FUNCTION:
1619ASN1_IA5STRING_free 2065 EXIST::FUNCTION:
1620PEM_write_bio_X509_AUX 2066 EXIST::FUNCTION:
1621X509_PURPOSE_get_count 2067 EXIST::FUNCTION:
1622CRYPTO_add_info 2068 NOEXIST::FUNCTION:
1623X509_NAME_ENTRY_create_by_txt 2071 EXIST::FUNCTION:
1624ASN1_STRING_get_default_mask 2072 EXIST::FUNCTION:
1625X509_alias_get0 2074 EXIST::FUNCTION:
1626ASN1_STRING_data 2075 EXIST::FUNCTION:
1627i2d_ACCESS_DESCRIPTION 2077 EXIST::FUNCTION:
1628X509_trust_set_bit 2078 NOEXIST::FUNCTION:
1629ASN1_BIT_STRING_free 2080 EXIST::FUNCTION:
1630PEM_read_bio_RSA_PUBKEY 2081 EXIST::FUNCTION:RSA
1631X509_add1_reject_object 2082 EXIST::FUNCTION:
1632X509_check_trust 2083 EXIST::FUNCTION:
1633PEM_read_bio_DSA_PUBKEY 2088 EXIST::FUNCTION:DSA
1634X509_PURPOSE_add 2090 EXIST::FUNCTION:
1635ASN1_STRING_TABLE_get 2091 EXIST::FUNCTION:
1636ASN1_UTF8STRING_free 2092 EXIST::FUNCTION:
1637d2i_DSA_PUBKEY_bio 2093 EXIST::FUNCTION:BIO,DSA
1638PEM_write_RSA_PUBKEY 2095 EXIST:!WIN16:FUNCTION:RSA
1639d2i_OTHERNAME 2096 EXIST::FUNCTION:
1640X509_reject_set_bit 2098 NOEXIST::FUNCTION:
1641PEM_write_DSA_PUBKEY 2101 EXIST:!WIN16:FUNCTION:DSA
1642X509_PURPOSE_get0_sname 2105 EXIST::FUNCTION:
1643EVP_PKEY_set1_DH 2107 EXIST::FUNCTION:DH
1644ASN1_OCTET_STRING_dup 2108 EXIST::FUNCTION:
1645ASN1_BIT_STRING_set 2109 EXIST::FUNCTION:
1646X509_TRUST_get_count 2110 EXIST::FUNCTION:
1647ASN1_INTEGER_free 2111 EXIST::FUNCTION:
1648OTHERNAME_free 2112 EXIST::FUNCTION:
1649i2d_RSA_PUBKEY_fp 2113 EXIST::FUNCTION:FP_API,RSA
1650ASN1_INTEGER_dup 2114 EXIST::FUNCTION:
1651d2i_X509_CERT_AUX 2115 EXIST::FUNCTION:
1652PEM_write_bio_PUBKEY 2117 EXIST::FUNCTION:
1653ASN1_VISIBLESTRING_free 2118 EXIST::FUNCTION:
1654X509_PURPOSE_cleanup 2119 EXIST::FUNCTION:
1655ASN1_mbstring_ncopy 2123 EXIST::FUNCTION:
1656ASN1_GENERALIZEDTIME_new 2126 EXIST::FUNCTION:
1657EVP_PKEY_get1_DH 2128 EXIST::FUNCTION:DH
1658ASN1_OCTET_STRING_new 2130 EXIST::FUNCTION:
1659ASN1_INTEGER_new 2131 EXIST::FUNCTION:
1660i2d_X509_AUX 2132 EXIST::FUNCTION:
1661ASN1_BIT_STRING_name_print 2134 EXIST::FUNCTION:BIO
1662X509_cmp 2135 EXIST::FUNCTION:
1663ASN1_STRING_length_set 2136 EXIST::FUNCTION:
1664DIRECTORYSTRING_new 2137 EXIST::FUNCTION:
1665X509_add1_trust_object 2140 EXIST::FUNCTION:
1666PKCS12_newpass 2141 EXIST::FUNCTION:
1667SMIME_write_PKCS7 2142 EXIST::FUNCTION:
1668SMIME_read_PKCS7 2143 EXIST::FUNCTION:
1669DES_set_key_checked 2144 EXIST::FUNCTION:DES
1670PKCS7_verify 2145 EXIST::FUNCTION:
1671PKCS7_encrypt 2146 EXIST::FUNCTION:
1672DES_set_key_unchecked 2147 EXIST::FUNCTION:DES
1673SMIME_crlf_copy 2148 EXIST::FUNCTION:
1674i2d_ASN1_PRINTABLESTRING 2149 EXIST::FUNCTION:
1675PKCS7_get0_signers 2150 EXIST::FUNCTION:
1676PKCS7_decrypt 2151 EXIST::FUNCTION:
1677SMIME_text 2152 EXIST::FUNCTION:
1678PKCS7_simple_smimecap 2153 EXIST::FUNCTION:
1679PKCS7_get_smimecap 2154 EXIST::FUNCTION:
1680PKCS7_sign 2155 EXIST::FUNCTION:
1681PKCS7_add_attrib_smimecap 2156 EXIST::FUNCTION:
1682CRYPTO_dbg_set_options 2157 EXIST::FUNCTION:
1683CRYPTO_remove_all_info 2158 EXIST::FUNCTION:
1684CRYPTO_get_mem_debug_functions 2159 EXIST::FUNCTION:
1685CRYPTO_is_mem_check_on 2160 EXIST::FUNCTION:
1686CRYPTO_set_mem_debug_functions 2161 EXIST::FUNCTION:
1687CRYPTO_pop_info 2162 EXIST::FUNCTION:
1688CRYPTO_push_info_ 2163 EXIST::FUNCTION:
1689CRYPTO_set_mem_debug_options 2164 EXIST::FUNCTION:
1690PEM_write_PKCS8PrivateKey_nid 2165 EXIST::FUNCTION:
1691PEM_write_bio_PKCS8PrivateKey_nid 2166 EXIST:!VMS:FUNCTION:
1692PEM_write_bio_PKCS8PrivKey_nid 2166 EXIST:VMS:FUNCTION:
1693d2i_PKCS8PrivateKey_bio 2167 EXIST::FUNCTION:
1694ASN1_NULL_free 2168 EXIST::FUNCTION:
1695d2i_ASN1_NULL 2169 EXIST::FUNCTION:
1696ASN1_NULL_new 2170 EXIST::FUNCTION:
1697i2d_PKCS8PrivateKey_bio 2171 EXIST::FUNCTION:
1698i2d_PKCS8PrivateKey_fp 2172 EXIST::FUNCTION:
1699i2d_ASN1_NULL 2173 EXIST::FUNCTION:
1700i2d_PKCS8PrivateKey_nid_fp 2174 EXIST::FUNCTION:
1701d2i_PKCS8PrivateKey_fp 2175 EXIST::FUNCTION:
1702i2d_PKCS8PrivateKey_nid_bio 2176 EXIST::FUNCTION:
1703i2d_PKCS8PrivateKeyInfo_fp 2177 EXIST::FUNCTION:FP_API
1704i2d_PKCS8PrivateKeyInfo_bio 2178 EXIST::FUNCTION:BIO
1705PEM_cb 2179 NOEXIST::FUNCTION:
1706i2d_PrivateKey_fp 2180 EXIST::FUNCTION:FP_API
1707d2i_PrivateKey_bio 2181 EXIST::FUNCTION:BIO
1708d2i_PrivateKey_fp 2182 EXIST::FUNCTION:FP_API
1709i2d_PrivateKey_bio 2183 EXIST::FUNCTION:BIO
1710X509_reject_clear 2184 EXIST::FUNCTION:
1711X509_TRUST_set_default 2185 EXIST::FUNCTION:
1712d2i_AutoPrivateKey 2186 EXIST::FUNCTION:
1713X509_ATTRIBUTE_get0_type 2187 EXIST::FUNCTION:
1714X509_ATTRIBUTE_set1_data 2188 EXIST::FUNCTION:
1715X509at_get_attr 2189 EXIST::FUNCTION:
1716X509at_get_attr_count 2190 EXIST::FUNCTION:
1717X509_ATTRIBUTE_create_by_NID 2191 EXIST::FUNCTION:
1718X509_ATTRIBUTE_set1_object 2192 EXIST::FUNCTION:
1719X509_ATTRIBUTE_count 2193 EXIST::FUNCTION:
1720X509_ATTRIBUTE_create_by_OBJ 2194 EXIST::FUNCTION:
1721X509_ATTRIBUTE_get0_object 2195 EXIST::FUNCTION:
1722X509at_get_attr_by_NID 2196 EXIST::FUNCTION:
1723X509at_add1_attr 2197 EXIST::FUNCTION:
1724X509_ATTRIBUTE_get0_data 2198 EXIST::FUNCTION:
1725X509at_delete_attr 2199 EXIST::FUNCTION:
1726X509at_get_attr_by_OBJ 2200 EXIST::FUNCTION:
1727RAND_add 2201 EXIST::FUNCTION:
1728BIO_number_written 2202 EXIST::FUNCTION:
1729BIO_number_read 2203 EXIST::FUNCTION:
1730X509_STORE_CTX_get1_chain 2204 EXIST::FUNCTION:
1731ERR_load_RAND_strings 2205 EXIST::FUNCTION:
1732RAND_pseudo_bytes 2206 EXIST::FUNCTION:
1733X509_REQ_get_attr_by_NID 2207 EXIST::FUNCTION:
1734X509_REQ_get_attr 2208 EXIST::FUNCTION:
1735X509_REQ_add1_attr_by_NID 2209 EXIST::FUNCTION:
1736X509_REQ_get_attr_by_OBJ 2210 EXIST::FUNCTION:
1737X509at_add1_attr_by_NID 2211 EXIST::FUNCTION:
1738X509_REQ_add1_attr_by_OBJ 2212 EXIST::FUNCTION:
1739X509_REQ_get_attr_count 2213 EXIST::FUNCTION:
1740X509_REQ_add1_attr 2214 EXIST::FUNCTION:
1741X509_REQ_delete_attr 2215 EXIST::FUNCTION:
1742X509at_add1_attr_by_OBJ 2216 EXIST::FUNCTION:
1743X509_REQ_add1_attr_by_txt 2217 EXIST::FUNCTION:
1744X509_ATTRIBUTE_create_by_txt 2218 EXIST::FUNCTION:
1745X509at_add1_attr_by_txt 2219 EXIST::FUNCTION:
1746BN_pseudo_rand 2239 EXIST::FUNCTION:
1747BN_is_prime_fasttest 2240 EXIST::FUNCTION:
1748BN_CTX_end 2241 EXIST::FUNCTION:
1749BN_CTX_start 2242 EXIST::FUNCTION:
1750BN_CTX_get 2243 EXIST::FUNCTION:
1751EVP_PKEY2PKCS8_broken 2244 EXIST::FUNCTION:
1752ASN1_STRING_TABLE_add 2245 EXIST::FUNCTION:
1753CRYPTO_dbg_get_options 2246 EXIST::FUNCTION:
1754AUTHORITY_INFO_ACCESS_new 2247 EXIST::FUNCTION:
1755CRYPTO_get_mem_debug_options 2248 EXIST::FUNCTION:
1756DES_crypt 2249 EXIST::FUNCTION:DES
1757PEM_write_bio_X509_REQ_NEW 2250 EXIST::FUNCTION:
1758PEM_write_X509_REQ_NEW 2251 EXIST:!WIN16:FUNCTION:
1759BIO_callback_ctrl 2252 EXIST::FUNCTION:
1760RAND_egd 2253 EXIST::FUNCTION:
1761RAND_status 2254 EXIST::FUNCTION:
1762bn_dump1 2255 NOEXIST::FUNCTION:
1763DES_check_key_parity 2256 EXIST::FUNCTION:DES
1764lh_num_items 2257 EXIST::FUNCTION:
1765RAND_event 2258 EXIST:WIN32:FUNCTION:
1766DSO_new 2259 EXIST::FUNCTION:
1767DSO_new_method 2260 EXIST::FUNCTION:
1768DSO_free 2261 EXIST::FUNCTION:
1769DSO_flags 2262 EXIST::FUNCTION:
1770DSO_up 2263 NOEXIST::FUNCTION:
1771DSO_set_default_method 2264 EXIST::FUNCTION:
1772DSO_get_default_method 2265 EXIST::FUNCTION:
1773DSO_get_method 2266 EXIST::FUNCTION:
1774DSO_set_method 2267 EXIST::FUNCTION:
1775DSO_load 2268 EXIST::FUNCTION:
1776DSO_bind_var 2269 EXIST::FUNCTION:
1777DSO_METHOD_null 2270 EXIST::FUNCTION:
1778DSO_METHOD_openssl 2271 EXIST::FUNCTION:
1779DSO_METHOD_dlfcn 2272 EXIST::FUNCTION:
1780DSO_METHOD_win32 2273 EXIST::FUNCTION:
1781ERR_load_DSO_strings 2274 EXIST::FUNCTION:
1782DSO_METHOD_dl 2275 EXIST::FUNCTION:
1783NCONF_load 2276 EXIST::FUNCTION:
1784NCONF_load_fp 2278 EXIST::FUNCTION:FP_API
1785NCONF_new 2279 EXIST::FUNCTION:
1786NCONF_get_string 2280 EXIST::FUNCTION:
1787NCONF_free 2281 EXIST::FUNCTION:
1788NCONF_get_number 2282 NOEXIST::FUNCTION:
1789CONF_dump_fp 2283 EXIST::FUNCTION:
1790NCONF_load_bio 2284 EXIST::FUNCTION:
1791NCONF_dump_fp 2285 EXIST::FUNCTION:
1792NCONF_get_section 2286 EXIST::FUNCTION:
1793NCONF_dump_bio 2287 EXIST::FUNCTION:
1794CONF_dump_bio 2288 EXIST::FUNCTION:
1795NCONF_free_data 2289 EXIST::FUNCTION:
1796CONF_set_default_method 2290 EXIST::FUNCTION:
1797ERR_error_string_n 2291 EXIST::FUNCTION:
1798BIO_snprintf 2292 EXIST::FUNCTION:
1799DSO_ctrl 2293 EXIST::FUNCTION:
1800i2d_ASN1_SET_OF_ASN1_INTEGER 2317 NOEXIST::FUNCTION:
1801i2d_ASN1_SET_OF_PKCS12_SAFEBAG 2320 NOEXIST::FUNCTION:
1802i2d_ASN1_SET_OF_PKCS7 2328 NOEXIST::FUNCTION:
1803BIO_vfree 2334 EXIST::FUNCTION:
1804d2i_ASN1_SET_OF_ASN1_INTEGER 2339 NOEXIST::FUNCTION:
1805d2i_ASN1_SET_OF_PKCS12_SAFEBAG 2341 NOEXIST::FUNCTION:
1806ASN1_UTCTIME_get 2350 NOEXIST::FUNCTION:
1807X509_REQ_digest 2362 EXIST::FUNCTION:EVP
1808X509_CRL_digest 2391 EXIST::FUNCTION:EVP
1809d2i_ASN1_SET_OF_PKCS7 2397 NOEXIST::FUNCTION:
1810EVP_CIPHER_CTX_set_key_length 2399 EXIST::FUNCTION:
1811EVP_CIPHER_CTX_ctrl 2400 EXIST::FUNCTION:
1812BN_mod_exp_mont_word 2401 EXIST::FUNCTION:
1813RAND_egd_bytes 2402 EXIST::FUNCTION:
1814X509_REQ_get1_email 2403 EXIST::FUNCTION:
1815X509_get1_email 2404 EXIST::FUNCTION:
1816X509_email_free 2405 EXIST::FUNCTION:
1817i2d_RSA_NET 2406 EXIST::FUNCTION:RSA
1818d2i_RSA_NET_2 2407 NOEXIST::FUNCTION:
1819d2i_RSA_NET 2408 EXIST::FUNCTION:RSA
1820DSO_bind_func 2409 EXIST::FUNCTION:
1821CRYPTO_get_new_dynlockid 2410 EXIST::FUNCTION:
1822sk_new_null 2411 EXIST::FUNCTION:
1823CRYPTO_set_dynlock_destroy_callback 2412 EXIST:!VMS:FUNCTION:
1824CRYPTO_set_dynlock_destroy_cb 2412 EXIST:VMS:FUNCTION:
1825CRYPTO_destroy_dynlockid 2413 EXIST::FUNCTION:
1826CRYPTO_set_dynlock_size 2414 NOEXIST::FUNCTION:
1827CRYPTO_set_dynlock_create_callback 2415 EXIST:!VMS:FUNCTION:
1828CRYPTO_set_dynlock_create_cb 2415 EXIST:VMS:FUNCTION:
1829CRYPTO_set_dynlock_lock_callback 2416 EXIST:!VMS:FUNCTION:
1830CRYPTO_set_dynlock_lock_cb 2416 EXIST:VMS:FUNCTION:
1831CRYPTO_get_dynlock_lock_callback 2417 EXIST:!VMS:FUNCTION:
1832CRYPTO_get_dynlock_lock_cb 2417 EXIST:VMS:FUNCTION:
1833CRYPTO_get_dynlock_destroy_callback 2418 EXIST:!VMS:FUNCTION:
1834CRYPTO_get_dynlock_destroy_cb 2418 EXIST:VMS:FUNCTION:
1835CRYPTO_get_dynlock_value 2419 EXIST::FUNCTION:
1836CRYPTO_get_dynlock_create_callback 2420 EXIST:!VMS:FUNCTION:
1837CRYPTO_get_dynlock_create_cb 2420 EXIST:VMS:FUNCTION:
1838c2i_ASN1_BIT_STRING 2421 EXIST::FUNCTION:
1839i2c_ASN1_BIT_STRING 2422 EXIST::FUNCTION:
1840RAND_poll 2423 EXIST::FUNCTION:
1841c2i_ASN1_INTEGER 2424 EXIST::FUNCTION:
1842i2c_ASN1_INTEGER 2425 EXIST::FUNCTION:
1843BIO_dump_indent 2426 EXIST::FUNCTION:
1844ASN1_parse_dump 2427 EXIST::FUNCTION:BIO
1845c2i_ASN1_OBJECT 2428 EXIST::FUNCTION:
1846X509_NAME_print_ex_fp 2429 EXIST::FUNCTION:FP_API
1847ASN1_STRING_print_ex_fp 2430 EXIST::FUNCTION:FP_API
1848X509_NAME_print_ex 2431 EXIST::FUNCTION:BIO
1849ASN1_STRING_print_ex 2432 EXIST::FUNCTION:BIO
1850MD4 2433 EXIST::FUNCTION:MD4
1851MD4_Transform 2434 EXIST::FUNCTION:MD4
1852MD4_Final 2435 EXIST::FUNCTION:MD4
1853MD4_Update 2436 EXIST::FUNCTION:MD4
1854MD4_Init 2437 EXIST::FUNCTION:MD4
1855EVP_md4 2438 EXIST::FUNCTION:MD4
1856i2d_PUBKEY_bio 2439 EXIST::FUNCTION:BIO
1857i2d_PUBKEY_fp 2440 EXIST::FUNCTION:FP_API
1858d2i_PUBKEY_bio 2441 EXIST::FUNCTION:BIO
1859ASN1_STRING_to_UTF8 2442 EXIST::FUNCTION:
1860BIO_vprintf 2443 EXIST::FUNCTION:
1861BIO_vsnprintf 2444 EXIST::FUNCTION:
1862d2i_PUBKEY_fp 2445 EXIST::FUNCTION:FP_API
1863X509_cmp_time 2446 EXIST::FUNCTION:
1864X509_STORE_CTX_set_time 2447 EXIST::FUNCTION:
1865X509_STORE_CTX_get1_issuer 2448 EXIST::FUNCTION:
1866X509_OBJECT_retrieve_match 2449 EXIST::FUNCTION:
1867X509_OBJECT_idx_by_subject 2450 EXIST::FUNCTION:
1868X509_STORE_CTX_set_flags 2451 EXIST::FUNCTION:
1869X509_STORE_CTX_trusted_stack 2452 EXIST::FUNCTION:
1870X509_time_adj 2453 EXIST::FUNCTION:
1871X509_check_issued 2454 EXIST::FUNCTION:
1872ASN1_UTCTIME_cmp_time_t 2455 EXIST::FUNCTION:
1873DES_set_weak_key_flag 2456 NOEXIST::FUNCTION:
1874DES_check_key 2457 NOEXIST::FUNCTION:
1875DES_rw_mode 2458 NOEXIST::FUNCTION:
1876RSA_PKCS1_RSAref 2459 NOEXIST::FUNCTION:
1877X509_keyid_set1 2460 EXIST::FUNCTION:
1878BIO_next 2461 EXIST::FUNCTION:
1879DSO_METHOD_vms 2462 EXIST::FUNCTION:
1880BIO_f_linebuffer 2463 EXIST:VMS:FUNCTION:
1881BN_bntest_rand 2464 EXIST::FUNCTION:
1882OPENSSL_issetugid 2465 EXIST::FUNCTION:
1883BN_rand_range 2466 EXIST::FUNCTION:
1884ERR_load_ENGINE_strings 2467 EXIST::FUNCTION:ENGINE
1885ENGINE_set_DSA 2468 EXIST::FUNCTION:ENGINE
1886ENGINE_get_finish_function 2469 EXIST::FUNCTION:ENGINE
1887ENGINE_get_default_RSA 2470 EXIST::FUNCTION:ENGINE
1888ENGINE_get_BN_mod_exp 2471 NOEXIST::FUNCTION:
1889DSA_get_default_openssl_method 2472 NOEXIST::FUNCTION:
1890ENGINE_set_DH 2473 EXIST::FUNCTION:ENGINE
1891ENGINE_set_def_BN_mod_exp_crt 2474 NOEXIST::FUNCTION:
1892ENGINE_set_default_BN_mod_exp_crt 2474 NOEXIST::FUNCTION:
1893ENGINE_init 2475 EXIST::FUNCTION:ENGINE
1894DH_get_default_openssl_method 2476 NOEXIST::FUNCTION:
1895RSA_set_default_openssl_method 2477 NOEXIST::FUNCTION:
1896ENGINE_finish 2478 EXIST::FUNCTION:ENGINE
1897ENGINE_load_public_key 2479 EXIST::FUNCTION:ENGINE
1898ENGINE_get_DH 2480 EXIST::FUNCTION:ENGINE
1899ENGINE_ctrl 2481 EXIST::FUNCTION:ENGINE
1900ENGINE_get_init_function 2482 EXIST::FUNCTION:ENGINE
1901ENGINE_set_init_function 2483 EXIST::FUNCTION:ENGINE
1902ENGINE_set_default_DSA 2484 EXIST::FUNCTION:ENGINE
1903ENGINE_get_name 2485 EXIST::FUNCTION:ENGINE
1904ENGINE_get_last 2486 EXIST::FUNCTION:ENGINE
1905ENGINE_get_prev 2487 EXIST::FUNCTION:ENGINE
1906ENGINE_get_default_DH 2488 EXIST::FUNCTION:ENGINE
1907ENGINE_get_RSA 2489 EXIST::FUNCTION:ENGINE
1908ENGINE_set_default 2490 EXIST::FUNCTION:ENGINE
1909ENGINE_get_RAND 2491 EXIST::FUNCTION:ENGINE
1910ENGINE_get_first 2492 EXIST::FUNCTION:ENGINE
1911ENGINE_by_id 2493 EXIST::FUNCTION:ENGINE
1912ENGINE_set_finish_function 2494 EXIST::FUNCTION:ENGINE
1913ENGINE_get_def_BN_mod_exp_crt 2495 NOEXIST::FUNCTION:
1914ENGINE_get_default_BN_mod_exp_crt 2495 NOEXIST::FUNCTION:
1915RSA_get_default_openssl_method 2496 NOEXIST::FUNCTION:
1916ENGINE_set_RSA 2497 EXIST::FUNCTION:ENGINE
1917ENGINE_load_private_key 2498 EXIST::FUNCTION:ENGINE
1918ENGINE_set_default_RAND 2499 EXIST::FUNCTION:ENGINE
1919ENGINE_set_BN_mod_exp 2500 NOEXIST::FUNCTION:
1920ENGINE_remove 2501 EXIST::FUNCTION:ENGINE
1921ENGINE_free 2502 EXIST::FUNCTION:ENGINE
1922ENGINE_get_BN_mod_exp_crt 2503 NOEXIST::FUNCTION:
1923ENGINE_get_next 2504 EXIST::FUNCTION:ENGINE
1924ENGINE_set_name 2505 EXIST::FUNCTION:ENGINE
1925ENGINE_get_default_DSA 2506 EXIST::FUNCTION:ENGINE
1926ENGINE_set_default_BN_mod_exp 2507 NOEXIST::FUNCTION:
1927ENGINE_set_default_RSA 2508 EXIST::FUNCTION:ENGINE
1928ENGINE_get_default_RAND 2509 EXIST::FUNCTION:ENGINE
1929ENGINE_get_default_BN_mod_exp 2510 NOEXIST::FUNCTION:
1930ENGINE_set_RAND 2511 EXIST::FUNCTION:ENGINE
1931ENGINE_set_id 2512 EXIST::FUNCTION:ENGINE
1932ENGINE_set_BN_mod_exp_crt 2513 NOEXIST::FUNCTION:
1933ENGINE_set_default_DH 2514 EXIST::FUNCTION:ENGINE
1934ENGINE_new 2515 EXIST::FUNCTION:ENGINE
1935ENGINE_get_id 2516 EXIST::FUNCTION:ENGINE
1936DSA_set_default_openssl_method 2517 NOEXIST::FUNCTION:
1937ENGINE_add 2518 EXIST::FUNCTION:ENGINE
1938DH_set_default_openssl_method 2519 NOEXIST::FUNCTION:
1939ENGINE_get_DSA 2520 EXIST::FUNCTION:ENGINE
1940ENGINE_get_ctrl_function 2521 EXIST::FUNCTION:ENGINE
1941ENGINE_set_ctrl_function 2522 EXIST::FUNCTION:ENGINE
1942BN_pseudo_rand_range 2523 EXIST::FUNCTION:
1943X509_STORE_CTX_set_verify_cb 2524 EXIST::FUNCTION:
1944ERR_load_COMP_strings 2525 EXIST::FUNCTION:
1945PKCS12_item_decrypt_d2i 2526 EXIST::FUNCTION:
1946ASN1_UTF8STRING_it 2527 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1947ASN1_UTF8STRING_it 2527 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1948ENGINE_unregister_ciphers 2528 EXIST::FUNCTION:ENGINE
1949ENGINE_get_ciphers 2529 EXIST::FUNCTION:ENGINE
1950d2i_OCSP_BASICRESP 2530 EXIST::FUNCTION:
1951KRB5_CHECKSUM_it 2531 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1952KRB5_CHECKSUM_it 2531 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1953EC_POINT_add 2532 EXIST::FUNCTION:EC
1954ASN1_item_ex_i2d 2533 EXIST::FUNCTION:
1955OCSP_CERTID_it 2534 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1956OCSP_CERTID_it 2534 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1957d2i_OCSP_RESPBYTES 2535 EXIST::FUNCTION:
1958X509V3_add1_i2d 2536 EXIST::FUNCTION:
1959PKCS7_ENVELOPE_it 2537 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1960PKCS7_ENVELOPE_it 2537 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1961UI_add_input_boolean 2538 EXIST::FUNCTION:
1962ENGINE_unregister_RSA 2539 EXIST::FUNCTION:ENGINE
1963X509V3_EXT_nconf 2540 EXIST::FUNCTION:
1964ASN1_GENERALSTRING_free 2541 EXIST::FUNCTION:
1965d2i_OCSP_CERTSTATUS 2542 EXIST::FUNCTION:
1966X509_REVOKED_set_serialNumber 2543 EXIST::FUNCTION:
1967X509_print_ex 2544 EXIST::FUNCTION:BIO
1968OCSP_ONEREQ_get1_ext_d2i 2545 EXIST::FUNCTION:
1969ENGINE_register_all_RAND 2546 EXIST::FUNCTION:ENGINE
1970ENGINE_load_dynamic 2547 EXIST::FUNCTION:ENGINE
1971PBKDF2PARAM_it 2548 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1972PBKDF2PARAM_it 2548 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1973EXTENDED_KEY_USAGE_new 2549 EXIST::FUNCTION:
1974EC_GROUP_clear_free 2550 EXIST::FUNCTION:EC
1975OCSP_sendreq_bio 2551 EXIST::FUNCTION:
1976ASN1_item_digest 2552 EXIST::FUNCTION:EVP
1977OCSP_BASICRESP_delete_ext 2553 EXIST::FUNCTION:
1978OCSP_SIGNATURE_it 2554 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1979OCSP_SIGNATURE_it 2554 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1980X509_CRL_it 2555 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1981X509_CRL_it 2555 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1982OCSP_BASICRESP_add_ext 2556 EXIST::FUNCTION:
1983KRB5_ENCKEY_it 2557 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1984KRB5_ENCKEY_it 2557 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1985UI_method_set_closer 2558 EXIST::FUNCTION:
1986X509_STORE_set_purpose 2559 EXIST::FUNCTION:
1987i2d_ASN1_GENERALSTRING 2560 EXIST::FUNCTION:
1988OCSP_response_status 2561 EXIST::FUNCTION:
1989i2d_OCSP_SERVICELOC 2562 EXIST::FUNCTION:
1990ENGINE_get_digest_engine 2563 EXIST::FUNCTION:ENGINE
1991EC_GROUP_set_curve_GFp 2564 EXIST::FUNCTION:EC
1992OCSP_REQUEST_get_ext_by_OBJ 2565 EXIST::FUNCTION:
1993_ossl_old_des_random_key 2566 EXIST::FUNCTION:DES
1994ASN1_T61STRING_it 2567 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
1995ASN1_T61STRING_it 2567 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
1996EC_GROUP_method_of 2568 EXIST::FUNCTION:EC
1997i2d_KRB5_APREQ 2569 EXIST::FUNCTION:
1998_ossl_old_des_encrypt 2570 EXIST::FUNCTION:DES
1999ASN1_PRINTABLE_new 2571 EXIST::FUNCTION:
2000HMAC_Init_ex 2572 EXIST::FUNCTION:HMAC
2001d2i_KRB5_AUTHENT 2573 EXIST::FUNCTION:
2002OCSP_archive_cutoff_new 2574 EXIST::FUNCTION:
2003EC_POINT_set_Jprojective_coordinates_GFp 2575 EXIST:!VMS:FUNCTION:EC
2004EC_POINT_set_Jproj_coords_GFp 2575 EXIST:VMS:FUNCTION:EC
2005_ossl_old_des_is_weak_key 2576 EXIST::FUNCTION:DES
2006OCSP_BASICRESP_get_ext_by_OBJ 2577 EXIST::FUNCTION:
2007EC_POINT_oct2point 2578 EXIST::FUNCTION:EC
2008OCSP_SINGLERESP_get_ext_count 2579 EXIST::FUNCTION:
2009UI_ctrl 2580 EXIST::FUNCTION:
2010_shadow_DES_rw_mode 2581 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES
2011_shadow_DES_rw_mode 2581 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES
2012asn1_do_adb 2582 EXIST::FUNCTION:
2013ASN1_template_i2d 2583 EXIST::FUNCTION:
2014ENGINE_register_DH 2584 EXIST::FUNCTION:ENGINE
2015UI_construct_prompt 2585 EXIST::FUNCTION:
2016X509_STORE_set_trust 2586 EXIST::FUNCTION:
2017UI_dup_input_string 2587 EXIST::FUNCTION:
2018d2i_KRB5_APREQ 2588 EXIST::FUNCTION:
2019EVP_MD_CTX_copy_ex 2589 EXIST::FUNCTION:
2020OCSP_request_is_signed 2590 EXIST::FUNCTION:
2021i2d_OCSP_REQINFO 2591 EXIST::FUNCTION:
2022KRB5_ENCKEY_free 2592 EXIST::FUNCTION:
2023OCSP_resp_get0 2593 EXIST::FUNCTION:
2024GENERAL_NAME_it 2594 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2025GENERAL_NAME_it 2594 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2026ASN1_GENERALIZEDTIME_it 2595 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2027ASN1_GENERALIZEDTIME_it 2595 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2028X509_STORE_set_flags 2596 EXIST::FUNCTION:
2029EC_POINT_set_compressed_coordinates_GFp 2597 EXIST:!VMS:FUNCTION:EC
2030EC_POINT_set_compr_coords_GFp 2597 EXIST:VMS:FUNCTION:EC
2031OCSP_response_status_str 2598 EXIST::FUNCTION:
2032d2i_OCSP_REVOKEDINFO 2599 EXIST::FUNCTION:
2033OCSP_basic_add1_cert 2600 EXIST::FUNCTION:
2034ERR_get_implementation 2601 EXIST::FUNCTION:
2035EVP_CipherFinal_ex 2602 EXIST::FUNCTION:
2036OCSP_CERTSTATUS_new 2603 EXIST::FUNCTION:
2037CRYPTO_cleanup_all_ex_data 2604 EXIST::FUNCTION:
2038OCSP_resp_find 2605 EXIST::FUNCTION:
2039BN_nnmod 2606 EXIST::FUNCTION:
2040X509_CRL_sort 2607 EXIST::FUNCTION:
2041X509_REVOKED_set_revocationDate 2608 EXIST::FUNCTION:
2042ENGINE_register_RAND 2609 EXIST::FUNCTION:ENGINE
2043OCSP_SERVICELOC_new 2610 EXIST::FUNCTION:
2044EC_POINT_set_affine_coordinates_GFp 2611 EXIST:!VMS:FUNCTION:EC
2045EC_POINT_set_affine_coords_GFp 2611 EXIST:VMS:FUNCTION:EC
2046_ossl_old_des_options 2612 EXIST::FUNCTION:DES
2047SXNET_it 2613 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2048SXNET_it 2613 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2049UI_dup_input_boolean 2614 EXIST::FUNCTION:
2050PKCS12_add_CSPName_asc 2615 EXIST::FUNCTION:
2051EC_POINT_is_at_infinity 2616 EXIST::FUNCTION:EC
2052ENGINE_load_cryptodev 2617 EXIST::FUNCTION:ENGINE
2053DSO_convert_filename 2618 EXIST::FUNCTION:
2054POLICYQUALINFO_it 2619 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2055POLICYQUALINFO_it 2619 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2056ENGINE_register_ciphers 2620 EXIST::FUNCTION:ENGINE
2057BN_mod_lshift_quick 2621 EXIST::FUNCTION:
2058DSO_set_filename 2622 EXIST::FUNCTION:
2059ASN1_item_free 2623 EXIST::FUNCTION:
2060KRB5_TKTBODY_free 2624 EXIST::FUNCTION:
2061AUTHORITY_KEYID_it 2625 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2062AUTHORITY_KEYID_it 2625 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2063KRB5_APREQBODY_new 2626 EXIST::FUNCTION:
2064X509V3_EXT_REQ_add_nconf 2627 EXIST::FUNCTION:
2065ENGINE_ctrl_cmd_string 2628 EXIST::FUNCTION:ENGINE
2066i2d_OCSP_RESPDATA 2629 EXIST::FUNCTION:
2067EVP_MD_CTX_init 2630 EXIST::FUNCTION:
2068EXTENDED_KEY_USAGE_free 2631 EXIST::FUNCTION:
2069PKCS7_ATTR_SIGN_it 2632 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2070PKCS7_ATTR_SIGN_it 2632 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2071UI_add_error_string 2633 EXIST::FUNCTION:
2072KRB5_CHECKSUM_free 2634 EXIST::FUNCTION:
2073OCSP_REQUEST_get_ext 2635 EXIST::FUNCTION:
2074ENGINE_load_ubsec 2636 EXIST::FUNCTION:ENGINE
2075ENGINE_register_all_digests 2637 EXIST::FUNCTION:ENGINE
2076PKEY_USAGE_PERIOD_it 2638 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2077PKEY_USAGE_PERIOD_it 2638 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2078PKCS12_unpack_authsafes 2639 EXIST::FUNCTION:
2079ASN1_item_unpack 2640 EXIST::FUNCTION:
2080NETSCAPE_SPKAC_it 2641 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2081NETSCAPE_SPKAC_it 2641 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2082X509_REVOKED_it 2642 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2083X509_REVOKED_it 2642 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2084ASN1_STRING_encode 2643 EXIST::FUNCTION:
2085EVP_aes_128_ecb 2644 EXIST::FUNCTION:AES
2086KRB5_AUTHENT_free 2645 EXIST::FUNCTION:
2087OCSP_BASICRESP_get_ext_by_critical 2646 EXIST:!VMS:FUNCTION:
2088OCSP_BASICRESP_get_ext_by_crit 2646 EXIST:VMS:FUNCTION:
2089OCSP_cert_status_str 2647 EXIST::FUNCTION:
2090d2i_OCSP_REQUEST 2648 EXIST::FUNCTION:
2091UI_dup_info_string 2649 EXIST::FUNCTION:
2092_ossl_old_des_xwhite_in2out 2650 EXIST::FUNCTION:DES
2093PKCS12_it 2651 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2094PKCS12_it 2651 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2095OCSP_SINGLERESP_get_ext_by_critical 2652 EXIST:!VMS:FUNCTION:
2096OCSP_SINGLERESP_get_ext_by_crit 2652 EXIST:VMS:FUNCTION:
2097OCSP_CERTSTATUS_free 2653 EXIST::FUNCTION:
2098_ossl_old_des_crypt 2654 EXIST::FUNCTION:DES
2099ASN1_item_i2d 2655 EXIST::FUNCTION:
2100EVP_DecryptFinal_ex 2656 EXIST::FUNCTION:
2101ENGINE_load_openssl 2657 EXIST::FUNCTION:ENGINE
2102ENGINE_get_cmd_defns 2658 EXIST::FUNCTION:ENGINE
2103ENGINE_set_load_privkey_function 2659 EXIST:!VMS:FUNCTION:ENGINE
2104ENGINE_set_load_privkey_fn 2659 EXIST:VMS:FUNCTION:ENGINE
2105EVP_EncryptFinal_ex 2660 EXIST::FUNCTION:
2106ENGINE_set_default_digests 2661 EXIST::FUNCTION:ENGINE
2107X509_get0_pubkey_bitstr 2662 EXIST::FUNCTION:
2108asn1_ex_i2c 2663 EXIST::FUNCTION:
2109ENGINE_register_RSA 2664 EXIST::FUNCTION:ENGINE
2110ENGINE_unregister_DSA 2665 EXIST::FUNCTION:ENGINE
2111_ossl_old_des_key_sched 2666 EXIST::FUNCTION:DES
2112X509_EXTENSION_it 2667 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2113X509_EXTENSION_it 2667 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2114i2d_KRB5_AUTHENT 2668 EXIST::FUNCTION:
2115SXNETID_it 2669 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2116SXNETID_it 2669 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2117d2i_OCSP_SINGLERESP 2670 EXIST::FUNCTION:
2118EDIPARTYNAME_new 2671 EXIST::FUNCTION:
2119PKCS12_certbag2x509 2672 EXIST::FUNCTION:
2120_ossl_old_des_ofb64_encrypt 2673 EXIST::FUNCTION:DES
2121d2i_EXTENDED_KEY_USAGE 2674 EXIST::FUNCTION:
2122ERR_print_errors_cb 2675 EXIST::FUNCTION:
2123ENGINE_set_ciphers 2676 EXIST::FUNCTION:ENGINE
2124d2i_KRB5_APREQBODY 2677 EXIST::FUNCTION:
2125UI_method_get_flusher 2678 EXIST::FUNCTION:
2126X509_PUBKEY_it 2679 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2127X509_PUBKEY_it 2679 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2128_ossl_old_des_enc_read 2680 EXIST::FUNCTION:DES
2129PKCS7_ENCRYPT_it 2681 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2130PKCS7_ENCRYPT_it 2681 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2131i2d_OCSP_RESPONSE 2682 EXIST::FUNCTION:
2132EC_GROUP_get_cofactor 2683 EXIST::FUNCTION:EC
2133PKCS12_unpack_p7data 2684 EXIST::FUNCTION:
2134d2i_KRB5_AUTHDATA 2685 EXIST::FUNCTION:
2135OCSP_copy_nonce 2686 EXIST::FUNCTION:
2136KRB5_AUTHDATA_new 2687 EXIST::FUNCTION:
2137OCSP_RESPDATA_new 2688 EXIST::FUNCTION:
2138EC_GFp_mont_method 2689 EXIST::FUNCTION:EC
2139OCSP_REVOKEDINFO_free 2690 EXIST::FUNCTION:
2140UI_get_ex_data 2691 EXIST::FUNCTION:
2141KRB5_APREQBODY_free 2692 EXIST::FUNCTION:
2142EC_GROUP_get0_generator 2693 EXIST::FUNCTION:EC
2143UI_get_default_method 2694 EXIST::FUNCTION:
2144X509V3_set_nconf 2695 EXIST::FUNCTION:
2145PKCS12_item_i2d_encrypt 2696 EXIST::FUNCTION:
2146X509_add1_ext_i2d 2697 EXIST::FUNCTION:
2147PKCS7_SIGNER_INFO_it 2698 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2148PKCS7_SIGNER_INFO_it 2698 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2149KRB5_PRINCNAME_new 2699 EXIST::FUNCTION:
2150PKCS12_SAFEBAG_it 2700 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2151PKCS12_SAFEBAG_it 2700 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2152EC_GROUP_get_order 2701 EXIST::FUNCTION:EC
2153d2i_OCSP_RESPID 2702 EXIST::FUNCTION:
2154OCSP_request_verify 2703 EXIST::FUNCTION:
2155NCONF_get_number_e 2704 EXIST::FUNCTION:
2156_ossl_old_des_decrypt3 2705 EXIST::FUNCTION:DES
2157X509_signature_print 2706 EXIST::FUNCTION:EVP
2158OCSP_SINGLERESP_free 2707 EXIST::FUNCTION:
2159ENGINE_load_builtin_engines 2708 EXIST::FUNCTION:ENGINE
2160i2d_OCSP_ONEREQ 2709 EXIST::FUNCTION:
2161OCSP_REQUEST_add_ext 2710 EXIST::FUNCTION:
2162OCSP_RESPBYTES_new 2711 EXIST::FUNCTION:
2163EVP_MD_CTX_create 2712 EXIST::FUNCTION:
2164OCSP_resp_find_status 2713 EXIST::FUNCTION:
2165X509_ALGOR_it 2714 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2166X509_ALGOR_it 2714 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2167ASN1_TIME_it 2715 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2168ASN1_TIME_it 2715 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2169OCSP_request_set1_name 2716 EXIST::FUNCTION:
2170OCSP_ONEREQ_get_ext_count 2717 EXIST::FUNCTION:
2171UI_get0_result 2718 EXIST::FUNCTION:
2172PKCS12_AUTHSAFES_it 2719 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2173PKCS12_AUTHSAFES_it 2719 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2174EVP_aes_256_ecb 2720 EXIST::FUNCTION:AES
2175PKCS12_pack_authsafes 2721 EXIST::FUNCTION:
2176ASN1_IA5STRING_it 2722 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2177ASN1_IA5STRING_it 2722 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2178UI_get_input_flags 2723 EXIST::FUNCTION:
2179EC_GROUP_set_generator 2724 EXIST::FUNCTION:EC
2180_ossl_old_des_string_to_2keys 2725 EXIST::FUNCTION:DES
2181OCSP_CERTID_free 2726 EXIST::FUNCTION:
2182X509_CERT_AUX_it 2727 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2183X509_CERT_AUX_it 2727 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2184CERTIFICATEPOLICIES_it 2728 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2185CERTIFICATEPOLICIES_it 2728 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2186_ossl_old_des_ede3_cbc_encrypt 2729 EXIST::FUNCTION:DES
2187RAND_set_rand_engine 2730 EXIST::FUNCTION:ENGINE
2188DSO_get_loaded_filename 2731 EXIST::FUNCTION:
2189X509_ATTRIBUTE_it 2732 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2190X509_ATTRIBUTE_it 2732 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2191OCSP_ONEREQ_get_ext_by_NID 2733 EXIST::FUNCTION:
2192PKCS12_decrypt_skey 2734 EXIST::FUNCTION:
2193KRB5_AUTHENT_it 2735 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2194KRB5_AUTHENT_it 2735 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2195UI_dup_error_string 2736 EXIST::FUNCTION:
2196RSAPublicKey_it 2737 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
2197RSAPublicKey_it 2737 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
2198i2d_OCSP_REQUEST 2738 EXIST::FUNCTION:
2199PKCS12_x509crl2certbag 2739 EXIST::FUNCTION:
2200OCSP_SERVICELOC_it 2740 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2201OCSP_SERVICELOC_it 2740 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2202ASN1_item_sign 2741 EXIST::FUNCTION:EVP
2203X509_CRL_set_issuer_name 2742 EXIST::FUNCTION:
2204OBJ_NAME_do_all_sorted 2743 EXIST::FUNCTION:
2205i2d_OCSP_BASICRESP 2744 EXIST::FUNCTION:
2206i2d_OCSP_RESPBYTES 2745 EXIST::FUNCTION:
2207PKCS12_unpack_p7encdata 2746 EXIST::FUNCTION:
2208HMAC_CTX_init 2747 EXIST::FUNCTION:HMAC
2209ENGINE_get_digest 2748 EXIST::FUNCTION:ENGINE
2210OCSP_RESPONSE_print 2749 EXIST::FUNCTION:
2211KRB5_TKTBODY_it 2750 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2212KRB5_TKTBODY_it 2750 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2213ACCESS_DESCRIPTION_it 2751 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2214ACCESS_DESCRIPTION_it 2751 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2215PKCS7_ISSUER_AND_SERIAL_it 2752 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2216PKCS7_ISSUER_AND_SERIAL_it 2752 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2217PBE2PARAM_it 2753 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2218PBE2PARAM_it 2753 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2219PKCS12_certbag2x509crl 2754 EXIST::FUNCTION:
2220PKCS7_SIGNED_it 2755 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2221PKCS7_SIGNED_it 2755 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2222ENGINE_get_cipher 2756 EXIST::FUNCTION:ENGINE
2223i2d_OCSP_CRLID 2757 EXIST::FUNCTION:
2224OCSP_SINGLERESP_new 2758 EXIST::FUNCTION:
2225ENGINE_cmd_is_executable 2759 EXIST::FUNCTION:ENGINE
2226RSA_up_ref 2760 EXIST::FUNCTION:RSA
2227ASN1_GENERALSTRING_it 2761 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2228ASN1_GENERALSTRING_it 2761 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2229ENGINE_register_DSA 2762 EXIST::FUNCTION:ENGINE
2230X509V3_EXT_add_nconf_sk 2763 EXIST::FUNCTION:
2231ENGINE_set_load_pubkey_function 2764 EXIST::FUNCTION:ENGINE
2232PKCS8_decrypt 2765 EXIST::FUNCTION:
2233PEM_bytes_read_bio 2766 EXIST::FUNCTION:BIO
2234DIRECTORYSTRING_it 2767 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2235DIRECTORYSTRING_it 2767 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2236d2i_OCSP_CRLID 2768 EXIST::FUNCTION:
2237EC_POINT_is_on_curve 2769 EXIST::FUNCTION:EC
2238CRYPTO_set_locked_mem_ex_functions 2770 EXIST:!VMS:FUNCTION:
2239CRYPTO_set_locked_mem_ex_funcs 2770 EXIST:VMS:FUNCTION:
2240d2i_KRB5_CHECKSUM 2771 EXIST::FUNCTION:
2241ASN1_item_dup 2772 EXIST::FUNCTION:
2242X509_it 2773 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2243X509_it 2773 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2244BN_mod_add 2774 EXIST::FUNCTION:
2245KRB5_AUTHDATA_free 2775 EXIST::FUNCTION:
2246_ossl_old_des_cbc_cksum 2776 EXIST::FUNCTION:DES
2247ASN1_item_verify 2777 EXIST::FUNCTION:EVP
2248CRYPTO_set_mem_ex_functions 2778 EXIST::FUNCTION:
2249EC_POINT_get_Jprojective_coordinates_GFp 2779 EXIST:!VMS:FUNCTION:EC
2250EC_POINT_get_Jproj_coords_GFp 2779 EXIST:VMS:FUNCTION:EC
2251ZLONG_it 2780 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2252ZLONG_it 2780 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2253CRYPTO_get_locked_mem_ex_functions 2781 EXIST:!VMS:FUNCTION:
2254CRYPTO_get_locked_mem_ex_funcs 2781 EXIST:VMS:FUNCTION:
2255ASN1_TIME_check 2782 EXIST::FUNCTION:
2256UI_get0_user_data 2783 EXIST::FUNCTION:
2257HMAC_CTX_cleanup 2784 EXIST::FUNCTION:HMAC
2258DSA_up_ref 2785 EXIST::FUNCTION:DSA
2259_ossl_old_des_ede3_cfb64_encrypt 2786 EXIST:!VMS:FUNCTION:DES
2260_ossl_odes_ede3_cfb64_encrypt 2786 EXIST:VMS:FUNCTION:DES
2261ASN1_BMPSTRING_it 2787 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2262ASN1_BMPSTRING_it 2787 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2263ASN1_tag2bit 2788 EXIST::FUNCTION:
2264UI_method_set_flusher 2789 EXIST::FUNCTION:
2265X509_ocspid_print 2790 EXIST::FUNCTION:BIO
2266KRB5_ENCDATA_it 2791 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2267KRB5_ENCDATA_it 2791 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2268ENGINE_get_load_pubkey_function 2792 EXIST::FUNCTION:ENGINE
2269UI_add_user_data 2793 EXIST::FUNCTION:
2270OCSP_REQUEST_delete_ext 2794 EXIST::FUNCTION:
2271UI_get_method 2795 EXIST::FUNCTION:
2272OCSP_ONEREQ_free 2796 EXIST::FUNCTION:
2273ASN1_PRINTABLESTRING_it 2797 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2274ASN1_PRINTABLESTRING_it 2797 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2275X509_CRL_set_nextUpdate 2798 EXIST::FUNCTION:
2276OCSP_REQUEST_it 2799 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2277OCSP_REQUEST_it 2799 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2278OCSP_BASICRESP_it 2800 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2279OCSP_BASICRESP_it 2800 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2280AES_ecb_encrypt 2801 EXIST::FUNCTION:AES
2281BN_mod_sqr 2802 EXIST::FUNCTION:
2282NETSCAPE_CERT_SEQUENCE_it 2803 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2283NETSCAPE_CERT_SEQUENCE_it 2803 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2284GENERAL_NAMES_it 2804 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2285GENERAL_NAMES_it 2804 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2286AUTHORITY_INFO_ACCESS_it 2805 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2287AUTHORITY_INFO_ACCESS_it 2805 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2288ASN1_FBOOLEAN_it 2806 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2289ASN1_FBOOLEAN_it 2806 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2290UI_set_ex_data 2807 EXIST::FUNCTION:
2291_ossl_old_des_string_to_key 2808 EXIST::FUNCTION:DES
2292ENGINE_register_all_RSA 2809 EXIST::FUNCTION:ENGINE
2293d2i_KRB5_PRINCNAME 2810 EXIST::FUNCTION:
2294OCSP_RESPBYTES_it 2811 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2295OCSP_RESPBYTES_it 2811 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2296X509_CINF_it 2812 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2297X509_CINF_it 2812 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2298ENGINE_unregister_digests 2813 EXIST::FUNCTION:ENGINE
2299d2i_EDIPARTYNAME 2814 EXIST::FUNCTION:
2300d2i_OCSP_SERVICELOC 2815 EXIST::FUNCTION:
2301ENGINE_get_digests 2816 EXIST::FUNCTION:ENGINE
2302_ossl_old_des_set_odd_parity 2817 EXIST::FUNCTION:DES
2303OCSP_RESPDATA_free 2818 EXIST::FUNCTION:
2304d2i_KRB5_TICKET 2819 EXIST::FUNCTION:
2305OTHERNAME_it 2820 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2306OTHERNAME_it 2820 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2307EVP_MD_CTX_cleanup 2821 EXIST::FUNCTION:
2308d2i_ASN1_GENERALSTRING 2822 EXIST::FUNCTION:
2309X509_CRL_set_version 2823 EXIST::FUNCTION:
2310BN_mod_sub 2824 EXIST::FUNCTION:
2311OCSP_SINGLERESP_get_ext_by_NID 2825 EXIST::FUNCTION:
2312ENGINE_get_ex_new_index 2826 EXIST::FUNCTION:ENGINE
2313OCSP_REQUEST_free 2827 EXIST::FUNCTION:
2314OCSP_REQUEST_add1_ext_i2d 2828 EXIST::FUNCTION:
2315X509_VAL_it 2829 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2316X509_VAL_it 2829 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2317EC_POINTs_make_affine 2830 EXIST::FUNCTION:EC
2318EC_POINT_mul 2831 EXIST::FUNCTION:EC
2319X509V3_EXT_add_nconf 2832 EXIST::FUNCTION:
2320X509_TRUST_set 2833 EXIST::FUNCTION:
2321X509_CRL_add1_ext_i2d 2834 EXIST::FUNCTION:
2322_ossl_old_des_fcrypt 2835 EXIST::FUNCTION:DES
2323DISPLAYTEXT_it 2836 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2324DISPLAYTEXT_it 2836 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2325X509_CRL_set_lastUpdate 2837 EXIST::FUNCTION:
2326OCSP_BASICRESP_free 2838 EXIST::FUNCTION:
2327OCSP_BASICRESP_add1_ext_i2d 2839 EXIST::FUNCTION:
2328d2i_KRB5_AUTHENTBODY 2840 EXIST::FUNCTION:
2329CRYPTO_set_ex_data_implementation 2841 EXIST:!VMS:FUNCTION:
2330CRYPTO_set_ex_data_impl 2841 EXIST:VMS:FUNCTION:
2331KRB5_ENCDATA_new 2842 EXIST::FUNCTION:
2332DSO_up_ref 2843 EXIST::FUNCTION:
2333OCSP_crl_reason_str 2844 EXIST::FUNCTION:
2334UI_get0_result_string 2845 EXIST::FUNCTION:
2335ASN1_GENERALSTRING_new 2846 EXIST::FUNCTION:
2336X509_SIG_it 2847 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2337X509_SIG_it 2847 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2338ERR_set_implementation 2848 EXIST::FUNCTION:
2339ERR_load_EC_strings 2849 EXIST::FUNCTION:EC
2340UI_get0_action_string 2850 EXIST::FUNCTION:
2341OCSP_ONEREQ_get_ext 2851 EXIST::FUNCTION:
2342EC_POINT_method_of 2852 EXIST::FUNCTION:EC
2343i2d_KRB5_APREQBODY 2853 EXIST::FUNCTION:
2344_ossl_old_des_ecb3_encrypt 2854 EXIST::FUNCTION:DES
2345CRYPTO_get_mem_ex_functions 2855 EXIST::FUNCTION:
2346ENGINE_get_ex_data 2856 EXIST::FUNCTION:ENGINE
2347UI_destroy_method 2857 EXIST::FUNCTION:
2348ASN1_item_i2d_bio 2858 EXIST::FUNCTION:BIO
2349OCSP_ONEREQ_get_ext_by_OBJ 2859 EXIST::FUNCTION:
2350ASN1_primitive_new 2860 EXIST::FUNCTION:
2351ASN1_PRINTABLE_it 2861 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2352ASN1_PRINTABLE_it 2861 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2353EVP_aes_192_ecb 2862 EXIST::FUNCTION:AES
2354OCSP_SIGNATURE_new 2863 EXIST::FUNCTION:
2355LONG_it 2864 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2356LONG_it 2864 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2357ASN1_VISIBLESTRING_it 2865 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2358ASN1_VISIBLESTRING_it 2865 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2359OCSP_SINGLERESP_add1_ext_i2d 2866 EXIST::FUNCTION:
2360d2i_OCSP_CERTID 2867 EXIST::FUNCTION:
2361ASN1_item_d2i_fp 2868 EXIST::FUNCTION:FP_API
2362CRL_DIST_POINTS_it 2869 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2363CRL_DIST_POINTS_it 2869 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2364GENERAL_NAME_print 2870 EXIST::FUNCTION:
2365OCSP_SINGLERESP_delete_ext 2871 EXIST::FUNCTION:
2366PKCS12_SAFEBAGS_it 2872 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2367PKCS12_SAFEBAGS_it 2872 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2368d2i_OCSP_SIGNATURE 2873 EXIST::FUNCTION:
2369OCSP_request_add1_nonce 2874 EXIST::FUNCTION:
2370ENGINE_set_cmd_defns 2875 EXIST::FUNCTION:ENGINE
2371OCSP_SERVICELOC_free 2876 EXIST::FUNCTION:
2372EC_GROUP_free 2877 EXIST::FUNCTION:EC
2373ASN1_BIT_STRING_it 2878 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2374ASN1_BIT_STRING_it 2878 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2375X509_REQ_it 2879 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2376X509_REQ_it 2879 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2377_ossl_old_des_cbc_encrypt 2880 EXIST::FUNCTION:DES
2378ERR_unload_strings 2881 EXIST::FUNCTION:
2379PKCS7_SIGN_ENVELOPE_it 2882 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2380PKCS7_SIGN_ENVELOPE_it 2882 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2381EDIPARTYNAME_free 2883 EXIST::FUNCTION:
2382OCSP_REQINFO_free 2884 EXIST::FUNCTION:
2383EC_GROUP_new_curve_GFp 2885 EXIST::FUNCTION:EC
2384OCSP_REQUEST_get1_ext_d2i 2886 EXIST::FUNCTION:
2385PKCS12_item_pack_safebag 2887 EXIST::FUNCTION:
2386asn1_ex_c2i 2888 EXIST::FUNCTION:
2387ENGINE_register_digests 2889 EXIST::FUNCTION:ENGINE
2388i2d_OCSP_REVOKEDINFO 2890 EXIST::FUNCTION:
2389asn1_enc_restore 2891 EXIST::FUNCTION:
2390UI_free 2892 EXIST::FUNCTION:
2391UI_new_method 2893 EXIST::FUNCTION:
2392EVP_EncryptInit_ex 2894 EXIST::FUNCTION:
2393X509_pubkey_digest 2895 EXIST::FUNCTION:EVP
2394EC_POINT_invert 2896 EXIST::FUNCTION:EC
2395OCSP_basic_sign 2897 EXIST::FUNCTION:
2396i2d_OCSP_RESPID 2898 EXIST::FUNCTION:
2397OCSP_check_nonce 2899 EXIST::FUNCTION:
2398ENGINE_ctrl_cmd 2900 EXIST::FUNCTION:ENGINE
2399d2i_KRB5_ENCKEY 2901 EXIST::FUNCTION:
2400OCSP_parse_url 2902 EXIST::FUNCTION:
2401OCSP_SINGLERESP_get_ext 2903 EXIST::FUNCTION:
2402OCSP_CRLID_free 2904 EXIST::FUNCTION:
2403OCSP_BASICRESP_get1_ext_d2i 2905 EXIST::FUNCTION:
2404RSAPrivateKey_it 2906 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
2405RSAPrivateKey_it 2906 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
2406ENGINE_register_all_DH 2907 EXIST::FUNCTION:ENGINE
2407i2d_EDIPARTYNAME 2908 EXIST::FUNCTION:
2408EC_POINT_get_affine_coordinates_GFp 2909 EXIST:!VMS:FUNCTION:EC
2409EC_POINT_get_affine_coords_GFp 2909 EXIST:VMS:FUNCTION:EC
2410OCSP_CRLID_new 2910 EXIST::FUNCTION:
2411ENGINE_get_flags 2911 EXIST::FUNCTION:ENGINE
2412OCSP_ONEREQ_it 2912 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2413OCSP_ONEREQ_it 2912 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2414UI_process 2913 EXIST::FUNCTION:
2415ASN1_INTEGER_it 2914 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2416ASN1_INTEGER_it 2914 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2417EVP_CipherInit_ex 2915 EXIST::FUNCTION:
2418UI_get_string_type 2916 EXIST::FUNCTION:
2419ENGINE_unregister_DH 2917 EXIST::FUNCTION:ENGINE
2420ENGINE_register_all_DSA 2918 EXIST::FUNCTION:ENGINE
2421OCSP_ONEREQ_get_ext_by_critical 2919 EXIST::FUNCTION:
2422bn_dup_expand 2920 EXIST::FUNCTION:
2423OCSP_cert_id_new 2921 EXIST::FUNCTION:
2424BASIC_CONSTRAINTS_it 2922 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2425BASIC_CONSTRAINTS_it 2922 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2426BN_mod_add_quick 2923 EXIST::FUNCTION:
2427EC_POINT_new 2924 EXIST::FUNCTION:EC
2428EVP_MD_CTX_destroy 2925 EXIST::FUNCTION:
2429OCSP_RESPBYTES_free 2926 EXIST::FUNCTION:
2430EVP_aes_128_cbc 2927 EXIST::FUNCTION:AES
2431OCSP_SINGLERESP_get1_ext_d2i 2928 EXIST::FUNCTION:
2432EC_POINT_free 2929 EXIST::FUNCTION:EC
2433DH_up_ref 2930 EXIST::FUNCTION:DH
2434X509_NAME_ENTRY_it 2931 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2435X509_NAME_ENTRY_it 2931 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2436UI_get_ex_new_index 2932 EXIST::FUNCTION:
2437BN_mod_sub_quick 2933 EXIST::FUNCTION:
2438OCSP_ONEREQ_add_ext 2934 EXIST::FUNCTION:
2439OCSP_request_sign 2935 EXIST::FUNCTION:
2440EVP_DigestFinal_ex 2936 EXIST::FUNCTION:
2441ENGINE_set_digests 2937 EXIST::FUNCTION:ENGINE
2442OCSP_id_issuer_cmp 2938 EXIST::FUNCTION:
2443OBJ_NAME_do_all 2939 EXIST::FUNCTION:
2444EC_POINTs_mul 2940 EXIST::FUNCTION:EC
2445ENGINE_register_complete 2941 EXIST::FUNCTION:ENGINE
2446X509V3_EXT_nconf_nid 2942 EXIST::FUNCTION:
2447ASN1_SEQUENCE_it 2943 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2448ASN1_SEQUENCE_it 2943 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2449UI_set_default_method 2944 EXIST::FUNCTION:
2450RAND_query_egd_bytes 2945 EXIST::FUNCTION:
2451UI_method_get_writer 2946 EXIST::FUNCTION:
2452UI_OpenSSL 2947 EXIST::FUNCTION:
2453PEM_def_callback 2948 EXIST::FUNCTION:
2454ENGINE_cleanup 2949 EXIST::FUNCTION:ENGINE
2455DIST_POINT_it 2950 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2456DIST_POINT_it 2950 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2457OCSP_SINGLERESP_it 2951 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2458OCSP_SINGLERESP_it 2951 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2459d2i_KRB5_TKTBODY 2952 EXIST::FUNCTION:
2460EC_POINT_cmp 2953 EXIST::FUNCTION:EC
2461OCSP_REVOKEDINFO_new 2954 EXIST::FUNCTION:
2462i2d_OCSP_CERTSTATUS 2955 EXIST::FUNCTION:
2463OCSP_basic_add1_nonce 2956 EXIST::FUNCTION:
2464ASN1_item_ex_d2i 2957 EXIST::FUNCTION:
2465BN_mod_lshift1_quick 2958 EXIST::FUNCTION:
2466UI_set_method 2959 EXIST::FUNCTION:
2467OCSP_id_get0_info 2960 EXIST::FUNCTION:
2468BN_mod_sqrt 2961 EXIST::FUNCTION:
2469EC_GROUP_copy 2962 EXIST::FUNCTION:EC
2470KRB5_ENCDATA_free 2963 EXIST::FUNCTION:
2471_ossl_old_des_cfb_encrypt 2964 EXIST::FUNCTION:DES
2472OCSP_SINGLERESP_get_ext_by_OBJ 2965 EXIST::FUNCTION:
2473OCSP_cert_to_id 2966 EXIST::FUNCTION:
2474OCSP_RESPID_new 2967 EXIST::FUNCTION:
2475OCSP_RESPDATA_it 2968 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2476OCSP_RESPDATA_it 2968 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2477d2i_OCSP_RESPDATA 2969 EXIST::FUNCTION:
2478ENGINE_register_all_complete 2970 EXIST::FUNCTION:ENGINE
2479OCSP_check_validity 2971 EXIST::FUNCTION:
2480PKCS12_BAGS_it 2972 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2481PKCS12_BAGS_it 2972 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2482OCSP_url_svcloc_new 2973 EXIST::FUNCTION:
2483ASN1_template_free 2974 EXIST::FUNCTION:
2484OCSP_SINGLERESP_add_ext 2975 EXIST::FUNCTION:
2485KRB5_AUTHENTBODY_it 2976 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2486KRB5_AUTHENTBODY_it 2976 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2487X509_supported_extension 2977 EXIST::FUNCTION:
2488i2d_KRB5_AUTHDATA 2978 EXIST::FUNCTION:
2489UI_method_get_opener 2979 EXIST::FUNCTION:
2490ENGINE_set_ex_data 2980 EXIST::FUNCTION:ENGINE
2491OCSP_REQUEST_print 2981 EXIST::FUNCTION:
2492CBIGNUM_it 2982 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2493CBIGNUM_it 2982 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2494KRB5_TICKET_new 2983 EXIST::FUNCTION:
2495KRB5_APREQ_new 2984 EXIST::FUNCTION:
2496EC_GROUP_get_curve_GFp 2985 EXIST::FUNCTION:EC
2497KRB5_ENCKEY_new 2986 EXIST::FUNCTION:
2498ASN1_template_d2i 2987 EXIST::FUNCTION:
2499_ossl_old_des_quad_cksum 2988 EXIST::FUNCTION:DES
2500OCSP_single_get0_status 2989 EXIST::FUNCTION:
2501BN_swap 2990 EXIST::FUNCTION:
2502POLICYINFO_it 2991 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2503POLICYINFO_it 2991 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2504ENGINE_set_destroy_function 2992 EXIST::FUNCTION:ENGINE
2505asn1_enc_free 2993 EXIST::FUNCTION:
2506OCSP_RESPID_it 2994 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2507OCSP_RESPID_it 2994 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2508EC_GROUP_new 2995 EXIST::FUNCTION:EC
2509EVP_aes_256_cbc 2996 EXIST::FUNCTION:AES
2510i2d_KRB5_PRINCNAME 2997 EXIST::FUNCTION:
2511_ossl_old_des_encrypt2 2998 EXIST::FUNCTION:DES
2512_ossl_old_des_encrypt3 2999 EXIST::FUNCTION:DES
2513PKCS8_PRIV_KEY_INFO_it 3000 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2514PKCS8_PRIV_KEY_INFO_it 3000 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2515OCSP_REQINFO_it 3001 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2516OCSP_REQINFO_it 3001 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2517PBEPARAM_it 3002 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2518PBEPARAM_it 3002 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2519KRB5_AUTHENTBODY_new 3003 EXIST::FUNCTION:
2520X509_CRL_add0_revoked 3004 EXIST::FUNCTION:
2521EDIPARTYNAME_it 3005 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2522EDIPARTYNAME_it 3005 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2523NETSCAPE_SPKI_it 3006 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2524NETSCAPE_SPKI_it 3006 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2525UI_get0_test_string 3007 EXIST::FUNCTION:
2526ENGINE_get_cipher_engine 3008 EXIST::FUNCTION:ENGINE
2527ENGINE_register_all_ciphers 3009 EXIST::FUNCTION:ENGINE
2528EC_POINT_copy 3010 EXIST::FUNCTION:EC
2529BN_kronecker 3011 EXIST::FUNCTION:
2530_ossl_old_des_ede3_ofb64_encrypt 3012 EXIST:!VMS:FUNCTION:DES
2531_ossl_odes_ede3_ofb64_encrypt 3012 EXIST:VMS:FUNCTION:DES
2532UI_method_get_reader 3013 EXIST::FUNCTION:
2533OCSP_BASICRESP_get_ext_count 3014 EXIST::FUNCTION:
2534ASN1_ENUMERATED_it 3015 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2535ASN1_ENUMERATED_it 3015 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2536UI_set_result 3016 EXIST::FUNCTION:
2537i2d_KRB5_TICKET 3017 EXIST::FUNCTION:
2538X509_print_ex_fp 3018 EXIST::FUNCTION:FP_API
2539EVP_CIPHER_CTX_set_padding 3019 EXIST::FUNCTION:
2540d2i_OCSP_RESPONSE 3020 EXIST::FUNCTION:
2541ASN1_UTCTIME_it 3021 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2542ASN1_UTCTIME_it 3021 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2543_ossl_old_des_enc_write 3022 EXIST::FUNCTION:DES
2544OCSP_RESPONSE_new 3023 EXIST::FUNCTION:
2545AES_set_encrypt_key 3024 EXIST::FUNCTION:AES
2546OCSP_resp_count 3025 EXIST::FUNCTION:
2547KRB5_CHECKSUM_new 3026 EXIST::FUNCTION:
2548ENGINE_load_cswift 3027 EXIST::FUNCTION:ENGINE
2549OCSP_onereq_get0_id 3028 EXIST::FUNCTION:
2550ENGINE_set_default_ciphers 3029 EXIST::FUNCTION:ENGINE
2551NOTICEREF_it 3030 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2552NOTICEREF_it 3030 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2553X509V3_EXT_CRL_add_nconf 3031 EXIST::FUNCTION:
2554OCSP_REVOKEDINFO_it 3032 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2555OCSP_REVOKEDINFO_it 3032 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2556AES_encrypt 3033 EXIST::FUNCTION:AES
2557OCSP_REQUEST_new 3034 EXIST::FUNCTION:
2558ASN1_ANY_it 3035 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2559ASN1_ANY_it 3035 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2560CRYPTO_ex_data_new_class 3036 EXIST::FUNCTION:
2561_ossl_old_des_ncbc_encrypt 3037 EXIST::FUNCTION:DES
2562i2d_KRB5_TKTBODY 3038 EXIST::FUNCTION:
2563EC_POINT_clear_free 3039 EXIST::FUNCTION:EC
2564AES_decrypt 3040 EXIST::FUNCTION:AES
2565asn1_enc_init 3041 EXIST::FUNCTION:
2566UI_get_result_maxsize 3042 EXIST::FUNCTION:
2567OCSP_CERTID_new 3043 EXIST::FUNCTION:
2568ENGINE_unregister_RAND 3044 EXIST::FUNCTION:ENGINE
2569UI_method_get_closer 3045 EXIST::FUNCTION:
2570d2i_KRB5_ENCDATA 3046 EXIST::FUNCTION:
2571OCSP_request_onereq_count 3047 EXIST::FUNCTION:
2572OCSP_basic_verify 3048 EXIST::FUNCTION:
2573KRB5_AUTHENTBODY_free 3049 EXIST::FUNCTION:
2574ASN1_item_d2i 3050 EXIST::FUNCTION:
2575ASN1_primitive_free 3051 EXIST::FUNCTION:
2576i2d_EXTENDED_KEY_USAGE 3052 EXIST::FUNCTION:
2577i2d_OCSP_SIGNATURE 3053 EXIST::FUNCTION:
2578asn1_enc_save 3054 EXIST::FUNCTION:
2579ENGINE_load_nuron 3055 EXIST::FUNCTION:ENGINE
2580_ossl_old_des_pcbc_encrypt 3056 EXIST::FUNCTION:DES
2581PKCS12_MAC_DATA_it 3057 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2582PKCS12_MAC_DATA_it 3057 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2583OCSP_accept_responses_new 3058 EXIST::FUNCTION:
2584asn1_do_lock 3059 EXIST::FUNCTION:
2585PKCS7_ATTR_VERIFY_it 3060 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2586PKCS7_ATTR_VERIFY_it 3060 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2587KRB5_APREQBODY_it 3061 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2588KRB5_APREQBODY_it 3061 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2589i2d_OCSP_SINGLERESP 3062 EXIST::FUNCTION:
2590ASN1_item_ex_new 3063 EXIST::FUNCTION:
2591UI_add_verify_string 3064 EXIST::FUNCTION:
2592_ossl_old_des_set_key 3065 EXIST::FUNCTION:DES
2593KRB5_PRINCNAME_it 3066 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2594KRB5_PRINCNAME_it 3066 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2595EVP_DecryptInit_ex 3067 EXIST::FUNCTION:
2596i2d_OCSP_CERTID 3068 EXIST::FUNCTION:
2597ASN1_item_d2i_bio 3069 EXIST::FUNCTION:BIO
2598EC_POINT_dbl 3070 EXIST::FUNCTION:EC
2599asn1_get_choice_selector 3071 EXIST::FUNCTION:
2600i2d_KRB5_CHECKSUM 3072 EXIST::FUNCTION:
2601ENGINE_set_table_flags 3073 EXIST::FUNCTION:ENGINE
2602AES_options 3074 EXIST::FUNCTION:AES
2603ENGINE_load_chil 3075 EXIST::FUNCTION:ENGINE
2604OCSP_id_cmp 3076 EXIST::FUNCTION:
2605OCSP_BASICRESP_new 3077 EXIST::FUNCTION:
2606OCSP_REQUEST_get_ext_by_NID 3078 EXIST::FUNCTION:
2607KRB5_APREQ_it 3079 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2608KRB5_APREQ_it 3079 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2609ENGINE_get_destroy_function 3080 EXIST::FUNCTION:ENGINE
2610CONF_set_nconf 3081 EXIST::FUNCTION:
2611ASN1_PRINTABLE_free 3082 EXIST::FUNCTION:
2612OCSP_BASICRESP_get_ext_by_NID 3083 EXIST::FUNCTION:
2613DIST_POINT_NAME_it 3084 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2614DIST_POINT_NAME_it 3084 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2615X509V3_extensions_print 3085 EXIST::FUNCTION:
2616_ossl_old_des_cfb64_encrypt 3086 EXIST::FUNCTION:DES
2617X509_REVOKED_add1_ext_i2d 3087 EXIST::FUNCTION:
2618_ossl_old_des_ofb_encrypt 3088 EXIST::FUNCTION:DES
2619KRB5_TKTBODY_new 3089 EXIST::FUNCTION:
2620ASN1_OCTET_STRING_it 3090 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2621ASN1_OCTET_STRING_it 3090 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2622ERR_load_UI_strings 3091 EXIST::FUNCTION:
2623i2d_KRB5_ENCKEY 3092 EXIST::FUNCTION:
2624ASN1_template_new 3093 EXIST::FUNCTION:
2625OCSP_SIGNATURE_free 3094 EXIST::FUNCTION:
2626ASN1_item_i2d_fp 3095 EXIST::FUNCTION:FP_API
2627KRB5_PRINCNAME_free 3096 EXIST::FUNCTION:
2628PKCS7_RECIP_INFO_it 3097 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2629PKCS7_RECIP_INFO_it 3097 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2630EXTENDED_KEY_USAGE_it 3098 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2631EXTENDED_KEY_USAGE_it 3098 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2632EC_GFp_simple_method 3099 EXIST::FUNCTION:EC
2633EC_GROUP_precompute_mult 3100 EXIST::FUNCTION:EC
2634OCSP_request_onereq_get0 3101 EXIST::FUNCTION:
2635UI_method_set_writer 3102 EXIST::FUNCTION:
2636KRB5_AUTHENT_new 3103 EXIST::FUNCTION:
2637X509_CRL_INFO_it 3104 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2638X509_CRL_INFO_it 3104 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2639DSO_set_name_converter 3105 EXIST::FUNCTION:
2640AES_set_decrypt_key 3106 EXIST::FUNCTION:AES
2641PKCS7_DIGEST_it 3107 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2642PKCS7_DIGEST_it 3107 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2643PKCS12_x5092certbag 3108 EXIST::FUNCTION:
2644EVP_DigestInit_ex 3109 EXIST::FUNCTION:
2645i2a_ACCESS_DESCRIPTION 3110 EXIST::FUNCTION:
2646OCSP_RESPONSE_it 3111 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2647OCSP_RESPONSE_it 3111 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2648PKCS7_ENC_CONTENT_it 3112 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2649PKCS7_ENC_CONTENT_it 3112 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2650OCSP_request_add0_id 3113 EXIST::FUNCTION:
2651EC_POINT_make_affine 3114 EXIST::FUNCTION:EC
2652DSO_get_filename 3115 EXIST::FUNCTION:
2653OCSP_CERTSTATUS_it 3116 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2654OCSP_CERTSTATUS_it 3116 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2655OCSP_request_add1_cert 3117 EXIST::FUNCTION:
2656UI_get0_output_string 3118 EXIST::FUNCTION:
2657UI_dup_verify_string 3119 EXIST::FUNCTION:
2658BN_mod_lshift 3120 EXIST::FUNCTION:
2659KRB5_AUTHDATA_it 3121 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2660KRB5_AUTHDATA_it 3121 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2661asn1_set_choice_selector 3122 EXIST::FUNCTION:
2662OCSP_basic_add1_status 3123 EXIST::FUNCTION:
2663OCSP_RESPID_free 3124 EXIST::FUNCTION:
2664asn1_get_field_ptr 3125 EXIST::FUNCTION:
2665UI_add_input_string 3126 EXIST::FUNCTION:
2666OCSP_CRLID_it 3127 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2667OCSP_CRLID_it 3127 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2668i2d_KRB5_AUTHENTBODY 3128 EXIST::FUNCTION:
2669OCSP_REQUEST_get_ext_count 3129 EXIST::FUNCTION:
2670ENGINE_load_atalla 3130 EXIST::FUNCTION:ENGINE
2671X509_NAME_it 3131 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2672X509_NAME_it 3131 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2673USERNOTICE_it 3132 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2674USERNOTICE_it 3132 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2675OCSP_REQINFO_new 3133 EXIST::FUNCTION:
2676OCSP_BASICRESP_get_ext 3134 EXIST::FUNCTION:
2677CRYPTO_get_ex_data_implementation 3135 EXIST:!VMS:FUNCTION:
2678CRYPTO_get_ex_data_impl 3135 EXIST:VMS:FUNCTION:
2679ASN1_item_pack 3136 EXIST::FUNCTION:
2680i2d_KRB5_ENCDATA 3137 EXIST::FUNCTION:
2681X509_PURPOSE_set 3138 EXIST::FUNCTION:
2682X509_REQ_INFO_it 3139 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2683X509_REQ_INFO_it 3139 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2684UI_method_set_opener 3140 EXIST::FUNCTION:
2685ASN1_item_ex_free 3141 EXIST::FUNCTION:
2686ASN1_BOOLEAN_it 3142 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2687ASN1_BOOLEAN_it 3142 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2688ENGINE_get_table_flags 3143 EXIST::FUNCTION:ENGINE
2689UI_create_method 3144 EXIST::FUNCTION:
2690OCSP_ONEREQ_add1_ext_i2d 3145 EXIST::FUNCTION:
2691_shadow_DES_check_key 3146 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES
2692_shadow_DES_check_key 3146 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES
2693d2i_OCSP_REQINFO 3147 EXIST::FUNCTION:
2694UI_add_info_string 3148 EXIST::FUNCTION:
2695UI_get_result_minsize 3149 EXIST::FUNCTION:
2696ASN1_NULL_it 3150 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2697ASN1_NULL_it 3150 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2698BN_mod_lshift1 3151 EXIST::FUNCTION:
2699d2i_OCSP_ONEREQ 3152 EXIST::FUNCTION:
2700OCSP_ONEREQ_new 3153 EXIST::FUNCTION:
2701KRB5_TICKET_it 3154 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2702KRB5_TICKET_it 3154 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2703EVP_aes_192_cbc 3155 EXIST::FUNCTION:AES
2704KRB5_TICKET_free 3156 EXIST::FUNCTION:
2705UI_new 3157 EXIST::FUNCTION:
2706OCSP_response_create 3158 EXIST::FUNCTION:
2707_ossl_old_des_xcbc_encrypt 3159 EXIST::FUNCTION:DES
2708PKCS7_it 3160 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2709PKCS7_it 3160 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2710OCSP_REQUEST_get_ext_by_critical 3161 EXIST:!VMS:FUNCTION:
2711OCSP_REQUEST_get_ext_by_crit 3161 EXIST:VMS:FUNCTION:
2712ENGINE_set_flags 3162 EXIST::FUNCTION:ENGINE
2713_ossl_old_des_ecb_encrypt 3163 EXIST::FUNCTION:DES
2714OCSP_response_get1_basic 3164 EXIST::FUNCTION:
2715EVP_Digest 3165 EXIST::FUNCTION:
2716OCSP_ONEREQ_delete_ext 3166 EXIST::FUNCTION:
2717ASN1_TBOOLEAN_it 3167 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2718ASN1_TBOOLEAN_it 3167 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2719ASN1_item_new 3168 EXIST::FUNCTION:
2720ASN1_TIME_to_generalizedtime 3169 EXIST::FUNCTION:
2721BIGNUM_it 3170 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2722BIGNUM_it 3170 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2723AES_cbc_encrypt 3171 EXIST::FUNCTION:AES
2724ENGINE_get_load_privkey_function 3172 EXIST:!VMS:FUNCTION:ENGINE
2725ENGINE_get_load_privkey_fn 3172 EXIST:VMS:FUNCTION:ENGINE
2726OCSP_RESPONSE_free 3173 EXIST::FUNCTION:
2727UI_method_set_reader 3174 EXIST::FUNCTION:
2728i2d_ASN1_T61STRING 3175 EXIST::FUNCTION:
2729EC_POINT_set_to_infinity 3176 EXIST::FUNCTION:EC
2730ERR_load_OCSP_strings 3177 EXIST::FUNCTION:
2731EC_POINT_point2oct 3178 EXIST::FUNCTION:EC
2732KRB5_APREQ_free 3179 EXIST::FUNCTION:
2733ASN1_OBJECT_it 3180 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2734ASN1_OBJECT_it 3180 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2735OCSP_crlID_new 3181 EXIST:!OS2,!VMS,!WIN16:FUNCTION:
2736OCSP_crlID2_new 3181 EXIST:OS2,VMS,WIN16:FUNCTION:
2737CONF_modules_load_file 3182 EXIST::FUNCTION:
2738CONF_imodule_set_usr_data 3183 EXIST::FUNCTION:
2739ENGINE_set_default_string 3184 EXIST::FUNCTION:ENGINE
2740CONF_module_get_usr_data 3185 EXIST::FUNCTION:
2741ASN1_add_oid_module 3186 EXIST::FUNCTION:
2742CONF_modules_finish 3187 EXIST::FUNCTION:
2743OPENSSL_config 3188 EXIST::FUNCTION:
2744CONF_modules_unload 3189 EXIST::FUNCTION:
2745CONF_imodule_get_value 3190 EXIST::FUNCTION:
2746CONF_module_set_usr_data 3191 EXIST::FUNCTION:
2747CONF_parse_list 3192 EXIST::FUNCTION:
2748CONF_module_add 3193 EXIST::FUNCTION:
2749CONF_get1_default_config_file 3194 EXIST::FUNCTION:
2750CONF_imodule_get_flags 3195 EXIST::FUNCTION:
2751CONF_imodule_get_module 3196 EXIST::FUNCTION:
2752CONF_modules_load 3197 EXIST::FUNCTION:
2753CONF_imodule_get_name 3198 EXIST::FUNCTION:
2754ERR_peek_top_error 3199 NOEXIST::FUNCTION:
2755CONF_imodule_get_usr_data 3200 EXIST::FUNCTION:
2756CONF_imodule_set_flags 3201 EXIST::FUNCTION:
2757ENGINE_add_conf_module 3202 EXIST::FUNCTION:ENGINE
2758ERR_peek_last_error_line 3203 EXIST::FUNCTION:
2759ERR_peek_last_error_line_data 3204 EXIST::FUNCTION:
2760ERR_peek_last_error 3205 EXIST::FUNCTION:
2761DES_read_2passwords 3206 EXIST::FUNCTION:DES
2762DES_read_password 3207 EXIST::FUNCTION:DES
2763UI_UTIL_read_pw 3208 EXIST::FUNCTION:
2764UI_UTIL_read_pw_string 3209 EXIST::FUNCTION:
2765ENGINE_load_aep 3210 EXIST::FUNCTION:ENGINE
2766ENGINE_load_sureware 3211 EXIST::FUNCTION:ENGINE
2767OPENSSL_add_all_algorithms_noconf 3212 EXIST:!VMS:FUNCTION:
2768OPENSSL_add_all_algo_noconf 3212 EXIST:VMS:FUNCTION:
2769OPENSSL_add_all_algorithms_conf 3213 EXIST:!VMS:FUNCTION:
2770OPENSSL_add_all_algo_conf 3213 EXIST:VMS:FUNCTION:
2771OPENSSL_load_builtin_modules 3214 EXIST::FUNCTION:
2772AES_ofb128_encrypt 3215 EXIST::FUNCTION:AES
2773AES_ctr128_encrypt 3216 EXIST::FUNCTION:AES
2774AES_cfb128_encrypt 3217 EXIST::FUNCTION:AES
2775ENGINE_load_4758cca 3218 EXIST::FUNCTION:ENGINE
2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES
2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES
2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES
2779EVP_aes_128_cfb128 3222 EXIST::FUNCTION:AES
2780EVP_aes_256_cfb128 3223 EXIST::FUNCTION:AES
2781EVP_aes_128_ofb 3224 EXIST::FUNCTION:AES
2782EVP_aes_192_cfb128 3225 EXIST::FUNCTION:AES
2783CONF_modules_free 3226 EXIST::FUNCTION:
2784NCONF_default 3227 EXIST::FUNCTION:
2785OPENSSL_no_config 3228 EXIST::FUNCTION:
2786NCONF_WIN32 3229 EXIST::FUNCTION:
2787ASN1_UNIVERSALSTRING_new 3230 EXIST::FUNCTION:
2788EVP_des_ede_ecb 3231 EXIST::FUNCTION:DES
2789i2d_ASN1_UNIVERSALSTRING 3232 EXIST::FUNCTION:
2790ASN1_UNIVERSALSTRING_free 3233 EXIST::FUNCTION:
2791ASN1_UNIVERSALSTRING_it 3234 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2792ASN1_UNIVERSALSTRING_it 3234 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2793d2i_ASN1_UNIVERSALSTRING 3235 EXIST::FUNCTION:
2794EVP_des_ede3_ecb 3236 EXIST::FUNCTION:DES
2795X509_REQ_print_ex 3237 EXIST::FUNCTION:BIO
2796ENGINE_up_ref 3238 EXIST::FUNCTION:ENGINE
2797BUF_MEM_grow_clean 3239 EXIST::FUNCTION:
2798CRYPTO_realloc_clean 3240 EXIST::FUNCTION:
2799BUF_strlcat 3241 EXIST::FUNCTION:
2800BIO_indent 3242 EXIST::FUNCTION:
2801BUF_strlcpy 3243 EXIST::FUNCTION:
2802OpenSSLDie 3244 EXIST::FUNCTION:
2803OPENSSL_cleanse 3245 EXIST::FUNCTION:
2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE
2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH
2806EVP_aes_128_cfb8 3248 EXIST::FUNCTION:AES
2807FIPS_corrupt_rsa 3249 EXIST:OPENSSL_FIPS:FUNCTION:
2808FIPS_selftest_des 3250 EXIST:OPENSSL_FIPS:FUNCTION:
2809EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES
2810EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES
2811FIPS_mode_set 3253 EXIST:OPENSSL_FIPS:FUNCTION:
2812FIPS_selftest_dsa 3254 EXIST:OPENSSL_FIPS:FUNCTION:
2813EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES
2814FIPS_allow_md5 3256 EXIST:OPENSSL_FIPS:FUNCTION:
2815DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES
2816EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES
2817FIPS_rand_seeded 3259 EXIST:OPENSSL_FIPS:FUNCTION:
2818AES_cfbr_encrypt_block 3260 EXIST::FUNCTION:AES
2819AES_cfb8_encrypt 3261 EXIST::FUNCTION:AES
2820FIPS_rand_seed 3262 EXIST:OPENSSL_FIPS:FUNCTION:
2821FIPS_corrupt_des 3263 EXIST:OPENSSL_FIPS:FUNCTION:
2822EVP_aes_192_cfb1 3264 EXIST::FUNCTION:AES
2823FIPS_selftest_aes 3265 EXIST:OPENSSL_FIPS:FUNCTION:
2824FIPS_set_prng_key 3266 EXIST:OPENSSL_FIPS:FUNCTION:
2825EVP_des_cfb8 3267 EXIST::FUNCTION:DES
2826FIPS_corrupt_dsa 3268 EXIST:OPENSSL_FIPS:FUNCTION:
2827FIPS_test_mode 3269 EXIST:OPENSSL_FIPS:FUNCTION:
2828FIPS_rand_method 3270 EXIST:OPENSSL_FIPS:FUNCTION:
2829EVP_aes_256_cfb1 3271 EXIST::FUNCTION:AES
2830ERR_load_FIPS_strings 3272 EXIST:OPENSSL_FIPS:FUNCTION:
2831FIPS_corrupt_aes 3273 EXIST:OPENSSL_FIPS:FUNCTION:
2832FIPS_selftest_sha1 3274 EXIST:OPENSSL_FIPS:FUNCTION:
2833FIPS_selftest_rsa 3275 EXIST:OPENSSL_FIPS:FUNCTION:
2834FIPS_corrupt_sha1 3276 EXIST:OPENSSL_FIPS:FUNCTION:
2835EVP_des_cfb1 3277 EXIST::FUNCTION:DES
2836FIPS_dsa_check 3278 EXIST:OPENSSL_FIPS:FUNCTION:
2837AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES
2838EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES
2839FIPS_rand_check 3281 EXIST:OPENSSL_FIPS:FUNCTION:
2840FIPS_md5_allowed 3282 EXIST:OPENSSL_FIPS:FUNCTION:
2841FIPS_mode 3283 EXIST:OPENSSL_FIPS:FUNCTION:
2842FIPS_selftest_failed 3284 EXIST:OPENSSL_FIPS:FUNCTION:
2843sk_is_sorted 3285 EXIST::FUNCTION:
2844X509_check_ca 3286 EXIST::FUNCTION:
2845private_idea_set_encrypt_key 3287 EXIST:OPENSSL_FIPS:FUNCTION:IDEA
2846HMAC_CTX_set_flags 3288 EXIST::FUNCTION:HMAC
2847private_SHA_Init 3289 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA0
2848private_CAST_set_key 3290 EXIST:OPENSSL_FIPS:FUNCTION:CAST
2849private_RIPEMD160_Init 3291 EXIST:OPENSSL_FIPS:FUNCTION:RIPEMD
2850private_RC5_32_set_key 3292 EXIST:OPENSSL_FIPS:FUNCTION:RC5
2851private_MD5_Init 3293 EXIST:OPENSSL_FIPS:FUNCTION:MD5
2852private_RC4_set_key 3294 EXIST:OPENSSL_FIPS:FUNCTION:RC4
2853private_MDC2_Init 3295 EXIST:OPENSSL_FIPS:FUNCTION:MDC2
2854private_RC2_set_key 3296 EXIST:OPENSSL_FIPS:FUNCTION:RC2
2855private_MD4_Init 3297 EXIST:OPENSSL_FIPS:FUNCTION:MD4
2856private_BF_set_key 3298 EXIST:OPENSSL_FIPS:FUNCTION:BF
2857private_MD2_Init 3299 EXIST:OPENSSL_FIPS:FUNCTION:MD2
2858d2i_PROXY_CERT_INFO_EXTENSION 3300 EXIST::FUNCTION:
2859PROXY_POLICY_it 3301 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2860PROXY_POLICY_it 3301 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2861i2d_PROXY_POLICY 3302 EXIST::FUNCTION:
2862i2d_PROXY_CERT_INFO_EXTENSION 3303 EXIST::FUNCTION:
2863d2i_PROXY_POLICY 3304 EXIST::FUNCTION:
2864PROXY_CERT_INFO_EXTENSION_new 3305 EXIST::FUNCTION:
2865PROXY_CERT_INFO_EXTENSION_free 3306 EXIST::FUNCTION:
2866PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2867PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2868PROXY_POLICY_free 3308 EXIST::FUNCTION:
2869PROXY_POLICY_new 3309 EXIST::FUNCTION:
diff --git a/src/lib/libcrypto/util/mk1mf.pl b/src/lib/libcrypto/util/mk1mf.pl
new file mode 100644
index 0000000000..957264c6b5
--- /dev/null
+++ b/src/lib/libcrypto/util/mk1mf.pl
@@ -0,0 +1,944 @@
1#!/usr/local/bin/perl
2# A bit of an evil hack but it post processes the file ../MINFO which
3# is generated by `make files` in the top directory.
4# This script outputs one mega makefile that has no shell stuff or any
5# funny stuff
6#
7
8$INSTALLTOP="/usr/local/ssl";
9$OPTIONS="";
10$ssl_version="";
11$banner="\t\@echo Building OpenSSL";
12
13open(IN,"<Makefile") || die "unable to open Makefile!\n";
14while(<IN>) {
15 $ssl_version=$1 if (/^VERSION=(.*)$/);
16 $OPTIONS=$1 if (/^OPTIONS=(.*)$/);
17 $INSTALLTOP=$1 if (/^INSTALLTOP=(.*$)/);
18}
19close(IN);
20
21die "Makefile is not the toplevel Makefile!\n" if $ssl_version eq "";
22
23$infile="MINFO";
24
25%ops=(
26 "VC-WIN32", "Microsoft Visual C++ [4-6] - Windows NT or 9X",
27 "VC-CE", "Microsoft eMbedded Visual C++ 3.0 - Windows CE ONLY",
28 "VC-NT", "Microsoft Visual C++ [4-6] - Windows NT ONLY",
29 "VC-W31-16", "Microsoft Visual C++ 1.52 - Windows 3.1 - 286",
30 "VC-WIN16", "Alias for VC-W31-32",
31 "VC-W31-32", "Microsoft Visual C++ 1.52 - Windows 3.1 - 386+",
32 "VC-MSDOS","Microsoft Visual C++ 1.52 - MSDOS",
33 "Mingw32", "GNU C++ - Windows NT or 9x",
34 "Mingw32-files", "Create files with DOS copy ...",
35 "BC-NT", "Borland C++ 4.5 - Windows NT",
36 "BC-W31", "Borland C++ 4.5 - Windows 3.1 - PROBABLY NOT WORKING",
37 "BC-MSDOS","Borland C++ 4.5 - MSDOS",
38 "linux-elf","Linux elf",
39 "ultrix-mips","DEC mips ultrix",
40 "FreeBSD","FreeBSD distribution",
41 "OS2-EMX", "EMX GCC OS/2",
42 "default","cc under unix",
43 );
44
45$platform="";
46foreach (@ARGV)
47 {
48 if (!&read_options && !defined($ops{$_}))
49 {
50 print STDERR "unknown option - $_\n";
51 print STDERR "usage: perl mk1mf.pl [options] [system]\n";
52 print STDERR "\nwhere [system] can be one of the following\n";
53 foreach $i (sort keys %ops)
54 { printf STDERR "\t%-10s\t%s\n",$i,$ops{$i}; }
55 print STDERR <<"EOF";
56and [options] can be one of
57 no-md2 no-md4 no-md5 no-sha no-mdc2 - Skip this digest
58 no-ripemd
59 no-rc2 no-rc4 no-rc5 no-idea no-des - Skip this symetric cipher
60 no-bf no-cast no-aes
61 no-rsa no-dsa no-dh - Skip this public key cipher
62 no-ssl2 no-ssl3 - Skip this version of SSL
63 just-ssl - remove all non-ssl keys/digest
64 no-asm - No x86 asm
65 no-krb5 - No KRB5
66 no-ec - No EC
67 no-engine - No engine
68 no-hw - No hw
69 nasm - Use NASM for x86 asm
70 gaswin - Use GNU as with Mingw32
71 no-socks - No socket code
72 no-err - No error strings
73 dll/shlib - Build shared libraries (MS)
74 debug - Debug build
75 profile - Profiling build
76 gcc - Use Gcc (unix)
77
78Values that can be set
79TMP=tmpdir OUT=outdir SRC=srcdir BIN=binpath INC=header-outdir CC=C-compiler
80
81-L<ex_lib_path> -l<ex_lib> - extra library flags (unix)
82-<ex_cc_flags> - extra 'cc' flags,
83 added (MS), or replace (unix)
84EOF
85 exit(1);
86 }
87 $platform=$_;
88 }
89foreach (grep(!/^$/, split(/ /, $OPTIONS)))
90 {
91 print STDERR "unknown option - $_\n" if !&read_options;
92 }
93
94$no_mdc2=1 if ($no_des);
95
96$no_ssl3=1 if ($no_md5 || $no_sha);
97$no_ssl3=1 if ($no_rsa && $no_dh);
98
99$no_ssl2=1 if ($no_md5);
100$no_ssl2=1 if ($no_rsa);
101
102$out_def="out";
103$inc_def="outinc";
104$tmp_def="tmp";
105
106$mkdir="-mkdir";
107
108($ssl,$crypto)=("ssl","crypto");
109$ranlib="echo ranlib";
110
111$cc=(defined($VARS{'CC'}))?$VARS{'CC'}:'cc';
112$src_dir=(defined($VARS{'SRC'}))?$VARS{'SRC'}:'.';
113$bin_dir=(defined($VARS{'BIN'}))?$VARS{'BIN'}:'';
114
115# $bin_dir.=$o causes a core dump on my sparc :-(
116
117$NT=0;
118
119push(@INC,"util/pl","pl");
120if ($platform eq "VC-MSDOS")
121 {
122 $asmbits=16;
123 $msdos=1;
124 require 'VC-16.pl';
125 }
126elsif ($platform eq "VC-W31-16")
127 {
128 $asmbits=16;
129 $msdos=1; $win16=1;
130 require 'VC-16.pl';
131 }
132elsif (($platform eq "VC-W31-32") || ($platform eq "VC-WIN16"))
133 {
134 $asmbits=32;
135 $msdos=1; $win16=1;
136 require 'VC-16.pl';
137 }
138elsif (($platform eq "VC-WIN32") || ($platform eq "VC-NT"))
139 {
140 $NT = 1 if $platform eq "VC-NT";
141 require 'VC-32.pl';
142 }
143elsif ($platform eq "VC-CE")
144 {
145 require 'VC-CE.pl';
146 }
147elsif ($platform eq "Mingw32")
148 {
149 require 'Mingw32.pl';
150 }
151elsif ($platform eq "Mingw32-files")
152 {
153 require 'Mingw32f.pl';
154 }
155elsif ($platform eq "BC-NT")
156 {
157 $bc=1;
158 require 'BC-32.pl';
159 }
160elsif ($platform eq "BC-W31")
161 {
162 $bc=1;
163 $msdos=1; $w16=1;
164 require 'BC-16.pl';
165 }
166elsif ($platform eq "BC-Q16")
167 {
168 $msdos=1; $w16=1; $shlib=0; $qw=1;
169 require 'BC-16.pl';
170 }
171elsif ($platform eq "BC-MSDOS")
172 {
173 $asmbits=16;
174 $msdos=1;
175 require 'BC-16.pl';
176 }
177elsif ($platform eq "FreeBSD")
178 {
179 require 'unix.pl';
180 $cflags='-DTERMIO -D_ANSI_SOURCE -O2 -fomit-frame-pointer';
181 }
182elsif ($platform eq "linux-elf")
183 {
184 require "unix.pl";
185 require "linux.pl";
186 $unix=1;
187 }
188elsif ($platform eq "ultrix-mips")
189 {
190 require "unix.pl";
191 require "ultrix.pl";
192 $unix=1;
193 }
194elsif ($platform eq "OS2-EMX")
195 {
196 $wc=1;
197 require 'OS2-EMX.pl';
198 }
199else
200 {
201 require "unix.pl";
202
203 $unix=1;
204 $cflags.=' -DTERMIO';
205 }
206
207$out_dir=(defined($VARS{'OUT'}))?$VARS{'OUT'}:$out_def.($debug?".dbg":"");
208$tmp_dir=(defined($VARS{'TMP'}))?$VARS{'TMP'}:$tmp_def.($debug?".dbg":"");
209$inc_dir=(defined($VARS{'INC'}))?$VARS{'INC'}:$inc_def;
210
211$bin_dir=$bin_dir.$o unless ((substr($bin_dir,-1,1) eq $o) || ($bin_dir eq ''));
212
213$cflags.=" -DOPENSSL_NO_IDEA" if $no_idea;
214$cflags.=" -DOPENSSL_NO_AES" if $no_aes;
215$cflags.=" -DOPENSSL_NO_RC2" if $no_rc2;
216$cflags.=" -DOPENSSL_NO_RC4" if $no_rc4;
217$cflags.=" -DOPENSSL_NO_RC5" if $no_rc5;
218$cflags.=" -DOPENSSL_NO_MD2" if $no_md2;
219$cflags.=" -DOPENSSL_NO_MD4" if $no_md4;
220$cflags.=" -DOPENSSL_NO_MD5" if $no_md5;
221$cflags.=" -DOPENSSL_NO_SHA" if $no_sha;
222$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1;
223$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd;
224$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2;
225$cflags.=" -DOPENSSL_NO_BF" if $no_bf;
226$cflags.=" -DOPENSSL_NO_CAST" if $no_cast;
227$cflags.=" -DOPENSSL_NO_DES" if $no_des;
228$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa;
229$cflags.=" -DOPENSSL_NO_DSA" if $no_dsa;
230$cflags.=" -DOPENSSL_NO_DH" if $no_dh;
231$cflags.=" -DOPENSSL_NO_SOCK" if $no_sock;
232$cflags.=" -DOPENSSL_NO_SSL2" if $no_ssl2;
233$cflags.=" -DOPENSSL_NO_SSL3" if $no_ssl3;
234$cflags.=" -DOPENSSL_NO_ERR" if $no_err;
235$cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
236$cflags.=" -DOPENSSL_NO_EC" if $no_ec;
237$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
238$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
239$cflags.=" -DOPENSSL_FIPS" if $fips;
240#$cflags.=" -DRSAref" if $rsaref ne "";
241
242## if ($unix)
243## { $cflags="$c_flags" if ($c_flags ne ""); }
244##else
245 { $cflags="$c_flags$cflags" if ($c_flags ne ""); }
246
247$ex_libs="$l_flags$ex_libs" if ($l_flags ne "");
248
249%shlib_ex_cflags=("SSL" => " -DOPENSSL_BUILD_SHLIBSSL",
250 "CRYPTO" => " -DOPENSSL_BUILD_SHLIBCRYPTO");
251
252if ($msdos)
253 {
254 $banner ="\t\@echo Make sure you have run 'perl Configure $platform' in the\n";
255 $banner.="\t\@echo top level directory, if you don't have perl, you will\n";
256 $banner.="\t\@echo need to probably edit crypto/bn/bn.h, check the\n";
257 $banner.="\t\@echo documentation for details.\n";
258 }
259
260# have to do this to allow $(CC) under unix
261$link="$bin_dir$link" if ($link !~ /^\$/);
262
263$INSTALLTOP =~ s|/|$o|g;
264
265$defs= <<"EOF";
266# This makefile has been automatically generated from the OpenSSL distribution.
267# This single makefile will build the complete OpenSSL distribution and
268# by default leave the 'intertesting' output files in .${o}out and the stuff
269# that needs deleting in .${o}tmp.
270# The file was generated by running 'make makefile.one', which
271# does a 'make files', which writes all the environment variables from all
272# the makefiles to the file call MINFO. This file is used by
273# util${o}mk1mf.pl to generate makefile.one.
274# The 'makefile per directory' system suites me when developing this
275# library and also so I can 'distribute' indervidual library sections.
276# The one monster makefile better suits building in non-unix
277# environments.
278
279EOF
280
281$defs .= $preamble if defined $preamble;
282
283if ($platform eq "VC-CE")
284 {
285 $defs.= <<"EOF";
286!INCLUDE <\$(WCECOMPAT)/wcedefs.mak>
287
288EOF
289 }
290
291$defs.= <<"EOF";
292INSTALLTOP=$INSTALLTOP
293
294# Set your compiler options
295PLATFORM=$platform
296CC=$bin_dir${cc}
297CFLAG=$cflags
298APP_CFLAG=$app_cflag
299LIB_CFLAG=$lib_cflag
300SHLIB_CFLAG=$shl_cflag
301APP_EX_OBJ=$app_ex_obj
302SHLIB_EX_OBJ=$shlib_ex_obj
303# add extra libraries to this define, for solaris -lsocket -lnsl would
304# be added
305EX_LIBS=$ex_libs
306
307# The OpenSSL directory
308SRC_D=$src_dir
309
310LINK=$link
311LFLAGS=$lflags
312
313BN_ASM_OBJ=$bn_asm_obj
314BN_ASM_SRC=$bn_asm_src
315BNCO_ASM_OBJ=$bnco_asm_obj
316BNCO_ASM_SRC=$bnco_asm_src
317DES_ENC_OBJ=$des_enc_obj
318DES_ENC_SRC=$des_enc_src
319BF_ENC_OBJ=$bf_enc_obj
320BF_ENC_SRC=$bf_enc_src
321CAST_ENC_OBJ=$cast_enc_obj
322CAST_ENC_SRC=$cast_enc_src
323RC4_ENC_OBJ=$rc4_enc_obj
324RC4_ENC_SRC=$rc4_enc_src
325RC5_ENC_OBJ=$rc5_enc_obj
326RC5_ENC_SRC=$rc5_enc_src
327MD5_ASM_OBJ=$md5_asm_obj
328MD5_ASM_SRC=$md5_asm_src
329SHA1_ASM_OBJ=$sha1_asm_obj
330SHA1_ASM_SRC=$sha1_asm_src
331RMD160_ASM_OBJ=$rmd160_asm_obj
332RMD160_ASM_SRC=$rmd160_asm_src
333
334# The output directory for everything intersting
335OUT_D=$out_dir
336# The output directory for all the temporary muck
337TMP_D=$tmp_dir
338# The output directory for the header files
339INC_D=$inc_dir
340INCO_D=$inc_dir${o}openssl
341
342CP=$cp
343RM=$rm
344RANLIB=$ranlib
345MKDIR=$mkdir
346MKLIB=$bin_dir$mklib
347MLFLAGS=$mlflags
348ASM=$bin_dir$asm
349
350######################################################
351# You should not need to touch anything below this point
352######################################################
353
354E_EXE=openssl
355SSL=$ssl
356CRYPTO=$crypto
357
358# BIN_D - Binary output directory
359# TEST_D - Binary test file output directory
360# LIB_D - library output directory
361# Note: if you change these point to different directories then uncomment out
362# the lines around the 'NB' comment below.
363#
364BIN_D=\$(OUT_D)
365TEST_D=\$(OUT_D)
366LIB_D=\$(OUT_D)
367
368# INCL_D - local library directory
369# OBJ_D - temp object file directory
370OBJ_D=\$(TMP_D)
371INCL_D=\$(TMP_D)
372
373O_SSL= \$(LIB_D)$o$plib\$(SSL)$shlibp
374O_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$shlibp
375SO_SSL= $plib\$(SSL)$so_shlibp
376SO_CRYPTO= $plib\$(CRYPTO)$so_shlibp
377L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp
378L_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$libp
379
380L_LIBS= \$(L_SSL) \$(L_CRYPTO)
381
382######################################################
383# Don't touch anything below this point
384######################################################
385
386INC=-I\$(INC_D) -I\$(INCL_D)
387APP_CFLAGS=\$(INC) \$(CFLAG) \$(APP_CFLAG)
388LIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG)
389SHLIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) \$(SHLIB_CFLAG)
390LIBS_DEP=\$(O_CRYPTO) \$(O_SSL)
391
392#############################################
393EOF
394
395$rules=<<"EOF";
396all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe
397
398banner:
399$banner
400
401\$(TMP_D):
402 \$(MKDIR) \$(TMP_D)
403# NB: uncomment out these lines if BIN_D, TEST_D and LIB_D are different
404#\$(BIN_D):
405# \$(MKDIR) \$(BIN_D)
406#
407#\$(TEST_D):
408# \$(MKDIR) \$(TEST_D)
409
410\$(LIB_D):
411 \$(MKDIR) \$(LIB_D)
412
413\$(INCO_D): \$(INC_D)
414 \$(MKDIR) \$(INCO_D)
415
416\$(INC_D):
417 \$(MKDIR) \$(INC_D)
418
419headers: \$(HEADER) \$(EXHEADER)
420 @
421
422lib: \$(LIBS_DEP)
423
424exe: \$(T_EXE) \$(BIN_D)$o\$(E_EXE)$exep
425
426install:
427 \$(MKDIR) \$(INSTALLTOP)
428 \$(MKDIR) \$(INSTALLTOP)${o}bin
429 \$(MKDIR) \$(INSTALLTOP)${o}include
430 \$(MKDIR) \$(INSTALLTOP)${o}include${o}openssl
431 \$(MKDIR) \$(INSTALLTOP)${o}lib
432 \$(CP) \$(INCO_D)${o}*.\[ch\] \$(INSTALLTOP)${o}include${o}openssl
433 \$(CP) \$(BIN_D)$o\$(E_EXE)$exep \$(INSTALLTOP)${o}bin
434 \$(CP) \$(O_SSL) \$(INSTALLTOP)${o}lib
435 \$(CP) \$(O_CRYPTO) \$(INSTALLTOP)${o}lib
436
437clean:
438 \$(RM) \$(TMP_D)$o*.*
439
440vclean:
441 \$(RM) \$(TMP_D)$o*.*
442 \$(RM) \$(OUT_D)$o*.*
443
444EOF
445
446my $platform_cpp_symbol = "MK1MF_PLATFORM_$platform";
447$platform_cpp_symbol =~ s/-/_/g;
448if (open(IN,"crypto/buildinf.h"))
449 {
450 # Remove entry for this platform in existing file buildinf.h.
451
452 my $old_buildinf_h = "";
453 while (<IN>)
454 {
455 if (/^\#ifdef $platform_cpp_symbol$/)
456 {
457 while (<IN>) { last if (/^\#endif/); }
458 }
459 else
460 {
461 $old_buildinf_h .= $_;
462 }
463 }
464 close(IN);
465
466 open(OUT,">crypto/buildinf.h") || die "Can't open buildinf.h";
467 print OUT $old_buildinf_h;
468 close(OUT);
469 }
470
471open (OUT,">>crypto/buildinf.h") || die "Can't open buildinf.h";
472printf OUT <<EOF;
473#ifdef $platform_cpp_symbol
474 /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
475 #define CFLAGS "$cc $cflags"
476 #define PLATFORM "$platform"
477EOF
478printf OUT " #define DATE \"%s\"\n", scalar gmtime();
479printf OUT "#endif\n";
480close(OUT);
481
482#############################################
483# We parse in input file and 'store' info for later printing.
484open(IN,"<$infile") || die "unable to open $infile:$!\n";
485$_=<IN>;
486for (;;)
487 {
488 chop;
489
490 ($key,$val)=/^([^=]+)=(.*)/;
491 if ($key eq "RELATIVE_DIRECTORY")
492 {
493 if ($lib ne "")
494 {
495 $uc=$lib;
496 $uc =~ s/^lib(.*)\.a/$1/;
497 $uc =~ tr/a-z/A-Z/;
498 $lib_nam{$uc}=$uc;
499 $lib_obj{$uc}.=$libobj." ";
500 }
501 last if ($val eq "FINISHED");
502 $lib="";
503 $libobj="";
504 $dir=$val;
505 }
506
507 if ($key eq "TEST")
508 { $test.=&var_add($dir,$val); }
509
510 if (($key eq "PROGS") || ($key eq "E_OBJ"))
511 { $e_exe.=&var_add($dir,$val); }
512
513 if ($key eq "LIB")
514 {
515 $lib=$val;
516 $lib =~ s/^.*\/([^\/]+)$/$1/;
517 }
518
519 if ($key eq "EXHEADER")
520 { $exheader.=&var_add($dir,$val); }
521
522 if ($key eq "HEADER")
523 { $header.=&var_add($dir,$val); }
524
525 if ($key eq "LIBOBJ")
526 { $libobj=&var_add($dir,$val); }
527
528 if (!($_=<IN>))
529 { $_="RELATIVE_DIRECTORY=FINISHED\n"; }
530 }
531close(IN);
532
533# Strip of trailing ' '
534foreach (keys %lib_obj) { $lib_obj{$_}=&clean_up_ws($lib_obj{$_}); }
535$test=&clean_up_ws($test);
536$e_exe=&clean_up_ws($e_exe);
537$exheader=&clean_up_ws($exheader);
538$header=&clean_up_ws($header);
539
540# First we strip the exheaders from the headers list
541foreach (split(/\s+/,$exheader)){ $h{$_}=1; }
542foreach (split(/\s+/,$header)) { $h.=$_." " unless $h{$_}; }
543chop($h); $header=$h;
544
545$defs.=&do_defs("HEADER",$header,"\$(INCL_D)",".h");
546$rules.=&do_copy_rule("\$(INCL_D)",$header,".h");
547
548$defs.=&do_defs("EXHEADER",$exheader,"\$(INCO_D)",".h");
549$rules.=&do_copy_rule("\$(INCO_D)",$exheader,".h");
550
551$defs.=&do_defs("T_OBJ",$test,"\$(OBJ_D)",$obj);
552$rules.=&do_compile_rule("\$(OBJ_D)",$test,"\$(APP_CFLAGS)");
553
554$defs.=&do_defs("E_OBJ",$e_exe,"\$(OBJ_D)",$obj);
555$rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)');
556
557foreach (values %lib_nam)
558 {
559 $lib_obj=$lib_obj{$_};
560 local($slib)=$shlib;
561
562 if (($_ eq "SSL") && $no_ssl2 && $no_ssl3)
563 {
564 $rules.="\$(O_SSL):\n\n";
565 next;
566 }
567
568 if (($bn_asm_obj ne "") && ($_ eq "CRYPTO"))
569 {
570 $lib_obj =~ s/\s\S*\/bn_asm\S*/ \$(BN_ASM_OBJ)/;
571 $rules.=&do_asm_rule($bn_asm_obj,$bn_asm_src);
572 }
573 if (($bnco_asm_obj ne "") && ($_ eq "CRYPTO"))
574 {
575 $lib_obj .= "\$(BNCO_ASM_OBJ)";
576 $rules.=&do_asm_rule($bnco_asm_obj,$bnco_asm_src);
577 }
578 if (($des_enc_obj ne "") && ($_ eq "CRYPTO"))
579 {
580 $lib_obj =~ s/\s\S*des_enc\S*/ \$(DES_ENC_OBJ)/;
581 $lib_obj =~ s/\s\S*\/fcrypt_b\S*\s*/ /;
582 $rules.=&do_asm_rule($des_enc_obj,$des_enc_src);
583 }
584 if (($bf_enc_obj ne "") && ($_ eq "CRYPTO"))
585 {
586 $lib_obj =~ s/\s\S*\/bf_enc\S*/ \$(BF_ENC_OBJ)/;
587 $rules.=&do_asm_rule($bf_enc_obj,$bf_enc_src);
588 }
589 if (($cast_enc_obj ne "") && ($_ eq "CRYPTO"))
590 {
591 $lib_obj =~ s/(\s\S*\/c_enc\S*)/ \$(CAST_ENC_OBJ)/;
592 $rules.=&do_asm_rule($cast_enc_obj,$cast_enc_src);
593 }
594 if (($rc4_enc_obj ne "") && ($_ eq "CRYPTO"))
595 {
596 $lib_obj =~ s/\s\S*\/rc4_enc\S*/ \$(RC4_ENC_OBJ)/;
597 $rules.=&do_asm_rule($rc4_enc_obj,$rc4_enc_src);
598 }
599 if (($rc5_enc_obj ne "") && ($_ eq "CRYPTO"))
600 {
601 $lib_obj =~ s/\s\S*\/rc5_enc\S*/ \$(RC5_ENC_OBJ)/;
602 $rules.=&do_asm_rule($rc5_enc_obj,$rc5_enc_src);
603 }
604 if (($md5_asm_obj ne "") && ($_ eq "CRYPTO"))
605 {
606 $lib_obj =~ s/\s(\S*\/md5_dgst\S*)/ $1 \$(MD5_ASM_OBJ)/;
607 $rules.=&do_asm_rule($md5_asm_obj,$md5_asm_src);
608 }
609 if (($sha1_asm_obj ne "") && ($_ eq "CRYPTO"))
610 {
611 $lib_obj =~ s/\s(\S*\/sha1dgst\S*)/ $1 \$(SHA1_ASM_OBJ)/;
612 $rules.=&do_asm_rule($sha1_asm_obj,$sha1_asm_src);
613 }
614 if (($rmd160_asm_obj ne "") && ($_ eq "CRYPTO"))
615 {
616 $lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/;
617 $rules.=&do_asm_rule($rmd160_asm_obj,$rmd160_asm_src);
618 }
619 $defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj);
620 $lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)";
621 $rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib);
622 }
623
624$defs.=&do_defs("T_EXE",$test,"\$(TEST_D)",$exep);
625foreach (split(/\s+/,$test))
626 {
627 $t=&bname($_);
628 $tt="\$(OBJ_D)${o}$t${obj}";
629 $rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
630 }
631
632$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
633$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
634
635if ($fips)
636 {
637 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)","\$(BIN_D)$o.sha1","\$(BIN_D)$o\$(E_EXE)$exep");
638 }
639else
640 {
641 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
642 }
643print $defs;
644
645if ($platform eq "linux-elf") {
646 print <<"EOF";
647# Generate perlasm output files
648%.cpp:
649 (cd \$(\@D)/..; PERL=perl make -f Makefile asm/\$(\@F))
650EOF
651}
652print "###################################################################\n";
653print $rules;
654
655###############################################
656# strip off any trailing .[och] and append the relative directory
657# also remembering to do nothing if we are in one of the dropped
658# directories
659sub var_add
660 {
661 local($dir,$val)=@_;
662 local(@a,$_,$ret);
663
664 return("") if $no_engine && $dir =~ /\/engine/;
665 return("") if $no_hw && $dir =~ /\/hw/;
666 return("") if $no_idea && $dir =~ /\/idea/;
667 return("") if $no_aes && $dir =~ /\/aes/;
668 return("") if $no_rc2 && $dir =~ /\/rc2/;
669 return("") if $no_rc4 && $dir =~ /\/rc4/;
670 return("") if $no_rc5 && $dir =~ /\/rc5/;
671 return("") if $no_rsa && $dir =~ /\/rsa/;
672 return("") if $no_rsa && $dir =~ /^rsaref/;
673 return("") if $no_dsa && $dir =~ /\/dsa/;
674 return("") if $no_dh && $dir =~ /\/dh/;
675 return("") if $no_ec && $dir =~ /\/ec/;
676 if ($no_des && $dir =~ /\/des/)
677 {
678 if ($val =~ /read_pwd/)
679 { return("$dir/read_pwd "); }
680 else
681 { return(""); }
682 }
683 return("") if $no_mdc2 && $dir =~ /\/mdc2/;
684 return("") if $no_sock && $dir =~ /\/proxy/;
685 return("") if $no_bf && $dir =~ /\/bf/;
686 return("") if $no_cast && $dir =~ /\/cast/;
687
688 $val =~ s/^\s*(.*)\s*$/$1/;
689 @a=split(/\s+/,$val);
690 grep(s/\.[och]$//,@a);
691
692 @a=grep(!/^e_.*_3d$/,@a) if $no_des;
693 @a=grep(!/^e_.*_d$/,@a) if $no_des;
694 @a=grep(!/^e_.*_ae$/,@a) if $no_idea;
695 @a=grep(!/^e_.*_i$/,@a) if $no_aes;
696 @a=grep(!/^e_.*_r2$/,@a) if $no_rc2;
697 @a=grep(!/^e_.*_r5$/,@a) if $no_rc5;
698 @a=grep(!/^e_.*_bf$/,@a) if $no_bf;
699 @a=grep(!/^e_.*_c$/,@a) if $no_cast;
700 @a=grep(!/^e_rc4$/,@a) if $no_rc4;
701
702 @a=grep(!/(^s2_)|(^s23_)/,@a) if $no_ssl2;
703 @a=grep(!/(^s3_)|(^s23_)/,@a) if $no_ssl3;
704
705 @a=grep(!/(_sock$)|(_acpt$)|(_conn$)|(^pxy_)/,@a) if $no_sock;
706
707 @a=grep(!/(^md2)|(_md2$)/,@a) if $no_md2;
708 @a=grep(!/(^md4)|(_md4$)/,@a) if $no_md4;
709 @a=grep(!/(^md5)|(_md5$)/,@a) if $no_md5;
710 @a=grep(!/(rmd)|(ripemd)/,@a) if $no_ripemd;
711
712 @a=grep(!/(^d2i_r_)|(^i2d_r_)/,@a) if $no_rsa;
713 @a=grep(!/(^p_open$)|(^p_seal$)/,@a) if $no_rsa;
714 @a=grep(!/(^pem_seal$)/,@a) if $no_rsa;
715
716 @a=grep(!/(m_dss$)|(m_dss1$)/,@a) if $no_dsa;
717 @a=grep(!/(^d2i_s_)|(^i2d_s_)|(_dsap$)/,@a) if $no_dsa;
718
719 @a=grep(!/^n_pkey$/,@a) if $no_rsa || $no_rc4;
720
721 @a=grep(!/_dhp$/,@a) if $no_dh;
722
723 @a=grep(!/(^sha[^1])|(_sha$)|(m_dss$)/,@a) if $no_sha;
724 @a=grep(!/(^sha1)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
725 @a=grep(!/_mdc2$/,@a) if $no_mdc2;
726
727 @a=grep(!/^engine$/,@a) if $no_engine;
728 @a=grep(!/^hw$/,@a) if $no_hw;
729 @a=grep(!/(^rsa$)|(^genrsa$)/,@a) if $no_rsa;
730 @a=grep(!/(^dsa$)|(^gendsa$)|(^dsaparam$)/,@a) if $no_dsa;
731 @a=grep(!/^gendsa$/,@a) if $no_sha1;
732 @a=grep(!/(^dh$)|(^gendh$)/,@a) if $no_dh;
733
734 @a=grep(!/(^dh)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
735
736 grep($_="$dir/$_",@a);
737 @a=grep(!/(^|\/)s_/,@a) if $no_sock;
738 @a=grep(!/(^|\/)bio_sock/,@a) if $no_sock;
739 $ret=join(' ',@a)." ";
740 return($ret);
741 }
742
743# change things so that each 'token' is only separated by one space
744sub clean_up_ws
745 {
746 local($w)=@_;
747
748 $w =~ s/^\s*(.*)\s*$/$1/;
749 $w =~ s/\s+/ /g;
750 return($w);
751 }
752
753sub do_defs
754 {
755 local($var,$files,$location,$postfix)=@_;
756 local($_,$ret,$pf);
757 local(*OUT,$tmp,$t);
758
759 $files =~ s/\//$o/g if $o ne '/';
760 $ret="$var=";
761 $n=1;
762 $Vars{$var}.="";
763 foreach (split(/ /,$files))
764 {
765 $orig=$_;
766 $_=&bname($_) unless /^\$/;
767 if ($n++ == 2)
768 {
769 $n=0;
770 $ret.="\\\n\t";
771 }
772 if (($_ =~ /bss_file/) && ($postfix eq ".h"))
773 { $pf=".c"; }
774 else { $pf=$postfix; }
775 if ($_ =~ /BN_ASM/) { $t="$_ "; }
776 elsif ($_ =~ /BNCO_ASM/){ $t="$_ "; }
777 elsif ($_ =~ /DES_ENC/) { $t="$_ "; }
778 elsif ($_ =~ /BF_ENC/) { $t="$_ "; }
779 elsif ($_ =~ /CAST_ENC/){ $t="$_ "; }
780 elsif ($_ =~ /RC4_ENC/) { $t="$_ "; }
781 elsif ($_ =~ /RC5_ENC/) { $t="$_ "; }
782 elsif ($_ =~ /MD5_ASM/) { $t="$_ "; }
783 elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; }
784 elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; }
785 else { $t="$location${o}$_$pf "; }
786
787 $Vars{$var}.="$t ";
788 $ret.=$t;
789 }
790 chop($ret);
791 $ret.="\n\n";
792 return($ret);
793 }
794
795# return the name with the leading path removed
796sub bname
797 {
798 local($ret)=@_;
799 $ret =~ s/^.*[\\\/]([^\\\/]+)$/$1/;
800 return($ret);
801 }
802
803
804##############################################################
805# do a rule for each file that says 'compile' to new direcory
806# compile the files in '$files' into $to
807sub do_compile_rule
808 {
809 local($to,$files,$ex)=@_;
810 local($ret,$_,$n);
811
812 $files =~ s/\//$o/g if $o ne '/';
813 foreach (split(/\s+/,$files))
814 {
815 $n=&bname($_);
816 $ret.=&cc_compile_target("$to${o}$n$obj","${_}.c",$ex)
817 }
818 return($ret);
819 }
820
821##############################################################
822# do a rule for each file that says 'compile' to new direcory
823sub cc_compile_target
824 {
825 local($target,$source,$ex_flags)=@_;
826 local($ret);
827
828 $ex_flags.=" -DMK1MF_BUILD -D$platform_cpp_symbol" if ($source =~ /cversion/);
829 $target =~ s/\//$o/g if $o ne "/";
830 $source =~ s/\//$o/g if $o ne "/";
831 $ret ="$target: \$(SRC_D)$o$source\n\t";
832 $ret.="\$(CC) ${ofile}$target $ex_flags -c \$(SRC_D)$o$source\n\n";
833 return($ret);
834 }
835
836##############################################################
837sub do_asm_rule
838 {
839 local($target,$src)=@_;
840 local($ret,@s,@t,$i);
841
842 $target =~ s/\//$o/g if $o ne "/";
843 $src =~ s/\//$o/g if $o ne "/";
844
845 @s=split(/\s+/,$src);
846 @t=split(/\s+/,$target);
847
848 for ($i=0; $i<=$#s; $i++)
849 {
850 $ret.="$t[$i]: $s[$i]\n";
851 $ret.="\t\$(ASM) $afile$t[$i] \$(SRC_D)$o$s[$i]\n\n";
852 }
853 return($ret);
854 }
855
856sub do_shlib_rule
857 {
858 local($n,$def)=@_;
859 local($ret,$nn);
860 local($t);
861
862 ($nn=$n) =~ tr/a-z/A-Z/;
863 $ret.="$n.dll: \$(${nn}OBJ)\n";
864 if ($vc && $w32)
865 {
866 $ret.="\t\$(MKSHLIB) $efile$n.dll $def @<<\n \$(${nn}OBJ_F)\n<<\n";
867 }
868 $ret.="\n";
869 return($ret);
870 }
871
872# do a rule for each file that says 'copy' to new direcory on change
873sub do_copy_rule
874 {
875 local($to,$files,$p)=@_;
876 local($ret,$_,$n,$pp);
877
878 $files =~ s/\//$o/g if $o ne '/';
879 foreach (split(/\s+/,$files))
880 {
881 $n=&bname($_);
882 if ($n =~ /bss_file/)
883 { $pp=".c"; }
884 else { $pp=$p; }
885 $ret.="$to${o}$n$pp: \$(SRC_D)$o$_$pp\n\t\$(CP) \$(SRC_D)$o$_$pp $to${o}$n$pp\n\n";
886 }
887 return($ret);
888 }
889
890sub read_options
891 {
892 if (/^no-rc2$/) { $no_rc2=1; }
893 elsif (/^no-rc4$/) { $no_rc4=1; }
894 elsif (/^no-rc5$/) { $no_rc5=1; }
895 elsif (/^no-idea$/) { $no_idea=1; }
896 elsif (/^no-aes$/) { $no_aes=1; }
897 elsif (/^no-des$/) { $no_des=1; }
898 elsif (/^no-bf$/) { $no_bf=1; }
899 elsif (/^no-cast$/) { $no_cast=1; }
900 elsif (/^no-md2$/) { $no_md2=1; }
901 elsif (/^no-md4$/) { $no_md4=1; }
902 elsif (/^no-md5$/) { $no_md5=1; }
903 elsif (/^no-sha$/) { $no_sha=1; }
904 elsif (/^no-sha1$/) { $no_sha1=1; }
905 elsif (/^no-ripemd$/) { $no_ripemd=1; }
906 elsif (/^no-mdc2$/) { $no_mdc2=1; }
907 elsif (/^no-patents$/) { $no_rc2=$no_rc4=$no_rc5=$no_idea=$no_rsa=1; }
908 elsif (/^no-rsa$/) { $no_rsa=1; }
909 elsif (/^no-dsa$/) { $no_dsa=1; }
910 elsif (/^no-dh$/) { $no_dh=1; }
911 elsif (/^no-hmac$/) { $no_hmac=1; }
912 elsif (/^no-aes$/) { $no_aes=1; }
913 elsif (/^no-asm$/) { $no_asm=1; }
914 elsif (/^nasm$/) { $nasm=1; }
915 elsif (/^gaswin$/) { $gaswin=1; }
916 elsif (/^no-ssl2$/) { $no_ssl2=1; }
917 elsif (/^no-ssl3$/) { $no_ssl3=1; }
918 elsif (/^no-err$/) { $no_err=1; }
919 elsif (/^no-sock$/) { $no_sock=1; }
920 elsif (/^no-krb5$/) { $no_krb5=1; }
921 elsif (/^no-ec$/) { $no_ec=1; }
922 elsif (/^no-engine$/) { $no_engine=1; }
923 elsif (/^no-hw$/) { $no_hw=1; }
924
925 elsif (/^just-ssl$/) { $no_rc2=$no_idea=$no_des=$no_bf=$no_cast=1;
926 $no_md2=$no_sha=$no_mdc2=$no_dsa=$no_dh=1;
927 $no_ssl2=$no_err=$no_ripemd=$no_rc5=1;
928 $no_aes=1; }
929
930 elsif (/^rsaref$/) { }
931 elsif (/^fips$/) { $fips=1; }
932 elsif (/^gcc$/) { $gcc=1; }
933 elsif (/^debug$/) { $debug=1; }
934 elsif (/^profile$/) { $profile=1; }
935 elsif (/^shlib$/) { $shlib=1; }
936 elsif (/^dll$/) { $shlib=1; }
937 elsif (/^shared$/) { } # We just need to ignore it for now...
938 elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; }
939 elsif (/^-[lL].*$/) { $l_flags.="$_ "; }
940 elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/)
941 { $c_flags.="$_ "; }
942 else { return(0); }
943 return(1);
944 }
diff --git a/src/lib/libcrypto/util/mkcerts.sh b/src/lib/libcrypto/util/mkcerts.sh
new file mode 100644
index 0000000000..0184fcb70e
--- /dev/null
+++ b/src/lib/libcrypto/util/mkcerts.sh
@@ -0,0 +1,220 @@
1#!/bin/sh
2
3# This script will re-make all the required certs.
4# cd apps
5# sh ../util/mkcerts.sh
6# mv ca-cert.pem pca-cert.pem ../certs
7# cd ..
8# cat certs/*.pem >>apps/server.pem
9# cat certs/*.pem >>apps/server2.pem
10# SSLEAY=`pwd`/apps/ssleay; export SSLEAY
11# sh tools/c_rehash certs
12#
13
14CAbits=1024
15SSLEAY="../apps/openssl"
16CONF="-config ../apps/openssl.cnf"
17
18# create pca request.
19echo creating $CAbits bit PCA cert request
20$SSLEAY req $CONF \
21 -new -md5 -newkey $CAbits \
22 -keyout pca-key.pem \
23 -out pca-req.pem -nodes >/dev/null <<EOF
24AU
25Queensland
26.
27CryptSoft Pty Ltd
28.
29Test PCA (1024 bit)
30
31
32
33EOF
34
35if [ $? != 0 ]; then
36 echo problems generating PCA request
37 exit 1
38fi
39
40#sign it.
41echo
42echo self signing PCA
43$SSLEAY x509 -md5 -days 1461 \
44 -req -signkey pca-key.pem \
45 -CAcreateserial -CAserial pca-cert.srl \
46 -in pca-req.pem -out pca-cert.pem
47
48if [ $? != 0 ]; then
49 echo problems self signing PCA cert
50 exit 1
51fi
52echo
53
54# create ca request.
55echo creating $CAbits bit CA cert request
56$SSLEAY req $CONF \
57 -new -md5 -newkey $CAbits \
58 -keyout ca-key.pem \
59 -out ca-req.pem -nodes >/dev/null <<EOF
60AU
61Queensland
62.
63CryptSoft Pty Ltd
64.
65Test CA (1024 bit)
66
67
68
69EOF
70
71if [ $? != 0 ]; then
72 echo problems generating CA request
73 exit 1
74fi
75
76#sign it.
77echo
78echo signing CA
79$SSLEAY x509 -md5 -days 1461 \
80 -req \
81 -CAcreateserial -CAserial pca-cert.srl \
82 -CA pca-cert.pem -CAkey pca-key.pem \
83 -in ca-req.pem -out ca-cert.pem
84
85if [ $? != 0 ]; then
86 echo problems signing CA cert
87 exit 1
88fi
89echo
90
91# create server request.
92echo creating 512 bit server cert request
93$SSLEAY req $CONF \
94 -new -md5 -newkey 512 \
95 -keyout s512-key.pem \
96 -out s512-req.pem -nodes >/dev/null <<EOF
97AU
98Queensland
99.
100CryptSoft Pty Ltd
101.
102Server test cert (512 bit)
103
104
105
106EOF
107
108if [ $? != 0 ]; then
109 echo problems generating 512 bit server cert request
110 exit 1
111fi
112
113#sign it.
114echo
115echo signing 512 bit server cert
116$SSLEAY x509 -md5 -days 365 \
117 -req \
118 -CAcreateserial -CAserial ca-cert.srl \
119 -CA ca-cert.pem -CAkey ca-key.pem \
120 -in s512-req.pem -out server.pem
121
122if [ $? != 0 ]; then
123 echo problems signing 512 bit server cert
124 exit 1
125fi
126echo
127
128# create 1024 bit server request.
129echo creating 1024 bit server cert request
130$SSLEAY req $CONF \
131 -new -md5 -newkey 1024 \
132 -keyout s1024key.pem \
133 -out s1024req.pem -nodes >/dev/null <<EOF
134AU
135Queensland
136.
137CryptSoft Pty Ltd
138.
139Server test cert (1024 bit)
140
141
142
143EOF
144
145if [ $? != 0 ]; then
146 echo problems generating 1024 bit server cert request
147 exit 1
148fi
149
150#sign it.
151echo
152echo signing 1024 bit server cert
153$SSLEAY x509 -md5 -days 365 \
154 -req \
155 -CAcreateserial -CAserial ca-cert.srl \
156 -CA ca-cert.pem -CAkey ca-key.pem \
157 -in s1024req.pem -out server2.pem
158
159if [ $? != 0 ]; then
160 echo problems signing 1024 bit server cert
161 exit 1
162fi
163echo
164
165# create 512 bit client request.
166echo creating 512 bit client cert request
167$SSLEAY req $CONF \
168 -new -md5 -newkey 512 \
169 -keyout c512-key.pem \
170 -out c512-req.pem -nodes >/dev/null <<EOF
171AU
172Queensland
173.
174CryptSoft Pty Ltd
175.
176Client test cert (512 bit)
177
178
179
180EOF
181
182if [ $? != 0 ]; then
183 echo problems generating 512 bit client cert request
184 exit 1
185fi
186
187#sign it.
188echo
189echo signing 512 bit client cert
190$SSLEAY x509 -md5 -days 365 \
191 -req \
192 -CAcreateserial -CAserial ca-cert.srl \
193 -CA ca-cert.pem -CAkey ca-key.pem \
194 -in c512-req.pem -out client.pem
195
196if [ $? != 0 ]; then
197 echo problems signing 512 bit client cert
198 exit 1
199fi
200
201echo cleanup
202
203cat pca-key.pem >> pca-cert.pem
204cat ca-key.pem >> ca-cert.pem
205cat s512-key.pem >> server.pem
206cat s1024key.pem >> server2.pem
207cat c512-key.pem >> client.pem
208
209for i in pca-cert.pem ca-cert.pem server.pem server2.pem client.pem
210do
211$SSLEAY x509 -issuer -subject -in $i -noout >$$
212cat $$
213/bin/cat $i >>$$
214/bin/mv $$ $i
215done
216
217#/bin/rm -f *key.pem *req.pem *.srl
218
219echo Finished
220
diff --git a/src/lib/libcrypto/util/mkdef.pl b/src/lib/libcrypto/util/mkdef.pl
new file mode 100644
index 0000000000..9918c3d549
--- /dev/null
+++ b/src/lib/libcrypto/util/mkdef.pl
@@ -0,0 +1,1404 @@
1#!/usr/local/bin/perl -w
2#
3# generate a .def file
4#
5# It does this by parsing the header files and looking for the
6# prototyped functions: it then prunes the output.
7#
8# Intermediary files are created, call libeay.num and ssleay.num,...
9# Previously, they had the following format:
10#
11# routine-name nnnn
12#
13# But that isn't enough for a number of reasons, the first on being that
14# this format is (needlessly) very Win32-centric, and even then...
15# One of the biggest problems is that there's no information about what
16# routines should actually be used, which varies with what crypto algorithms
17# are disabled. Also, some operating systems (for example VMS with VAX C)
18# need to keep track of the global variables as well as the functions.
19#
20# So, a remake of this script is done so as to include information on the
21# kind of symbol it is (function or variable) and what algorithms they're
22# part of. This will allow easy translating to .def files or the corresponding
23# file in other operating systems (a .opt file for VMS, possibly with a .mar
24# file).
25#
26# The format now becomes:
27#
28# routine-name nnnn info
29#
30# and the "info" part is actually a colon-separated string of fields with
31# the following meaning:
32#
33# existence:platform:kind:algorithms
34#
35# - "existence" can be "EXIST" or "NOEXIST" depending on if the symbol is
36# found somewhere in the source,
37# - "platforms" is empty if it exists on all platforms, otherwise it contains
38# comma-separated list of the platform, just as they are if the symbol exists
39# for those platforms, or prepended with a "!" if not. This helps resolve
40# symbol name variants for platforms where the names are too long for the
41# compiler or linker, or if the systems is case insensitive and there is a
42# clash, or the symbol is implemented differently (see
43# EXPORT_VAR_AS_FUNCTION). This script assumes renaming of symbols is found
44# in the file crypto/symhacks.h.
45# The semantics for the platforms is that every item is checked against the
46# environment. For the negative items ("!FOO"), if any of them is false
47# (i.e. "FOO" is true) in the environment, the corresponding symbol can't be
48# used. For the positive itms, if all of them are false in the environment,
49# the corresponding symbol can't be used. Any combination of positive and
50# negative items are possible, and of course leave room for some redundancy.
51# - "kind" is "FUNCTION" or "VARIABLE". The meaning of that is obvious.
52# - "algorithms" is a comma-separated list of algorithm names. This helps
53# exclude symbols that are part of an algorithm that some user wants to
54# exclude.
55#
56
57my $debug=0;
58
59my $crypto_num= "util/libeay.num";
60my $ssl_num= "util/ssleay.num";
61my $libname;
62
63my $do_update = 0;
64my $do_rewrite = 1;
65my $do_crypto = 0;
66my $do_ssl = 0;
67my $do_ctest = 0;
68my $do_ctestall = 0;
69my $do_checkexist = 0;
70
71my $VMSVAX=0;
72my $VMSAlpha=0;
73my $VMS=0;
74my $W32=0;
75my $W16=0;
76my $NT=0;
77my $OS2=0;
78# Set this to make typesafe STACK definitions appear in DEF
79my $safe_stack_def = 0;
80
81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT",
82 "EXPORT_VAR_AS_FUNCTION", "OPENSSL_FIPS" );
83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" );
84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
86 "RIPEMD",
87 "MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES",
88 # Envelope "algorithms"
89 "EVP", "X509", "ASN1_TYPEDEFS",
90 # Helper "algorithms"
91 "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR",
92 "LOCKING",
93 # External "algorithms"
94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" );
95
96my $options="";
97open(IN,"<Makefile") || die "unable to open Makefile!\n";
98while(<IN>) {
99 $options=$1 if (/^OPTIONS=(.*)$/);
100}
101close(IN);
102
103# The following ciphers may be excluded (by Configure). This means functions
104# defined with ifndef(NO_XXX) are not included in the .def file, and everything
105# in directory xxx is ignored.
106my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf;
107my $no_cast;
108my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
110my $no_ec; my $no_engine; my $no_hw;
111my $no_fp_api;
112my $fips;
113
114foreach (@ARGV, split(/ /, $options))
115 {
116 $debug=1 if $_ eq "debug";
117 $W32=1 if $_ eq "32";
118 $W16=1 if $_ eq "16";
119 if($_ eq "NT") {
120 $W32 = 1;
121 $NT = 1;
122 }
123 if ($_ eq "VMS-VAX") {
124 $VMS=1;
125 $VMSVAX=1;
126 }
127 if ($_ eq "VMS-Alpha") {
128 $VMS=1;
129 $VMSAlpha=1;
130 }
131 $VMS=1 if $_ eq "VMS";
132 $OS2=1 if $_ eq "OS2";
133 $fips=1 if $_ eq "fips";
134
135 $do_ssl=1 if $_ eq "ssleay";
136 if ($_ eq "ssl") {
137 $do_ssl=1;
138 $libname=$_
139 }
140 $do_crypto=1 if $_ eq "libeay";
141 if ($_ eq "crypto") {
142 $do_crypto=1;
143 $libname=$_;
144 }
145 $do_update=1 if $_ eq "update";
146 $do_rewrite=1 if $_ eq "rewrite";
147 $do_ctest=1 if $_ eq "ctest";
148 $do_ctestall=1 if $_ eq "ctestall";
149 $do_checkexist=1 if $_ eq "exist";
150 #$safe_stack_def=1 if $_ eq "-DDEBUG_SAFESTACK";
151
152 if (/^no-rc2$/) { $no_rc2=1; }
153 elsif (/^no-rc4$/) { $no_rc4=1; }
154 elsif (/^no-rc5$/) { $no_rc5=1; }
155 elsif (/^no-idea$/) { $no_idea=1; }
156 elsif (/^no-des$/) { $no_des=1; $no_mdc2=1; }
157 elsif (/^no-bf$/) { $no_bf=1; }
158 elsif (/^no-cast$/) { $no_cast=1; }
159 elsif (/^no-md2$/) { $no_md2=1; }
160 elsif (/^no-md4$/) { $no_md4=1; }
161 elsif (/^no-md5$/) { $no_md5=1; }
162 elsif (/^no-sha$/) { $no_sha=1; }
163 elsif (/^no-ripemd$/) { $no_ripemd=1; }
164 elsif (/^no-mdc2$/) { $no_mdc2=1; }
165 elsif (/^no-rsa$/) { $no_rsa=1; }
166 elsif (/^no-dsa$/) { $no_dsa=1; }
167 elsif (/^no-dh$/) { $no_dh=1; }
168 elsif (/^no-ec$/) { $no_ec=1; }
169 elsif (/^no-hmac$/) { $no_hmac=1; }
170 elsif (/^no-aes$/) { $no_aes=1; }
171 elsif (/^no-evp$/) { $no_evp=1; }
172 elsif (/^no-lhash$/) { $no_lhash=1; }
173 elsif (/^no-stack$/) { $no_stack=1; }
174 elsif (/^no-err$/) { $no_err=1; }
175 elsif (/^no-buffer$/) { $no_buffer=1; }
176 elsif (/^no-bio$/) { $no_bio=1; }
177 #elsif (/^no-locking$/) { $no_locking=1; }
178 elsif (/^no-comp$/) { $no_comp=1; }
179 elsif (/^no-dso$/) { $no_dso=1; }
180 elsif (/^no-krb5$/) { $no_krb5=1; }
181 elsif (/^no-engine$/) { $no_engine=1; }
182 elsif (/^no-hw$/) { $no_hw=1; }
183 }
184
185
186if (!$libname) {
187 if ($do_ssl) {
188 $libname="SSLEAY";
189 }
190 if ($do_crypto) {
191 $libname="LIBEAY";
192 }
193}
194
195# If no platform is given, assume WIN32
196if ($W32 + $W16 + $VMS + $OS2 == 0) {
197 $W32 = 1;
198}
199
200# Add extra knowledge
201if ($W16) {
202 $no_fp_api=1;
203}
204
205if (!$do_ssl && !$do_crypto)
206 {
207 print STDERR "usage: $0 ( ssl | crypto ) [ 16 | 32 | NT | OS2 ]\n";
208 exit(1);
209 }
210
211%ssl_list=&load_numbers($ssl_num);
212$max_ssl = $max_num;
213%crypto_list=&load_numbers($crypto_num);
214$max_crypto = $max_num;
215
216my $ssl="ssl/ssl.h";
217$ssl.=" ssl/kssl.h";
218
219my $crypto ="crypto/crypto.h";
220$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des;
221$crypto.=" crypto/idea/idea.h" ; # unless $no_idea;
222$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4;
223$crypto.=" crypto/rc5/rc5.h" ; # unless $no_rc5;
224$crypto.=" crypto/rc2/rc2.h" ; # unless $no_rc2;
225$crypto.=" crypto/bf/blowfish.h" ; # unless $no_bf;
226$crypto.=" crypto/cast/cast.h" ; # unless $no_cast;
227$crypto.=" crypto/md2/md2.h" ; # unless $no_md2;
228$crypto.=" crypto/md4/md4.h" ; # unless $no_md4;
229$crypto.=" crypto/md5/md5.h" ; # unless $no_md5;
230$crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2;
231$crypto.=" crypto/sha/sha.h" ; # unless $no_sha;
232$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd;
233$crypto.=" crypto/aes/aes.h" ; # unless $no_aes;
234
235$crypto.=" crypto/bn/bn.h";
236$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa;
237$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa;
238$crypto.=" crypto/dh/dh.h" ; # unless $no_dh;
239$crypto.=" crypto/ec/ec.h" ; # unless $no_ec;
240$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac;
241
242$crypto.=" crypto/engine/engine.h"; # unless $no_engine;
243$crypto.=" crypto/stack/stack.h" ; # unless $no_stack;
244$crypto.=" crypto/buffer/buffer.h" ; # unless $no_buffer;
245$crypto.=" crypto/bio/bio.h" ; # unless $no_bio;
246$crypto.=" crypto/dso/dso.h" ; # unless $no_dso;
247$crypto.=" crypto/lhash/lhash.h" ; # unless $no_lhash;
248$crypto.=" crypto/conf/conf.h";
249$crypto.=" crypto/txt_db/txt_db.h";
250
251$crypto.=" crypto/evp/evp.h" ; # unless $no_evp;
252$crypto.=" crypto/objects/objects.h";
253$crypto.=" crypto/pem/pem.h";
254#$crypto.=" crypto/meth/meth.h";
255$crypto.=" crypto/asn1/asn1.h";
256$crypto.=" crypto/asn1/asn1t.h";
257$crypto.=" crypto/asn1/asn1_mac.h";
258$crypto.=" crypto/err/err.h" ; # unless $no_err;
259$crypto.=" crypto/pkcs7/pkcs7.h";
260$crypto.=" crypto/pkcs12/pkcs12.h";
261$crypto.=" crypto/x509/x509.h";
262$crypto.=" crypto/x509/x509_vfy.h";
263$crypto.=" crypto/x509v3/x509v3.h";
264$crypto.=" crypto/rand/rand.h";
265$crypto.=" crypto/comp/comp.h" ; # unless $no_comp;
266$crypto.=" crypto/ocsp/ocsp.h";
267$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h";
268$crypto.=" crypto/krb5/krb5_asn.h";
269$crypto.=" crypto/tmdiff.h";
270$crypto.=" fips/fips.h fips/rand/fips_rand.h";
271
272my $symhacks="crypto/symhacks.h";
273
274my @ssl_symbols = &do_defs("SSLEAY", $ssl, $symhacks);
275my @crypto_symbols = &do_defs("LIBEAY", $crypto, $symhacks);
276
277if ($do_update) {
278
279if ($do_ssl == 1) {
280
281 &maybe_add_info("SSLEAY",*ssl_list,@ssl_symbols);
282 if ($do_rewrite == 1) {
283 open(OUT, ">$ssl_num");
284 &rewrite_numbers(*OUT,"SSLEAY",*ssl_list,@ssl_symbols);
285 } else {
286 open(OUT, ">>$ssl_num");
287 }
288 &update_numbers(*OUT,"SSLEAY",*ssl_list,$max_ssl,@ssl_symbols);
289 close OUT;
290}
291
292if($do_crypto == 1) {
293
294 &maybe_add_info("LIBEAY",*crypto_list,@crypto_symbols);
295 if ($do_rewrite == 1) {
296 open(OUT, ">$crypto_num");
297 &rewrite_numbers(*OUT,"LIBEAY",*crypto_list,@crypto_symbols);
298 } else {
299 open(OUT, ">>$crypto_num");
300 }
301 &update_numbers(*OUT,"LIBEAY",*crypto_list,$max_crypto,@crypto_symbols);
302 close OUT;
303}
304
305} elsif ($do_checkexist) {
306 &check_existing(*ssl_list, @ssl_symbols)
307 if $do_ssl == 1;
308 &check_existing(*crypto_list, @crypto_symbols)
309 if $do_crypto == 1;
310} elsif ($do_ctest || $do_ctestall) {
311
312 print <<"EOF";
313
314/* Test file to check all DEF file symbols are present by trying
315 * to link to all of them. This is *not* intended to be run!
316 */
317
318int main()
319{
320EOF
321 &print_test_file(*STDOUT,"SSLEAY",*ssl_list,$do_ctestall,@ssl_symbols)
322 if $do_ssl == 1;
323
324 &print_test_file(*STDOUT,"LIBEAY",*crypto_list,$do_ctestall,@crypto_symbols)
325 if $do_crypto == 1;
326
327 print "}\n";
328
329} else {
330
331 &print_def_file(*STDOUT,$libname,*ssl_list,@ssl_symbols)
332 if $do_ssl == 1;
333
334 &print_def_file(*STDOUT,$libname,*crypto_list,@crypto_symbols)
335 if $do_crypto == 1;
336
337}
338
339
340sub do_defs
341{
342 my($name,$files,$symhacksfile)=@_;
343 my $file;
344 my @ret;
345 my %syms;
346 my %platform; # For anything undefined, we assume ""
347 my %kind; # For anything undefined, we assume "FUNCTION"
348 my %algorithm; # For anything undefined, we assume ""
349 my %variant;
350 my %variant_cnt; # To be able to allocate "name{n}" if "name"
351 # is the same name as the original.
352 my $cpp;
353 my %unknown_algorithms = ();
354
355 foreach $file (split(/\s+/,$symhacksfile." ".$files))
356 {
357 print STDERR "DEBUG: starting on $file:\n" if $debug;
358 open(IN,"<$file") || die "unable to open $file:$!\n";
359 my $line = "", my $def= "";
360 my %tag = (
361 (map { $_ => 0 } @known_platforms),
362 (map { "OPENSSL_SYS_".$_ => 0 } @known_ossl_platforms),
363 (map { "OPENSSL_NO_".$_ => 0 } @known_algorithms),
364 NOPROTO => 0,
365 PERL5 => 0,
366 _WINDLL => 0,
367 CONST_STRICT => 0,
368 TRUE => 1,
369 );
370 my $symhacking = $file eq $symhacksfile;
371 my @current_platforms = ();
372 my @current_algorithms = ();
373
374 # params: symbol, alias, platforms, kind
375 # The reason to put this subroutine in a variable is that
376 # it will otherwise create it's own, unshared, version of
377 # %tag and %variant...
378 my $make_variant = sub
379 {
380 my ($s, $a, $p, $k) = @_;
381 my ($a1, $a2);
382
383 print STDERR "DEBUG: make_variant: Entered with ",$s,", ",$a,", ",(defined($p)?$p:""),", ",(defined($k)?$k:""),"\n" if $debug;
384 if (defined($p))
385 {
386 $a1 = join(",",$p,
387 grep(!/^$/,
388 map { $tag{$_} == 1 ? $_ : "" }
389 @known_platforms));
390 }
391 else
392 {
393 $a1 = join(",",
394 grep(!/^$/,
395 map { $tag{$_} == 1 ? $_ : "" }
396 @known_platforms));
397 }
398 $a2 = join(",",
399 grep(!/^$/,
400 map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ : "" }
401 @known_ossl_platforms));
402 print STDERR "DEBUG: make_variant: a1 = $a1; a2 = $a2\n" if $debug;
403 if ($a1 eq "") { $a1 = $a2; }
404 elsif ($a1 ne "" && $a2 ne "") { $a1 .= ",".$a2; }
405 if ($a eq $s)
406 {
407 if (!defined($variant_cnt{$s}))
408 {
409 $variant_cnt{$s} = 0;
410 }
411 $variant_cnt{$s}++;
412 $a .= "{$variant_cnt{$s}}";
413 }
414 my $toadd = $a.":".$a1.(defined($k)?":".$k:"");
415 my $togrep = $s.'(\{[0-9]+\})?:'.$a1.(defined($k)?":".$k:"");
416 if (!grep(/^$togrep$/,
417 split(/;/, defined($variant{$s})?$variant{$s}:""))) {
418 if (defined($variant{$s})) { $variant{$s} .= ";"; }
419 $variant{$s} .= $toadd;
420 }
421 print STDERR "DEBUG: make_variant: Exit with variant of ",$s," = ",$variant{$s},"\n" if $debug;
422 };
423
424 print STDERR "DEBUG: parsing ----------\n" if $debug;
425 while(<IN>) {
426 last if (/\/\* Error codes for the \w+ functions\. \*\//);
427 if ($line ne '') {
428 $_ = $line . $_;
429 $line = '';
430 }
431
432 if (/\\$/) {
433 chomp; # remove eol
434 chop; # remove ending backslash
435 $line = $_;
436 next;
437 }
438
439 $cpp = 1 if /^\#.*ifdef.*cplusplus/;
440 if ($cpp) {
441 $cpp = 0 if /^\#.*endif/;
442 next;
443 }
444
445 s/\/\*.*?\*\///gs; # ignore comments
446 if (/\/\*/) { # if we have part
447 $line = $_; # of a comment,
448 next; # continue reading
449 }
450 s/{[^{}]*}//gs; # ignore {} blocks
451 print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
452 print STDERR "DEBUG: \$_=\"$_\"\n" if $debug;
453 if (/^\#\s*ifndef\s+(.*)/) {
454 push(@tag,"-");
455 push(@tag,$1);
456 $tag{$1}=-1;
457 print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug;
458 } elsif (/^\#\s*if\s+!defined\(([^\)]+)\)/) {
459 push(@tag,"-");
460 if (/^\#\s*if\s+(!defined\(([^\)]+)\)(\s+\&\&\s+!defined\(([^\)]+)\))*)$/) {
461 my $tmp_1 = $1;
462 my $tmp_;
463 foreach $tmp_ (split '\&\&',$tmp_1) {
464 $tmp_ =~ /!defined\(([^\)]+)\)/;
465 print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug;
466 push(@tag,$1);
467 $tag{$1}=-1;
468 }
469 } else {
470 print STDERR "Warning: $file: complicated expression: $_" if $debug; # because it is O...
471 print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug;
472 push(@tag,$1);
473 $tag{$1}=-1;
474 }
475 } elsif (/^\#\s*ifdef\s+(\S*)/) {
476 push(@tag,"-");
477 push(@tag,$1);
478 $tag{$1}=1;
479 print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug;
480 } elsif (/^\#\s*if\s+defined\(([^\)]+)\)/) {
481 push(@tag,"-");
482 if (/^\#\s*if\s+(defined\(([^\)]+)\)(\s+\|\|\s+defined\(([^\)]+)\))*)$/) {
483 my $tmp_1 = $1;
484 my $tmp_;
485 foreach $tmp_ (split '\|\|',$tmp_1) {
486 $tmp_ =~ /defined\(([^\)]+)\)/;
487 print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug;
488 push(@tag,$1);
489 $tag{$1}=1;
490 }
491 } else {
492 print STDERR "Warning: $file: complicated expression: $_\n" if $debug; # because it is O...
493 print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug;
494 push(@tag,$1);
495 $tag{$1}=1;
496 }
497 } elsif (/^\#\s*error\s+(\w+) is disabled\./) {
498 my $tag_i = $#tag;
499 while($tag[$tag_i] ne "-") {
500 if ($tag[$tag_i] eq "OPENSSL_NO_".$1) {
501 $tag{$tag[$tag_i]}=2;
502 print STDERR "DEBUG: $file: chaged tag $1 = 2\n" if $debug;
503 }
504 $tag_i--;
505 }
506 } elsif (/^\#\s*endif/) {
507 my $tag_i = $#tag;
508 while($tag[$tag_i] ne "-") {
509 my $t=$tag[$tag_i];
510 print STDERR "DEBUG: \$t=\"$t\"\n" if $debug;
511 if ($tag{$t}==2) {
512 $tag{$t}=-1;
513 } else {
514 $tag{$t}=0;
515 }
516 print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug;
517 pop(@tag);
518 if ($t =~ /^OPENSSL_NO_([A-Z0-9_]+)$/) {
519 $t=$1;
520 } else {
521 $t="";
522 }
523 if ($t ne ""
524 && !grep(/^$t$/, @known_algorithms)) {
525 $unknown_algorithms{$t} = 1;
526 #print STDERR "DEBUG: Added as unknown algorithm: $t\n" if $debug;
527 }
528 $tag_i--;
529 }
530 pop(@tag);
531 } elsif (/^\#\s*else/) {
532 my $tag_i = $#tag;
533 while($tag[$tag_i] ne "-") {
534 my $t=$tag[$tag_i];
535 $tag{$t}= -$tag{$t};
536 print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug;
537 $tag_i--;
538 }
539 } elsif (/^\#\s*if\s+1/) {
540 push(@tag,"-");
541 # Dummy tag
542 push(@tag,"TRUE");
543 $tag{"TRUE"}=1;
544 print STDERR "DEBUG: $file: found 1\n" if $debug;
545 } elsif (/^\#\s*if\s+0/) {
546 push(@tag,"-");
547 # Dummy tag
548 push(@tag,"TRUE");
549 $tag{"TRUE"}=-1;
550 print STDERR "DEBUG: $file: found 0\n" if $debug;
551 } elsif (/^\#\s*define\s+(\w+)\s+(\w+)/
552 && $symhacking && $tag{'TRUE'} != -1) {
553 # This is for aliasing. When we find an alias,
554 # we have to invert
555 &$make_variant($1,$2);
556 print STDERR "DEBUG: $file: defined $1 = $2\n" if $debug;
557 }
558 if (/^\#/) {
559 @current_platforms =
560 grep(!/^$/,
561 map { $tag{$_} == 1 ? $_ :
562 $tag{$_} == -1 ? "!".$_ : "" }
563 @known_platforms);
564 push @current_platforms
565 , grep(!/^$/,
566 map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ :
567 $tag{"OPENSSL_SYS_".$_} == -1 ? "!".$_ : "" }
568 @known_ossl_platforms);
569 @current_algorithms =
570 grep(!/^$/,
571 map { $tag{"OPENSSL_NO_".$_} == -1 ? $_ : "" }
572 @known_algorithms);
573 $def .=
574 "#INFO:"
575 .join(',',@current_platforms).":"
576 .join(',',@current_algorithms).";";
577 next;
578 }
579 if ($tag{'TRUE'} != -1) {
580 if (/^\s*DECLARE_STACK_OF\s*\(\s*(\w*)\s*\)/) {
581 next;
582 } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) {
583 $def .= "int d2i_$3(void);";
584 $def .= "int i2d_$3(void);";
585 # Variant for platforms that do not
586 # have to access globale variables
587 # in shared libraries through functions
588 $def .=
589 "#INFO:"
590 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
591 .join(',',@current_algorithms).";";
592 $def .= "OPENSSL_EXTERN int $2_it;";
593 $def .=
594 "#INFO:"
595 .join(',',@current_platforms).":"
596 .join(',',@current_algorithms).";";
597 # Variant for platforms that have to
598 # access globale variables in shared
599 # libraries through functions
600 &$make_variant("$2_it","$2_it",
601 "EXPORT_VAR_AS_FUNCTION",
602 "FUNCTION");
603 next;
604 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_fname\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) {
605 $def .= "int d2i_$3(void);";
606 $def .= "int i2d_$3(void);";
607 $def .= "int $3_free(void);";
608 $def .= "int $3_new(void);";
609 # Variant for platforms that do not
610 # have to access globale variables
611 # in shared libraries through functions
612 $def .=
613 "#INFO:"
614 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
615 .join(',',@current_algorithms).";";
616 $def .= "OPENSSL_EXTERN int $2_it;";
617 $def .=
618 "#INFO:"
619 .join(',',@current_platforms).":"
620 .join(',',@current_algorithms).";";
621 # Variant for platforms that have to
622 # access globale variables in shared
623 # libraries through functions
624 &$make_variant("$2_it","$2_it",
625 "EXPORT_VAR_AS_FUNCTION",
626 "FUNCTION");
627 next;
628 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS\s*\(\s*(\w*)\s*\)/ ||
629 /^\s*DECLARE_ASN1_FUNCTIONS_const\s*\(\s*(\w*)\s*\)/) {
630 $def .= "int d2i_$1(void);";
631 $def .= "int i2d_$1(void);";
632 $def .= "int $1_free(void);";
633 $def .= "int $1_new(void);";
634 # Variant for platforms that do not
635 # have to access globale variables
636 # in shared libraries through functions
637 $def .=
638 "#INFO:"
639 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
640 .join(',',@current_algorithms).";";
641 $def .= "OPENSSL_EXTERN int $1_it;";
642 $def .=
643 "#INFO:"
644 .join(',',@current_platforms).":"
645 .join(',',@current_algorithms).";";
646 # Variant for platforms that have to
647 # access globale variables in shared
648 # libraries through functions
649 &$make_variant("$1_it","$1_it",
650 "EXPORT_VAR_AS_FUNCTION",
651 "FUNCTION");
652 next;
653 } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS_const\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
654 $def .= "int d2i_$2(void);";
655 $def .= "int i2d_$2(void);";
656 # Variant for platforms that do not
657 # have to access globale variables
658 # in shared libraries through functions
659 $def .=
660 "#INFO:"
661 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
662 .join(',',@current_algorithms).";";
663 $def .= "OPENSSL_EXTERN int $2_it;";
664 $def .=
665 "#INFO:"
666 .join(',',@current_platforms).":"
667 .join(',',@current_algorithms).";";
668 # Variant for platforms that have to
669 # access globale variables in shared
670 # libraries through functions
671 &$make_variant("$2_it","$2_it",
672 "EXPORT_VAR_AS_FUNCTION",
673 "FUNCTION");
674 next;
675 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
676 $def .= "int d2i_$2(void);";
677 $def .= "int i2d_$2(void);";
678 $def .= "int $2_free(void);";
679 $def .= "int $2_new(void);";
680 # Variant for platforms that do not
681 # have to access globale variables
682 # in shared libraries through functions
683 $def .=
684 "#INFO:"
685 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
686 .join(',',@current_algorithms).";";
687 $def .= "OPENSSL_EXTERN int $2_it;";
688 $def .=
689 "#INFO:"
690 .join(',',@current_platforms).":"
691 .join(',',@current_algorithms).";";
692 # Variant for platforms that have to
693 # access globale variables in shared
694 # libraries through functions
695 &$make_variant("$2_it","$2_it",
696 "EXPORT_VAR_AS_FUNCTION",
697 "FUNCTION");
698 next;
699 } elsif (/^\s*DECLARE_ASN1_ITEM\s*\(\s*(\w*)\s*\)/) {
700 # Variant for platforms that do not
701 # have to access globale variables
702 # in shared libraries through functions
703 $def .=
704 "#INFO:"
705 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
706 .join(',',@current_algorithms).";";
707 $def .= "OPENSSL_EXTERN int $1_it;";
708 $def .=
709 "#INFO:"
710 .join(',',@current_platforms).":"
711 .join(',',@current_algorithms).";";
712 # Variant for platforms that have to
713 # access globale variables in shared
714 # libraries through functions
715 &$make_variant("$1_it","$1_it",
716 "EXPORT_VAR_AS_FUNCTION",
717 "FUNCTION");
718 next;
719 } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) {
720 next;
721 } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) {
722 next;
723 } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ ||
724 /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ ) {
725 # Things not in Win16
726 $def .=
727 "#INFO:"
728 .join(',',"!WIN16",@current_platforms).":"
729 .join(',',@current_algorithms).";";
730 $def .= "int PEM_read_$1(void);";
731 $def .= "int PEM_write_$1(void);";
732 $def .=
733 "#INFO:"
734 .join(',',@current_platforms).":"
735 .join(',',@current_algorithms).";";
736 # Things that are everywhere
737 $def .= "int PEM_read_bio_$1(void);";
738 $def .= "int PEM_write_bio_$1(void);";
739 next;
740 } elsif (/^DECLARE_PEM_write\s*\(\s*(\w*)\s*,/ ||
741 /^DECLARE_PEM_write_cb\s*\(\s*(\w*)\s*,/ ) {
742 # Things not in Win16
743 $def .=
744 "#INFO:"
745 .join(',',"!WIN16",@current_platforms).":"
746 .join(',',@current_algorithms).";";
747 $def .= "int PEM_write_$1(void);";
748 $def .=
749 "#INFO:"
750 .join(',',@current_platforms).":"
751 .join(',',@current_algorithms).";";
752 # Things that are everywhere
753 $def .= "int PEM_write_bio_$1(void);";
754 next;
755 } elsif (/^DECLARE_PEM_read\s*\(\s*(\w*)\s*,/ ||
756 /^DECLARE_PEM_read_cb\s*\(\s*(\w*)\s*,/ ) {
757 # Things not in Win16
758 $def .=
759 "#INFO:"
760 .join(',',"!WIN16",@current_platforms).":"
761 .join(',',@current_algorithms).";";
762 $def .= "int PEM_read_$1(void);";
763 $def .=
764 "#INFO:"
765 .join(',',@current_platforms).":"
766 .join(',',@current_algorithms).";";
767 # Things that are everywhere
768 $def .= "int PEM_read_bio_$1(void);";
769 next;
770 } elsif (/^OPENSSL_DECLARE_GLOBAL\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
771 # Variant for platforms that do not
772 # have to access globale variables
773 # in shared libraries through functions
774 $def .=
775 "#INFO:"
776 .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
777 .join(',',@current_algorithms).";";
778 $def .= "OPENSSL_EXTERN int _shadow_$2;";
779 $def .=
780 "#INFO:"
781 .join(',',@current_platforms).":"
782 .join(',',@current_algorithms).";";
783 # Variant for platforms that have to
784 # access globale variables in shared
785 # libraries through functions
786 &$make_variant("_shadow_$2","_shadow_$2",
787 "EXPORT_VAR_AS_FUNCTION",
788 "FUNCTION");
789 } elsif ($tag{'CONST_STRICT'} != 1) {
790 if (/\{|\/\*|\([^\)]*$/) {
791 $line = $_;
792 } else {
793 $def .= $_;
794 }
795 }
796 }
797 }
798 close(IN);
799
800 my $algs = '';
801 my $plays;
802
803 print STDERR "DEBUG: postprocessing ----------\n" if $debug;
804 foreach (split /;/, $def) {
805 my $s; my $k = "FUNCTION"; my $p; my $a;
806 s/^[\n\s]*//g;
807 s/[\n\s]*$//g;
808 next if(/\#undef/);
809 next if(/typedef\W/);
810 next if(/\#define/);
811
812 print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug;
813 if (/^\#INFO:([^:]*):(.*)$/) {
814 $plats = $1;
815 $algs = $2;
816 print STDERR "DEBUG: found info on platforms ($plats) and algorithms ($algs)\n" if $debug;
817 next;
818 } elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0-9]*\])*\s*$/) {
819 $s = $1;
820 $k = "VARIABLE";
821 print STDERR "DEBUG: found external variable $s\n" if $debug;
822 } elsif (/\(\*(\w*(\{[0-9]+\})?)\([^\)]+/) {
823 $s = $1;
824 print STDERR "DEBUG: found ANSI C function $s\n" if $debug;
825 } elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s) {
826 # K&R C
827 print STDERR "DEBUG: found K&R C function $s\n" if $debug;
828 next;
829 } elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) {
830 while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) {
831 s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
832 s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
833 }
834 s/\(void\)//;
835 /(\w+(\{[0-9]+\})?)\W*\(\)/s;
836 $s = $1;
837 print STDERR "DEBUG: found function $s\n" if $debug;
838 } elsif (/\(/ and not (/=/)) {
839 print STDERR "File $file: cannot parse: $_;\n";
840 next;
841 } else {
842 next;
843 }
844
845 $syms{$s} = 1;
846 $kind{$s} = $k;
847
848 $p = $plats;
849 $a = $algs;
850 $a .= ",BF" if($s =~ /EVP_bf/);
851 $a .= ",CAST" if($s =~ /EVP_cast/);
852 $a .= ",DES" if($s =~ /EVP_des/);
853 $a .= ",DSA" if($s =~ /EVP_dss/);
854 $a .= ",IDEA" if($s =~ /EVP_idea/);
855 $a .= ",MD2" if($s =~ /EVP_md2/);
856 $a .= ",MD4" if($s =~ /EVP_md4/);
857 $a .= ",MD5" if($s =~ /EVP_md5/);
858 $a .= ",RC2" if($s =~ /EVP_rc2/);
859 $a .= ",RC4" if($s =~ /EVP_rc4/);
860 $a .= ",RC5" if($s =~ /EVP_rc5/);
861 $a .= ",RIPEMD" if($s =~ /EVP_ripemd/);
862 $a .= ",SHA" if($s =~ /EVP_sha/);
863 $a .= ",RSA" if($s =~ /EVP_(Open|Seal)(Final|Init)/);
864 $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/);
865 $a .= ",RSA" if($s =~ /RSAPrivateKey/);
866 $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/);
867
868 $platform{$s} =
869 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
870 $algorithm{$s} = '' if !defined $algorithm{$s};
871 $algorithm{$s} .= ','.$a;
872
873 if (defined($variant{$s})) {
874 foreach $v (split /;/,$variant{$s}) {
875 (my $r, my $p, my $k) = split(/:/,$v);
876 my $ip = join ',',map({ /^!(.*)$/ ? $1 : "!".$_ } split /,/, $p);
877 $syms{$r} = 1;
878 if (!defined($k)) { $k = $kind{$s}; }
879 $kind{$r} = $k."(".$s.")";
880 $algorithm{$r} = $algorithm{$s};
881 $platform{$r} = &reduce_platforms($platform{$s}.",".$p.",".$p);
882 $platform{$s} = &reduce_platforms($platform{$s}.','.$ip.','.$ip);
883 print STDERR "DEBUG: \$variant{\"$s\"} = ",$v,"; \$r = $r; \$p = ",$platform{$r},"; \$a = ",$algorithm{$r},"; \$kind = ",$kind{$r},"\n" if $debug;
884 }
885 }
886 print STDERR "DEBUG: \$s = $s; \$p = ",$platform{$s},"; \$a = ",$algorithm{$s},"; \$kind = ",$kind{$s},"\n" if $debug;
887 }
888 }
889
890 # Prune the returned symbols
891
892 delete $syms{"bn_dump1"};
893 $platform{"BIO_s_log"} .= ",!WIN32,!WIN16,!macintosh";
894
895 $platform{"PEM_read_NS_CERT_SEQ"} = "VMS";
896 $platform{"PEM_write_NS_CERT_SEQ"} = "VMS";
897 $platform{"PEM_read_P8_PRIV_KEY_INFO"} = "VMS";
898 $platform{"PEM_write_P8_PRIV_KEY_INFO"} = "VMS";
899
900 # Info we know about
901
902 push @ret, map { $_."\\".&info_string($_,"EXIST",
903 $platform{$_},
904 $kind{$_},
905 $algorithm{$_}) } keys %syms;
906
907 if (keys %unknown_algorithms) {
908 print STDERR "WARNING: mkdef.pl doesn't know the following algorithms:\n";
909 print STDERR "\t",join("\n\t",keys %unknown_algorithms),"\n";
910 }
911 return(@ret);
912}
913
914# Param: string of comma-separated platform-specs.
915sub reduce_platforms
916{
917 my ($platforms) = @_;
918 my $pl = defined($platforms) ? $platforms : "";
919 my %p = map { $_ => 0 } split /,/, $pl;
920 my $ret;
921
922 print STDERR "DEBUG: Entered reduce_platforms with \"$platforms\"\n"
923 if $debug;
924 # We do this, because if there's code like the following, it really
925 # means the function exists in all cases and should therefore be
926 # everywhere. By increasing and decreasing, we may attain 0:
927 #
928 # ifndef WIN16
929 # int foo();
930 # else
931 # int _fat foo();
932 # endif
933 foreach $platform (split /,/, $pl) {
934 if ($platform =~ /^!(.*)$/) {
935 $p{$1}--;
936 } else {
937 $p{$platform}++;
938 }
939 }
940 foreach $platform (keys %p) {
941 if ($p{$platform} == 0) { delete $p{$platform}; }
942 }
943
944 delete $p{""};
945
946 $ret = join(',',sort(map { $p{$_} < 0 ? "!".$_ : $_ } keys %p));
947 print STDERR "DEBUG: Exiting reduce_platforms with \"$ret\"\n"
948 if $debug;
949 return $ret;
950}
951
952sub info_string {
953 (my $symbol, my $exist, my $platforms, my $kind, my $algorithms) = @_;
954
955 my %a = defined($algorithms) ?
956 map { $_ => 1 } split /,/, $algorithms : ();
957 my $k = defined($kind) ? $kind : "FUNCTION";
958 my $ret;
959 my $p = &reduce_platforms($platforms);
960
961 delete $a{""};
962
963 $ret = $exist;
964 $ret .= ":".$p;
965 $ret .= ":".$k;
966 $ret .= ":".join(',',sort keys %a);
967 return $ret;
968}
969
970sub maybe_add_info {
971 (my $name, *nums, my @symbols) = @_;
972 my $sym;
973 my $new_info = 0;
974 my %syms=();
975
976 print STDERR "Updating $name info\n";
977 foreach $sym (@symbols) {
978 (my $s, my $i) = split /\\/, $sym;
979 if (defined($nums{$s})) {
980 $i =~ s/^(.*?:.*?:\w+)(\(\w+\))?/$1/;
981 (my $n, my $dummy) = split /\\/, $nums{$s};
982 if (!defined($dummy) || $i ne $dummy) {
983 $nums{$s} = $n."\\".$i;
984 $new_info++;
985 print STDERR "DEBUG: maybe_add_info for $s: \"$dummy\" => \"$i\"\n" if $debug;
986 }
987 }
988 $syms{$s} = 1;
989 }
990
991 my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums;
992 foreach $sym (@s) {
993 (my $n, my $i) = split /\\/, $nums{$sym};
994 if (!defined($syms{$sym}) && $i !~ /^NOEXIST:/) {
995 $new_info++;
996 print STDERR "DEBUG: maybe_add_info for $sym: -> undefined\n" if $debug;
997 }
998 }
999 if ($new_info) {
1000 print STDERR "$new_info old symbols got an info update\n";
1001 if (!$do_rewrite) {
1002 print STDERR "You should do a rewrite to fix this.\n";
1003 }
1004 } else {
1005 print STDERR "No old symbols needed info update\n";
1006 }
1007}
1008
1009# Param: string of comma-separated keywords, each possibly prefixed with a "!"
1010sub is_valid
1011{
1012 my ($keywords_txt,$platforms) = @_;
1013 my (@keywords) = split /,/,$keywords_txt;
1014 my ($falsesum, $truesum) = (0, !grep(/^[^!]/,@keywords));
1015
1016 # Param: one keyword
1017 sub recognise
1018 {
1019 my ($keyword,$platforms) = @_;
1020
1021 if ($platforms) {
1022 # platforms
1023 if ($keyword eq "VMS" && $VMS) { return 1; }
1024 if ($keyword eq "WIN32" && $W32) { return 1; }
1025 if ($keyword eq "WIN16" && $W16) { return 1; }
1026 if ($keyword eq "WINNT" && $NT) { return 1; }
1027 if ($keyword eq "OS2" && $OS2) { return 1; }
1028 # Special platforms:
1029 # EXPORT_VAR_AS_FUNCTION means that global variables
1030 # will be represented as functions. This currently
1031 # only happens on VMS-VAX.
1032 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) {
1033 return 1;
1034 }
1035 if ($keyword eq "OPENSSL_FIPS" && $fips) {
1036 return 1;
1037 }
1038 return 0;
1039 } else {
1040 # algorithms
1041 if ($keyword eq "RC2" && $no_rc2) { return 0; }
1042 if ($keyword eq "RC4" && $no_rc4) { return 0; }
1043 if ($keyword eq "RC5" && $no_rc5) { return 0; }
1044 if ($keyword eq "IDEA" && $no_idea) { return 0; }
1045 if ($keyword eq "DES" && $no_des) { return 0; }
1046 if ($keyword eq "BF" && $no_bf) { return 0; }
1047 if ($keyword eq "CAST" && $no_cast) { return 0; }
1048 if ($keyword eq "MD2" && $no_md2) { return 0; }
1049 if ($keyword eq "MD4" && $no_md4) { return 0; }
1050 if ($keyword eq "MD5" && $no_md5) { return 0; }
1051 if ($keyword eq "SHA" && $no_sha) { return 0; }
1052 if ($keyword eq "RIPEMD" && $no_ripemd) { return 0; }
1053 if ($keyword eq "MDC2" && $no_mdc2) { return 0; }
1054 if ($keyword eq "RSA" && $no_rsa) { return 0; }
1055 if ($keyword eq "DSA" && $no_dsa) { return 0; }
1056 if ($keyword eq "DH" && $no_dh) { return 0; }
1057 if ($keyword eq "EC" && $no_ec) { return 0; }
1058 if ($keyword eq "HMAC" && $no_hmac) { return 0; }
1059 if ($keyword eq "AES" && $no_aes) { return 0; }
1060 if ($keyword eq "EVP" && $no_evp) { return 0; }
1061 if ($keyword eq "LHASH" && $no_lhash) { return 0; }
1062 if ($keyword eq "STACK" && $no_stack) { return 0; }
1063 if ($keyword eq "ERR" && $no_err) { return 0; }
1064 if ($keyword eq "BUFFER" && $no_buffer) { return 0; }
1065 if ($keyword eq "BIO" && $no_bio) { return 0; }
1066 if ($keyword eq "COMP" && $no_comp) { return 0; }
1067 if ($keyword eq "DSO" && $no_dso) { return 0; }
1068 if ($keyword eq "KRB5" && $no_krb5) { return 0; }
1069 if ($keyword eq "ENGINE" && $no_engine) { return 0; }
1070 if ($keyword eq "HW" && $no_hw) { return 0; }
1071 if ($keyword eq "FP_API" && $no_fp_api) { return 0; }
1072
1073 # Nothing recognise as true
1074 return 1;
1075 }
1076 }
1077
1078 foreach $k (@keywords) {
1079 if ($k =~ /^!(.*)$/) {
1080 $falsesum += &recognise($1,$platforms);
1081 } else {
1082 $truesum += &recognise($k,$platforms);
1083 }
1084 }
1085 print STDERR "DEBUG: [",$#keywords,",",$#keywords < 0,"] is_valid($keywords_txt) => (\!$falsesum) && $truesum = ",(!$falsesum) && $truesum,"\n" if $debug;
1086 return (!$falsesum) && $truesum;
1087}
1088
1089sub print_test_file
1090{
1091 (*OUT,my $name,*nums,my $testall,my @symbols)=@_;
1092 my $n = 1; my @e; my @r;
1093 my $sym; my $prev = ""; my $prefSSLeay;
1094
1095 (@e)=grep(/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/,@symbols);
1096 (@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:.*/ && !/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/,@symbols);
1097 @symbols=((sort @e),(sort @r));
1098
1099 foreach $sym (@symbols) {
1100 (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
1101 my $v = 0;
1102 $v = 1 if $i=~ /^.*?:.*?:VARIABLE/;
1103 my $p = ($i =~ /^[^:]*:([^:]*):/,$1);
1104 my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1);
1105 if (!defined($nums{$s})) {
1106 print STDERR "Warning: $s does not have a number assigned\n"
1107 if(!$do_update);
1108 } elsif (is_valid($p,1) && is_valid($a,0)) {
1109 my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1);
1110 if ($prev eq $s2) {
1111 print OUT "\t/* The following has already appeared previously */\n";
1112 print STDERR "Warning: Symbol '",$s2,"' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1),", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n";
1113 }
1114 $prev = $s2; # To warn about duplicates...
1115
1116 ($nn,$ni)=($nums{$s2} =~ /^(.*?)\\(.*)$/);
1117 if ($v) {
1118 print OUT "\textern int $s2; /* type unknown */ /* $nn $ni */\n";
1119 } else {
1120 print OUT "\textern int $s2(); /* type unknown */ /* $nn $ni */\n";
1121 }
1122 }
1123 }
1124}
1125
1126sub get_version {
1127 local *MF;
1128 my $v = '?';
1129 open MF, 'Makefile' or return $v;
1130 while (<MF>) {
1131 $v = $1, last if /^VERSION=(.*?)\s*$/;
1132 }
1133 close MF;
1134 return $v;
1135}
1136
1137sub print_def_file
1138{
1139 (*OUT,my $name,*nums,my @symbols)=@_;
1140 my $n = 1; my @e; my @r; my @v; my $prev="";
1141 my $liboptions="";
1142 my $libname = $name;
1143 my $http_vendor = 'www.openssl.org/';
1144 my $version = get_version();
1145 my $what = "OpenSSL: implementation of Secure Socket Layer";
1146 my $description = "$what $version, $name - http://$http_vendor";
1147
1148 if ($W32)
1149 { $libname.="32"; }
1150 elsif ($W16)
1151 { $libname.="16"; }
1152 elsif ($OS2)
1153 { # DLL names should not clash on the whole system.
1154 # However, they should not have any particular relationship
1155 # to the name of the static library. Chose descriptive names
1156 # (must be at most 8 chars).
1157 my %translate = (ssl => 'open_ssl', crypto => 'cryptssl');
1158 $libname = $translate{$name} || $name;
1159 $liboptions = <<EOO;
1160INITINSTANCE
1161DATA MULTIPLE NONSHARED
1162EOO
1163 # Vendor field can't contain colon, drat; so we omit http://
1164 $description = "\@#$http_vendor:$version#\@$what; DLL for library $name. Build for EMX -Zmtd";
1165 }
1166
1167 print OUT <<"EOF";
1168;
1169; Definition file for the DLL version of the $name library from OpenSSL
1170;
1171
1172LIBRARY $libname $liboptions
1173
1174DESCRIPTION '$description'
1175
1176EOF
1177
1178 if ($W16) {
1179 print <<"EOF";
1180CODE PRELOAD MOVEABLE
1181DATA PRELOAD MOVEABLE SINGLE
1182
1183EXETYPE WINDOWS
1184
1185HEAPSIZE 4096
1186STACKSIZE 8192
1187
1188EOF
1189 }
1190
1191 print "EXPORTS\n";
1192
1193 (@e)=grep(/^SSLeay(\{[0-9]+\})?\\.*?:.*?:FUNCTION/,@symbols);
1194 (@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:FUNCTION/ && !/^SSLeay(\{[0-9]+\})?\\.*?:.*?:FUNCTION/,@symbols);
1195 (@v)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:VARIABLE/,@symbols);
1196 @symbols=((sort @e),(sort @r), (sort @v));
1197
1198
1199 foreach $sym (@symbols) {
1200 (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
1201 my $v = 0;
1202 $v = 1 if $i =~ /^.*?:.*?:VARIABLE/;
1203 if (!defined($nums{$s})) {
1204 printf STDERR "Warning: $s does not have a number assigned\n"
1205 if(!$do_update);
1206 } else {
1207 (my $n, my $dummy) = split /\\/, $nums{$s};
1208 my %pf = ();
1209 my $p = ($i =~ /^[^:]*:([^:]*):/,$1);
1210 my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1);
1211 if (is_valid($p,1) && is_valid($a,0)) {
1212 my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1);
1213 if ($prev eq $s2) {
1214 print STDERR "Warning: Symbol '",$s2,"' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1),", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n";
1215 }
1216 $prev = $s2; # To warn about duplicates...
1217 if($v && !$OS2) {
1218 printf OUT " %s%-39s @%-8d DATA\n",($W32)?"":"_",$s2,$n;
1219 } else {
1220 printf OUT " %s%-39s @%d\n",($W32||$OS2)?"":"_",$s2,$n;
1221 }
1222 }
1223 }
1224 }
1225 printf OUT "\n";
1226}
1227
1228sub load_numbers
1229{
1230 my($name)=@_;
1231 my(@a,%ret);
1232
1233 $max_num = 0;
1234 $num_noinfo = 0;
1235 $prev = "";
1236 $prev_cnt = 0;
1237
1238 open(IN,"<$name") || die "unable to open $name:$!\n";
1239 while (<IN>) {
1240 chop;
1241 s/#.*$//;
1242 next if /^\s*$/;
1243 @a=split;
1244 if (defined $ret{$a[0]}) {
1245 # This is actually perfectly OK
1246 #print STDERR "Warning: Symbol '",$a[0],"' redefined. old=",$ret{$a[0]},", new=",$a[1],"\n";
1247 }
1248 if ($max_num > $a[1]) {
1249 print STDERR "Warning: Number decreased from ",$max_num," to ",$a[1],"\n";
1250 }
1251 elsif ($max_num == $a[1]) {
1252 # This is actually perfectly OK
1253 #print STDERR "Warning: Symbol ",$a[0]," has same number as previous ",$prev,": ",$a[1],"\n";
1254 if ($a[0] eq $prev) {
1255 $prev_cnt++;
1256 $a[0] .= "{$prev_cnt}";
1257 }
1258 }
1259 else {
1260 $prev_cnt = 0;
1261 }
1262 if ($#a < 2) {
1263 # Existence will be proven later, in do_defs
1264 $ret{$a[0]}=$a[1];
1265 $num_noinfo++;
1266 } else {
1267 $ret{$a[0]}=$a[1]."\\".$a[2]; # \\ is a special marker
1268 }
1269 $max_num = $a[1] if $a[1] > $max_num;
1270 $prev=$a[0];
1271 }
1272 if ($num_noinfo) {
1273 print STDERR "Warning: $num_noinfo symbols were without info.";
1274 if ($do_rewrite) {
1275 printf STDERR " The rewrite will fix this.\n";
1276 } else {
1277 printf STDERR " You should do a rewrite to fix this.\n";
1278 }
1279 }
1280 close(IN);
1281 return(%ret);
1282}
1283
1284sub parse_number
1285{
1286 (my $str, my $what) = @_;
1287 (my $n, my $i) = split(/\\/,$str);
1288 if ($what eq "n") {
1289 return $n;
1290 } else {
1291 return $i;
1292 }
1293}
1294
1295sub rewrite_numbers
1296{
1297 (*OUT,$name,*nums,@symbols)=@_;
1298 my $thing;
1299
1300 print STDERR "Rewriting $name\n";
1301
1302 my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/,@symbols);
1303 my $r; my %r; my %rsyms;
1304 foreach $r (@r) {
1305 (my $s, my $i) = split /\\/, $r;
1306 my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/;
1307 $i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/;
1308 $r{$a} = $s."\\".$i;
1309 $rsyms{$s} = 1;
1310 }
1311
1312 my %syms = ();
1313 foreach $_ (@symbols) {
1314 (my $n, my $i) = split /\\/;
1315 $syms{$n} = 1;
1316 }
1317
1318 my @s=sort {
1319 &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n")
1320 || $a cmp $b
1321 } keys %nums;
1322 foreach $sym (@s) {
1323 (my $n, my $i) = split /\\/, $nums{$sym};
1324 next if defined($i) && $i =~ /^.*?:.*?:\w+\(\w+\)/;
1325 next if defined($rsyms{$sym});
1326 print STDERR "DEBUG: rewrite_numbers for sym = ",$sym,": i = ",$i,", n = ",$n,", rsym{sym} = ",$rsyms{$sym},"syms{sym} = ",$syms{$sym},"\n" if $debug;
1327 $i="NOEXIST::FUNCTION:"
1328 if !defined($i) || $i eq "" || !defined($syms{$sym});
1329 my $s2 = $sym;
1330 $s2 =~ s/\{[0-9]+\}$//;
1331 printf OUT "%s%-39s %d\t%s\n","",$s2,$n,$i;
1332 if (exists $r{$sym}) {
1333 (my $s, $i) = split /\\/,$r{$sym};
1334 my $s2 = $s;
1335 $s2 =~ s/\{[0-9]+\}$//;
1336 printf OUT "%s%-39s %d\t%s\n","",$s2,$n,$i;
1337 }
1338 }
1339}
1340
1341sub update_numbers
1342{
1343 (*OUT,$name,*nums,my $start_num, my @symbols)=@_;
1344 my $new_syms = 0;
1345
1346 print STDERR "Updating $name numbers\n";
1347
1348 my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/,@symbols);
1349 my $r; my %r; my %rsyms;
1350 foreach $r (@r) {
1351 (my $s, my $i) = split /\\/, $r;
1352 my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/;
1353 $i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/;
1354 $r{$a} = $s."\\".$i;
1355 $rsyms{$s} = 1;
1356 }
1357
1358 foreach $sym (@symbols) {
1359 (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
1360 next if $i =~ /^.*?:.*?:\w+\(\w+\)/;
1361 next if defined($rsyms{$sym});
1362 die "ERROR: Symbol $sym had no info attached to it."
1363 if $i eq "";
1364 if (!exists $nums{$s}) {
1365 $new_syms++;
1366 my $s2 = $s;
1367 $s2 =~ s/\{[0-9]+\}$//;
1368 printf OUT "%s%-39s %d\t%s\n","",$s2, ++$start_num,$i;
1369 if (exists $r{$s}) {
1370 ($s, $i) = split /\\/,$r{$s};
1371 $s =~ s/\{[0-9]+\}$//;
1372 printf OUT "%s%-39s %d\t%s\n","",$s, $start_num,$i;
1373 }
1374 }
1375 }
1376 if($new_syms) {
1377 print STDERR "$new_syms New symbols added\n";
1378 } else {
1379 print STDERR "No New symbols Added\n";
1380 }
1381}
1382
1383sub check_existing
1384{
1385 (*nums, my @symbols)=@_;
1386 my %existing; my @remaining;
1387 @remaining=();
1388 foreach $sym (@symbols) {
1389 (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
1390 $existing{$s}=1;
1391 }
1392 foreach $sym (keys %nums) {
1393 if (!exists $existing{$sym}) {
1394 push @remaining, $sym;
1395 }
1396 }
1397 if(@remaining) {
1398 print STDERR "The following symbols do not seem to exist:\n";
1399 foreach $sym (@remaining) {
1400 print STDERR "\t",$sym,"\n";
1401 }
1402 }
1403}
1404
diff --git a/src/lib/libcrypto/util/mkdir-p.pl b/src/lib/libcrypto/util/mkdir-p.pl
new file mode 100644
index 0000000000..6c69c2daa4
--- /dev/null
+++ b/src/lib/libcrypto/util/mkdir-p.pl
@@ -0,0 +1,33 @@
1#!/usr/local/bin/perl
2
3# mkdir-p.pl
4
5# On some systems, the -p option to mkdir (= also create any missing parent
6# directories) is not available.
7
8my $arg;
9
10foreach $arg (@ARGV) {
11 &do_mkdir_p($arg);
12}
13
14
15sub do_mkdir_p {
16 local($dir) = @_;
17
18 $dir =~ s|/*\Z(?!\n)||s;
19
20 if (-d $dir) {
21 return;
22 }
23
24 if ($dir =~ m|[^/]/|s) {
25 local($parent) = $dir;
26 $parent =~ s|[^/]*\Z(?!\n)||s;
27
28 do_mkdir_p($parent);
29 }
30
31 mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n";
32 print "created directory `$dir'\n";
33}
diff --git a/src/lib/libcrypto/util/mkerr.pl b/src/lib/libcrypto/util/mkerr.pl
index 9678514604..60e534807e 100644
--- a/src/lib/libcrypto/util/mkerr.pl
+++ b/src/lib/libcrypto/util/mkerr.pl
@@ -9,9 +9,6 @@ my $reindex = 0;
9my $dowrite = 0; 9my $dowrite = 0;
10my $staticloader = ""; 10my $staticloader = "";
11 11
12my $pack_errcode;
13my $load_errcode;
14
15while (@ARGV) { 12while (@ARGV) {
16 my $arg = $ARGV[0]; 13 my $arg = $ARGV[0];
17 if($arg eq "-conf") { 14 if($arg eq "-conf") {
@@ -44,8 +41,8 @@ while (@ARGV) {
44} 41}
45 42
46if($recurse) { 43if($recurse) {
47 @source = (<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>, <fips-1.0/*.c>, 44 @source = (<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>, <fips/*.c>,
48 <fips-1.0/*/*.c>); 45 <fips/*/*.c>);
49} else { 46} else {
50 @source = @ARGV; 47 @source = @ARGV;
51} 48}
@@ -402,20 +399,6 @@ EOF
402 $hincf = "\"$hfile\""; 399 $hincf = "\"$hfile\"";
403 } 400 }
404 401
405 # If static we know the error code at compile time so use it
406 # in error definitions.
407
408 if ($static)
409 {
410 $pack_errcode = "ERR_LIB_${lib}";
411 $load_errcode = "0";
412 }
413 else
414 {
415 $pack_errcode = "0";
416 $load_errcode = "ERR_LIB_${lib}";
417 }
418
419 402
420 open (OUT,">$cfile") || die "Can't open $cfile for writing"; 403 open (OUT,">$cfile") || die "Can't open $cfile for writing";
421 404
@@ -486,10 +469,6 @@ EOF
486 469
487/* BEGIN ERROR CODES */ 470/* BEGIN ERROR CODES */
488#ifndef OPENSSL_NO_ERR 471#ifndef OPENSSL_NO_ERR
489
490#define ERR_FUNC(func) ERR_PACK($pack_errcode,func,0)
491#define ERR_REASON(reason) ERR_PACK($pack_errcode,0,reason)
492
493static ERR_STRING_DATA ${lib}_str_functs[]= 472static ERR_STRING_DATA ${lib}_str_functs[]=
494 { 473 {
495EOF 474EOF
@@ -501,8 +480,7 @@ EOF
501 if(exists $ftrans{$fn}) { 480 if(exists $ftrans{$fn}) {
502 $fn = $ftrans{$fn}; 481 $fn = $ftrans{$fn};
503 } 482 }
504# print OUT "{ERR_PACK($pack_errcode,$i,0),\t\"$fn\"},\n"; 483 print OUT "{ERR_PACK(0,$i,0),\t\"$fn\"},\n";
505 print OUT "{ERR_FUNC($i),\t\"$fn\"},\n";
506 } 484 }
507 print OUT <<"EOF"; 485 print OUT <<"EOF";
508{0,NULL} 486{0,NULL}
@@ -514,7 +492,6 @@ EOF
514 # Add each reason code. 492 # Add each reason code.
515 foreach $i (@reasons) { 493 foreach $i (@reasons) {
516 my $rn; 494 my $rn;
517 my $rstr = "ERR_REASON($i)";
518 my $nspc = 0; 495 my $nspc = 0;
519 if (exists $err_reason_strings{$i}) { 496 if (exists $err_reason_strings{$i}) {
520 $rn = $err_reason_strings{$i}; 497 $rn = $err_reason_strings{$i};
@@ -523,9 +500,9 @@ EOF
523 $rn = $1; 500 $rn = $1;
524 $rn =~ tr/_[A-Z]/ [a-z]/; 501 $rn =~ tr/_[A-Z]/ [a-z]/;
525 } 502 }
526 $nspc = 40 - length($rstr) unless length($rstr) > 40; 503 $nspc = 40 - length($i) unless length($i) > 40;
527 $nspc = " " x $nspc; 504 $nspc = " " x $nspc;
528 print OUT "{${rstr}${nspc},\"$rn\"},\n"; 505 print OUT "{${i}${nspc},\"$rn\"},\n";
529 } 506 }
530if($static) { 507if($static) {
531 print OUT <<"EOF"; 508 print OUT <<"EOF";
@@ -542,8 +519,8 @@ ${staticloader}void ERR_load_${lib}_strings(void)
542 { 519 {
543 init=0; 520 init=0;
544#ifndef OPENSSL_NO_ERR 521#ifndef OPENSSL_NO_ERR
545 ERR_load_strings($load_errcode,${lib}_str_functs); 522 ERR_load_strings(ERR_LIB_${lib},${lib}_str_functs);
546 ERR_load_strings($load_errcode,${lib}_str_reasons); 523 ERR_load_strings(ERR_LIB_${lib},${lib}_str_reasons);
547#endif 524#endif
548 525
549 } 526 }
diff --git a/src/lib/libcrypto/util/mkfiles.pl b/src/lib/libcrypto/util/mkfiles.pl
new file mode 100644
index 0000000000..928a274303
--- /dev/null
+++ b/src/lib/libcrypto/util/mkfiles.pl
@@ -0,0 +1,125 @@
1#!/usr/local/bin/perl
2#
3# This is a hacked version of files.pl for systems that can't do a 'make files'.
4# Do a perl util/mkminfo.pl >MINFO to build MINFO
5# Written by Steve Henson 1999.
6
7# List of directories to process
8
9my @dirs = (
10".",
11"crypto",
12"crypto/md2",
13"crypto/md4",
14"crypto/md5",
15"crypto/sha",
16"crypto/mdc2",
17"crypto/hmac",
18"crypto/ripemd",
19"crypto/des",
20"crypto/rc2",
21"crypto/rc4",
22"crypto/rc5",
23"crypto/idea",
24"crypto/bf",
25"crypto/cast",
26"crypto/aes",
27"crypto/bn",
28"crypto/rsa",
29"crypto/dsa",
30"crypto/dso",
31"crypto/dh",
32"crypto/ec",
33"crypto/buffer",
34"crypto/bio",
35"crypto/stack",
36"crypto/lhash",
37"crypto/rand",
38"crypto/err",
39"crypto/objects",
40"crypto/evp",
41"crypto/asn1",
42"crypto/pem",
43"crypto/x509",
44"crypto/x509v3",
45"crypto/conf",
46"crypto/txt_db",
47"crypto/pkcs7",
48"crypto/pkcs12",
49"crypto/comp",
50"crypto/engine",
51"crypto/ocsp",
52"crypto/ui",
53"crypto/krb5",
54"fips",
55"fips/aes",
56"fips/des",
57"fips/dsa",
58"fips/dh",
59"fips/rand",
60"fips/rsa",
61"fips/sha1",
62"ssl",
63"apps",
64"test",
65"tools"
66);
67
68foreach (@dirs) {
69 &files_dir ($_, "Makefile");
70}
71
72exit(0);
73
74sub files_dir
75{
76my ($dir, $makefile) = @_;
77
78my %sym;
79
80open (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
81
82my $s="";
83
84while (<IN>)
85 {
86 chop;
87 s/#.*//;
88 if (/^(\S+)\s*=\s*(.*)$/)
89 {
90 $o="";
91 ($s,$b)=($1,$2);
92 for (;;)
93 {
94 if ($b =~ /\\$/)
95 {
96 chop($b);
97 $o.=$b." ";
98 $b=<IN>;
99 chop($b);
100 }
101 else
102 {
103 $o.=$b." ";
104 last;
105 }
106 }
107 $o =~ s/^\s+//;
108 $o =~ s/\s+$//;
109 $o =~ s/\s+/ /g;
110
111 $o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
112 $sym{$s}=$o;
113 }
114 }
115
116print "RELATIVE_DIRECTORY=$dir\n";
117
118foreach (sort keys %sym)
119 {
120 print "$_=$sym{$_}\n";
121 }
122print "RELATIVE_DIRECTORY=\n";
123
124close (IN);
125}
diff --git a/src/lib/libcrypto/util/mklink.pl b/src/lib/libcrypto/util/mklink.pl
new file mode 100644
index 0000000000..c8653cecc3
--- /dev/null
+++ b/src/lib/libcrypto/util/mklink.pl
@@ -0,0 +1,70 @@
1#!/usr/local/bin/perl
2
3# mklink.pl
4
5# The first command line argument is a non-empty relative path
6# specifying the "from" directory.
7# Each other argument is a file name not containing / and
8# names a file in the current directory.
9#
10# For each of these files, we create in the "from" directory a link
11# of the same name pointing to the local file.
12#
13# We assume that the directory structure is a tree, i.e. that it does
14# not contain symbolic links and that the parent of / is never referenced.
15# Apart from this, this script should be able to handle even the most
16# pathological cases.
17
18my $from = shift;
19my @files = @ARGV;
20
21my @from_path = split(/[\\\/]/, $from);
22my $pwd = `pwd`;
23chop($pwd);
24my @pwd_path = split(/[\\\/]/, $pwd);
25
26my @to_path = ();
27
28my $dirname;
29foreach $dirname (@from_path) {
30
31 # In this loop, @to_path always is a relative path from
32 # @pwd_path (interpreted is an absolute path) to the original pwd.
33
34 # At the end, @from_path (as a relative path from the original pwd)
35 # designates the same directory as the absolute path @pwd_path,
36 # which means that @to_path then is a path from there to the original pwd.
37
38 next if ($dirname eq "" || $dirname eq ".");
39
40 if ($dirname eq "..") {
41 @to_path = (pop(@pwd_path), @to_path);
42 } else {
43 @to_path = ("..", @to_path);
44 push(@pwd_path, $dirname);
45 }
46}
47
48my $to = join('/', @to_path);
49
50my $file;
51$symlink_exists=eval {symlink("",""); 1};
52foreach $file (@files) {
53 my $err = "";
54 if ($symlink_exists) {
55 unlink "$from/$file";
56 symlink("$to/$file", "$from/$file") or $err = " [$!]";
57 } else {
58 unlink "$from/$file";
59 open (OLD, "<$file") or die "Can't open $file: $!";
60 open (NEW, ">$from/$file") or die "Can't open $from/$file: $!";
61 binmode(OLD);
62 binmode(NEW);
63 while (<OLD>) {
64 print NEW $_;
65 }
66 close (OLD) or die "Can't close $file: $!";
67 close (NEW) or die "Can't close $from/$file: $!";
68 }
69 print $file . " => $from/$file$err\n";
70}
diff --git a/src/lib/libcrypto/util/opensslwrap.sh b/src/lib/libcrypto/util/opensslwrap.sh
new file mode 100755
index 0000000000..91d29e2b87
--- /dev/null
+++ b/src/lib/libcrypto/util/opensslwrap.sh
@@ -0,0 +1,22 @@
1#!/bin/sh
2
3HERE="`echo $0 | sed -e 's|[^/]*$||'`"
4OPENSSL="${HERE}../apps/openssl"
5
6if [ -x "${OPENSSL}.exe" ]; then
7 # The original reason for this script existence is to work around
8 # certain caveats in run-time linker behaviour. On Windows platforms
9 # adjusting $PATH used to be sufficient, but with introduction of
10 # SafeDllSearchMode in XP/2003 the only way to get it right in
11 # *all* possible situations is to copy newly built .DLLs to apps/
12 # and test/, which is now done elsewhere... The $PATH is adjusted
13 # for backward compatibility (and nostagical reasons:-).
14 if [ "$OSTYPE" != msdosdjgpp ]; then
15 PATH="${HERE}..:$PATH"; export PATH
16 fi
17 exec "${OPENSSL}.exe" "$@"
18elif [ -x "${OPENSSL}" -a -x "${HERE}shlib_wrap.sh" ]; then
19 exec "${HERE}shlib_wrap.sh" "${OPENSSL}" "$@"
20else
21 exec "${OPENSSL}" "$@" # hope for the best...
22fi
diff --git a/src/lib/libcrypto/util/perlpath.pl b/src/lib/libcrypto/util/perlpath.pl
new file mode 100644
index 0000000000..a1f236bd98
--- /dev/null
+++ b/src/lib/libcrypto/util/perlpath.pl
@@ -0,0 +1,35 @@
1#!/usr/local/bin/perl
2#
3# modify the '#!/usr/local/bin/perl'
4# line in all scripts that rely on perl.
5#
6
7require "find.pl";
8
9$#ARGV == 0 || print STDERR "usage: perlpath newpath (eg /usr/bin)\n";
10&find(".");
11
12sub wanted
13 {
14 return unless /\.pl$/ || /^[Cc]onfigur/;
15
16 open(IN,"<$_") || die "unable to open $dir/$_:$!\n";
17 @a=<IN>;
18 close(IN);
19
20 if (-d $ARGV[0]) {
21 $a[0]="#!$ARGV[0]/perl\n";
22 }
23 else {
24 $a[0]="#!$ARGV[0]\n";
25 }
26
27 # Playing it safe...
28 $new="$_.new";
29 open(OUT,">$new") || die "unable to open $dir/$new:$!\n";
30 print OUT @a;
31 close(OUT);
32
33 rename($new,$_) || die "unable to rename $dir/$new:$!\n";
34 chmod(0755,$_) || die "unable to chmod $dir/$new:$!\n";
35 }
diff --git a/src/lib/libcrypto/util/pl/BC-16.pl b/src/lib/libcrypto/util/pl/BC-16.pl
new file mode 100644
index 0000000000..8030653daa
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/BC-16.pl
@@ -0,0 +1,151 @@
1#!/usr/local/bin/perl
2# VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries
3#
4
5$o='\\';
6$cp='copy';
7$rm='del';
8
9# C compiler stuff
10$cc='bcc';
11
12if ($debug)
13 { $op="-v "; }
14else { $op="-O "; }
15
16$cflags="-d -ml $op -DL_ENDIAN";
17# I add the stack opt
18$base_lflags="/c /C";
19$lflags="$base_lflags";
20
21if ($win16)
22 {
23 $shlib=1;
24 $cflags.=" -DOPENSSL_SYSNAME_WIN16";
25 $app_cflag="-W";
26 $lib_cflag="-WD";
27 $lflags.="/Twe";
28 }
29else
30 {
31 $cflags.=" -DOENSSL_SYSNAME_MSDOS";
32 $lflags.=" /Tde";
33 }
34
35if ($shlib)
36 {
37 $mlflags=" /Twd $base_lflags"; # stack if defined in .def file
38 $libs="libw ldllcew";
39 $no_asm=1;
40 }
41else
42 { $mlflags=''; }
43
44$obj='.obj';
45$ofile="-o";
46
47# EXE linking stuff
48$link="tlink";
49$efile="";
50$exep='.exe';
51$ex_libs="CL";
52$ex_libs.=$no_sock?"":" winsock.lib";
53
54$app_ex_obj="C0L.obj ";
55$shlib_ex_obj="" if ($shlib);
56
57# static library stuff
58$mklib='tlib';
59$ranlib='echo no ranlib';
60$plib="";
61$libp=".lib";
62$shlibp=($shlib)?".dll":".lib";
63$lfile='';
64
65$asm='bcc -c -B -Tml';
66$afile='/o';
67if ($no_asm || $fips)
68 {
69 $bn_asm_obj='';
70 $bn_asm_src='';
71 }
72elsif ($asmbits == 32)
73 {
74 $bn_asm_obj='crypto\bn\asm\x86w32.obj';
75 $bn_asm_src='crypto\bn\asm\x86w32.asm';
76 }
77else
78 {
79 $bn_asm_obj='crypto\bn\asm\x86w16.obj';
80 $bn_asm_src='crypto\bn\asm\x86w16.asm';
81 }
82
83sub do_lib_rule
84 {
85 local($target,$name,$shlib)=@_;
86 local($ret,$Name);
87
88 $taget =~ s/\//$o/g if $o ne '/';
89 ($Name=$name) =~ tr/a-z/A-Z/;
90
91 $ret.="$target: \$(${Name}OBJ)\n";
92 $ret.="\t\$(RM) \$(O_$Name)\n";
93
94 # Due to a pathetic line length limit, I unwrap the args.
95 local($lib_names)="";
96 local($dll_names)="";
97 foreach $_ (sort split(/\s+/,$Vars{"${Name}OBJ"}))
98 {
99 $lib_names.=" +$_ &\n";
100 $dll_names.=" $_\n";
101 }
102
103 if (!$shlib)
104 {
105 $ret.="\t\$(MKLIB) $target & <<|\n$lib_names\n,\n|\n";
106 }
107 else
108 {
109 local($ex)=($Name eq "SSL")?' $(L_CRYPTO) winsock':"";
110 $ret.="\t\$(LINK) \$(MLFLAGS) @&&|\n";
111 $ret.=$dll_names;
112 $ret.="\n $target\n\n $ex $libs\nms$o${name}16.def;\n|\n";
113 ($out_lib=$target) =~ s/O_/L_/;
114 $ret.="\timplib /nowep $out_lib $target\n\n";
115 }
116 $ret.="\n";
117 return($ret);
118 }
119
120sub do_link_rule
121 {
122 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
123 local($ret,$f,$_,@f);
124
125 $file =~ s/\//$o/g if $o ne '/';
126 $n=&bname($target);
127 $ret.="$target: $files $dep_libs\n";
128 $ret.=" \$(LINK) @&&|";
129
130 # Due to a pathetic line length limit, I have to unwrap the args.
131 $ret.=" \$(LFLAGS) ";
132 if ($files =~ /\(([^)]*)\)$/)
133 {
134 $ret.=" \$(APP_EX_OBJ)";
135 foreach $_ (sort split(/\s+/,$Vars{$1}))
136 { $ret.="\n $r $_ +"; }
137 chop($ret);
138 $ret.="\n";
139 }
140 else
141 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; }
142 $ret.=" $target\n\n $libs\n\n|\n";
143 if (defined $sha1file)
144 {
145 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
146 }
147 $ret.="\n";
148 return($ret);
149 }
150
1511;
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl
new file mode 100644
index 0000000000..897ae9d824
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/BC-32.pl
@@ -0,0 +1,140 @@
1#!/usr/local/bin/perl
2# Borland C++ builder 3 and 4 -- Janez Jere <jj@void.si>
3#
4
5$ssl= "ssleay32";
6$crypto="libeay32";
7
8$o='\\';
9$cp='copy';
10$rm='del';
11
12# C compiler stuff
13$cc='bcc32';
14$lflags="-ap -Tpe -x -Gn ";
15$mlflags='';
16
17$out_def="out32";
18$tmp_def="tmp32";
19$inc_def="inc32";
20#enable max error messages, disable most common warnings
21$cflags="-DWIN32_LEAN_AND_MEAN -q -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp ";
22if ($debug)
23{
24 $cflags.="-Od -y -v -vi- -D_DEBUG";
25 $mlflags.=' ';
26}
27else
28{
29 $cflags.="-O2 -ff -fp";
30}
31
32$obj='.obj';
33$ofile="-o";
34
35# EXE linking stuff
36$link="ilink32";
37$efile="";
38$exep='.exe';
39if ($no_sock)
40 { $ex_libs=""; }
41else { $ex_libs="cw32mt.lib import32.lib"; }
42
43# static library stuff
44$mklib='tlib /P64';
45$ranlib='';
46$plib="";
47$libp=".lib";
48$shlibp=($shlib)?".dll":".lib";
49$lfile='';
50
51$shlib_ex_obj="";
52$app_ex_obj="c0x32.obj";
53
54$asm='nasmw -f obj';
55$asm.=" /Zi" if $debug;
56$afile='-o';
57
58$bn_mulw_obj='';
59$bn_mulw_src='';
60$des_enc_obj='';
61$des_enc_src='';
62$bf_enc_obj='';
63$bf_enc_src='';
64
65if (!$no_asm && !$fips)
66 {
67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj';
68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm';
69 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj';
70 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm';
71 $bf_enc_obj='crypto\bf\asm\b_win32.obj';
72 $bf_enc_src='crypto\bf\asm\b_win32.asm';
73 $cast_enc_obj='crypto\cast\asm\c_win32.obj';
74 $cast_enc_src='crypto\cast\asm\c_win32.asm';
75 $rc4_enc_obj='crypto\rc4\asm\r4_win32.obj';
76 $rc4_enc_src='crypto\rc4\asm\r4_win32.asm';
77 $rc5_enc_obj='crypto\rc5\asm\r5_win32.obj';
78 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm';
79 $md5_asm_obj='crypto\md5\asm\m5_win32.obj';
80 $md5_asm_src='crypto\md5\asm\m5_win32.asm';
81 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj';
82 $sha1_asm_src='crypto\sha\asm\s1_win32.asm';
83 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
84 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm';
85 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
86 }
87
88if ($shlib)
89 {
90 $mlflags.=" $lflags /dll";
91# $cflags =~ s| /MD| /MT|;
92 $lib_cflag=" /GD -D_WINDLL -D_DLL";
93 $out_def="out32dll";
94 $tmp_def="tmp32dll";
95 }
96
97sub do_lib_rule
98 {
99 local($objs,$target,$name,$shlib)=@_;
100 local($ret,$Name);
101
102 $taget =~ s/\//$o/g if $o ne '/';
103 ($Name=$name) =~ tr/a-z/A-Z/;
104
105# $target="\$(LIB_D)$o$target";
106 $ret.="$target: $objs\n";
107 if (!$shlib)
108 {
109 # $ret.="\t\$(RM) \$(O_$Name)\n";
110 $ret.="\techo LIB $<\n";
111 $ret.="\t&\$(MKLIB) $lfile$target -+\$**\n";
112 }
113 else
114 {
115 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
116 $ex.=' wsock32.lib gdi32.lib';
117 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
118 }
119 $ret.="\n";
120 return($ret);
121 }
122
123sub do_link_rule
124 {
125 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
126 local($ret,$_);
127
128 $file =~ s/\//$o/g if $o ne '/';
129 $n=&bname($targer);
130 $ret.="$target: $files $dep_libs\n";
131 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n";
132 if (defined $sha1file)
133 {
134 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
135 }
136 $ret.="\n";
137 return($ret);
138 }
139
1401;
diff --git a/src/lib/libcrypto/util/pl/Mingw32.pl b/src/lib/libcrypto/util/pl/Mingw32.pl
new file mode 100644
index 0000000000..b9bb24d21d
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/Mingw32.pl
@@ -0,0 +1,109 @@
1#!/usr/local/bin/perl
2#
3# Mingw32.pl -- Mingw
4#
5
6$o='/';
7$cp='cp';
8$rm='rm -f';
9$mkdir='gmkdir';
10
11$o='\\';
12$cp='copy';
13$rm='del';
14$mkdir='mkdir';
15
16# C compiler stuff
17
18$cc='gcc';
19if ($debug)
20 { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; }
21else
22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
23
24if ($gaswin and !$no_asm and !$fips)
25 {
26 $bn_asm_obj='$(OBJ_D)\bn-win32.o';
27 $bn_asm_src='crypto/bn/asm/bn-win32.s';
28 $bnco_asm_obj='$(OBJ_D)\co-win32.o';
29 $bnco_asm_src='crypto/bn/asm/co-win32.s';
30 $des_enc_obj='$(OBJ_D)\d-win32.o $(OBJ_D)\y-win32.o';
31 $des_enc_src='crypto/des/asm/d-win32.s crypto/des/asm/y-win32.s';
32 $bf_enc_obj='$(OBJ_D)\b-win32.o';
33 $bf_enc_src='crypto/bf/asm/b-win32.s';
34# $cast_enc_obj='$(OBJ_D)\c-win32.o';
35# $cast_enc_src='crypto/cast/asm/c-win32.s';
36 $rc4_enc_obj='$(OBJ_D)\r4-win32.o';
37 $rc4_enc_src='crypto/rc4/asm/r4-win32.s';
38 $rc5_enc_obj='$(OBJ_D)\r5-win32.o';
39 $rc5_enc_src='crypto/rc5/asm/r5-win32.s';
40 $md5_asm_obj='$(OBJ_D)\m5-win32.o';
41 $md5_asm_src='crypto/md5/asm/m5-win32.s';
42 $rmd160_asm_obj='$(OBJ_D)\rm-win32.o';
43 $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s';
44 $sha1_asm_obj='$(OBJ_D)\s1-win32.o';
45 $sha1_asm_src='crypto/sha/asm/s1-win32.s';
46 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM";
47 }
48
49
50$obj='.o';
51$ofile='-o ';
52
53# EXE linking stuff
54$link='${CC}';
55$lflags='${CFLAGS}';
56$efile='-o ';
57$exep='';
58$ex_libs="-lwsock32 -lgdi32";
59
60# static library stuff
61$mklib='ar r';
62$mlflags='';
63$ranlib='ranlib';
64$plib='lib';
65$libp=".a";
66$shlibp=".a";
67$lfile='';
68
69$asm='as';
70$afile='-o ';
71#$bn_asm_obj="";
72#$bn_asm_src="";
73#$des_enc_obj="";
74#$des_enc_src="";
75#$bf_enc_obj="";
76#$bf_enc_src="";
77
78sub do_lib_rule
79 {
80 local($obj,$target,$name,$shlib)=@_;
81 local($ret,$_,$Name);
82
83 $target =~ s/\//$o/g if $o ne '/';
84 $target="$target";
85 ($Name=$name) =~ tr/a-z/A-Z/;
86
87 $ret.="$target: \$(${Name}OBJ)\n";
88 $ret.="\tif exist $target \$(RM) $target\n";
89 $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
90 $ret.="\t\$(RANLIB) $target\n\n";
91 }
92
93sub do_link_rule
94 {
95 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
96 local($ret,$_);
97
98 $file =~ s/\//$o/g if $o ne '/';
99 $n=&bname($target);
100 $ret.="$target: $files $dep_libs\n";
101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
102 if (defined $sha1file)
103 {
104 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
105 }
106 $ret.="\n";
107 return($ret);
108 }
1091;
diff --git a/src/lib/libcrypto/util/pl/OS2-EMX.pl b/src/lib/libcrypto/util/pl/OS2-EMX.pl
new file mode 100644
index 0000000000..75d72ebbcb
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/OS2-EMX.pl
@@ -0,0 +1,124 @@
1#!/usr/local/bin/perl
2#
3# OS2-EMX.pl - for EMX GCC on OS/2
4#
5
6$o='/';
7$cp='cp';
8$rm='rm -f';
9
10$preamble = "SHELL=sh\n";
11
12# C compiler stuff
13
14$cc='gcc';
15$cflags="-DL_ENDIAN -O3 -fomit-frame-pointer -m486 -Zmtd -Wall ";
16$cflags.="-Zomf " if $shlib;
17$shl_cflag="-Zdll";
18
19if ($debug) {
20 $cflags.="-g ";
21}
22
23$obj=$shlib ? '.obj' : '.o';
24$ofile='-o ';
25
26# EXE linking stuff
27$link='${CC}';
28$lflags='${CFLAGS} -Zbsd-signals -s';
29$efile='-o ';
30$exep='.exe';
31$ex_libs="-lsocket";
32
33# static library stuff
34$mklib='ar r';
35$mlflags='';
36$ranlib="ar s";
37$plib='';
38$libp=$shlib ? ".lib" : ".a";
39$shlibp=$shlib ? ".dll" : ".a";
40$lfile='';
41
42$asm=$shlib ? 'as -Zomf' : 'as';
43$afile='-o ';
44$bn_asm_obj="";
45$bn_asm_src="";
46$des_enc_obj="";
47$des_enc_src="";
48$bf_enc_obj="";
49$bf_enc_src="";
50
51if (!$no_asm && !$fips)
52 {
53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj";
54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm";
55 $des_enc_obj="crypto/des/asm/d-os2$obj crypto/des/asm/y-os2$obj";
56 $des_enc_src="crypto/des/asm/d-os2.asm crypto/des/asm/y-os2.asm";
57 $bf_enc_obj="crypto/bf/asm/b-os2$obj";
58 $bf_enc_src="crypto/bf/asm/b-os2.asm";
59 $cast_enc_obj="crypto/cast/asm/c-os2$obj";
60 $cast_enc_src="crypto/cast/asm/c-os2.asm";
61 $rc4_enc_obj="crypto/rc4/asm/r4-os2$obj";
62 $rc4_enc_src="crypto/rc4/asm/r4-os2.asm";
63 $rc5_enc_obj="crypto/rc5/asm/r5-os2$obj";
64 $rc5_enc_src="crypto/rc5/asm/r5-os2.asm";
65 $md5_asm_obj="crypto/md5/asm/m5-os2$obj";
66 $md5_asm_src="crypto/md5/asm/m5-os2.asm";
67 $sha1_asm_obj="crypto/sha/asm/s1-os2$obj";
68 $sha1_asm_src="crypto/sha/asm/s1-os2.asm";
69 $rmd160_asm_obj="crypto/ripemd/asm/rm-os2$obj";
70 $rmd160_asm_src="crypto/ripemd/asm/rm-os2.asm";
71 }
72
73if ($shlib)
74 {
75 $mlflags.=" $lflags -Zdll";
76 $lib_cflag=" -D_DLL";
77 $out_def="out_dll";
78 $tmp_def="tmp_dll";
79 }
80
81sub do_lib_rule
82 {
83 local($obj,$target,$name,$shlib)=@_;
84 local($ret,$_,$Name);
85
86 $target =~ s/\//$o/g if $o ne '/';
87 $target="$target";
88 ($Name=$name) =~ tr/a-z/A-Z/;
89
90 $ret.="$target: \$(${Name}OBJ)\n";
91 if (!$shlib)
92 {
93 $ret.="\t\$(RM) $target\n";
94 $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
95 $ret.="\t\$(RANLIB) $target\n\n";
96 }
97 else
98 {
99 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
100 $ex.=' -lsocket';
101 $ret.="\t\$(LINK) \$(SHLIB_CFLAGS) \$(MLFLAGS) $efile$target \$(SHLIB_EX_OBJ) \$(${Name}OBJ) $ex os2/${Name}.def\n";
102 $ret.="\temximp -o $out_def/$name.a os2/${Name}.def\n";
103 $ret.="\temximp -o $out_def/$name.lib os2/${Name}.def\n\n";
104 }
105 }
106
107sub do_link_rule
108 {
109 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
110 local($ret,$_);
111
112 $file =~ s/\//$o/g if $o ne '/';
113 $n=&bname($target);
114 $ret.="$target: $files $dep_libs\n";
115 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n";
116 if (defined $sha1file)
117 {
118 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
119 }
120 $ret.="\n";
121 return($ret);
122 }
123
1241;
diff --git a/src/lib/libcrypto/util/pl/VC-16.pl b/src/lib/libcrypto/util/pl/VC-16.pl
new file mode 100644
index 0000000000..564ba3fd08
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/VC-16.pl
@@ -0,0 +1,177 @@
1#!/usr/local/bin/perl
2# VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries
3#
4
5$ssl= "ssleay16";
6$crypto="libeay16";
7
8$o='\\';
9$cp='copy';
10$rm='del';
11
12# C compiler stuff
13$cc='cl';
14
15$out_def="out16";
16$tmp_def="tmp16";
17$inc_def="inc16";
18
19if ($debug)
20 {
21 $op="/Od /Zi /Zd";
22 $base_lflags="/CO";
23 }
24else {
25 $op="/G2 /f- /Ocgnotb2";
26 }
27$base_lflags.=" /FARCALL /NOLOGO /NOD /SEG:1024 /ONERROR:NOEXE /NOE /PACKC:60000";
28if ($win16) { $base_lflags.=" /PACKD:60000"; }
29
30$cflags="/ALw /Gx- /Gt256 /Gf $op /W3 /WX -DL_ENDIAN /nologo";
31# I add the stack opt
32$lflags="$base_lflags /STACK:20000";
33
34if ($win16)
35 {
36 $cflags.=" -DOPENSSL_SYSNAME_WIN16";
37 $app_cflag="/Gw /FPi87";
38 $lib_cflag="/Gw";
39 $lib_cflag.=" -D_WINDLL -D_DLL" if $shlib;
40 $lib_cflag.=" -DWIN16TTY" if !$shlib;
41 $lflags.=" /ALIGN:256";
42 $ex_libs.="oldnames llibcewq libw";
43 }
44else
45 {
46 $no_sock=1;
47 $cflags.=" -DMSDOS";
48 $lflags.=" /EXEPACK";
49 $ex_libs.="oldnames.lib llibce.lib";
50 }
51
52if ($shlib)
53 {
54 $mlflags="$base_lflags";
55 $libs="oldnames ldllcew libw";
56 $shlib_ex_obj="";
57# $no_asm=1;
58 $out_def="out16dll";
59 $tmp_def="tmp16dll";
60 }
61else
62 { $mlflags=''; }
63
64$app_ex_obj="";
65
66$obj='.obj';
67$ofile="/Fo";
68
69# EXE linking stuff
70$link="link";
71$efile="";
72$exep='.exe';
73$ex_libs.=$no_sock?"":" winsock";
74
75# static library stuff
76$mklib='lib /PAGESIZE:1024';
77$ranlib='';
78$plib="";
79$libp=".lib";
80$shlibp=($shlib)?".dll":".lib";
81$lfile='';
82
83$asm='ml /Cp /c /Cx';
84$afile='/Fo';
85
86$bn_asm_obj='';
87$bn_asm_src='';
88$des_enc_obj='';
89$des_enc_src='';
90$bf_enc_obj='';
91$bf_enc_src='';
92
93if (!$no_asm && !$fips)
94 {
95 if ($asmbits == 32)
96 {
97 $bn_asm_obj='crypto\bn\asm\x86w32.obj';
98 $bn_asm_src='crypto\bn\asm\x86w32.asm';
99 }
100 else
101 {
102 $bn_asm_obj='crypto\bn\asm\x86w16.obj';
103 $bn_asm_src='crypto\bn\asm\x86w16.asm';
104 }
105 }
106
107sub do_lib_rule
108 {
109 local($objs,$target,$name,$shlib)=@_;
110 local($ret,$Name);
111
112 $taget =~ s/\//$o/g if $o ne '/';
113 ($Name=$name) =~ tr/a-z/A-Z/;
114
115# $target="\$(LIB_D)$o$target";
116 $ret.="$target: $objs\n";
117# $ret.="\t\$(RM) \$(O_$Name)\n";
118
119 # Due to a pathetic line length limit, I unwrap the args.
120 local($lib_names)="";
121 local($dll_names)=" \$(SHLIB_EX_OBJ) +\n";
122 ($obj)= ($objs =~ /\((.*)\)/);
123 foreach $_ (sort split(/\s+/,$Vars{$obj}))
124 {
125 $lib_names.="+$_ &\n";
126 $dll_names.=" $_ +\n";
127 }
128
129 if (!$shlib)
130 {
131 $ret.="\tdel $target\n";
132 $ret.="\t\$(MKLIB) @<<\n$target\ny\n$lib_names\n\n<<\n";
133 }
134 else
135 {
136 local($ex)=($target =~ /O_SSL/)?'$(L_CRYPTO)':"";
137 $ex.=' winsock';
138 $ret.="\t\$(LINK) \$(MLFLAGS) @<<\n";
139 $ret.=$dll_names;
140 $ret.="\n $target\n\n $ex $libs\nms$o${name}.def;\n<<\n";
141 ($out_lib=$target) =~ s/O_/L_/;
142 $ret.="\timplib /noignorecase /nowep $out_lib $target\n";
143 }
144 $ret.="\n";
145 return($ret);
146 }
147
148sub do_link_rule
149 {
150 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
151 local($ret,$f,$_,@f);
152
153 $file =~ s/\//$o/g if $o ne '/';
154 $n=&bname($targer);
155 $ret.="$target: $files $dep_libs\n";
156 $ret.=" \$(LINK) \$(LFLAGS) @<<\n";
157
158 # Due to a pathetic line length limit, I have to unwrap the args.
159 if ($files =~ /\(([^)]*)\)$/)
160 {
161 @a=('$(APP_EX_OBJ)');
162 push(@a,sort split(/\s+/,$Vars{$1}));
163 for $_ (@a)
164 { $ret.=" $_ +\n"; }
165 }
166 else
167 { $ret.=" \$(APP_EX_OBJ) $files"; }
168 $ret.="\n $target\n\n $libs\n\n<<\n";
169 if (defined $sha1file)
170 {
171 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
172 }
173 $ret.="\n";
174 return($ret);
175 }
176
1771;
diff --git a/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl b/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl
new file mode 100644
index 0000000000..b5bbcac6c2
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl
@@ -0,0 +1,222 @@
1#!/usr/local/bin/perl
2# VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries
3#
4
5
6if ($fips && !$shlib)
7 {
8 $crypto="libeayfips32";
9 $crypto_compat = "libeaycompat32.lib";
10 }
11else
12 {
13 $crypto="libeay32";
14 }
15$ssl= "ssleay32";
16
17$o='/';
18#$cp='copy nul+'; # Timestamps get stuffed otherwise
19#$rm='del';
20
21$cp='cp';
22$rm='rm';
23
24$zlib_lib="zlib1.lib";
25
26# C compiler stuff
27$cc='cl';
28$cflags=' -MD -W3 -WX -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
29$cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
30$cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
31$lflags="-nologo -subsystem:console -machine:I386 -opt:ref";
32$mlflags='';
33
34$out_def="gmout32";
35$tmp_def="gmtmp32";
36$inc_def="gminc32";
37
38if ($debug)
39 {
40 $cflags=" -MDd -W3 -WX -Zi -Yd -Od -nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
41 $lflags.=" -debug";
42 $mlflags.=' -debug';
43 }
44$cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1;
45
46$obj='.obj';
47$ofile="-Fo";
48
49# EXE linking stuff
50$link="link";
51$efile="-out:";
52$exep='.exe';
53if ($no_sock)
54 { $ex_libs=""; }
55else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; }
56
57# static library stuff
58$mklib='lib';
59$ranlib='';
60$plib="";
61$libp=".lib";
62$shlibp=($shlib)?".dll":".lib";
63$lfile='-out:';
64
65$shlib_ex_obj="";
66$app_ex_obj="setargv.obj";
67if ($nasm) {
68 $asm='nasmw -f win32';
69 $afile='-o ';
70} else {
71 $asm='ml -Cp -coff -c -Cx';
72 $asm.=" -Zi" if $debug;
73 $afile='-Fo';
74}
75
76$bn_asm_obj='';
77$bn_asm_src='';
78$des_enc_obj='';
79$des_enc_src='';
80$bf_enc_obj='';
81$bf_enc_src='';
82
83if (!$no_asm && !$fips)
84 {
85 $bn_asm_obj='crypto/bn/asm/bn_win32.obj';
86 $bn_asm_src='crypto/bn/asm/bn_win32.asm';
87 $des_enc_obj='crypto/des/asm/d_win32.obj crypto/des/asm/y_win32.obj';
88 $des_enc_src='crypto/des/asm/d_win32.asm crypto/des/asm/y_win32.asm';
89 $bf_enc_obj='crypto/bf/asm/b_win32.obj';
90 $bf_enc_src='crypto/bf/asm/b_win32.asm';
91 $cast_enc_obj='crypto/cast/asm/c_win32.obj';
92 $cast_enc_src='crypto/cast/asm/c_win32.asm';
93 $rc4_enc_obj='crypto/rc4/asm/r4_win32.obj';
94 $rc4_enc_src='crypto/rc4/asm/r4_win32.asm';
95 $rc5_enc_obj='crypto/rc5/asm/r5_win32.obj';
96 $rc5_enc_src='crypto/rc5/asm/r5_win32.asm';
97 $md5_asm_obj='crypto/md5/asm/m5_win32.obj';
98 $md5_asm_src='crypto/md5/asm/m5_win32.asm';
99 $sha1_asm_obj='crypto/sha/asm/s1_win32.obj';
100 $sha1_asm_src='crypto/sha/asm/s1_win32.asm';
101 $rmd160_asm_obj='crypto/ripemd/asm/rm_win32.obj';
102 $rmd160_asm_src='crypto/ripemd/asm/rm_win32.asm';
103 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
104 }
105
106if ($shlib)
107 {
108 $mlflags.=" $lflags -dll";
109# $cflags =~ s| -MD| -MT|;
110 $lib_cflag=" -D_WINDLL";
111 $out_def="gmout32dll";
112 $tmp_def="gmtmp32dll";
113 }
114
115$cflags.=" -Fd$out_def";
116
117sub do_lib_rule
118 {
119 local($objs,$target,$name,$shlib,$ign,$base_addr, $fips_get_sig, $fips_premain_src)=@_;
120 local($ret,$Name);
121
122 $taget =~ s/\//$o/g if $o ne '/';
123 ($Name=$name) =~ tr/a-z/A-Z/;
124 my $base_arg;
125 if ($base_addr ne "")
126 {
127 $base_arg= " -base:$base_addr";
128 }
129 else
130 {
131 $base_arg = "";
132 }
133
134
135# $target="\$(LIB_D)$o$target";
136 if (!$shlib)
137 {
138# $ret.="\t\$(RM) \$(O_$Name)\n";
139 $ret.="$target: $objs\n";
140 $ex =' advapi32.lib';
141 $ret.="\t\$(MKLIB) $lfile$target $objs $ex\n\n";
142 }
143 else
144 {
145 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
146 $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
147 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
148 if (defined $fips_get_sig)
149 {
150 $ret.="$target: \$(O_FIPSCANISTER) $objs $fips_get_sig\n";
151 $ret.="\tFIPS_LINK=\$(LINK) ";
152 $ret.="FIPS_CC=\$(CC) ";
153 $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" ";
154 $ret.="FIPS_PREMAIN_DSO=$fips_get_sig ";
155 $ret.="FIPS_TARGET=$target ";
156 $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) ";
157 $ret.="\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
158 $ret.="-def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs ";
159 $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n\n";
160 }
161 else
162 {
163 $ret.="$target: $objs\n";
164 $ret.="\t\$(LINK) \$(MLFLAGS) $base_arg $efile$target /def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs $ex\n\n";
165 }
166 }
167 $ret.="\n";
168 return($ret);
169 }
170
171sub do_link_rule
172 {
173 local($target,$files,$dep_libs,$libs,$standalone)=@_;
174 local($ret,$_);
175 $file =~ s/\//$o/g if $o ne '/';
176 $n=&bname($targer);
177 if ($standalone)
178 {
179 $ret.="$target: $files $dep_libs\n";
180 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
181 $ret.="$files $libs\n\n";
182 }
183 elsif ($fips && !$shlib)
184 {
185 $ret.="$target: \$(O_FIPSCANISTER) $files $dep_libs\n";
186 $ret.="\tFIPS_LINK=\$(LINK) ";
187 $ret.="FIPS_CC=\$(CC) ";
188 $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" ";
189 $ret.="FIPS_PREMAIN_DSO= ";
190 $ret.="FIPS_TARGET=$target ";
191 $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) ";
192 $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target ";
193 $ret.="\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n\n";
194 }
195 else
196 {
197 $ret.="$target: $files $dep_libs\n";
198 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
199 $ret.="\$(APP_EX_OBJ) $files $libs\n\n";
200 }
201 $ret.="\n";
202 return($ret);
203 }
204
205sub do_rlink_rule
206 {
207 local($target,$files,$check_hash, $deps)=@_;
208 local($ret,$_);
209
210 $file =~ s/\//$o/g if $o ne '/';
211 $n=&bname($targer);
212 $ret.="$target: $check_hash $files $deps\n";
213 $ret.="\t\$(PERL) util${o}checkhash.pl -chdir fips-1.0 -program_path ..$o$check_hash\n";
214 $ret.="\t\$(MKCANISTER) $target $files\n";
215 $ret.="\t$check_hash $target > $target.sha1\n";
216 $ret.="\t\$(CP) fips-1.0${o}fips_premain.c \$(FIPSLIB_D)\n";
217 $ret.="\t$check_hash \$(FIPSLIB_D)${o}fips_premain.c > \$(FIPSLIB_D)${o}fips_premain.c.sha1\n\n";
218 return($ret);
219 }
220
221
2221;
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
new file mode 100644
index 0000000000..cf689b9feb
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -0,0 +1,145 @@
1#!/usr/local/bin/perl
2# VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries
3#
4
5$ssl= "ssleay32";
6$crypto="libeay32";
7
8$o='\\';
9$cp='copy nul+'; # Timestamps get stuffed otherwise
10$rm='del';
11
12# C compiler stuff
13$cc='cl';
14$cflags=' /MD /W3 /WX /G5 /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
15$lflags="/nologo /subsystem:console /machine:I386 /opt:ref";
16$mlflags='';
17
18$out_def="out32";
19$tmp_def="tmp32";
20$inc_def="inc32";
21
22if ($debug)
23 {
24 $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
25 $lflags.=" /debug";
26 $mlflags.=' /debug';
27 }
28$cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1;
29
30$obj='.obj';
31$ofile="/Fo";
32
33# EXE linking stuff
34$link="link";
35$efile="/out:";
36$exep='.exe';
37if ($no_sock)
38 { $ex_libs=""; }
39else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; }
40
41# static library stuff
42$mklib='lib';
43$ranlib='';
44$plib="";
45$libp=".lib";
46$shlibp=($shlib)?".dll":".lib";
47$lfile='/out:';
48
49$shlib_ex_obj="";
50$app_ex_obj="setargv.obj";
51if ($nasm) {
52 $asm='nasmw -f win32';
53 $afile='-o ';
54} else {
55 $asm='ml /Cp /coff /c /Cx';
56 $asm.=" /Zi" if $debug;
57 $afile='/Fo';
58}
59
60$bn_asm_obj='';
61$bn_asm_src='';
62$des_enc_obj='';
63$des_enc_src='';
64$bf_enc_obj='';
65$bf_enc_src='';
66
67if (!$no_asm && !$fips)
68 {
69 $bn_asm_obj='crypto\bn\asm\bn_win32.obj';
70 $bn_asm_src='crypto\bn\asm\bn_win32.asm';
71 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj';
72 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm';
73 $bf_enc_obj='crypto\bf\asm\b_win32.obj';
74 $bf_enc_src='crypto\bf\asm\b_win32.asm';
75 $cast_enc_obj='crypto\cast\asm\c_win32.obj';
76 $cast_enc_src='crypto\cast\asm\c_win32.asm';
77 $rc4_enc_obj='crypto\rc4\asm\r4_win32.obj';
78 $rc4_enc_src='crypto\rc4\asm\r4_win32.asm';
79 $rc5_enc_obj='crypto\rc5\asm\r5_win32.obj';
80 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm';
81 $md5_asm_obj='crypto\md5\asm\m5_win32.obj';
82 $md5_asm_src='crypto\md5\asm\m5_win32.asm';
83 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj';
84 $sha1_asm_src='crypto\sha\asm\s1_win32.asm';
85 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
86 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm';
87 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
88 }
89
90if ($shlib)
91 {
92 $mlflags.=" $lflags /dll";
93# $cflags =~ s| /MD| /MT|;
94 $lib_cflag=" -D_WINDLL";
95 $out_def="out32dll";
96 $tmp_def="tmp32dll";
97 }
98
99$cflags.=" /Fd$out_def";
100
101sub do_lib_rule
102 {
103 local($objs,$target,$name,$shlib)=@_;
104 local($ret,$Name);
105
106 $taget =~ s/\//$o/g if $o ne '/';
107 ($Name=$name) =~ tr/a-z/A-Z/;
108
109# $target="\$(LIB_D)$o$target";
110 $ret.="$target: $objs\n";
111 if (!$shlib)
112 {
113# $ret.="\t\$(RM) \$(O_$Name)\n";
114 $ex =' advapi32.lib';
115 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n";
116 }
117 else
118 {
119 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
120 $ex.=' wsock32.lib gdi32.lib advapi32.lib';
121 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
122 }
123 $ret.="\n";
124 return($ret);
125 }
126
127sub do_link_rule
128 {
129 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
130 local($ret,$_);
131
132 $file =~ s/\//$o/g if $o ne '/';
133 $n=&bname($targer);
134 $ret.="$target: $files $dep_libs\n";
135 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
136 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
137 if (defined $sha1file)
138 {
139 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
140 }
141 $ret.="\n";
142 return($ret);
143 }
144
1451;
diff --git a/src/lib/libcrypto/util/pl/VC-CE.pl b/src/lib/libcrypto/util/pl/VC-CE.pl
new file mode 100644
index 0000000000..2fd0c4dd32
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/VC-CE.pl
@@ -0,0 +1,116 @@
1#!/usr/local/bin/perl
2# VC-CE.pl - the file for eMbedded Visual C++ 3.0 for windows CE, static libraries
3#
4
5$ssl= "ssleay32";
6$crypto="libeay32";
7$RSAref="RSAref32";
8
9$o='\\';
10$cp='copy nul+'; # Timestamps get stuffed otherwise
11$rm='del';
12
13# C compiler stuff
14$cc='$(CC)';
15$cflags=' /W3 /WX /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo $(WCETARGETDEFS) -DUNICODE -D_UNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include';
16$lflags='/nologo /subsystem:windowsce,$(WCELDVERSION) /machine:$(WCELDMACHINE) /opt:ref';
17$mlflags='';
18
19$out_def='out32_$(TARGETCPU)';
20$tmp_def='tmp32_$(TARGETCPU)';
21$inc_def="inc32";
22
23if ($debug)
24 {
25 $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DWIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
26 $lflags.=" /debug";
27 $mlflags.=' /debug';
28 }
29
30$obj='.obj';
31$ofile="/Fo";
32
33# EXE linking stuff
34$link="link";
35$efile="/out:";
36$exep='.exe';
37if ($no_sock)
38 { $ex_libs=""; }
39else { $ex_libs='winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib $(WCELDFLAGS)'; }
40
41# static library stuff
42$mklib='lib';
43$ranlib='';
44$plib="";
45$libp=".lib";
46$shlibp=($shlib)?".dll":".lib";
47$lfile='/out:';
48
49$shlib_ex_obj="";
50$app_ex_obj="";
51$app_ex_obj="";
52
53$bn_asm_obj='';
54$bn_asm_src='';
55$des_enc_obj='';
56$des_enc_src='';
57$bf_enc_obj='';
58$bf_enc_src='';
59
60if ($shlib)
61 {
62 $mlflags.=" $lflags /dll";
63# $cflags =~ s| /MD| /MT|;
64 $lib_cflag=" -D_WINDLL -D_DLL";
65 $out_def='out32dll_$(TARGETCPU)';
66 $tmp_def='tmp32dll_$(TARGETCPU)';
67 }
68
69$cflags.=" /Fd$out_def";
70
71sub do_lib_rule
72 {
73 local($objs,$target,$name,$shlib)=@_;
74 local($ret,$Name);
75
76 $taget =~ s/\//$o/g if $o ne '/';
77 ($Name=$name) =~ tr/a-z/A-Z/;
78
79# $target="\$(LIB_D)$o$target";
80 $ret.="$target: $objs\n";
81 if (!$shlib)
82 {
83# $ret.="\t\$(RM) \$(O_$Name)\n";
84 $ex =' ';
85 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n";
86 }
87 else
88 {
89 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
90# $ex.=' winsock.lib coredll.lib $(WCECOMPAT)/lib/wcecompatex.lib';
91 $ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib';
92 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
93 }
94 $ret.="\n";
95 return($ret);
96 }
97
98sub do_link_rule
99 {
100 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
101 local($ret,$_);
102
103 $file =~ s/\//$o/g if $o ne '/';
104 $n=&bname($targer);
105 $ret.="$target: $files $dep_libs\n";
106 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
107 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
108 if (defined $sha1file)
109 {
110 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
111 }
112 $ret.="\n";
113 return($ret);
114 }
115
1161;
diff --git a/src/lib/libcrypto/util/pl/linux.pl b/src/lib/libcrypto/util/pl/linux.pl
new file mode 100644
index 0000000000..df05c40526
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/linux.pl
@@ -0,0 +1,109 @@
1#!/usr/local/bin/perl
2#
3# linux.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12$cc='gcc';
13if ($debug)
14 { $cflags="-g2 -ggdb -DREF_CHECK -DCRYPTO_MDEBUG"; }
15elsif ($profile)
16 { $cflags="-pg -O3"; }
17else
18 { $cflags="-O3 -fomit-frame-pointer"; }
19
20if (!$no_asm)
21 {
22 $bn_asm_obj='$(OBJ_D)/bn86-elf.o';
23 $bn_asm_src='crypto/bn/asm/bn86unix.cpp';
24 $bnco_asm_obj='$(OBJ_D)/co86-elf.o';
25 $bnco_asm_src='crypto/bn/asm/co86unix.cpp';
26 $des_enc_obj='$(OBJ_D)/dx86-elf.o $(OBJ_D)/yx86-elf.o';
27 $des_enc_src='crypto/des/asm/dx86unix.cpp crypto/des/asm/yx86unix.cpp';
28 $bf_enc_obj='$(OBJ_D)/bx86-elf.o';
29 $bf_enc_src='crypto/bf/asm/bx86unix.cpp';
30 $cast_enc_obj='$(OBJ_D)/cx86-elf.o';
31 $cast_enc_src='crypto/cast/asm/cx86unix.cpp';
32 $rc4_enc_obj='$(OBJ_D)/rx86-elf.o';
33 $rc4_enc_src='crypto/rc4/asm/rx86unix.cpp';
34 $rc5_enc_obj='$(OBJ_D)/r586-elf.o';
35 $rc5_enc_src='crypto/rc5/asm/r586unix.cpp';
36 $md5_asm_obj='$(OBJ_D)/mx86-elf.o';
37 $md5_asm_src='crypto/md5/asm/mx86unix.cpp';
38 $rmd160_asm_obj='$(OBJ_D)/rm86-elf.o';
39 $rmd160_asm_src='crypto/ripemd/asm/rm86unix.cpp';
40 $sha1_asm_obj='$(OBJ_D)/sx86-elf.o';
41 $sha1_asm_src='crypto/sha/asm/sx86unix.cpp';
42 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM";
43 }
44
45$cflags.=" -DTERMIO -DL_ENDIAN -m486 -Wall";
46
47if ($shlib)
48 {
49 $shl_cflag=" -DPIC -fpic";
50 $shlibp=".so.$ssl_version";
51 $so_shlibp=".so";
52 }
53
54sub do_shlib_rule
55 {
56 local($obj,$target,$name,$shlib,$so_name)=@_;
57 local($ret,$_,$Name);
58
59 $target =~ s/\//$o/g if $o ne '/';
60 ($Name=$name) =~ tr/a-z/A-Z/;
61
62 $ret.="$target: \$(${Name}OBJ)\n";
63 $ret.="\t\$(RM) target\n";
64 $ret.="\tgcc \${CFLAGS} -shared -Wl,-soname,$target -o $target \$(${Name}OBJ)\n";
65 ($t=$target) =~ s/(^.*)\/[^\/]*$/$1/;
66 if ($so_name ne "")
67 {
68 $ret.="\t\$(RM) \$(LIB_D)$o$so_name\n";
69 $ret.="\tln -s $target \$(LIB_D)$o$so_name\n\n";
70 }
71 }
72
73sub do_link_rule
74 {
75 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
76 local($ret,$_);
77
78 $file =~ s/\//$o/g if $o ne '/';
79 $n=&bname($target);
80 $ret.="$target: $files $dep_libs\n";
81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
82 if (defined $sha1file)
83 {
84 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
85 }
86 $ret.="\n";
87 return($ret);
88 }
89
90sub do_asm_rule
91 {
92 local($target,$src)=@_;
93 local($ret,@s,@t,$i);
94
95 $target =~ s/\//$o/g if $o ne "/";
96 $src =~ s/\//$o/g if $o ne "/";
97
98 @s=split(/\s+/,$src);
99 @t=split(/\s+/,$target);
100
101 for ($i=0; $i<=$#s; $i++)
102 {
103 $ret.="$t[$i]: $s[$i]\n";
104 $ret.="\tgcc -E -DELF \$(SRC_D)$o$s[$i]|\$(AS) $afile$t[$i]\n\n";
105 }
106 return($ret);
107 }
108
1091;
diff --git a/src/lib/libcrypto/util/pl/ultrix.pl b/src/lib/libcrypto/util/pl/ultrix.pl
new file mode 100644
index 0000000000..447b854708
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/ultrix.pl
@@ -0,0 +1,43 @@
1#!/usr/local/bin/perl
2#
3# linux.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12$cc='cc';
13if ($debug)
14 { $cflags="-g -DREF_CHECK -DCRYPTO_MDEBUG"; }
15else
16 { $cflags="-O2"; }
17
18$cflags.=" -std1 -DL_ENDIAN";
19
20if (!$no_asm && !$fips)
21 {
22 $bn_asm_obj='$(OBJ_D)/mips1.o';
23 $bn_asm_src='crypto/bn/asm/mips1.s';
24 }
25
26sub do_link_rule
27 {
28 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
29 local($ret,$_);
30
31 $file =~ s/\//$o/g if $o ne '/';
32 $n=&bname($target);
33 $ret.="$target: $files $dep_libs\n";
34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
35 if (defined $sha1file)
36 {
37 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
38 }
39 $ret.="\n";
40 return($ret);
41 }
42
431;
diff --git a/src/lib/libcrypto/util/pl/unix.pl b/src/lib/libcrypto/util/pl/unix.pl
new file mode 100644
index 0000000000..bbd1798a2e
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/unix.pl
@@ -0,0 +1,101 @@
1#!/usr/local/bin/perl
2#
3# unix.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12if ($gcc)
13 {
14 $cc='gcc';
15 if ($debug)
16 { $cflags="-g2 -ggdb"; }
17 else
18 { $cflags="-O3 -fomit-frame-pointer"; }
19 }
20else
21 {
22 $cc='cc';
23 if ($debug)
24 { $cflags="-g"; }
25 else
26 { $cflags="-O"; }
27 }
28$obj='.o';
29$ofile='-o ';
30
31# EXE linking stuff
32$link='${CC}';
33$lflags='${CFLAGS}';
34$efile='-o ';
35$exep='';
36$ex_libs="";
37
38# static library stuff
39$mklib='ar r';
40$mlflags='';
41$ranlib=&which("ranlib") or $ranlib="true";
42$plib='lib';
43$libp=".a";
44$shlibp=".a";
45$lfile='';
46
47$asm='as';
48$afile='-o ';
49$bn_asm_obj="";
50$bn_asm_src="";
51$des_enc_obj="";
52$des_enc_src="";
53$bf_enc_obj="";
54$bf_enc_src="";
55
56sub do_lib_rule
57 {
58 local($obj,$target,$name,$shlib)=@_;
59 local($ret,$_,$Name);
60
61 $target =~ s/\//$o/g if $o ne '/';
62 $target="$target";
63 ($Name=$name) =~ tr/a-z/A-Z/;
64
65 $ret.="$target: \$(${Name}OBJ)\n";
66 $ret.="\t\$(RM) $target\n";
67 $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
68 $ret.="\t\$(RANLIB) $target\n\n";
69 }
70
71sub do_link_rule
72 {
73 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
74 local($ret,$_);
75
76 $file =~ s/\//$o/g if $o ne '/';
77 $n=&bname($target);
78 $ret.="$target: $files $dep_libs\n";
79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
80 if (defined $sha1file)
81 {
82 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
83 }
84 $ret.="\n";
85 return($ret);
86 }
87
88sub which
89 {
90 my ($name)=@_;
91 my $path;
92 foreach $path (split /:/, $ENV{PATH})
93 {
94 if (-x "$path/$name")
95 {
96 return "$path/$name";
97 }
98 }
99 }
100
1011;
diff --git a/src/lib/libcrypto/util/pod2man.pl b/src/lib/libcrypto/util/pod2man.pl
new file mode 100644
index 0000000000..657e4e264e
--- /dev/null
+++ b/src/lib/libcrypto/util/pod2man.pl
@@ -0,0 +1,1183 @@
1: #!/usr/bin/perl-5.005
2 eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
3 if $running_under_some_shell;
4
5$DEF_PM_SECTION = '3pm' || '3';
6
7=head1 NAME
8
9pod2man - translate embedded Perl pod directives into man pages
10
11=head1 SYNOPSIS
12
13B<pod2man>
14[ B<--section=>I<manext> ]
15[ B<--release=>I<relpatch> ]
16[ B<--center=>I<string> ]
17[ B<--date=>I<string> ]
18[ B<--fixed=>I<font> ]
19[ B<--official> ]
20[ B<--lax> ]
21I<inputfile>
22
23=head1 DESCRIPTION
24
25B<pod2man> converts its input file containing embedded pod directives (see
26L<perlpod>) into nroff source suitable for viewing with nroff(1) or
27troff(1) using the man(7) macro set.
28
29Besides the obvious pod conversions, B<pod2man> also takes care of
30func(), func(n), and simple variable references like $foo or @bar so
31you don't have to use code escapes for them; complex expressions like
32C<$fred{'stuff'}> will still need to be escaped, though. Other nagging
33little roffish things that it catches include translating the minus in
34something like foo-bar, making a long dash--like this--into a real em
35dash, fixing up "paired quotes", putting a little space after the
36parens in something like func(), making C++ and PI look right, making
37double underbars have a little tiny space between them, making ALLCAPS
38a teeny bit smaller in troff(1), and escaping backslashes so you don't
39have to.
40
41=head1 OPTIONS
42
43=over 8
44
45=item center
46
47Set the centered header to a specific string. The default is
48"User Contributed Perl Documentation", unless the C<--official> flag is
49given, in which case the default is "Perl Programmers Reference Guide".
50
51=item date
52
53Set the left-hand footer string to this value. By default,
54the modification date of the input file will be used.
55
56=item fixed
57
58The fixed font to use for code refs. Defaults to CW.
59
60=item official
61
62Set the default header to indicate that this page is of
63the standard release in case C<--center> is not given.
64
65=item release
66
67Set the centered footer. By default, this is the current
68perl release.
69
70=item section
71
72Set the section for the C<.TH> macro. The standard conventions on
73sections are to use 1 for user commands, 2 for system calls, 3 for
74functions, 4 for devices, 5 for file formats, 6 for games, 7 for
75miscellaneous information, and 8 for administrator commands. This works
76best if you put your Perl man pages in a separate tree, like
77F</usr/local/perl/man/>. By default, section 1 will be used
78unless the file ends in F<.pm> in which case section 3 will be selected.
79
80=item lax
81
82Don't complain when required sections aren't present.
83
84=back
85
86=head1 Anatomy of a Proper Man Page
87
88For those not sure of the proper layout of a man page, here's
89an example of the skeleton of a proper man page. Head of the
90major headers should be setout as a C<=head1> directive, and
91are historically written in the rather startling ALL UPPER CASE
92format, although this is not mandatory.
93Minor headers may be included using C<=head2>, and are
94typically in mixed case.
95
96=over 10
97
98=item NAME
99
100Mandatory section; should be a comma-separated list of programs or
101functions documented by this podpage, such as:
102
103 foo, bar - programs to do something
104
105=item SYNOPSIS
106
107A short usage summary for programs and functions, which
108may someday be deemed mandatory.
109
110=item DESCRIPTION
111
112Long drawn out discussion of the program. It's a good idea to break this
113up into subsections using the C<=head2> directives, like
114
115 =head2 A Sample Subection
116
117 =head2 Yet Another Sample Subection
118
119=item OPTIONS
120
121Some people make this separate from the description.
122
123=item RETURN VALUE
124
125What the program or function returns if successful.
126
127=item ERRORS
128
129Exceptions, return codes, exit stati, and errno settings.
130
131=item EXAMPLES
132
133Give some example uses of the program.
134
135=item ENVIRONMENT
136
137Envariables this program might care about.
138
139=item FILES
140
141All files used by the program. You should probably use the FE<lt>E<gt>
142for these.
143
144=item SEE ALSO
145
146Other man pages to check out, like man(1), man(7), makewhatis(8), or catman(8).
147
148=item NOTES
149
150Miscellaneous commentary.
151
152=item CAVEATS
153
154Things to take special care with; sometimes called WARNINGS.
155
156=item DIAGNOSTICS
157
158All possible messages the program can print out--and
159what they mean.
160
161=item BUGS
162
163Things that are broken or just don't work quite right.
164
165=item RESTRICTIONS
166
167Bugs you don't plan to fix :-)
168
169=item AUTHOR
170
171Who wrote it (or AUTHORS if multiple).
172
173=item HISTORY
174
175Programs derived from other sources sometimes have this, or
176you might keep a modification log here.
177
178=back
179
180=head1 EXAMPLES
181
182 pod2man program > program.1
183 pod2man some_module.pm > /usr/perl/man/man3/some_module.3
184 pod2man --section=7 note.pod > note.7
185
186=head1 DIAGNOSTICS
187
188The following diagnostics are generated by B<pod2man>. Items
189marked "(W)" are non-fatal, whereas the "(F)" errors will cause
190B<pod2man> to immediately exit with a non-zero status.
191
192=over 4
193
194=item bad option in paragraph %d of %s: ``%s'' should be [%s]<%s>
195
196(W) If you start include an option, you should set it off
197as bold, italic, or code.
198
199=item can't open %s: %s
200
201(F) The input file wasn't available for the given reason.
202
203=item Improper man page - no dash in NAME header in paragraph %d of %s
204
205(W) The NAME header did not have an isolated dash in it. This is
206considered important.
207
208=item Invalid man page - no NAME line in %s
209
210(F) You did not include a NAME header, which is essential.
211
212=item roff font should be 1 or 2 chars, not `%s' (F)
213
214(F) The font specified with the C<--fixed> option was not
215a one- or two-digit roff font.
216
217=item %s is missing required section: %s
218
219(W) Required sections include NAME, DESCRIPTION, and if you're
220using a section starting with a 3, also a SYNOPSIS. Actually,
221not having a NAME is a fatal.
222
223=item Unknown escape: %s in %s
224
225(W) An unknown HTML entity (probably for an 8-bit character) was given via
226a C<EE<lt>E<gt>> directive. Besides amp, lt, gt, and quot, recognized
227entities are Aacute, aacute, Acirc, acirc, AElig, aelig, Agrave, agrave,
228Aring, aring, Atilde, atilde, Auml, auml, Ccedil, ccedil, Eacute, eacute,
229Ecirc, ecirc, Egrave, egrave, ETH, eth, Euml, euml, Iacute, iacute, Icirc,
230icirc, Igrave, igrave, Iuml, iuml, Ntilde, ntilde, Oacute, oacute, Ocirc,
231ocirc, Ograve, ograve, Oslash, oslash, Otilde, otilde, Ouml, ouml, szlig,
232THORN, thorn, Uacute, uacute, Ucirc, ucirc, Ugrave, ugrave, Uuml, uuml,
233Yacute, yacute, and yuml.
234
235=item Unmatched =back
236
237(W) You have a C<=back> without a corresponding C<=over>.
238
239=item Unrecognized pod directive: %s
240
241(W) You specified a pod directive that isn't in the known list of
242C<=head1>, C<=head2>, C<=item>, C<=over>, C<=back>, or C<=cut>.
243
244
245=back
246
247=head1 NOTES
248
249If you would like to print out a lot of man page continuously, you
250probably want to set the C and D registers to set contiguous page
251numbering and even/odd paging, at least on some versions of man(7).
252Settting the F register will get you some additional experimental
253indexing:
254
255 troff -man -rC1 -rD1 -rF1 perl.1 perldata.1 perlsyn.1 ...
256
257The indexing merely outputs messages via C<.tm> for each
258major page, section, subsection, item, and any C<XE<lt>E<gt>>
259directives.
260
261
262=head1 RESTRICTIONS
263
264None at this time.
265
266=head1 BUGS
267
268The =over and =back directives don't really work right. They
269take absolute positions instead of offsets, don't nest well, and
270making people count is suboptimal in any event.
271
272=head1 AUTHORS
273
274Original prototype by Larry Wall, but so massively hacked over by
275Tom Christiansen such that Larry probably doesn't recognize it anymore.
276
277=cut
278
279$/ = "";
280$cutting = 1;
281@Indices = ();
282
283# We try first to get the version number from a local binary, in case we're
284# running an installed version of Perl to produce documentation from an
285# uninstalled newer version's pod files.
286if ($^O ne 'plan9' and $^O ne 'dos' and $^O ne 'os2' and $^O ne 'MSWin32') {
287 my $perl = (-x './perl' && -f './perl' ) ?
288 './perl' :
289 ((-x '../perl' && -f '../perl') ?
290 '../perl' :
291 '');
292 ($version,$patch) = `$perl -e 'print $]'` =~ /^(\d\.\d{3})(\d{2})?/ if $perl;
293}
294# No luck; we'll just go with the running Perl's version
295($version,$patch) = $] =~ /^(.{5})(\d{2})?/ unless $version;
296$DEF_RELEASE = "perl $version";
297$DEF_RELEASE .= ", patch $patch" if $patch;
298
299
300sub makedate {
301 my $secs = shift;
302 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secs);
303 my $mname = (qw{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec})[$mon];
304 $year += 1900;
305 return "$mday/$mname/$year";
306}
307
308use Getopt::Long;
309
310$DEF_SECTION = 1;
311$DEF_CENTER = "User Contributed Perl Documentation";
312$STD_CENTER = "Perl Programmers Reference Guide";
313$DEF_FIXED = 'CW';
314$DEF_LAX = 0;
315
316sub usage {
317 warn "$0: @_\n" if @_;
318 die <<EOF;
319usage: $0 [options] podpage
320Options are:
321 --section=manext (default "$DEF_SECTION")
322 --release=relpatch (default "$DEF_RELEASE")
323 --center=string (default "$DEF_CENTER")
324 --date=string (default "$DEF_DATE")
325 --fixed=font (default "$DEF_FIXED")
326 --official (default NOT)
327 --lax (default NOT)
328EOF
329}
330
331$uok = GetOptions( qw(
332 section=s
333 release=s
334 center=s
335 date=s
336 fixed=s
337 official
338 lax
339 help));
340
341$DEF_DATE = makedate((stat($ARGV[0]))[9] || time());
342
343usage("Usage error!") unless $uok;
344usage() if $opt_help;
345usage("Need one and only one podpage argument") unless @ARGV == 1;
346
347$section = $opt_section || ($ARGV[0] =~ /\.pm$/
348 ? $DEF_PM_SECTION : $DEF_SECTION);
349$RP = $opt_release || $DEF_RELEASE;
350$center = $opt_center || ($opt_official ? $STD_CENTER : $DEF_CENTER);
351$lax = $opt_lax || $DEF_LAX;
352
353$CFont = $opt_fixed || $DEF_FIXED;
354
355if (length($CFont) == 2) {
356 $CFont_embed = "\\f($CFont";
357}
358elsif (length($CFont) == 1) {
359 $CFont_embed = "\\f$CFont";
360}
361else {
362 die "roff font should be 1 or 2 chars, not `$CFont_embed'";
363}
364
365$date = $opt_date || $DEF_DATE;
366
367for (qw{NAME DESCRIPTION}) {
368# for (qw{NAME DESCRIPTION AUTHOR}) {
369 $wanna_see{$_}++;
370}
371$wanna_see{SYNOPSIS}++ if $section =~ /^3/;
372
373
374$name = @ARGV ? $ARGV[0] : "<STDIN>";
375$Filename = $name;
376if ($section =~ /^1/) {
377 require File::Basename;
378 $name = uc File::Basename::basename($name);
379}
380$name =~ s/\.(pod|p[lm])$//i;
381
382# Lose everything up to the first of
383# */lib/*perl* standard or site_perl module
384# */*perl*/lib from -D prefix=/opt/perl
385# */*perl*/ random module hierarchy
386# which works.
387$name =~ s-//+-/-g;
388if ($name =~ s-^.*?/lib/[^/]*perl[^/]*/--i
389 or $name =~ s-^.*?/[^/]*perl[^/]*/lib/--i
390 or $name =~ s-^.*?/[^/]*perl[^/]*/--i) {
391 # Lose ^site(_perl)?/.
392 $name =~ s-^site(_perl)?/--;
393 # Lose ^arch/. (XXX should we use Config? Just for archname?)
394 $name =~ s~^(.*-$^O|$^O-.*)/~~o;
395 # Lose ^version/.
396 $name =~ s-^\d+\.\d+/--;
397}
398
399# Translate Getopt/Long to Getopt::Long, etc.
400$name =~ s(/)(::)g;
401
402if ($name ne 'something') {
403 FCHECK: {
404 open(F, "< $ARGV[0]") || die "can't open $ARGV[0]: $!";
405 while (<F>) {
406 next unless /^=\b/;
407 if (/^=head1\s+NAME\s*$/) { # an /m would forgive mistakes
408 $_ = <F>;
409 unless (/\s*-+\s+/) {
410 $oops++;
411 warn "$0: Improper man page - no dash in NAME header in paragraph $. of $ARGV[0]\n"
412 } else {
413 my @n = split /\s+-+\s+/;
414 if (@n != 2) {
415 $oops++;
416 warn "$0: Improper man page - malformed NAME header in paragraph $. of $ARGV[0]\n"
417 }
418 else {
419 $n[0] =~ s/\n/ /g;
420 $n[1] =~ s/\n/ /g;
421 %namedesc = @n;
422 }
423 }
424 last FCHECK;
425 }
426 next if /^=cut\b/; # DB_File and Net::Ping have =cut before NAME
427 next if /^=pod\b/; # It is OK to have =pod before NAME
428 die "$0: Invalid man page - 1st pod line is not NAME in $ARGV[0]\n" unless $lax;
429 }
430 die "$0: Invalid man page - no documentation in $ARGV[0]\n" unless $lax;
431 }
432 close F;
433}
434
435print <<"END";
436.rn '' }`
437''' \$RCSfile\$\$Revision\$\$Date\$
438'''
439''' \$Log\$
440'''
441.de Sh
442.br
443.if t .Sp
444.ne 5
445.PP
446\\fB\\\\\$1\\fR
447.PP
448..
449.de Sp
450.if t .sp .5v
451.if n .sp
452..
453.de Ip
454.br
455.ie \\\\n(.\$>=3 .ne \\\\\$3
456.el .ne 3
457.IP "\\\\\$1" \\\\\$2
458..
459.de Vb
460.ft $CFont
461.nf
462.ne \\\\\$1
463..
464.de Ve
465.ft R
466
467.fi
468..
469'''
470'''
471''' Set up \\*(-- to give an unbreakable dash;
472''' string Tr holds user defined translation string.
473''' Bell System Logo is used as a dummy character.
474'''
475.tr \\(*W-|\\(bv\\*(Tr
476.ie n \\{\\
477.ds -- \\(*W-
478.ds PI pi
479.if (\\n(.H=4u)&(1m=24u) .ds -- \\(*W\\h'-12u'\\(*W\\h'-12u'-\\" diablo 10 pitch
480.if (\\n(.H=4u)&(1m=20u) .ds -- \\(*W\\h'-12u'\\(*W\\h'-8u'-\\" diablo 12 pitch
481.ds L" ""
482.ds R" ""
483''' \\*(M", \\*(S", \\*(N" and \\*(T" are the equivalent of
484''' \\*(L" and \\*(R", except that they are used on ".xx" lines,
485''' such as .IP and .SH, which do another additional levels of
486''' double-quote interpretation
487.ds M" """
488.ds S" """
489.ds N" """""
490.ds T" """""
491.ds L' '
492.ds R' '
493.ds M' '
494.ds S' '
495.ds N' '
496.ds T' '
497'br\\}
498.el\\{\\
499.ds -- \\(em\\|
500.tr \\*(Tr
501.ds L" ``
502.ds R" ''
503.ds M" ``
504.ds S" ''
505.ds N" ``
506.ds T" ''
507.ds L' `
508.ds R' '
509.ds M' `
510.ds S' '
511.ds N' `
512.ds T' '
513.ds PI \\(*p
514'br\\}
515END
516
517print <<'END';
518.\" If the F register is turned on, we'll generate
519.\" index entries out stderr for the following things:
520.\" TH Title
521.\" SH Header
522.\" Sh Subsection
523.\" Ip Item
524.\" X<> Xref (embedded
525.\" Of course, you have to process the output yourself
526.\" in some meaninful fashion.
527.if \nF \{
528.de IX
529.tm Index:\\$1\t\\n%\t"\\$2"
530..
531.nr % 0
532.rr F
533.\}
534END
535
536print <<"END";
537.TH $name $section "$RP" "$date" "$center"
538.UC
539END
540
541push(@Indices, qq{.IX Title "$name $section"});
542
543while (($name, $desc) = each %namedesc) {
544 for ($name, $desc) { s/^\s+//; s/\s+$//; }
545 push(@Indices, qq(.IX Name "$name - $desc"\n));
546}
547
548print <<'END';
549.if n .hy 0
550.if n .na
551.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
552.de CQ \" put $1 in typewriter font
553END
554print ".ft $CFont\n";
555print <<'END';
556'if n "\c
557'if t \\&\\$1\c
558'if n \\&\\$1\c
559'if n \&"
560\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
561'.ft R
562..
563.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
564. \" AM - accent mark definitions
565.bd B 3
566. \" fudge factors for nroff and troff
567.if n \{\
568. ds #H 0
569. ds #V .8m
570. ds #F .3m
571. ds #[ \f1
572. ds #] \fP
573.\}
574.if t \{\
575. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
576. ds #V .6m
577. ds #F 0
578. ds #[ \&
579. ds #] \&
580.\}
581. \" simple accents for nroff and troff
582.if n \{\
583. ds ' \&
584. ds ` \&
585. ds ^ \&
586. ds , \&
587. ds ~ ~
588. ds ? ?
589. ds ! !
590. ds /
591. ds q
592.\}
593.if t \{\
594. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
595. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
596. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
597. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
598. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
599. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
600. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
601. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
602. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
603.\}
604. \" troff and (daisy-wheel) nroff accents
605.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
606.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
607.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
608.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
609.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
610.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
611.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
612.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
613.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
614.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
615.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
616.ds ae a\h'-(\w'a'u*4/10)'e
617.ds Ae A\h'-(\w'A'u*4/10)'E
618.ds oe o\h'-(\w'o'u*4/10)'e
619.ds Oe O\h'-(\w'O'u*4/10)'E
620. \" corrections for vroff
621.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
622.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
623. \" for low resolution devices (crt and lpr)
624.if \n(.H>23 .if \n(.V>19 \
625\{\
626. ds : e
627. ds 8 ss
628. ds v \h'-1'\o'\(aa\(ga'
629. ds _ \h'-1'^
630. ds . \h'-1'.
631. ds 3 3
632. ds o a
633. ds d- d\h'-1'\(ga
634. ds D- D\h'-1'\(hy
635. ds th \o'bp'
636. ds Th \o'LP'
637. ds ae ae
638. ds Ae AE
639. ds oe oe
640. ds Oe OE
641.\}
642.rm #[ #] #H #V #F C
643END
644
645$indent = 0;
646
647$begun = "";
648
649# Unrolling [^A-Z>]|[A-Z](?!<) gives: // MRE pp 165.
650my $nonest = '(?:[^A-Z>]*(?:[A-Z](?!<)[^A-Z>]*)*)';
651
652while (<>) {
653 if ($cutting) {
654 next unless /^=/;
655 $cutting = 0;
656 }
657 if ($begun) {
658 if (/^=end\s+$begun/) {
659 $begun = "";
660 }
661 elsif ($begun =~ /^(roff|man)$/) {
662 print STDOUT $_;
663 }
664 next;
665 }
666 chomp;
667
668 # Translate verbatim paragraph
669
670 if (/^\s/) {
671 @lines = split(/\n/);
672 for (@lines) {
673 1 while s
674 {^( [^\t]* ) \t ( \t* ) }
675 { $1 . ' ' x (8 - (length($1)%8) + 8 * (length($2))) }ex;
676 s/\\/\\e/g;
677 s/\A/\\&/s;
678 }
679 $lines = @lines;
680 makespace() unless $verbatim++;
681 print ".Vb $lines\n";
682 print join("\n", @lines), "\n";
683 print ".Ve\n";
684 $needspace = 0;
685 next;
686 }
687
688 $verbatim = 0;
689
690 if (/^=for\s+(\S+)\s*/s) {
691 if ($1 eq "man" or $1 eq "roff") {
692 print STDOUT $',"\n\n";
693 } else {
694 # ignore unknown for
695 }
696 next;
697 }
698 elsif (/^=begin\s+(\S+)\s*/s) {
699 $begun = $1;
700 if ($1 eq "man" or $1 eq "roff") {
701 print STDOUT $'."\n\n";
702 }
703 next;
704 }
705
706 # check for things that'll hosed our noremap scheme; affects $_
707 init_noremap();
708
709 if (!/^=item/) {
710
711 # trofficate backslashes; must do it before what happens below
712 s/\\/noremap('\\e')/ge;
713
714 # protect leading periods and quotes against *roff
715 # mistaking them for directives
716 s/^(?:[A-Z]<)?[.']/\\&$&/gm;
717
718 # first hide the escapes in case we need to
719 # intuit something and get it wrong due to fmting
720
721 1 while s/([A-Z]<$nonest>)/noremap($1)/ge;
722
723 # func() is a reference to a perl function
724 s{
725 \b
726 (
727 [:\w]+ \(\)
728 )
729 } {I<$1>}gx;
730
731 # func(n) is a reference to a perl function or a man page
732 s{
733 ([:\w]+)
734 (
735 \( [^\051]+ \)
736 )
737 } {I<$1>\\|$2}gx;
738
739 # convert simple variable references
740 s/(\s+)([\$\@%][\w:]+)(?!\()/${1}C<$2>/g;
741
742 if (m{ (
743 [\-\w]+
744 \(
745 [^\051]*?
746 [\@\$,]
747 [^\051]*?
748 \)
749 )
750 }x && $` !~ /([LCI]<[^<>]*|-)$/ && !/^=\w/)
751 {
752 warn "$0: bad option in paragraph $. of $ARGV: ``$1'' should be [LCI]<$1>\n";
753 $oops++;
754 }
755
756 while (/(-[a-zA-Z])\b/g && $` !~ /[\w\-]$/) {
757 warn "$0: bad option in paragraph $. of $ARGV: ``$1'' should be [CB]<$1>\n";
758 $oops++;
759 }
760
761 # put it back so we get the <> processed again;
762 clear_noremap(0); # 0 means leave the E's
763
764 } else {
765 # trofficate backslashes
766 s/\\/noremap('\\e')/ge;
767
768 }
769
770 # need to hide E<> first; they're processed in clear_noremap
771 s/(E<[^<>]+>)/noremap($1)/ge;
772
773
774 $maxnest = 10;
775 while ($maxnest-- && /[A-Z]</) {
776
777 # can't do C font here
778 s/([BI])<($nonest)>/font($1) . $2 . font('R')/eg;
779
780 # files and filelike refs in italics
781 s/F<($nonest)>/I<$1>/g;
782
783 # no break -- usually we want C<> for this
784 s/S<($nonest)>/nobreak($1)/eg;
785
786 # LREF: a la HREF L<show this text|man/section>
787 s:L<([^|>]+)\|[^>]+>:$1:g;
788
789 # LREF: a manpage(3f)
790 s:L<([a-zA-Z][^\s\/]+)(\([^\)]+\))?>:the I<$1>$2 manpage:g;
791
792 # LREF: an =item on another manpage
793 s{
794 L<
795 ([^/]+)
796 /
797 (
798 [:\w]+
799 (\(\))?
800 )
801 >
802 } {the C<$2> entry in the I<$1> manpage}gx;
803
804 # LREF: an =item on this manpage
805 s{
806 ((?:
807 L<
808 /
809 (
810 [:\w]+
811 (\(\))?
812 )
813 >
814 (,?\s+(and\s+)?)?
815 )+)
816 } { internal_lrefs($1) }gex;
817
818 # LREF: a =head2 (head1?), maybe on a manpage, maybe right here
819 # the "func" can disambiguate
820 s{
821 L<
822 (?:
823 ([a-zA-Z]\S+?) /
824 )?
825 "?(.*?)"?
826 >
827 }{
828 do {
829 $1 # if no $1, assume it means on this page.
830 ? "the section on I<$2> in the I<$1> manpage"
831 : "the section on I<$2>"
832 }
833 }gesx; # s in case it goes over multiple lines, so . matches \n
834
835 s/Z<>/\\&/g;
836
837 # comes last because not subject to reprocessing
838 s/C<($nonest)>/noremap("${CFont_embed}${1}\\fR")/eg;
839 }
840
841 if (s/^=//) {
842 $needspace = 0; # Assume this.
843
844 s/\n/ /g;
845
846 ($Cmd, $_) = split(' ', $_, 2);
847
848 $dotlevel = 1;
849 if ($Cmd eq 'head1') {
850 $dotlevel = 1;
851 }
852 elsif ($Cmd eq 'head2') {
853 $dotlevel = 1;
854 }
855 elsif ($Cmd eq 'item') {
856 $dotlevel = 2;
857 }
858
859 if (defined $_) {
860 &escapes($dotlevel);
861 s/"/""/g;
862 }
863
864 clear_noremap(1);
865
866 if ($Cmd eq 'cut') {
867 $cutting = 1;
868 }
869 elsif ($Cmd eq 'head1') {
870 s/\s+$//;
871 delete $wanna_see{$_} if exists $wanna_see{$_};
872 print qq{.SH "$_"\n};
873 push(@Indices, qq{.IX Header "$_"\n});
874 }
875 elsif ($Cmd eq 'head2') {
876 print qq{.Sh "$_"\n};
877 push(@Indices, qq{.IX Subsection "$_"\n});
878 }
879 elsif ($Cmd eq 'over') {
880 push(@indent,$indent);
881 $indent += ($_ + 0) || 5;
882 }
883 elsif ($Cmd eq 'back') {
884 $indent = pop(@indent);
885 warn "$0: Unmatched =back in paragraph $. of $ARGV\n" unless defined $indent;
886 $needspace = 1;
887 }
888 elsif ($Cmd eq 'item') {
889 s/^\*( |$)/\\(bu$1/g;
890 # if you know how to get ":s please do
891 s/\\\*\(L"([^"]+?)\\\*\(R"/'$1'/g;
892 s/\\\*\(L"([^"]+?)""/'$1'/g;
893 s/[^"]""([^"]+?)""[^"]/'$1'/g;
894 # here do something about the $" in perlvar?
895 print STDOUT qq{.Ip "$_" $indent\n};
896 push(@Indices, qq{.IX Item "$_"\n});
897 }
898 elsif ($Cmd eq 'pod') {
899 # this is just a comment
900 }
901 else {
902 warn "$0: Unrecognized pod directive in paragraph $. of $ARGV: $Cmd\n";
903 }
904 }
905 else {
906 if ($needspace) {
907 &makespace;
908 }
909 &escapes(0);
910 clear_noremap(1);
911 print $_, "\n";
912 $needspace = 1;
913 }
914}
915
916print <<"END";
917
918.rn }` ''
919END
920
921if (%wanna_see && !$lax) {
922 @missing = keys %wanna_see;
923 warn "$0: $Filename is missing required section"
924 . (@missing > 1 && "s")
925 . ": @missing\n";
926 $oops++;
927}
928
929foreach (@Indices) { print "$_\n"; }
930
931exit;
932#exit ($oops != 0);
933
934#########################################################################
935
936sub nobreak {
937 my $string = shift;
938 $string =~ s/ /\\ /g;
939 $string;
940}
941
942sub escapes {
943 my $indot = shift;
944
945 s/X<(.*?)>/mkindex($1)/ge;
946
947 # translate the minus in foo-bar into foo\-bar for roff
948 s/([^0-9a-z-])-([^-])/$1\\-$2/g;
949
950 # make -- into the string version \*(-- (defined above)
951 s/\b--\b/\\*(--/g;
952 s/"--([^"])/"\\*(--$1/g; # should be a better way
953 s/([^"])--"/$1\\*(--"/g;
954
955 # fix up quotes; this is somewhat tricky
956 my $dotmacroL = 'L';
957 my $dotmacroR = 'R';
958 if ( $indot == 1 ) {
959 $dotmacroL = 'M';
960 $dotmacroR = 'S';
961 }
962 elsif ( $indot >= 2 ) {
963 $dotmacroL = 'N';
964 $dotmacroR = 'T';
965 }
966 if (!/""/) {
967 s/(^|\s)(['"])/noremap("$1\\*($dotmacroL$2")/ge;
968 s/(['"])($|[\-\s,;\\!?.])/noremap("\\*($dotmacroR$1$2")/ge;
969 }
970
971 #s/(?!")(?:.)--(?!")(?:.)/\\*(--/g;
972 #s/(?:(?!")(?:.)--(?:"))|(?:(?:")--(?!")(?:.))/\\*(--/g;
973
974
975 # make sure that func() keeps a bit a space tween the parens
976 ### s/\b\(\)/\\|()/g;
977 ### s/\b\(\)/(\\|)/g;
978
979 # make C++ into \*C+, which is a squinched version (defined above)
980 s/\bC\+\+/\\*(C+/g;
981
982 # make double underbars have a little tiny space between them
983 s/__/_\\|_/g;
984
985 # PI goes to \*(PI (defined above)
986 s/\bPI\b/noremap('\\*(PI')/ge;
987
988 # make all caps a teeny bit smaller, but don't muck with embedded code literals
989 my $hidCFont = font('C');
990 if ($Cmd !~ /^head1/) { # SH already makes smaller
991 # /g isn't enough; 1 while or we'll be off
992
993# 1 while s{
994# (?!$hidCFont)(..|^.|^)
995# \b
996# (
997# [A-Z][\/A-Z+:\-\d_$.]+
998# )
999# (s?)
1000# \b
1001# } {$1\\s-1$2\\s0}gmox;
1002
1003 1 while s{
1004 (?!$hidCFont)(..|^.|^)
1005 (
1006 \b[A-Z]{2,}[\/A-Z+:\-\d_\$]*\b
1007 )
1008 } {
1009 $1 . noremap( '\\s-1' . $2 . '\\s0' )
1010 }egmox;
1011
1012 }
1013}
1014
1015# make troff just be normal, but make small nroff get quoted
1016# decided to just put the quotes in the text; sigh;
1017sub ccvt {
1018 local($_,$prev) = @_;
1019 noremap(qq{.CQ "$_" \n\\&});
1020}
1021
1022sub makespace {
1023 if ($indent) {
1024 print ".Sp\n";
1025 }
1026 else {
1027 print ".PP\n";
1028 }
1029}
1030
1031sub mkindex {
1032 my ($entry) = @_;
1033 my @entries = split m:\s*/\s*:, $entry;
1034 push @Indices, ".IX Xref " . join ' ', map {qq("$_")} @entries;
1035 return '';
1036}
1037
1038sub font {
1039 local($font) = shift;
1040 return '\\f' . noremap($font);
1041}
1042
1043sub noremap {
1044 local($thing_to_hide) = shift;
1045 $thing_to_hide =~ tr/\000-\177/\200-\377/;
1046 return $thing_to_hide;
1047}
1048
1049sub init_noremap {
1050 # escape high bit characters in input stream
1051 s/([\200-\377])/"E<".ord($1).">"/ge;
1052}
1053
1054sub clear_noremap {
1055 my $ready_to_print = $_[0];
1056
1057 tr/\200-\377/\000-\177/;
1058
1059 # trofficate backslashes
1060 # s/(?!\\e)(?:..|^.|^)\\/\\e/g;
1061
1062 # now for the E<>s, which have been hidden until now
1063 # otherwise the interative \w<> processing would have
1064 # been hosed by the E<gt>
1065 s {
1066 E<
1067 (
1068 ( \d + )
1069 | ( [A-Za-z]+ )
1070 )
1071 >
1072 } {
1073 do {
1074 defined $2
1075 ? chr($2)
1076 :
1077 exists $HTML_Escapes{$3}
1078 ? do { $HTML_Escapes{$3} }
1079 : do {
1080 warn "$0: Unknown escape in paragraph $. of $ARGV: ``$&''\n";
1081 "E<$1>";
1082 }
1083 }
1084 }egx if $ready_to_print;
1085}
1086
1087sub internal_lrefs {
1088 local($_) = shift;
1089 local $trailing_and = s/and\s+$// ? "and " : "";
1090
1091 s{L</([^>]+)>}{$1}g;
1092 my(@items) = split( /(?:,?\s+(?:and\s+)?)/ );
1093 my $retstr = "the ";
1094 my $i;
1095 for ($i = 0; $i <= $#items; $i++) {
1096 $retstr .= "C<$items[$i]>";
1097 $retstr .= ", " if @items > 2 && $i != $#items;
1098 $retstr .= " and " if $i+2 == @items;
1099 }
1100
1101 $retstr .= " entr" . ( @items > 1 ? "ies" : "y" )
1102 . " elsewhere in this document";
1103 # terminal space to avoid words running together (pattern used
1104 # strips terminal spaces)
1105 $retstr .= " " if length $trailing_and;
1106 $retstr .= $trailing_and;
1107
1108 return $retstr;
1109
1110}
1111
1112BEGIN {
1113%HTML_Escapes = (
1114 'amp' => '&', # ampersand
1115 'lt' => '<', # left chevron, less-than
1116 'gt' => '>', # right chevron, greater-than
1117 'quot' => '"', # double quote
1118
1119 "Aacute" => "A\\*'", # capital A, acute accent
1120 "aacute" => "a\\*'", # small a, acute accent
1121 "Acirc" => "A\\*^", # capital A, circumflex accent
1122 "acirc" => "a\\*^", # small a, circumflex accent
1123 "AElig" => '\*(AE', # capital AE diphthong (ligature)
1124 "aelig" => '\*(ae', # small ae diphthong (ligature)
1125 "Agrave" => "A\\*`", # capital A, grave accent
1126 "agrave" => "A\\*`", # small a, grave accent
1127 "Aring" => 'A\\*o', # capital A, ring
1128 "aring" => 'a\\*o', # small a, ring
1129 "Atilde" => 'A\\*~', # capital A, tilde
1130 "atilde" => 'a\\*~', # small a, tilde
1131 "Auml" => 'A\\*:', # capital A, dieresis or umlaut mark
1132 "auml" => 'a\\*:', # small a, dieresis or umlaut mark
1133 "Ccedil" => 'C\\*,', # capital C, cedilla
1134 "ccedil" => 'c\\*,', # small c, cedilla
1135 "Eacute" => "E\\*'", # capital E, acute accent
1136 "eacute" => "e\\*'", # small e, acute accent
1137 "Ecirc" => "E\\*^", # capital E, circumflex accent
1138 "ecirc" => "e\\*^", # small e, circumflex accent
1139 "Egrave" => "E\\*`", # capital E, grave accent
1140 "egrave" => "e\\*`", # small e, grave accent
1141 "ETH" => '\\*(D-', # capital Eth, Icelandic
1142 "eth" => '\\*(d-', # small eth, Icelandic
1143 "Euml" => "E\\*:", # capital E, dieresis or umlaut mark
1144 "euml" => "e\\*:", # small e, dieresis or umlaut mark
1145 "Iacute" => "I\\*'", # capital I, acute accent
1146 "iacute" => "i\\*'", # small i, acute accent
1147 "Icirc" => "I\\*^", # capital I, circumflex accent
1148 "icirc" => "i\\*^", # small i, circumflex accent
1149 "Igrave" => "I\\*`", # capital I, grave accent
1150 "igrave" => "i\\*`", # small i, grave accent
1151 "Iuml" => "I\\*:", # capital I, dieresis or umlaut mark
1152 "iuml" => "i\\*:", # small i, dieresis or umlaut mark
1153 "Ntilde" => 'N\*~', # capital N, tilde
1154 "ntilde" => 'n\*~', # small n, tilde
1155 "Oacute" => "O\\*'", # capital O, acute accent
1156 "oacute" => "o\\*'", # small o, acute accent
1157 "Ocirc" => "O\\*^", # capital O, circumflex accent
1158 "ocirc" => "o\\*^", # small o, circumflex accent
1159 "Ograve" => "O\\*`", # capital O, grave accent
1160 "ograve" => "o\\*`", # small o, grave accent
1161 "Oslash" => "O\\*/", # capital O, slash
1162 "oslash" => "o\\*/", # small o, slash
1163 "Otilde" => "O\\*~", # capital O, tilde
1164 "otilde" => "o\\*~", # small o, tilde
1165 "Ouml" => "O\\*:", # capital O, dieresis or umlaut mark
1166 "ouml" => "o\\*:", # small o, dieresis or umlaut mark
1167 "szlig" => '\*8', # small sharp s, German (sz ligature)
1168 "THORN" => '\\*(Th', # capital THORN, Icelandic
1169 "thorn" => '\\*(th',, # small thorn, Icelandic
1170 "Uacute" => "U\\*'", # capital U, acute accent
1171 "uacute" => "u\\*'", # small u, acute accent
1172 "Ucirc" => "U\\*^", # capital U, circumflex accent
1173 "ucirc" => "u\\*^", # small u, circumflex accent
1174 "Ugrave" => "U\\*`", # capital U, grave accent
1175 "ugrave" => "u\\*`", # small u, grave accent
1176 "Uuml" => "U\\*:", # capital U, dieresis or umlaut mark
1177 "uuml" => "u\\*:", # small u, dieresis or umlaut mark
1178 "Yacute" => "Y\\*'", # capital Y, acute accent
1179 "yacute" => "y\\*'", # small y, acute accent
1180 "yuml" => "y\\*:", # small y, dieresis or umlaut mark
1181);
1182}
1183
diff --git a/src/lib/libcrypto/util/pod2mantest b/src/lib/libcrypto/util/pod2mantest
new file mode 100644
index 0000000000..384e683df4
--- /dev/null
+++ b/src/lib/libcrypto/util/pod2mantest
@@ -0,0 +1,58 @@
1#!/bin/sh
2
3# This script is used by test/Makefile to check whether a sane 'pod2man'
4# is installed.
5# ('make install' should not try to run 'pod2man' if it does not exist or if
6# it is a broken 'pod2man' version that is known to cause trouble. if we find
7# the system 'pod2man' to be broken, we use our own copy instead)
8#
9# In any case, output an appropriate command line for running (or not
10# running) pod2man.
11
12
13IFS=:
14if test "$OSTYPE" = "msdosdjgpp"; then IFS=";"; fi
15
16try_without_dir=true
17# First we try "pod2man", then "$dir/pod2man" for each item in $PATH.
18for dir in dummy${IFS}$PATH; do
19 if [ "$try_without_dir" = true ]; then
20 # first iteration
21 pod2man=pod2man
22 try_without_dir=false
23 else
24 # second and later iterations
25 pod2man="$dir/pod2man"
26 if [ ! -f "$pod2man" ]; then # '-x' is not available on Ultrix
27 pod2man=''
28 fi
29 fi
30
31 if [ ! "$pod2man" = '' ]; then
32 failure=none
33
34 if "$pod2man" --section=1 --center=OpenSSL --release=dev pod2mantest.pod | fgrep OpenSSL >/dev/null; then
35 :
36 else
37 failure=BasicTest
38 fi
39
40 if [ "$failure" = none ]; then
41 if "$pod2man" --section=1 --center=OpenSSL --release=dev pod2mantest.pod | grep '^MARKER - ' >/dev/null; then
42 failure=MultilineTest
43 fi
44 fi
45
46
47 if [ "$failure" = none ]; then
48 echo "$pod2man"
49 exit 0
50 fi
51
52 echo "$pod2man does not work properly ('$failure' failed). Looking for another pod2man ..." >&2
53 fi
54done
55
56echo "No working pod2man found. Consider installing a new version." >&2
57echo "As a workaround, we'll use a bundled old copy of pod2man.pl." >&2
58echo "$1 ../../util/pod2man.pl"
diff --git a/src/lib/libcrypto/util/pod2mantest.pod b/src/lib/libcrypto/util/pod2mantest.pod
new file mode 100644
index 0000000000..5d2539a17f
--- /dev/null
+++ b/src/lib/libcrypto/util/pod2mantest.pod
@@ -0,0 +1,15 @@
1=pod
2
3=head1 NAME
4
5foo, bar,
6MARKER - test of multiline name section
7
8=head1 DESCRIPTION
9
10This is a test .pod file to see if we have a buggy pod2man or not.
11If we have a buggy implementation, we will get a line matching the
12regular expression "^ +MARKER - test of multiline name section *$"
13at the end of the resulting document.
14
15=cut
diff --git a/src/lib/libcrypto/util/point.sh b/src/lib/libcrypto/util/point.sh
new file mode 100644
index 0000000000..4790e08f8a
--- /dev/null
+++ b/src/lib/libcrypto/util/point.sh
@@ -0,0 +1,10 @@
1#!/bin/sh
2
3rm -f "$2"
4if test "$OSTYPE" = msdosdjgpp; then
5 cp "$1" "$2"
6else
7 ln -s "$1" "$2"
8fi
9echo "$2 => $1"
10
diff --git a/src/lib/libcrypto/util/selftest.pl b/src/lib/libcrypto/util/selftest.pl
new file mode 100644
index 0000000000..e9d5aa8938
--- /dev/null
+++ b/src/lib/libcrypto/util/selftest.pl
@@ -0,0 +1,195 @@
1#!/usr/local/bin/perl -w
2#
3# Run the test suite and generate a report
4#
5
6if (! -f "Configure") {
7 print "Please run perl util/selftest.pl in the OpenSSL directory.\n";
8 exit 1;
9}
10
11my $report="testlog";
12my $os="??";
13my $version="??";
14my $platform0="??";
15my $platform="??";
16my $options="??";
17my $last="??";
18my $ok=0;
19my $cc="cc";
20my $cversion="??";
21my $sep="-----------------------------------------------------------------------------\n";
22my $not_our_fault="\nPlease ask your system administrator/vendor for more information.\n[Problems with your operating system setup should not be reported\nto the OpenSSL project.]\n";
23
24open(OUT,">$report") or die;
25
26print OUT "OpenSSL self-test report:\n\n";
27
28$uname=`uname -a`;
29$uname="??\n" if $uname eq "";
30
31$c=`sh config -t`;
32foreach $_ (split("\n",$c)) {
33 $os=$1 if (/Operating system: (.*)$/);
34 $platform0=$1 if (/Configuring for (.*)$/);
35}
36
37system "sh config" if (! -f "Makefile");
38
39if (open(IN,"<Makefile")) {
40 while (<IN>) {
41 $version=$1 if (/^VERSION=(.*)$/);
42 $platform=$1 if (/^PLATFORM=(.*)$/);
43 $options=$1 if (/^OPTIONS=(.*)$/);
44 $cc=$1 if (/^CC= *(.*)$/);
45 }
46 close(IN);
47} else {
48 print OUT "Error running config!\n";
49}
50
51$cversion=`$cc -v 2>&1`;
52$cversion=`$cc -V 2>&1` if $cversion =~ "usage";
53$cversion=`$cc -V |head -1` if $cversion =~ "Error";
54$cversion=`$cc --version` if $cversion eq "";
55$cversion =~ s/Reading specs.*\n//;
56$cversion =~ s/usage.*\n//;
57chomp $cversion;
58
59if (open(IN,"<CHANGES")) {
60 while(<IN>) {
61 if (/\*\) (.{0,55})/ && !/applies to/) {
62 $last=$1;
63 last;
64 }
65 }
66 close(IN);
67}
68
69print OUT "OpenSSL version: $version\n";
70print OUT "Last change: $last...\n";
71print OUT "Options: $options\n" if $options ne "";
72print OUT "OS (uname): $uname";
73print OUT "OS (config): $os\n";
74print OUT "Target (default): $platform0\n";
75print OUT "Target: $platform\n";
76print OUT "Compiler: $cversion\n";
77print OUT "\n";
78
79print "Checking compiler...\n";
80if (open(TEST,">cctest.c")) {
81 print TEST "#include <stdio.h>\n#include <errno.h>\nmain(){printf(\"Hello world\\n\");}\n";
82 close(TEST);
83 system("$cc -o cctest cctest.c");
84 if (`./cctest` !~ /Hello world/) {
85 print OUT "Compiler doesn't work.\n";
86 print OUT $not_our_fault;
87 goto err;
88 }
89 system("ar r cctest.a /dev/null");
90 if (not -f "cctest.a") {
91 print OUT "Check your archive tool (ar).\n";
92 print OUT $not_our_fault;
93 goto err;
94 }
95} else {
96 print OUT "Can't create cctest.c\n";
97}
98if (open(TEST,">cctest.c")) {
99 print TEST "#include <openssl/opensslv.h>\nmain(){printf(OPENSSL_VERSION_TEXT);}\n";
100 close(TEST);
101 system("$cc -o cctest -Iinclude cctest.c");
102 $cctest = `./cctest`;
103 if ($cctest !~ /OpenSSL $version/) {
104 if ($cctest =~ /OpenSSL/) {
105 print OUT "#include uses headers from different OpenSSL version!\n";
106 } else {
107 print OUT "Can't compile test program!\n";
108 }
109 print OUT $not_our_fault;
110 goto err;
111 }
112} else {
113 print OUT "Can't create cctest.c\n";
114}
115
116print "Running make...\n";
117if (system("make 2>&1 | tee make.log") > 255) {
118
119 print OUT "make failed!\n";
120 if (open(IN,"<make.log")) {
121 print OUT $sep;
122 while (<IN>) {
123 print OUT;
124 }
125 close(IN);
126 print OUT $sep;
127 } else {
128 print OUT "make.log not found!\n";
129 }
130 goto err;
131}
132
133$_=$options;
134s/no-asm//;
135s/no-shared//;
136s/no-krb5//;
137if (/no-/)
138{
139 print OUT "Test skipped.\n";
140 goto err;
141}
142
143print "Running make test...\n";
144if (system("make test 2>&1 | tee maketest.log") > 255)
145 {
146 print OUT "make test failed!\n";
147} else {
148 $ok=1;
149}
150
151if ($ok and open(IN,"<maketest.log")) {
152 while (<IN>) {
153 $ok=2 if /^platform: $platform/;
154 }
155 close(IN);
156}
157
158if ($ok != 2) {
159 print OUT "Failure!\n";
160 if (open(IN,"<make.log")) {
161 print OUT $sep;
162 while (<IN>) {
163 print OUT;
164 }
165 close(IN);
166 print OUT $sep;
167 } else {
168 print OUT "make.log not found!\n";
169 }
170 if (open(IN,"<maketest.log")) {
171 while (<IN>) {
172 print OUT;
173 }
174 close(IN);
175 print OUT $sep;
176 } else {
177 print OUT "maketest.log not found!\n";
178 }
179} else {
180 print OUT "Test passed.\n";
181}
182err:
183close(OUT);
184
185print "\n";
186open(IN,"<$report") or die;
187while (<IN>) {
188 if (/$sep/) {
189 print "[...]\n";
190 last;
191 }
192 print;
193}
194print "\nTest report in file $report\n";
195
diff --git a/src/lib/libcrypto/util/shlib_wrap.sh b/src/lib/libcrypto/util/shlib_wrap.sh
new file mode 100755
index 0000000000..dc5f5b1ce4
--- /dev/null
+++ b/src/lib/libcrypto/util/shlib_wrap.sh
@@ -0,0 +1,70 @@
1#!/bin/sh
2
3[ $# -ne 0 ] || set -x # debug mode without arguments:-)
4
5THERE="`echo $0 | sed -e 's|[^/]*$||' 2>/dev/null`.."
6[ -d "${THERE}" ] || exec "$@" # should never happen...
7
8# Alternative to this is to parse ${THERE}/Makefile...
9LIBCRYPTOSO="${THERE}/libcrypto.so"
10if [ -f "$LIBCRYPTOSO" ]; then
11 while [ -h "$LIBCRYPTOSO" ]; do
12 LIBCRYPTOSO="${THERE}/`ls -l "$LIBCRYPTOSO" | sed -e 's|.*\-> ||'`"
13 done
14 SOSUFFIX=`echo ${LIBCRYPTOSO} | sed -e 's|.*\.so||' 2>/dev/null`
15 LIBSSLSO="${THERE}/libssl.so${SOSUFFIX}"
16fi
17
18SYSNAME=`(uname -s) 2>/dev/null`;
19case "$SYSNAME" in
20SunOS|IRIX*)
21 # SunOS and IRIX run-time linkers evaluate alternative
22 # variables depending on target ABI...
23 rld_var=LD_LIBRARY_PATH
24 case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in
25 *ELF\ 64*SPARC*)
26 [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64
27 ;;
28 *ELF\ N32*MIPS*)
29 [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH
30 _RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST
31 ;;
32 *ELF\ 64*MIPS*)
33 [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH
34 _RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST
35 ;;
36 esac
37 eval $rld_var=\"${THERE}:'$'$rld_var\"; export $rld_var
38 unset rld_var
39 ;;
40*) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX
41 DYLD_LIBRARY_PATH="${THERE}:$DYLD_LIBRARY_PATH" # MacOS X
42 SHLIB_PATH="${THERE}:$SHLIB_PATH" # legacy HP-UX
43 LIBPATH="${THERE}:$LIBPATH" # AIX, OS/2
44 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
45 # Even though $PATH is adjusted [for Windows sake], it doesn't
46 # necessarily does the trick. Trouble is that with introduction
47 # of SafeDllSearchMode in XP/2003 it's more appropriate to copy
48 # .DLLs in vicinity of executable, which is done elsewhere...
49 if [ "$OSTYPE" != msdosdjgpp ]; then
50 PATH="${THERE}:$PATH"; export PATH
51 fi
52 ;;
53esac
54
55if [ -f "$LIBCRYPTOSO" ]; then
56 # Following three lines are major excuse for isolating them into
57 # this wrapper script. Original reason for setting LD_PRELOAD
58 # was to make it possible to pass 'make test' when user linked
59 # with -rpath pointing to previous version installation. Wrapping
60 # it into a script makes it possible to do so on multi-ABI
61 # platforms.
62 case "$SYSNAME" in
63 *BSD) LD_PRELOAD="$LIBCRYPTOSO:$LIBSSLSO" ;; # *BSD
64 *) LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;; # SunOS, Linux, ELF HP-UX
65 esac
66 _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX
67 export LD_PRELOAD _RLD_LIST
68fi
69
70exec "$@"
diff --git a/src/lib/libcrypto/util/sp-diff.pl b/src/lib/libcrypto/util/sp-diff.pl
new file mode 100644
index 0000000000..9d6c60387f
--- /dev/null
+++ b/src/lib/libcrypto/util/sp-diff.pl
@@ -0,0 +1,80 @@
1#!/usr/local/bin/perl
2#
3# This file takes as input, the files that have been output from
4# ssleay speed.
5# It prints a table of the relative differences with %100 being 'no difference'
6#
7
8($#ARGV == 1) || die "$0 speedout1 speedout2\n";
9
10%one=&loadfile($ARGV[0]);
11%two=&loadfile($ARGV[1]);
12
13$line=0;
14foreach $a ("md2","md4","md5","sha","sha1","rc4","des cfb","des cbc","des ede3",
15 "idea cfb","idea cbc","rc2 cfb","rc2 cbc","blowfish cbc","cast cbc")
16 {
17 if (defined($one{$a,8}) && defined($two{$a,8}))
18 {
19 print "type 8 byte% 64 byte% 256 byte% 1024 byte% 8192 byte%\n"
20 unless $line;
21 $line++;
22 printf "%-12s ",$a;
23 foreach $b (8,64,256,1024,8192)
24 {
25 $r=$two{$a,$b}/$one{$a,$b}*100;
26 printf "%12.2f",$r;
27 }
28 print "\n";
29 }
30 }
31
32foreach $a (
33 "rsa 512","rsa 1024","rsa 2048","rsa 4096",
34 "dsa 512","dsa 1024","dsa 2048",
35 )
36 {
37 if (defined($one{$a,1}) && defined($two{$a,1}))
38 {
39 $r1=($one{$a,1}/$two{$a,1})*100;
40 $r2=($one{$a,2}/$two{$a,2})*100;
41 printf "$a bits %% %6.2f %% %6.2f\n",$r1,$r2;
42 }
43 }
44
45sub loadfile
46 {
47 local($file)=@_;
48 local($_,%ret);
49
50 open(IN,"<$file") || die "unable to open '$file' for input\n";
51 $header=1;
52 while (<IN>)
53 {
54 $header=0 if /^[dr]sa/;
55 if (/^type/) { $header=0; next; }
56 next if $header;
57 chop;
58 @a=split;
59 if ($a[0] =~ /^[dr]sa$/)
60 {
61 ($n,$t1,$t2)=($_ =~ /^([dr]sa\s+\d+)\s+bits\s+([.\d]+)s\s+([.\d]+)/);
62 $ret{$n,1}=$t1;
63 $ret{$n,2}=$t2;
64 }
65 else
66 {
67 $n=join(' ',grep(/[^k]$/,@a));
68 @k=grep(s/k$//,@a);
69
70 $ret{$n, 8}=$k[0];
71 $ret{$n, 64}=$k[1];
72 $ret{$n, 256}=$k[2];
73 $ret{$n,1024}=$k[3];
74 $ret{$n,8192}=$k[4];
75 }
76 }
77 close(IN);
78 return(%ret);
79 }
80
diff --git a/src/lib/libcrypto/util/speed.sh b/src/lib/libcrypto/util/speed.sh
new file mode 100644
index 0000000000..f489706197
--- /dev/null
+++ b/src/lib/libcrypto/util/speed.sh
@@ -0,0 +1,39 @@
1#!/bin/sh
2
3#
4# This is a ugly script use, in conjuction with editing the 'b'
5# configuration in the $(TOP)/Configure script which will
6# output when finished a file called speed.log which is the
7# timings of SSLeay with various options turned on or off.
8#
9# from the $(TOP) directory
10# Edit Configure, modifying things to do with the b/bl-4c-2c etc
11# configurations.
12#
13
14make clean
15perl Configure b
16make
17apps/ssleay version -v -b -f >speed.1
18apps/ssleay speed >speed.1l
19
20perl Configure bl-4c-2c
21/bin/rm -f crypto/rc4/*.o crypto/bn/bn*.o crypto/md2/md2_dgst.o
22make
23apps/ssleay speed rc4 rsa md2 >speed.2l
24
25perl Configure bl-4c-ri
26/bin/rm -f crypto/rc4/rc4*.o
27make
28apps/ssleay speed rc4 >speed.3l
29
30perl Configure b2-is-ri-dp
31/bin/rm -f crypto/idea/i_*.o crypto/rc4/*.o crypto/des/ecb_enc.o crypto/bn/bn*.o
32apps/ssleay speed rsa rc4 idea des >speed.4l
33
34cat speed.1 >speed.log
35cat speed.1l >>speed.log
36perl util/sp-diff.pl speed.1l speed.2l >>speed.log
37perl util/sp-diff.pl speed.1l speed.3l >>speed.log
38perl util/sp-diff.pl speed.1l speed.4l >>speed.log
39
diff --git a/src/lib/libcrypto/util/src-dep.pl b/src/lib/libcrypto/util/src-dep.pl
new file mode 100644
index 0000000000..ad997e4746
--- /dev/null
+++ b/src/lib/libcrypto/util/src-dep.pl
@@ -0,0 +1,147 @@
1#!/usr/local/bin/perl
2
3# we make up an array of
4# $file{function_name}=filename;
5# $unres{filename}="func1 func2 ...."
6$debug=1;
7#$nm_func="parse_linux";
8$nm_func="parse_solaris";
9
10foreach (@ARGV)
11 {
12 &$nm_func($_);
13 }
14
15foreach $file (sort keys %unres)
16 {
17 @a=split(/\s+/,$unres{$file});
18 %ff=();
19 foreach $func (@a)
20 {
21 $f=$file{$func};
22 $ff{$f}=1 if $f ne "";
23 }
24
25 foreach $a (keys %ff)
26 { $we_need{$file}.="$a "; }
27 }
28
29foreach $file (sort keys %we_need)
30 {
31# print " $file $we_need{$file}\n";
32 foreach $bit (split(/\s+/,$we_need{$file}))
33 { push(@final,&walk($bit)); }
34
35 foreach (@final) { $fin{$_}=1; }
36 @final="";
37 foreach (sort keys %fin)
38 { push(@final,$_); }
39
40 print "$file: @final\n";
41 }
42
43sub walk
44 {
45 local($f)=@_;
46 local(@a,%seen,@ret,$r);
47
48 @ret="";
49 $f =~ s/^\s+//;
50 $f =~ s/\s+$//;
51 return "" if ($f =~ "^\s*$");
52
53 return(split(/\s/,$done{$f})) if defined ($done{$f});
54
55 return if $in{$f} > 0;
56 $in{$f}++;
57 push(@ret,$f);
58 foreach $r (split(/\s+/,$we_need{$f}))
59 {
60 push(@ret,&walk($r));
61 }
62 $in{$f}--;
63 $done{$f}=join(" ",@ret);
64 return(@ret);
65 }
66
67sub parse_linux
68 {
69 local($name)=@_;
70
71 open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n";
72 while (<IN>)
73 {
74 chop;
75 next if /^\s*$/;
76 if (/^[^[](.*):$/)
77 {
78 $file=$1;
79 $file="$1.c" if /\[(.*).o\]/;
80 print STDERR "$file\n";
81 $we_need{$file}=" ";
82 next;
83 }
84
85 @a=split(/\s*\|\s*/);
86 next unless $#a == 7;
87 next unless $a[4] eq "GLOB";
88 if ($a[6] eq "UNDEF")
89 {
90 $unres{$file}.=$a[7]." ";
91 }
92 else
93 {
94 if ($file{$a[7]} ne "")
95 {
96 print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n";
97 }
98 else
99 {
100 $file{$a[7]}=$file;
101 }
102 }
103 }
104 close(IN);
105 }
106
107sub parse_solaris
108 {
109 local($name)=@_;
110
111 open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n";
112 while (<IN>)
113 {
114 chop;
115 next if /^\s*$/;
116 if (/^(\S+):$/)
117 {
118 $file=$1;
119 #$file="$1.c" if $file =~ /^(.*).o$/;
120 print STDERR "$file\n";
121 $we_need{$file}=" ";
122 next;
123 }
124 @a=split(/\s*\|\s*/);
125 next unless $#a == 7;
126 next unless $a[4] eq "GLOB";
127 if ($a[6] eq "UNDEF")
128 {
129 $unres{$file}.=$a[7]." ";
130 print STDERR "$file needs $a[7]\n" if $debug;
131 }
132 else
133 {
134 if ($file{$a[7]} ne "")
135 {
136 print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n";
137 }
138 else
139 {
140 $file{$a[7]}=$file;
141 print STDERR "$file has $a[7]\n" if $debug;
142 }
143 }
144 }
145 close(IN);
146 }
147
diff --git a/src/lib/libcrypto/util/ssleay.num b/src/lib/libcrypto/util/ssleay.num
new file mode 100644
index 0000000000..46e38a131f
--- /dev/null
+++ b/src/lib/libcrypto/util/ssleay.num
@@ -0,0 +1,217 @@
1ERR_load_SSL_strings 1 EXIST::FUNCTION:
2SSL_CIPHER_description 2 EXIST::FUNCTION:
3SSL_CTX_add_client_CA 3 EXIST::FUNCTION:
4SSL_CTX_add_session 4 EXIST::FUNCTION:
5SSL_CTX_check_private_key 5 EXIST::FUNCTION:
6SSL_CTX_ctrl 6 EXIST::FUNCTION:
7SSL_CTX_flush_sessions 7 EXIST::FUNCTION:
8SSL_CTX_free 8 EXIST::FUNCTION:
9SSL_CTX_get_client_CA_list 9 EXIST::FUNCTION:
10SSL_CTX_get_verify_callback 10 EXIST::FUNCTION:
11SSL_CTX_get_verify_mode 11 EXIST::FUNCTION:
12SSL_CTX_new 12 EXIST::FUNCTION:
13SSL_CTX_remove_session 13 EXIST::FUNCTION:
14SSL_CTX_set_cipher_list 15 EXIST::FUNCTION:
15SSL_CTX_set_client_CA_list 16 EXIST::FUNCTION:
16SSL_CTX_set_default_passwd_cb 17 EXIST::FUNCTION:
17SSL_CTX_set_ssl_version 19 EXIST::FUNCTION:
18SSL_CTX_set_verify 21 EXIST::FUNCTION:
19SSL_CTX_use_PrivateKey 22 EXIST::FUNCTION:
20SSL_CTX_use_PrivateKey_ASN1 23 EXIST::FUNCTION:
21SSL_CTX_use_PrivateKey_file 24 EXIST::FUNCTION:STDIO
22SSL_CTX_use_RSAPrivateKey 25 EXIST::FUNCTION:RSA
23SSL_CTX_use_RSAPrivateKey_ASN1 26 EXIST::FUNCTION:RSA
24SSL_CTX_use_RSAPrivateKey_file 27 EXIST::FUNCTION:RSA,STDIO
25SSL_CTX_use_certificate 28 EXIST::FUNCTION:
26SSL_CTX_use_certificate_ASN1 29 EXIST::FUNCTION:
27SSL_CTX_use_certificate_file 30 EXIST::FUNCTION:STDIO
28SSL_SESSION_free 31 EXIST::FUNCTION:
29SSL_SESSION_new 32 EXIST::FUNCTION:
30SSL_SESSION_print 33 EXIST::FUNCTION:BIO
31SSL_SESSION_print_fp 34 EXIST::FUNCTION:FP_API
32SSL_accept 35 EXIST::FUNCTION:
33SSL_add_client_CA 36 EXIST::FUNCTION:
34SSL_alert_desc_string 37 EXIST::FUNCTION:
35SSL_alert_desc_string_long 38 EXIST::FUNCTION:
36SSL_alert_type_string 39 EXIST::FUNCTION:
37SSL_alert_type_string_long 40 EXIST::FUNCTION:
38SSL_check_private_key 41 EXIST::FUNCTION:
39SSL_clear 42 EXIST::FUNCTION:
40SSL_connect 43 EXIST::FUNCTION:
41SSL_copy_session_id 44 EXIST::FUNCTION:
42SSL_ctrl 45 EXIST::FUNCTION:
43SSL_dup 46 EXIST::FUNCTION:
44SSL_dup_CA_list 47 EXIST::FUNCTION:
45SSL_free 48 EXIST::FUNCTION:
46SSL_get_certificate 49 EXIST::FUNCTION:
47SSL_get_cipher_list 52 EXIST::FUNCTION:
48SSL_get_ciphers 55 EXIST::FUNCTION:
49SSL_get_client_CA_list 56 EXIST::FUNCTION:
50SSL_get_default_timeout 57 EXIST::FUNCTION:
51SSL_get_error 58 EXIST::FUNCTION:
52SSL_get_fd 59 EXIST::FUNCTION:
53SSL_get_peer_cert_chain 60 EXIST::FUNCTION:
54SSL_get_peer_certificate 61 EXIST::FUNCTION:
55SSL_get_rbio 63 EXIST::FUNCTION:BIO
56SSL_get_read_ahead 64 EXIST::FUNCTION:
57SSL_get_shared_ciphers 65 EXIST::FUNCTION:
58SSL_get_ssl_method 66 EXIST::FUNCTION:
59SSL_get_verify_callback 69 EXIST::FUNCTION:
60SSL_get_verify_mode 70 EXIST::FUNCTION:
61SSL_get_version 71 EXIST::FUNCTION:
62SSL_get_wbio 72 EXIST::FUNCTION:BIO
63SSL_load_client_CA_file 73 EXIST::FUNCTION:STDIO
64SSL_load_error_strings 74 EXIST::FUNCTION:
65SSL_new 75 EXIST::FUNCTION:
66SSL_peek 76 EXIST::FUNCTION:
67SSL_pending 77 EXIST::FUNCTION:
68SSL_read 78 EXIST::FUNCTION:
69SSL_renegotiate 79 EXIST::FUNCTION:
70SSL_rstate_string 80 EXIST::FUNCTION:
71SSL_rstate_string_long 81 EXIST::FUNCTION:
72SSL_set_accept_state 82 EXIST::FUNCTION:
73SSL_set_bio 83 EXIST::FUNCTION:BIO
74SSL_set_cipher_list 84 EXIST::FUNCTION:
75SSL_set_client_CA_list 85 EXIST::FUNCTION:
76SSL_set_connect_state 86 EXIST::FUNCTION:
77SSL_set_fd 87 EXIST::FUNCTION:SOCK
78SSL_set_read_ahead 88 EXIST::FUNCTION:
79SSL_set_rfd 89 EXIST::FUNCTION:SOCK
80SSL_set_session 90 EXIST::FUNCTION:
81SSL_set_ssl_method 91 EXIST::FUNCTION:
82SSL_set_verify 94 EXIST::FUNCTION:
83SSL_set_wfd 95 EXIST::FUNCTION:SOCK
84SSL_shutdown 96 EXIST::FUNCTION:
85SSL_state_string 97 EXIST::FUNCTION:
86SSL_state_string_long 98 EXIST::FUNCTION:
87SSL_use_PrivateKey 99 EXIST::FUNCTION:
88SSL_use_PrivateKey_ASN1 100 EXIST::FUNCTION:
89SSL_use_PrivateKey_file 101 EXIST::FUNCTION:STDIO
90SSL_use_RSAPrivateKey 102 EXIST::FUNCTION:RSA
91SSL_use_RSAPrivateKey_ASN1 103 EXIST::FUNCTION:RSA
92SSL_use_RSAPrivateKey_file 104 EXIST::FUNCTION:RSA,STDIO
93SSL_use_certificate 105 EXIST::FUNCTION:
94SSL_use_certificate_ASN1 106 EXIST::FUNCTION:
95SSL_use_certificate_file 107 EXIST::FUNCTION:STDIO
96SSL_write 108 EXIST::FUNCTION:
97SSLeay_add_ssl_algorithms 109 NOEXIST::FUNCTION:
98SSLv23_client_method 110 EXIST::FUNCTION:RSA
99SSLv23_method 111 EXIST::FUNCTION:RSA
100SSLv23_server_method 112 EXIST::FUNCTION:RSA
101SSLv2_client_method 113 EXIST::FUNCTION:RSA
102SSLv2_method 114 EXIST::FUNCTION:RSA
103SSLv2_server_method 115 EXIST::FUNCTION:RSA
104SSLv3_client_method 116 EXIST::FUNCTION:
105SSLv3_method 117 EXIST::FUNCTION:
106SSLv3_server_method 118 EXIST::FUNCTION:
107d2i_SSL_SESSION 119 EXIST::FUNCTION:
108i2d_SSL_SESSION 120 EXIST::FUNCTION:
109BIO_f_ssl 121 EXIST::FUNCTION:BIO
110BIO_new_ssl 122 EXIST::FUNCTION:BIO
111BIO_proxy_ssl_copy_session_id 123 NOEXIST::FUNCTION:
112BIO_ssl_copy_session_id 124 EXIST::FUNCTION:BIO
113SSL_do_handshake 125 EXIST::FUNCTION:
114SSL_get_privatekey 126 EXIST::FUNCTION:
115SSL_get_current_cipher 127 EXIST::FUNCTION:
116SSL_CIPHER_get_bits 128 EXIST::FUNCTION:
117SSL_CIPHER_get_version 129 EXIST::FUNCTION:
118SSL_CIPHER_get_name 130 EXIST::FUNCTION:
119BIO_ssl_shutdown 131 EXIST::FUNCTION:BIO
120SSL_SESSION_cmp 132 EXIST::FUNCTION:
121SSL_SESSION_hash 133 EXIST::FUNCTION:
122SSL_SESSION_get_time 134 EXIST::FUNCTION:
123SSL_SESSION_set_time 135 EXIST::FUNCTION:
124SSL_SESSION_get_timeout 136 EXIST::FUNCTION:
125SSL_SESSION_set_timeout 137 EXIST::FUNCTION:
126SSL_CTX_get_ex_data 138 EXIST::FUNCTION:
127SSL_CTX_get_quiet_shutdown 140 EXIST::FUNCTION:
128SSL_CTX_load_verify_locations 141 EXIST::FUNCTION:
129SSL_CTX_set_default_verify_paths 142 EXIST:!VMS:FUNCTION:
130SSL_CTX_set_def_verify_paths 142 EXIST:VMS:FUNCTION:
131SSL_CTX_set_ex_data 143 EXIST::FUNCTION:
132SSL_CTX_set_quiet_shutdown 145 EXIST::FUNCTION:
133SSL_SESSION_get_ex_data 146 EXIST::FUNCTION:
134SSL_SESSION_set_ex_data 148 EXIST::FUNCTION:
135SSL_get_SSL_CTX 150 EXIST::FUNCTION:
136SSL_get_ex_data 151 EXIST::FUNCTION:
137SSL_get_quiet_shutdown 153 EXIST::FUNCTION:
138SSL_get_session 154 EXIST::FUNCTION:
139SSL_get_shutdown 155 EXIST::FUNCTION:
140SSL_get_verify_result 157 EXIST::FUNCTION:
141SSL_set_ex_data 158 EXIST::FUNCTION:
142SSL_set_info_callback 160 EXIST::FUNCTION:
143SSL_set_quiet_shutdown 161 EXIST::FUNCTION:
144SSL_set_shutdown 162 EXIST::FUNCTION:
145SSL_set_verify_result 163 EXIST::FUNCTION:
146SSL_version 164 EXIST::FUNCTION:
147SSL_get_info_callback 165 EXIST::FUNCTION:
148SSL_state 166 EXIST::FUNCTION:
149SSL_CTX_get_ex_new_index 167 EXIST::FUNCTION:
150SSL_SESSION_get_ex_new_index 168 EXIST::FUNCTION:
151SSL_get_ex_new_index 169 EXIST::FUNCTION:
152TLSv1_method 170 EXIST::FUNCTION:
153TLSv1_server_method 171 EXIST::FUNCTION:
154TLSv1_client_method 172 EXIST::FUNCTION:
155BIO_new_buffer_ssl_connect 173 EXIST::FUNCTION:BIO
156BIO_new_ssl_connect 174 EXIST::FUNCTION:BIO
157SSL_get_ex_data_X509_STORE_CTX_idx 175 EXIST:!VMS:FUNCTION:
158SSL_get_ex_d_X509_STORE_CTX_idx 175 EXIST:VMS:FUNCTION:
159SSL_CTX_set_tmp_dh_callback 176 EXIST::FUNCTION:DH
160SSL_CTX_set_tmp_rsa_callback 177 EXIST::FUNCTION:RSA
161SSL_CTX_set_timeout 178 EXIST::FUNCTION:
162SSL_CTX_get_timeout 179 EXIST::FUNCTION:
163SSL_CTX_get_cert_store 180 EXIST::FUNCTION:
164SSL_CTX_set_cert_store 181 EXIST::FUNCTION:
165SSL_want 182 EXIST::FUNCTION:
166SSL_library_init 183 EXIST::FUNCTION:
167SSL_COMP_add_compression_method 184 EXIST::FUNCTION:COMP
168SSL_add_file_cert_subjects_to_stack 185 EXIST:!VMS:FUNCTION:STDIO
169SSL_add_file_cert_subjs_to_stk 185 EXIST:VMS:FUNCTION:STDIO
170SSL_set_tmp_rsa_callback 186 EXIST::FUNCTION:RSA
171SSL_set_tmp_dh_callback 187 EXIST::FUNCTION:DH
172SSL_add_dir_cert_subjects_to_stack 188 EXIST:!VMS:FUNCTION:STDIO
173SSL_add_dir_cert_subjs_to_stk 188 NOEXIST::FUNCTION:
174SSL_set_session_id_context 189 EXIST::FUNCTION:
175SSL_CTX_use_certificate_chain_file 222 EXIST:!VMS:FUNCTION:STDIO
176SSL_CTX_use_cert_chain_file 222 EXIST:VMS:FUNCTION:STDIO
177SSL_CTX_set_verify_depth 225 EXIST::FUNCTION:
178SSL_set_verify_depth 226 EXIST::FUNCTION:
179SSL_CTX_get_verify_depth 228 EXIST::FUNCTION:
180SSL_get_verify_depth 229 EXIST::FUNCTION:
181SSL_CTX_set_session_id_context 231 EXIST::FUNCTION:
182SSL_CTX_set_cert_verify_callback 232 EXIST:!VMS:FUNCTION:
183SSL_CTX_set_cert_verify_cb 232 EXIST:VMS:FUNCTION:
184SSL_CTX_set_default_passwd_cb_userdata 235 EXIST:!VMS:FUNCTION:
185SSL_CTX_set_def_passwd_cb_ud 235 EXIST:VMS:FUNCTION:
186SSL_set_purpose 236 EXIST::FUNCTION:
187SSL_CTX_set_trust 237 EXIST::FUNCTION:
188SSL_CTX_set_purpose 238 EXIST::FUNCTION:
189SSL_set_trust 239 EXIST::FUNCTION:
190SSL_get_finished 240 EXIST::FUNCTION:
191SSL_get_peer_finished 241 EXIST::FUNCTION:
192SSL_get1_session 242 EXIST::FUNCTION:
193SSL_CTX_callback_ctrl 243 EXIST::FUNCTION:
194SSL_callback_ctrl 244 EXIST::FUNCTION:
195SSL_CTX_sessions 245 EXIST::FUNCTION:
196SSL_get_rfd 246 EXIST::FUNCTION:
197SSL_get_wfd 247 EXIST::FUNCTION:
198kssl_cget_tkt 248 EXIST::FUNCTION:KRB5
199SSL_has_matching_session_id 249 EXIST::FUNCTION:
200kssl_err_set 250 EXIST::FUNCTION:KRB5
201kssl_ctx_show 251 EXIST::FUNCTION:KRB5
202kssl_validate_times 252 EXIST::FUNCTION:KRB5
203kssl_check_authent 253 EXIST::FUNCTION:KRB5
204kssl_ctx_new 254 EXIST::FUNCTION:KRB5
205kssl_build_principal_2 255 EXIST::FUNCTION:KRB5
206kssl_skip_confound 256 EXIST::FUNCTION:KRB5
207kssl_sget_tkt 257 EXIST::FUNCTION:KRB5
208SSL_set_generate_session_id 258 EXIST::FUNCTION:
209kssl_ctx_setkey 259 EXIST::FUNCTION:KRB5
210kssl_ctx_setprinc 260 EXIST::FUNCTION:KRB5
211kssl_ctx_free 261 EXIST::FUNCTION:KRB5
212kssl_krb5_free_data_contents 262 EXIST::FUNCTION:KRB5
213kssl_ctx_setstring 263 EXIST::FUNCTION:KRB5
214SSL_CTX_set_generate_session_id 264 EXIST::FUNCTION:
215SSL_renegotiate_pending 265 EXIST::FUNCTION:
216SSL_CTX_set_msg_callback 266 EXIST::FUNCTION:
217SSL_set_msg_callback 267 EXIST::FUNCTION:
diff --git a/src/lib/libcrypto/util/tab_num.pl b/src/lib/libcrypto/util/tab_num.pl
new file mode 100644
index 0000000000..a81ed0edc2
--- /dev/null
+++ b/src/lib/libcrypto/util/tab_num.pl
@@ -0,0 +1,17 @@
1#!/usr/local/bin/perl
2
3$num=1;
4$width=40;
5
6while (<>)
7 {
8 chop;
9
10 $i=length($_);
11
12 $n=$width-$i;
13 $i=int(($n+7)/8);
14 print $_.("\t" x $i).$num."\n";
15 $num++;
16 }
17
diff --git a/src/lib/libcrypto/util/x86asm.sh b/src/lib/libcrypto/util/x86asm.sh
new file mode 100644
index 0000000000..d2090a9849
--- /dev/null
+++ b/src/lib/libcrypto/util/x86asm.sh
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3echo Generating x86 assember
4echo Bignum
5(cd crypto/bn/asm; perl x86.pl cpp > bn86unix.cpp)
6(cd crypto/bn/asm; perl x86.pl win32 > bn-win32.asm)
7
8echo DES
9(cd crypto/des/asm; perl des-586.pl cpp > dx86unix.cpp)
10(cd crypto/des/asm; perl des-586.pl win32 > d-win32.asm)
11
12echo "crypt(3)"
13(cd crypto/des/asm; perl crypt586.pl cpp > yx86unix.cpp)
14(cd crypto/des/asm; perl crypt586.pl win32 > y-win32.asm)
15
16echo Blowfish
17(cd crypto/bf/asm; perl bf-586.pl cpp > bx86unix.cpp)
18(cd crypto/bf/asm; perl bf-586.pl win32 > b-win32.asm)
19
20echo CAST5
21(cd crypto/cast/asm; perl cast-586.pl cpp > cx86unix.cpp)
22(cd crypto/cast/asm; perl cast-586.pl win32 > c-win32.asm)
23
24echo RC4
25(cd crypto/rc4/asm; perl rc4-586.pl cpp > rx86unix.cpp)
26(cd crypto/rc4/asm; perl rc4-586.pl win32 > r4-win32.asm)
27
28echo MD5
29(cd crypto/md5/asm; perl md5-586.pl cpp > mx86unix.cpp)
30(cd crypto/md5/asm; perl md5-586.pl win32 > m5-win32.asm)
31
32echo SHA1
33(cd crypto/sha/asm; perl sha1-586.pl cpp > sx86unix.cpp)
34(cd crypto/sha/asm; perl sha1-586.pl win32 > s1-win32.asm)
35
36echo RIPEMD160
37(cd crypto/ripemd/asm; perl rmd-586.pl cpp > rm86unix.cpp)
38(cd crypto/ripemd/asm; perl rmd-586.pl win32 > rm-win32.asm)
39
40echo RC5/32
41(cd crypto/rc5/asm; perl rc5-586.pl cpp > r586unix.cpp)
42(cd crypto/rc5/asm; perl rc5-586.pl win32 > r5-win32.asm)