diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util')
49 files changed, 16369 insertions, 0 deletions
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/add-depends.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/add-depends.pl new file mode 100644 index 000000000..55d56b761 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/add-depends.pl @@ -0,0 +1,288 @@ +#! /usr/bin/env perl +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use lib '.'; +use configdata; + +use File::Spec::Functions qw(:DEFAULT rel2abs); +use File::Compare qw(compare_text); +use feature 'state'; + +# When using stat() on Windows, we can get it to perform better by avoid some +# data. This doesn't affect the mtime field, so we're not losing anything... +${^WIN32_SLOPPY_STAT} = 1; + +my $debug = $ENV{ADD_DEPENDS_DEBUG}; +my $buildfile = $config{build_file}; +my $build_mtime = (stat($buildfile))[9]; +my $rebuild = 0; +my $depext = $target{dep_extension} || ".d"; +my @depfiles = + sort + grep { + # This grep has side effects. Not only does if check the existence + # of the dependency file given in $_, but it also checks if it's + # newer than the build file, and if it is, sets $rebuild. + my @st = stat($_); + $rebuild = 1 if @st && $st[9] > $build_mtime; + scalar @st > 0; # Determines the grep result + } + map { (my $x = $_) =~ s|\.o$|$depext|; $x; } + ( ( grep { $unified_info{sources}->{$_}->[0] =~ /\.cc?$/ } + keys %{$unified_info{sources}} ), + ( grep { $unified_info{shared_sources}->{$_}->[0] =~ /\.cc?$/ } + keys %{$unified_info{shared_sources}} ) ); + +exit 0 unless $rebuild; + +# Ok, primary checks are done, time to do some real work + +my $producer = shift @ARGV; +die "Producer not given\n" unless $producer; + +my $srcdir = $config{sourcedir}; +my $blddir = $config{builddir}; +my $abs_srcdir = rel2abs($srcdir); +my $abs_blddir = rel2abs($blddir); + +# Convenient cache of absolute to relative map. We start with filling it +# with mappings for the known generated header files. They are relative to +# the current working directory, so that's an easy task. +# NOTE: there's more than C header files that are generated. They will also +# generate entries in this map. We could of course deal with C header files +# only, but in case we decide to handle more than just C files in the future, +# we already have the mechanism in place here. +# NOTE2: we lower case the index to make it searchable without regard for +# character case. That could seem dangerous, but as long as we don't have +# files we depend on in the same directory that only differ by character case, +# we're fine. +my %depconv_cache = + map { catfile($abs_blddir, $_) => $_ } + keys %{$unified_info{generate}}; + +my %procedures = ( + 'gcc' => undef, # gcc style dependency files needs no mods + 'makedepend' => + sub { + # makedepend, in its infinite wisdom, wants to have the object file + # in the same directory as the source file. This doesn't work too + # well with out-of-source-tree builds, so we must resort to tricks + # to get things right. Fortunately, the .d files are always placed + # parallel with the object files, so all we need to do is construct + # the object file name from the dep file name. + (my $objfile = shift) =~ s|\.d$|.o|i; + my $line = shift; + + # Discard comments + return undef if $line =~ /^(#.*|\s*)$/; + + # Remove the original object file + $line =~ s|^.*\.o: | |; + # Also, remove any dependency that starts with a /, because those + # are typically system headers + $line =~ s/\s+\/(\\.|\S)*//g; + # Finally, discard all empty lines + return undef if $line =~ /^\s*$/; + + # All we got now is a dependency, just shave off surrounding spaces + $line =~ s/^\s+//; + $line =~ s/\s+$//; + return ($objfile, $line); + }, + 'VMS C' => + sub { + state $abs_srcdir_shaved = undef; + state $srcdir_shaved = undef; + + unless (defined $abs_srcdir_shaved) { + ($abs_srcdir_shaved = $abs_srcdir) =~ s|[>\]]$||; + ($srcdir_shaved = $srcdir) =~ s|[>\]]$||; + } + + # current versions of DEC / Compaq / HP / VSI C strips away all + # directory information from the object file, so we must insert it + # back. To make life simpler, we simply replace it with the + # corresponding .D file that's had its extension changed. Since + # .D files are always written parallel to the object files, we + # thereby get the directory information for free. + (my $objfile = shift) =~ s|\.D$|.OBJ|i; + my $line = shift; + + # Shave off the target. + # + # The pattern for target and dependencies will always take this + # form: + # + # target SPACE : SPACE deps + # + # This is so a volume delimiter (a : without any spaces around it) + # won't get mixed up with the target / deps delimiter. We use this + # to easily identify what needs to be removed. + m|\s:\s|; $line = $'; + + # We know that VMS has system header files in text libraries, + # extension .TLB. We also know that our header files aren't stored + # in text libraries. Finally, we know that VMS C produces exactly + # one dependency per line, so we simply discard any line ending with + # .TLB. + return undef if /\.TLB\s*$/; + + # All we got now is a dependency, just shave off surrounding spaces + $line =~ s/^\s+//; + $line =~ s/\s+$//; + + # VMS C gives us absolute paths, always. Let's see if we can + # make them relative instead. + $line = canonpath($line); + + unless (defined $depconv_cache{$line}) { + my $dep = $line; + # Since we have already pre-populated the cache with + # mappings for generated headers, we only need to deal + # with the source tree. + if ($dep =~ s|^\Q$abs_srcdir_shaved\E([\.>\]])?|$srcdir_shaved$1|i) { + $depconv_cache{$line} = $dep; + } + } + return ($objfile, $depconv_cache{$line}) + if defined $depconv_cache{$line}; + print STDERR "DEBUG[VMS C]: ignoring $objfile <- $line\n" + if $debug; + + return undef; + }, + 'VC' => + sub { + # For the moment, we only support Visual C on native Windows, or + # compatible compilers. With those, the flags /Zs /showIncludes + # give us the necessary output to be able to create dependencies + # that nmake (or any 'make' implementation) should be able to read, + # with a bit of help. The output we're interested in looks like + # this (it always starts the same) + # + # Note: including file: {whatever header file} + # + # Since there's no object file name at all in that information, + # we must construct it ourselves. + + (my $objfile = shift) =~ s|\.d$|.obj|i; + my $line = shift; + + # There are also other lines mixed in, for example compiler + # warnings, so we simply discard anything that doesn't start with + # the Note: + + if (/^Note: including file: */) { + (my $tail = $') =~ s/\s*\R$//; + + # VC gives us absolute paths for all include files, so to + # remove system header dependencies, we need to check that + # they don't match $abs_srcdir or $abs_blddir. + $tail = canonpath($tail); + + unless (defined $depconv_cache{$tail}) { + my $dep = $tail; + # Since we have already pre-populated the cache with + # mappings for generated headers, we only need to deal + # with the source tree. + if ($dep =~ s|^\Q$abs_srcdir\E\\|\$(SRCDIR)\\|i) { + $depconv_cache{$tail} = $dep; + } + } + return ($objfile, '"'.$depconv_cache{$tail}.'"') + if defined $depconv_cache{$tail}; + print STDERR "DEBUG[VC]: ignoring $objfile <- $tail\n" + if $debug; + } + + return undef; + }, +); +my %continuations = ( + 'gcc' => undef, + 'makedepend' => "\\", + 'VMS C' => "-", + 'VC' => "\\", +); + +die "Producer unrecognised: $producer\n" + unless exists $procedures{$producer} && exists $continuations{$producer}; + +my $procedure = $procedures{$producer}; +my $continuation = $continuations{$producer}; + +my $buildfile_new = "$buildfile-$$"; + +my %collect = (); +if (defined $procedure) { + foreach my $depfile (@depfiles) { + open IDEP,$depfile or die "Trying to read $depfile: $!\n"; + while (<IDEP>) { + s|\R$||; # The better chomp + my ($target, $deps) = $procedure->($depfile, $_); + $collect{$target}->{$deps} = 1 if defined $target; + } + close IDEP; + } +} + +open IBF, $buildfile or die "Trying to read $buildfile: $!\n"; +open OBF, '>', $buildfile_new or die "Trying to write $buildfile_new: $!\n"; +while (<IBF>) { + last if /^# DO NOT DELETE THIS LINE/; + print OBF or die "$!\n"; +} +close IBF; + +print OBF "# DO NOT DELETE THIS LINE -- make depend depends on it.\n"; + +if (defined $procedure) { + foreach my $target (sort keys %collect) { + my $prefix = $target . ' :'; + my @deps = sort keys %{$collect{$target}}; + + while (@deps) { + my $buf = $prefix; + $prefix = ''; + + while (@deps && ($buf eq '' + || length($buf) + length($deps[0]) <= 77)) { + $buf .= ' ' . shift @deps; + } + $buf .= ' '.$continuation if @deps; + + print OBF $buf,"\n" or die "Trying to print: $!\n" + } + } +} else { + foreach my $depfile (@depfiles) { + open IDEP,$depfile or die "Trying to read $depfile: $!\n"; + while (<IDEP>) { + print OBF or die "Trying to print: $!\n"; + } + close IDEP; + } +} + +close OBF; + +if (compare_text($buildfile_new, $buildfile) != 0) { + rename $buildfile_new, $buildfile + or die "Trying to rename $buildfile_new -> $buildfile: $!\n"; +} + +END { + # On VMS, we want to remove all generations of this file, in case there + # are more than one, so we loop. + if (defined $buildfile_new) { + while (unlink $buildfile_new) {} + } +} diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/build.info b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/build.info new file mode 100644 index 000000000..609be5166 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/build.info @@ -0,0 +1,8 @@ +IF[{- $target{build_scheme}->[1] eq "VMS" -}] + SCRIPTS_NO_INST=local_shlib.com unlocal_shlib.com + SOURCE[local_shlib.com]=local_shlib.com.in + SOURCE[unlocal_shlib.com]=unlocal_shlib.com.in +ELSIF[{- $target{build_scheme}->[1] eq "unix" -}] + SCRIPTS_NO_INST=shlib_wrap.sh + SOURCE[shlib_wrap.sh]=shlib_wrap.sh.in +ENDIF diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/cavs-to-evptest.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/cavs-to-evptest.pl new file mode 100644 index 000000000..8df32943d --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/cavs-to-evptest.pl @@ -0,0 +1,121 @@ +#! /usr/bin/env perl +# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +#Convert CCM CAVS test vectors to a format suitable for evp_test + +use strict; +use warnings; + +my $alg; +my $mode; +my $keylen; +my $key = ""; +my $iv = ""; +my $aad = ""; +my $ct = ""; +my $pt = ""; +my $tag = ""; +my $aadlen = 0; +my $ptlen = 0; +my $taglen = 0; +my $res = ""; +my $intest = 0; +my $fixediv = 0; + +while (<STDIN>) +{ + chomp; + + # Pull out the cipher mode from the comment at the beginning of the file + if(/^#\s*"([^-]+)-\w+" information/) { + $mode = lc($1); + # Pull out the key length from the comment at the beginning of the file + } elsif(/^#\s*(\w+) Keylen: (\d+)/) { + $alg = lc($1); + $keylen = $2; + # Some parameters common to many tests appear as a list in square brackets + # so parse these + } elsif(/\[(.*)\]/) { + my @pairs = split(/, /, $1); + foreach my $pair (@pairs) { + $pair =~ /(\w+)\s*=\s*(\d+)/; + # AAD Length + if ($1 eq "Alen") { + $aadlen = $2; + # Plaintext length + } elsif ($1 eq "Plen") { + $ptlen = $2; + # Tag length + } elsif ($1 eq "Tlen") { + $taglen = $2; + } + } + # Key/Value pair + } elsif (/^\s*(\w+)\s*=\s*(\S.*)\r/) { + if ($1 eq "Key") { + $key = $2; + } elsif ($1 eq "Nonce") { + $iv = $2; + if ($intest == 0) { + $fixediv = 1; + } else { + $fixediv = 0; + } + } elsif ($1 eq "Adata") { + $aad = $2; + } elsif ($1 eq "CT") { + $ct = substr($2, 0, length($2) - ($taglen * 2)); + $tag = substr($2, $taglen * -2); + } elsif ($1 eq "Payload") { + $pt = $2; + } elsif ($1 eq "Result") { + if ($2 =~ /Fail/) { + $res = "CIPHERUPDATE_ERROR"; + } + } elsif ($1 eq "Count") { + $intest = 1; + } elsif ($1 eq "Plen") { + $ptlen = $2; + } elsif ($1 eq "Tlen") { + $taglen = $2; + } elsif ($1 eq "Alen") { + $aadlen = $2; + } + # Something else - probably just a blank line + } elsif ($intest) { + print "Cipher = $alg-$keylen-$mode\n"; + print "Key = $key\n"; + print "IV = $iv\n"; + print "AAD ="; + if ($aadlen > 0) { + print " $aad"; + } + print "\nTag ="; + if ($taglen > 0) { + print " $tag"; + } + print "\nPlaintext ="; + if ($ptlen > 0) { + print " $pt"; + } + print "\nCiphertext = $ct\n"; + if ($res ne "") { + print "Operation = DECRYPT\n"; + print "Result = $res\n"; + } + print "\n"; + $res = ""; + if ($fixediv == 0) { + $iv = ""; + } + $aad = ""; + $tag = ""; + $pt = ""; + $intest = 0; + } +} diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/check-malloc-errs b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/check-malloc-errs new file mode 100755 index 000000000..1e632407c --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/check-malloc-errs @@ -0,0 +1,16 @@ +#! /bin/sh +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +( + pcregrep -rnM 'OPENSSL_.?alloc.*\n.*if.*NULL.*\n.*return' crypto ssl + pcregrep -rnM 'if.*OPENSSL_.?alloc.*NULL.*\n.*.*return' crypto ssl +) | tee /tmp/out$$ +X=0 +test -s /tmp/out$$ && X=1 +rm /tmp/out$$ +exit $X diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/ck_errf.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/ck_errf.pl new file mode 100755 index 000000000..539736db0 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/ck_errf.pl @@ -0,0 +1,152 @@ +#! /usr/bin/env perl +# Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# This is just a quick script to scan for cases where the 'error' +# function name in a XXXerr() macro is wrong. +# +# Run in the top level by going +# perl util/ck_errf.pl */*.c */*/*.c +# + +use strict; +use warnings; + +my $config; +my $err_strict = 0; +my $debug = 0; +my $internal = 0; + +sub help +{ + print STDERR <<"EOF"; +mkerr.pl [options] [files...] + +Options: + + -conf FILE Use the named config file FILE instead of the default. + + -debug Verbose output debugging on stderr. + + -internal Generate code that is to be built as part of OpenSSL itself. + Also scans internal list of files. + + -strict If any error was found, fail with exit code 1, otherwise 0. + + -help Show this help text. + + ... Additional arguments are added to the file list to scan, + if '-internal' was NOT specified on the command line. + +EOF +} + +while ( @ARGV ) { + my $arg = $ARGV[0]; + last unless $arg =~ /-.*/; + $arg = $1 if $arg =~ /-(-.*)/; + if ( $arg eq "-conf" ) { + $config = $ARGV[1]; + shift @ARGV; + } elsif ( $arg eq "-debug" ) { + $debug = 1; + } elsif ( $arg eq "-internal" ) { + $internal = 1; + } elsif ( $arg eq "-strict" ) { + $err_strict = 1; + } elsif ( $arg =~ /-*h(elp)?/ ) { + &help(); + exit; + } elsif ( $arg =~ /-.*/ ) { + die "Unknown option $arg; use -h for help.\n"; + } + shift @ARGV; +} + +my @source; +if ( $internal ) { + die "Extra parameters given.\n" if @ARGV; + $config = "crypto/err/openssl.ec" unless defined $config; + @source = ( glob('crypto/*.c'), glob('crypto/*/*.c'), + glob('ssl/*.c'), glob('ssl/*/*.c') ); +} else { + die "Configuration file not given.\nSee '$0 -help' for information\n" + unless defined $config; + @source = @ARGV; +} + +# To detect if there is any error generation for a libcrypto/libssl libs +# we don't know, we need to find out what libs we do know. That list is +# readily available in crypto/err/openssl.ec, in form of lines starting +# with "L ". Note that we always rely on the modules SYS and ERR to be +# generally available. +my %libs = ( SYS => 1, ERR => 1 ); +open my $cfh, $config or die "Trying to read $config: $!\n"; +while (<$cfh>) { + s|\R$||; # Better chomp + next unless m|^L ([0-9A-Z_]+)\s|; + next if $1 eq "NONE"; + $libs{$1} = 1; +} + +my $bad = 0; +foreach my $file (@source) { + open( IN, "<$file" ) || die "Can't open $file, $!"; + my $func = ""; + while (<IN>) { + if ( !/;$/ && /^\**([a-zA-Z_].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/ ) { + /^([^()]*(\([^()]*\)[^()]*)*)\(/; + $1 =~ /([A-Za-z_0-9]*)$/; + $func = $1; + $func =~ tr/A-Z/a-z/; + } + if ( /([A-Z0-9_]+[A-Z0-9])err\(([^,]+)/ && !/ckerr_ignore/ ) { + my $errlib = $1; + my $n = $2; + + unless ( $libs{$errlib} ) { + print "$file:$.:$errlib not listed in $config\n"; + $libs{$errlib} = 1; # To not display it again + $bad = 1; + } + + if ( $func eq "" ) { + print "$file:$.:???:$n\n"; + $bad = 1; + next; + } + + if ( $n !~ /^(.+)_F_(.+)$/ ) { + #print "check -$file:$.:$func:$n\n"; + next; + } + my $lib = $1; + $n = $2; + + if ( $lib ne $errlib ) { + print "$file:$.:$func:$n [${errlib}err]\n"; + $bad = 1; + next; + } + + $n =~ tr/A-Z/a-z/; + if ( $n ne $func && $errlib ne "SYS" ) { + print "$file:$.:$func:$n\n"; + $bad = 1; + next; + } + + # print "$func:$1\n"; + } + } + close(IN); +} + +if ( $bad && $err_strict ) { + print STDERR "FATAL: error discrepancy\n"; + exit 1; +} diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/copy.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/copy.pl new file mode 100644 index 000000000..58ecc82c4 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/copy.pl @@ -0,0 +1,84 @@ +#! /usr/bin/env perl +# Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +use Fcntl; + + +# copy.pl + +# Perl script 'copy' comment. On Windows the built in "copy" command also +# copies timestamps: this messes up Makefile dependencies. + +my $stripcr = 0; + +my $arg; +my @excludes = (); + +foreach $arg (@ARGV) { + if ($arg eq "-stripcr") + { + $stripcr = 1; + next; + } + if ($arg =~ /^-exclude_re=(.*)$/) + { + push @excludes, $1; + next; + } + $arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob... + $arg = qq("$arg") if ($arg =~ /\s/); # compensate for bug in 5.10... + foreach my $f (glob $arg) + { + push @filelist, $f unless grep { $f =~ /$_/ } @excludes; + } +} + +$fnum = @filelist; + +if ($fnum <= 1) + { + die "Need at least two filenames"; + } + +$dest = pop @filelist; + +if ($fnum > 2 && ! -d $dest) + { + die "Destination must be a directory"; + } + +foreach (@filelist) + { + if (-d $dest) + { + $dfile = $_; + $dfile =~ s|^.*[/\\]([^/\\]*)$|$1|; + $dfile = "$dest/$dfile"; + } + else + { + $dfile = $dest; + } + sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_"; + sysopen(OUT, $dfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY) + || die "Can't Open $dfile"; + while (sysread IN, $buf, 10240) + { + if ($stripcr) + { + $buf =~ tr/\015//d; + } + syswrite(OUT, $buf, length($buf)); + } + close(IN); + close(OUT); + print "Copying: $_ to $dfile\n"; + } + + diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/dofile.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/dofile.pl new file mode 100644 index 000000000..c3bc9ba9d --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/dofile.pl @@ -0,0 +1,210 @@ +#! /usr/bin/env perl +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# Reads one or more template files and runs it through Text::Template +# +# It is assumed that this scripts is called with -Mconfigdata, a module +# that holds configuration data in %config + +use strict; +use warnings; + +use FindBin; +use Getopt::Std; + +# We actually expect to get the following hash tables from configdata: +# +# %config +# %target +# %withargs +# %unified_info +# +# We just do a minimal test to see that we got what we expected. +# $config{target} must exist as an absolute minimum. +die "You must run this script with -Mconfigdata\n" if !exists($config{target}); + +# Make a subclass of Text::Template to override append_text_to_result, +# as recommended here: +# +# http://search.cpan.org/~mjd/Text-Template-1.46/lib/Text/Template.pm#Automatic_postprocessing_of_template_hunks + +package OpenSSL::Template; + +# Because we know that Text::Template isn't a core Perl module, we use +# a fallback in case it's not installed on the system +use File::Basename; +use File::Spec::Functions; +use lib "$FindBin::Bin/perl"; +use with_fallback "Text::Template 1.46"; + +#use parent qw/Text::Template/; +use vars qw/@ISA/; +push @ISA, qw/Text::Template/; + +# Override constructor +sub new { + my ($class) = shift; + + # Call the constructor of the parent class, Person. + my $self = $class->SUPER::new( @_ ); + # Add few more attributes + $self->{_output_off} = 0; # Default to output hunks + bless $self, $class; + return $self; +} + +sub append_text_to_output { + my $self = shift; + + if ($self->{_output_off} == 0) { + $self->SUPER::append_text_to_output(@_); + } + + return; +} + +sub output_reset_on { + my $self = shift; + $self->{_output_off} = 0; +} + +sub output_on { + my $self = shift; + if (--$self->{_output_off} < 0) { + $self->{_output_off} = 0; + } +} + +sub output_off { + my $self = shift; + $self->{_output_off}++; +} + +# Come back to main + +package main; + +# Helper functions for the templates ################################# + +# It might be practical to quotify some strings and have them protected +# from possible harm. These functions primarily quote things that might +# be interpreted wrongly by a perl eval. + +# quotify1 STRING +# This adds quotes (") around the given string, and escapes any $, @, \, +# " and ' by prepending a \ to them. +sub quotify1 { + my $s = shift @_; + $s =~ s/([\$\@\\"'])/\\$1/g; + '"'.$s.'"'; +} + +# quotify_l LIST +# For each defined element in LIST (i.e. elements that aren't undef), have +# it quotified with 'quotify1' +sub quotify_l { + map { + if (!defined($_)) { + (); + } else { + quotify1($_); + } + } @_; +} + +# Error reporter ##################################################### + +# The error reporter uses %lines to figure out exactly which file the +# error happened and at what line. Not that the line number may be +# the start of a perl snippet rather than the exact line where it +# happened. Nothing we can do about that here. + +my %lines = (); +sub broken { + my %args = @_; + my $filename = "<STDIN>"; + my $deducelines = 0; + foreach (sort keys %lines) { + $filename = $lines{$_}; + last if ($_ > $args{lineno}); + $deducelines += $_; + } + print STDERR $args{error}," in $filename, fragment starting at line ",$args{lineno}-$deducelines; + undef; +} + +# Check options ###################################################### + +my %opts = (); + +# -o ORIGINATOR +# declares ORIGINATOR as the originating script. +getopt('o', \%opts); + +my @autowarntext = ("WARNING: do not edit!", + "Generated" + . (defined($opts{o}) ? " by ".$opts{o} : "") + . (scalar(@ARGV) > 0 ? " from ".join(", ",@ARGV) : "")); + +# Template reading ################################################### + +# Read in all the templates into $text, while keeping track of each +# file and its size in lines, to try to help report errors with the +# correct file name and line number. + +my $prev_linecount = 0; +my $text = + @ARGV + ? join("", map { my $x = Text::Template::_load_text($_); + if (!defined($x)) { + die $Text::Template::ERROR, "\n"; + } + $x = "{- output_reset_on() -}" . $x; + my $linecount = $x =~ tr/\n//; + $prev_linecount = ($linecount += $prev_linecount); + $lines{$linecount} = $_; + $x } @ARGV) + : join("", <STDIN>); + +# Engage! ############################################################ + +# Load the full template (combination of files) into Text::Template +# and fill it up with our data. Output goes directly to STDOUT + +my $template = + OpenSSL::Template->new(TYPE => 'STRING', + SOURCE => $text, + PREPEND => qq{use lib "$FindBin::Bin/perl";}); + +sub output_reset_on { + $template->output_reset_on(); + ""; +} +sub output_on { + $template->output_on(); + ""; +} +sub output_off { + $template->output_off(); + ""; +} + +$template->fill_in(OUTPUT => \*STDOUT, + HASH => { config => \%config, + target => \%target, + disabled => \%disabled, + withargs => \%withargs, + unified_info => \%unified_info, + autowarntext => \@autowarntext, + quotify1 => \"ify1, + quotify_l => \"ify_l, + output_reset_on => \&output_reset_on, + output_on => \&output_on, + output_off => \&output_off }, + DELIMITERS => [ "{-", "-}" ], + BROKEN => \&broken); diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/echo.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/echo.pl new file mode 100644 index 000000000..d90e52129 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/echo.pl @@ -0,0 +1,12 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use Getopt::Std; + +our $opt_n = 0; + +getopts('n') or die "Invalid option: $!\n"; + +print join(' ', @ARGV); +print "\n" unless $opt_n; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/find-doc-nits b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/find-doc-nits new file mode 100755 index 000000000..f2fd85ce8 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/find-doc-nits @@ -0,0 +1,574 @@ +#! /usr/bin/env perl +# Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +require 5.10.0; +use warnings; +use strict; +use Pod::Checker; +use File::Find; +use File::Basename; +use File::Spec::Functions; +use Getopt::Std; +use lib catdir(dirname($0), "perl"); +use OpenSSL::Util::Pod; + +# Options. +our($opt_d); +our($opt_h); +our($opt_l); +our($opt_n); +our($opt_p); +our($opt_u); +our($opt_c); + +sub help() +{ + print <<EOF; +Find small errors (nits) in documentation. Options: + -d Detailed list of undocumented (implies -u) + -l Print bogus links + -n Print nits in POD pages + -p Warn if non-public name documented (implies -n) + -u Count undocumented functions + -h Print this help message + -c List undocumented commands and options +EOF + exit; +} + +my $temp = '/tmp/docnits.txt'; +my $OUT; +my %public; + +my %mandatory_sections = + ( '*' => [ 'NAME', 'DESCRIPTION', 'COPYRIGHT' ], + 1 => [ 'SYNOPSIS', 'OPTIONS' ], + 3 => [ 'SYNOPSIS', 'RETURN VALUES' ], + 5 => [ ], + 7 => [ ] ); + +# Cross-check functions in the NAME and SYNOPSIS section. +sub name_synopsis() +{ + my $id = shift; + my $filename = shift; + my $contents = shift; + + # Get NAME section and all words in it. + return unless $contents =~ /=head1 NAME(.*)=head1 SYNOPSIS/ms; + my $tmp = $1; + $tmp =~ tr/\n/ /; + print "$id trailing comma before - in NAME\n" if $tmp =~ /, *-/; + $tmp =~ s/ -.*//g; + $tmp =~ s/ */ /g; + print "$id missing comma in NAME\n" if $tmp =~ /[^,] /; + $tmp =~ s/,//g; + + my $dirname = dirname($filename); + my $simplename = basename($filename); + $simplename =~ s/.pod$//; + my $foundfilename = 0; + my %foundfilenames = (); + my %names; + foreach my $n ( split ' ', $tmp ) { + $names{$n} = 1; + $foundfilename++ if $n eq $simplename; + $foundfilenames{$n} = 1 + if -f "$dirname/$n.pod" && $n ne $simplename; + } + print "$id the following exist as other .pod files:\n", + join(" ", sort keys %foundfilenames), "\n" + if %foundfilenames; + print "$id $simplename (filename) missing from NAME section\n" + unless $foundfilename; + foreach my $n ( keys %names ) { + print "$id $n is not public\n" + if $opt_p and !defined $public{$n}; + } + + # Find all functions in SYNOPSIS + return unless $contents =~ /=head1 SYNOPSIS(.*)=head1 DESCRIPTION/ms; + my $syn = $1; + foreach my $line ( split /\n+/, $syn ) { + my $sym; + $line =~ s/STACK_OF\([^)]+\)/int/g; + $line =~ s/__declspec\([^)]+\)//; + if ( $line =~ /env (\S*)=/ ) { + # environment variable env NAME=... + $sym = $1; + } elsif ( $line =~ /typedef.*\(\*(\S+)\)\(.*/ ) { + # a callback function pointer: typedef ... (*NAME)(... + $sym = $1; + } elsif ( $line =~ /typedef.* (\S+)\(.*/ ) { + # a callback function signature: typedef ... NAME(... + $sym = $1; + } elsif ( $line =~ /typedef.* (\S+);/ ) { + # a simple typedef: typedef ... NAME; + $sym = $1; + } elsif ( $line =~ /enum (\S*) \{/ ) { + # an enumeration: enum ... { + $sym = $1; + } elsif ( $line =~ /#define ([A-Za-z0-9_]+)/ ) { + $sym = $1; + } elsif ( $line =~ /([A-Za-z0-9_]+)\(/ ) { + $sym = $1; + } + else { + next; + } + print "$id $sym missing from NAME section\n" + unless defined $names{$sym}; + $names{$sym} = 2; + + # Do some sanity checks on the prototype. + print "$id prototype missing spaces around commas: $line\n" + if ( $line =~ /[a-z0-9],[^ ]/ ); + } + + foreach my $n ( keys %names ) { + next if $names{$n} == 2; + print "$id $n missing from SYNOPSIS\n"; + } +} + +# Check if SECTION ($3) is located before BEFORE ($4) +sub check_section_location() +{ + my $id = shift; + my $contents = shift; + my $section = shift; + my $before = shift; + + return + unless $contents =~ /=head1 $section/ and $contents =~ /=head1 $before/; + print "$id $section should be placed before $before section\n" + if $contents =~ /=head1 $before.*=head1 $section/ms; +} + +sub check() +{ + my $filename = shift; + my $dirname = basename(dirname($filename)); + + my $contents = ''; + { + local $/ = undef; + open POD, $filename or die "Couldn't open $filename, $!"; + $contents = <POD>; + close POD; + } + + my $id = "${filename}:1:"; + + # Check ordering of some sections in man3 + if ( $filename =~ m|man3/| ) { + &check_section_location($id, $contents, "RETURN VALUES", "EXAMPLES"); + &check_section_location($id, $contents, "SEE ALSO", "HISTORY"); + &check_section_location($id, $contents, "EXAMPLES", "SEE ALSO"); + } + + &name_synopsis($id, $filename, $contents) + unless $contents =~ /=for comment generic/ + or $filename =~ m@man[157]/@; + + print "$id doesn't start with =pod\n" + if $contents !~ /^=pod/; + print "$id doesn't end with =cut\n" + if $contents !~ /=cut\n$/; + print "$id more than one cut line.\n" + if $contents =~ /=cut.*=cut/ms; + print "$id EXAMPLE not EXAMPLES section.\n" + if $contents =~ /=head1 EXAMPLE[^S]/; + print "$id WARNING not WARNINGS section.\n" + if $contents =~ /=head1 WARNING[^S]/; + print "$id missing copyright\n" + if $contents !~ /Copyright .* The OpenSSL Project Authors/; + print "$id copyright not last\n" + if $contents =~ /head1 COPYRIGHT.*=head/ms; + print "$id head2 in All uppercase\n" + if $contents =~ /head2\s+[A-Z ]+\n/; + print "$id extra space after head\n" + if $contents =~ /=head\d\s\s+/; + print "$id period in NAME section\n" + if $contents =~ /=head1 NAME.*\.\n.*=head1 SYNOPSIS/ms; + print "$id POD markup in NAME section\n" + if $contents =~ /=head1 NAME.*[<>].*=head1 SYNOPSIS/ms; + print "$id Duplicate $1 in L<>\n" + if $contents =~ /L<([^>]*)\|([^>]*)>/ && $1 eq $2; + print "$id Bad =over $1\n" + if $contents =~ /=over([^ ][^24])/; + print "$id Possible version style issue\n" + if $contents =~ /OpenSSL version [019]/; + + if ( $contents !~ /=for comment multiple includes/ ) { + # Look for multiple consecutive openssl #include lines + # (non-consecutive lines are okay; see man3/MD5.pod). + if ( $contents =~ /=head1 SYNOPSIS(.*)=head1 DESCRIPTION/ms ) { + my $count = 0; + foreach my $line ( split /\n+/, $1 ) { + if ( $line =~ m@include <openssl/@ ) { + print "$id has multiple includes\n" if ++$count == 2; + } else { + $count = 0; + } + } + } + } + + open my $OUT, '>', $temp + or die "Can't open $temp, $!"; + podchecker($filename, $OUT); + close $OUT; + open $OUT, '<', $temp + or die "Can't read $temp, $!"; + while ( <$OUT> ) { + next if /\(section\) in.*deprecated/; + print; + } + close $OUT; + unlink $temp || warn "Can't remove $temp, $!"; + + # Find what section this page is in; assume 3. + my $section = 3; + $section = $1 if $dirname =~ /man([1-9])/; + + foreach ((@{$mandatory_sections{'*'}}, @{$mandatory_sections{$section}})) { + # Skip "return values" if not -s + print "$id: missing $_ head1 section\n" + if $contents !~ /^=head1\s+${_}\s*$/m; + } +} + +my %dups; + +sub parsenum() +{ + my $file = shift; + my @apis; + + open my $IN, '<', $file + or die "Can't open $file, $!, stopped"; + + while ( <$IN> ) { + next if /^#/; + next if /\bNOEXIST\b/; + next if /\bEXPORT_VAR_AS_FUNC\b/; + my @fields = split(); + die "Malformed line $_" + if scalar @fields != 2 && scalar @fields != 4; + push @apis, $fields[0]; + } + + close $IN; + + print "# Found ", scalar(@apis), " in $file\n" unless $opt_p; + return sort @apis; +} + +sub getdocced() +{ + my $dir = shift; + my %return; + + foreach my $pod ( glob("$dir/*.pod") ) { + my %podinfo = extract_pod_info($pod); + foreach my $n ( @{$podinfo{names}} ) { + $return{$n} = $pod; + print "# Duplicate $n in $pod and $dups{$n}\n" + if defined $dups{$n} && $dups{$n} ne $pod; + $dups{$n} = $pod; + } + } + + return %return; +} + +my %docced; + +sub checkmacros() +{ + my $count = 0; + my %seen; + + print "# Checking macros (approximate)\n"; + foreach my $f ( glob('include/openssl/*.h') ) { + # Skip some internals we don't want to document yet. + next if $f eq 'include/openssl/asn1.h'; + next if $f eq 'include/openssl/asn1t.h'; + next if $f eq 'include/openssl/err.h'; + open(IN, $f) || die "Can't open $f, $!"; + while ( <IN> ) { + next unless /^#\s*define\s*(\S+)\(/; + my $macro = $1; + next if $docced{$macro} || defined $seen{$macro}; + next if $macro =~ /i2d_/ + || $macro =~ /d2i_/ + || $macro =~ /DEPRECATEDIN/ + || $macro =~ /IMPLEMENT_/ + || $macro =~ /DECLARE_/; + print "$f:$macro\n" if $opt_d; + $count++; + $seen{$macro} = 1; + } + close(IN); + } + print "# Found $count macros missing (not all should be documented)\n" +} + +sub printem() +{ + my $libname = shift; + my $numfile = shift; + my $count = 0; + my %seen; + + foreach my $func ( &parsenum($numfile) ) { + next if $docced{$func} || defined $seen{$func}; + + # Skip ASN1 utilities + next if $func =~ /^ASN1_/; + + print "$libname:$func\n" if $opt_d; + $count++; + $seen{$func} = 1; + } + print "# Found $count missing from $numfile\n\n"; +} + + +# Collection of links in each POD file. +# filename => [ "foo(1)", "bar(3)", ... ] +my %link_collection = (); +# Collection of names in each POD file. +# "name(s)" => filename +my %name_collection = (); + +sub collectnames { + my $filename = shift; + $filename =~ m|man(\d)/|; + my $section = $1; + my $simplename = basename($filename, ".pod"); + my $id = "${filename}:1:"; + + my $contents = ''; + { + local $/ = undef; + open POD, $filename or die "Couldn't open $filename, $!"; + $contents = <POD>; + close POD; + } + + $contents =~ /=head1 NAME([^=]*)=head1 /ms; + my $tmp = $1; + unless (defined $tmp) { + print "$id weird name section\n"; + return; + } + $tmp =~ tr/\n/ /; + $tmp =~ s/-.*//g; + + my @names = map { s/\s+//g; $_ } split(/,/, $tmp); + unless (grep { $simplename eq $_ } @names) { + print "$id missing $simplename\n"; + push @names, $simplename; + } + foreach my $name (@names) { + next if $name eq ""; + my $name_sec = "$name($section)"; + if (! exists $name_collection{$name_sec}) { + $name_collection{$name_sec} = $filename; + } else { #elsif ($filename ne $name_collection{$name_sec}) { + print "$id $name_sec also in $name_collection{$name_sec}\n"; + } + } + + my @foreign_names = + map { map { s/\s+//g; $_ } split(/,/, $_) } + $contents =~ /=for\s+comment\s+foreign\s+manuals:\s*(.*)\n\n/; + foreach (@foreign_names) { + $name_collection{$_} = undef; # It still exists! + } + + my @links = $contents =~ /L< + # if the link is of the form L<something|name(s)>, + # then remove 'something'. Note that 'something' + # may contain POD codes as well... + (?:(?:[^\|]|<[^>]*>)*\|)? + # we're only interested in references that have + # a one digit section number + ([^\/>\(]+\(\d\)) + /gx; + $link_collection{$filename} = [ @links ]; +} + +sub checklinks { + foreach my $filename (sort keys %link_collection) { + foreach my $link (@{$link_collection{$filename}}) { + print "${filename}:1: reference to non-existing $link\n" + unless exists $name_collection{$link}; + } + } +} + +sub publicize() { + foreach my $name ( &parsenum('util/libcrypto.num') ) { + $public{$name} = 1; + } + foreach my $name ( &parsenum('util/libssl.num') ) { + $public{$name} = 1; + } + foreach my $name ( &parsenum('util/private.num') ) { + $public{$name} = 1; + } +} + +my %skips = ( + 'aes128' => 1, + 'aes192' => 1, + 'aes256' => 1, + 'aria128' => 1, + 'aria192' => 1, + 'aria256' => 1, + 'camellia128' => 1, + 'camellia192' => 1, + 'camellia256' => 1, + 'des' => 1, + 'des3' => 1, + 'idea' => 1, + '[cipher]' => 1, + '[digest]' => 1, +); + +sub checkflags() { + my $cmd = shift; + my %cmdopts; + my %docopts; + my $ok = 1; + + # Get the list of options in the command. + open CFH, "./apps/openssl list --options $cmd|" + || die "Can list options for $cmd, $!"; + while ( <CFH> ) { + chop; + s/ .$//; + $cmdopts{$_} = 1; + } + close CFH; + + # Get the list of flags from the synopsis + open CFH, "<doc/man1/$cmd.pod" + || die "Can't open $cmd.pod, $!"; + while ( <CFH> ) { + chop; + last if /DESCRIPTION/; + next unless /\[B<-([^ >]+)/; + $docopts{$1} = 1; + } + close CFH; + + # See what's in the command not the manpage. + my @undocced = (); + foreach my $k ( keys %cmdopts ) { + push @undocced, $k unless $docopts{$k}; + } + if ( scalar @undocced > 0 ) { + $ok = 0; + foreach ( @undocced ) { + print "doc/man1/$cmd.pod: Missing -$_\n"; + } + } + + # See what's in the command not the manpage. + my @unimpl = (); + foreach my $k ( keys %docopts ) { + push @unimpl, $k unless $cmdopts{$k}; + } + if ( scalar @unimpl > 0 ) { + $ok = 0; + foreach ( @unimpl ) { + next if defined $skips{$_}; + print "doc/man1/$cmd.pod: Not implemented -$_\n"; + } + } + + return $ok; +} + +getopts('cdlnphu'); + +&help() if $opt_h; +$opt_n = 1 if $opt_p; +$opt_u = 1 if $opt_d; + +die "Need one of -[cdlnpu] flags.\n" + unless $opt_c or $opt_l or $opt_n or $opt_u; + +if ( $opt_c ) { + my $ok = 1; + my @commands = (); + + # Get list of commands. + open FH, "./apps/openssl list -1 -commands|" + || die "Can't list commands, $!"; + while ( <FH> ) { + chop; + push @commands, $_; + } + close FH; + + # See if each has a manpage. + foreach ( @commands ) { + next if $_ eq 'help' || $_ eq 'exit'; + if ( ! -f "doc/man1/$_.pod" ) { + print "doc/man1/$_.pod does not exist\n"; + $ok = 0; + } else { + $ok = 0 if not &checkflags($_); + } + } + + # See what help is missing. + open FH, "./apps/openssl list --missing-help |" + || die "Can't list missing help, $!"; + while ( <FH> ) { + chop; + my ($cmd, $flag) = split; + print "$cmd has no help for -$flag\n"; + $ok = 0; + } + close FH; + + exit 1 if not $ok; +} + +if ( $opt_l ) { + foreach (@ARGV ? @ARGV : glob('doc/*/*.pod')) { + collectnames($_); + } + checklinks(); +} + +if ( $opt_n ) { + &publicize() if $opt_p; + foreach (@ARGV ? @ARGV : glob('doc/*/*.pod')) { + &check($_); + } +} + +if ( $opt_u ) { + my %temp = &getdocced('doc/man3'); + foreach ( keys %temp ) { + $docced{$_} = $temp{$_}; + } + &printem('crypto', 'util/libcrypto.num'); + &printem('ssl', 'util/libssl.num'); + &checkmacros(); +} + +exit; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/find-unused-errs b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/find-unused-errs new file mode 100755 index 000000000..cd1026d59 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/find-unused-errs @@ -0,0 +1,54 @@ +#! /bin/bash +# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# Find unused error function-names and reason-codes, and edit them +# out of the source. Doesn't handle line-wrapping, might have to do +# some manual cleanups to fix compile errors. + +export X1=/tmp/f.1.$$ +export X2=/tmp/f.2.$$ + +case "$1" in + -f) + PAT='_F_' + echo Functions only + ;; + -[er]) + PAT='_R_' + echo Reason codes only + ;; + "") + PAT='_[FR]_' + echo Function and reasons + ;; + *) + echo "Usage error; one of -[efr] required." + exit 1; + ;; +esac + +cd include/openssl || exit 1 +grep "$PAT" * | grep -v ERR_FATAL_ERROR | awk '{print $3;}' | sort -u >$X1 +cd ../.. + +for F in `cat $X1` ; do + git grep -l --full-name -F $F >$X2 + NUM=`wc -l <$X2` + test $NUM -gt 2 && continue + if grep -q $F crypto/err/openssl.ec ; then + echo Possibly unused $F found in openssl.ec + continue + fi + echo $F + for FILE in `cat $X2` ; do + grep -v -w $F <$FILE >$FILE.new + mv $FILE.new $FILE + done +done + +rm $X1 $X2 diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/fix-includes b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/fix-includes new file mode 100755 index 000000000..c49163875 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/fix-includes @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +find -name ossl_typ.h -o \( \ + -name '*.h' -o \ + -name '*.h.in' -o \ + -name '*.c' -o \ + -name '*.ec' -o \ + -name 'README*' -o \ + -name '*.pod' -o \ + -name '*.conf' \ + \) -exec sed -E -i \ + -f util/fix-includes.sed {} \; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/fix-includes.sed b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/fix-includes.sed new file mode 100644 index 000000000..fb0d65287 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/fix-includes.sed @@ -0,0 +1,5 @@ +s|internal/([a-z0-9_]+)_int\.h|crypto/\1.h|g ; +s@internal/(aria.h|async.h|bn_conf.h|bn_dh.h|bn_srp.h|chacha.h|ctype.h|__DECC_INCLUDE_EPILOGUE.H|__DECC_INCLUDE_PROLOGUE.H|dso_conf.h|engine.h|lhash.h|md32_common.h|objects.h|poly1305.h|sha.h|siphash.h|sm2err.h|sm2.h|sm3.h|sm4.h|store.h|foobar)@crypto/\1@g ; +s/constant_time_locl/constant_time/g ; +s/_lo?cl\.h/_local.h/g ; +s/_int\.h/_local.h/g ; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/indent.pro b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/indent.pro new file mode 100644 index 000000000..3d3f747bf --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/indent.pro @@ -0,0 +1,643 @@ +-bap +-bbo +-br +-brs +-c33 +-cd33 +-ce +-ci4 +-cli0 +-cp33 +-d0 +-di1 +-hnl +-i4 +-il1 +-ip0 +-l80 +-lp +-nbad +-nbc +-ncdb +-ncs +-nfc1 +-nfca +-npcs +-nprs +-npsl +-nsc +-ppi1 +-saf +-sai +-saw +-sob +-ss +-ts0 +-T ACCESS_DESCRIPTION +-T ADDED_OBJ +-T AES_KEY +-T APP_INFO +-T ARGS +-T ASIdOrRange +-T ASIdOrRanges +-T ASIdentifierChoice +-T ASIdentifiers +-T ASN1_ADB +-T ASN1_ADB_TABLE +-T ASN1_AUX +-T ASN1_BIT_STRING +-T ASN1_BMPSTRING +-T ASN1_BOOLEAN +-T ASN1_ENCODING +-T ASN1_ENUMERATED +-T ASN1_EXTERN_FUNCS +-T ASN1_GENERALIZEDTIME +-T ASN1_GENERALSTRING +-T ASN1_IA5STRING +-T ASN1_INTEGER +-T ASN1_ITEM +-T ASN1_ITEM_EXP +-T ASN1_NULL +-T ASN1_OBJECT +-T ASN1_OCTET_STRING +-T ASN1_PCTX +-T ASN1_PRIMITIVE_FUNCS +-T ASN1_PRINTABLESTRING +-T ASN1_PRINT_ARG +-T ASN1_SCTX +-T ASN1_STREAM_ARG +-T ASN1_STRING +-T ASN1_STRING_TABLE +-T ASN1_T61STRING +-T ASN1_TEMPLATE +-T ASN1_TIME +-T ASN1_TLC +-T ASN1_TYPE +-T ASN1_UNIVERSALSTRING +-T ASN1_UTCTIME +-T ASN1_UTF8STRING +-T ASN1_VALUE +-T ASN1_VISIBLESTRING +-T AUTHORITY_INFO_ACCESS +-T AUTHORITY_KEYID +-T BASIC_CONSTRAINTS +-T BF_KEY +-T BF_LONG +-T BIGNUM +-T BIO +-T BIO_ACCEPT +-T BIO_ADDR +-T BIO_ASN1_BUF_CTX +-T BIO_ASN1_EX_FUNCS +-T BIO_B64_CTX +-T BIO_CONNECT +-T BIO_ENC_CTX +-T BIO_F_BUFFER_CTX +-T BIO_LINEBUFFER_CTX +-T BIO_METHOD +-T BIO_OK_CTX +-T BIO_SSL +-T BIT_STRING_BITNAME +-T BN_BLINDING +-T BN_CTX +-T BN_GENCB +-T BN_MONT_CTX +-T BN_POOL +-T BN_POOL_ITEM +-T BN_RECP_CTX +-T BN_STACK +-T BN_ULONG +-T BUF_MEM +-T BY_DIR +-T BY_DIR_ENTRY +-T BY_DIR_HASH +-T Bytef +-T CAMELLIA_KEY +-T CAST_KEY +-T CAST_LONG +-T CA_DB +-T CCM128_CONTEXT +-T CERT +-T CERTIFICATEPOLICIES +-T CERT_PKEY +-T CIPHER_ORDER +-T CMAC_CTX +-T CMS_AuthenticatedData +-T CMS_CertificateChoices +-T CMS_CompressedData +-T CMS_ContentInfo +-T CMS_DigestedData +-T CMS_EncapsulatedContentInfo +-T CMS_EncryptedContentInfo +-T CMS_EncryptedData +-T CMS_EnvelopedData +-T CMS_IssuerAndSerialNumber +-T CMS_KEKIdentifier +-T CMS_KEKRecipientInfo +-T CMS_KeyAgreeRecipientIdentifier +-T CMS_KeyAgreeRecipientInfo +-T CMS_KeyTransRecipientInfo +-T CMS_OriginatorIdentifierOrKey +-T CMS_OriginatorInfo +-T CMS_OriginatorPublicKey +-T CMS_OtherCertificateFormat +-T CMS_OtherKeyAttribute +-T CMS_OtherRecipientInfo +-T CMS_OtherRevocationInfoFormat +-T CMS_PasswordRecipientInfo +-T CMS_Receipt +-T CMS_ReceiptRequest +-T CMS_ReceiptsFrom +-T CMS_RecipientEncryptedKey +-T CMS_RecipientIdentifier +-T CMS_RecipientInfo +-T CMS_RecipientKeyIdentifier +-T CMS_RevocationInfoChoice +-T CMS_SignedData +-T CMS_SignerIdentifier +-T CMS_SignerInfo +-T COMP_CTX +-T COMP_METHOD +-T CONF +-T CONF_IMODULE +-T CONF_METHOD +-T CONF_MODULE +-T CONF_VALUE +-T CRYPTO_EX_DATA +-T CRYPTO_EX_dup +-T CRYPTO_EX_free +-T CRYPTO_EX_new +-T CRYPTO_THREADID +-T DB_ATTR +-T DES_LONG +-T DES_cblock +-T DES_key_schedule +-T DH +-T DH_METHOD +-T DH_PKEY_CTX +-T DIST_POINT +-T DIST_POINT_NAME +-T DSA +-T DSA_METHOD +-T DSA_SIG +-T DSO +-T DSO_FUNC_TYPE +-T DSO_MERGER_FUNC +-T DSO_METHOD +-T DSO_NAME_CONVERTER_FUNC +-T DSO_VMS_INTERNAL +-T DTLS1_BITMAP +-T DTLS1_RECORD_DATA +-T DTLS1_STATE +-T Dl_info +-T ECDH_METHOD +-T ECDSA_METHOD +-T ECDSA_SIG +-T ECPARAMETERS +-T ECPKPARAMETERS +-T EC_GROUP +-T EC_KEY +-T EC_METHOD +-T EC_POINT +-T EC_PRE_COMP +-T EC_PRIVATEKEY +-T EC_builtin_curve +-T EDIPARTYNAME +-T ENGINE +-T ENGINE_CIPHERS_PTR +-T ENGINE_CLEANUP_CB +-T ENGINE_CLEANUP_ITEM +-T ENGINE_CMD_DEFN +-T ENGINE_CTRL_FUNC_PTR +-T ENGINE_DIGESTS_PTR +-T ENGINE_GEN_FUNC_PTR +-T ENGINE_GEN_INT_FUNC_PTR +-T ENGINE_LOAD_KEY_PTR +-T ENGINE_PILE +-T ENGINE_PILE_DOALL +-T ENGINE_PKEY_ASN1_METHS_PTR +-T ENGINE_PKEY_METHS_PTR +-T ENGINE_SSL_CLIENT_CERT_PTR +-T ENGINE_TABLE +-T ENUMERATED_NAMES +-T ERR_STATE +-T ERR_STRING_DATA +-T ESS_CERT_ID +-T ESS_CERT_ID_V2 +-T ESS_ISSUER_SERIAL +-T ESS_SIGNING_CERT +-T ESS_SIGNING_CERT_V2 +-T EVP_AES_HMAC_SHA1 +-T EVP_AES_HMAC_SHA256 +-T EVP_CIPHER +-T EVP_CIPHER_CTX +-T EVP_CIPHER_INFO +-T EVP_ENCODE_CTX +-T EVP_MD +-T EVP_MD_CTX +-T EVP_PBE_CTL +-T EVP_PBE_KEYGEN +-T EVP_PKEY +-T EVP_PKEY_ASN1_METHOD +-T EVP_PKEY_CTX +-T EVP_PKEY_METHOD +-T EVP_PKEY_gen_cb +-T FILE +-T GCM128_CONTEXT +-T GENERAL_NAME +-T GENERAL_NAMES +-T GENERAL_SUBTREE +-T GEN_SESSION_CB +-T HASH_CTX +-T HEAPENTRY32 +-T HEAPLIST32 +-T HMAC_CTX +-T IDEA_KEY_SCHEDULE +-T IPAddrBlocks +-T IPAddressFamily +-T IPAddressOrRange +-T IPAddressOrRanges +-T ISSUING_DIST_POINT +-T KEY_TABLE_TYPE +-T LHASH +-T LHASH_DOALL_ARG_FN_TYPE +-T LHASH_NODE +-T LPHEAPENTRY32 +-T LPHEAPLIST32 +-T LPMODULEENTRY32 +-T LPMODULEENTRY32W +-T LPPROCESSENTRY32 +-T LPPROCESSENTRY32W +-T LPTHREADENTRY32 +-T LP_DIR_CTX +-T MD2_CTX +-T MD4_CTX +-T MD5_CTX +-T MDC2_CTX +-T MEM +-T MEM_LEAK +-T MIME_HEADER +-T MIME_PARAM +-T MODULEENTRY32 +-T MODULEENTRY32W +-T NAME_CONSTRAINTS +-T NAME_FUNCS +-T NBIO_TEST +-T NDEF_SUPPORT +-T NETSCAPE_CERT_SEQUENCE +-T NETSCAPE_ENCRYPTED_PKEY +-T NETSCAPE_PKEY +-T NETSCAPE_SPKAC +-T NETSCAPE_SPKI +-T NOTICEREF +-T OBJ_NAME +-T OCB128_CONTEXT +-T OCB_BLOCK +-T OCSP_BASICRESP +-T OCSP_CERTID +-T OCSP_CERTSTATUS +-T OCSP_CRLID +-T OCSP_ONEREQ +-T OCSP_REQINFO +-T OCSP_REQUEST +-T OCSP_REQ_CTX +-T OCSP_RESPBYTES +-T OCSP_RESPDATA +-T OCSP_RESPID +-T OCSP_RESPONSE +-T OCSP_REVOKEDINFO +-T OCSP_SERVICELOC +-T OCSP_SIGNATURE +-T OCSP_SINGLERESP +-T OCSP_TBLSTR +-T OPENSSL_BLOCK +-T OPENSSL_CSTRING +-T OPENSSL_DIR_CTX +-T OPENSSL_PSTRING +-T OPENSSL_STRING +-T OSSL_ASYNC_FD +-T OTHERNAME +-T P256_POINT +-T P256_POINT_AFFINE +-T PBE2PARAM +-T PBEPARAM +-T PBKDF2PARAM +-T PHEAPENTRY32 +-T PHEAPLIST32 +-T PKCS12 +-T PKCS12_BAGS +-T PKCS12_SAFEBAG +-T PKCS7 +-T PKCS7_DIGEST +-T PKCS7_ENCRYPT +-T PKCS7_ENC_CONTENT +-T PKCS7_ENVELOPE +-T PKCS7_ISSUER_AND_SERIAL +-T PKCS7_RECIP_INFO +-T PKCS7_SIGNED +-T PKCS7_SIGNER_INFO +-T PKCS7_SIGN_ENVELOPE +-T PKCS8_PRIV_KEY_INFO +-T PKEY_USAGE_PERIOD +-T PMODULEENTRY32 +-T PMODULEENTRY32W +-T POLICYINFO +-T POLICYQUALINFO +-T POLICY_CONSTRAINTS +-T POLICY_MAPPING +-T POLICY_MAPPINGS +-T PPROCESSENTRY32 +-T PPROCESSENTRY32W +-T PRECOMP256_ROW +-T PROCESSENTRY32 +-T PROCESSENTRY32W +-T PROXY_CERT_INFO_EXTENSION +-T PROXY_POLICY +-T PTHREADENTRY32 +-T PW_CB_DATA +-T RAND_METHOD +-T RC2_KEY +-T RC4_KEY +-T RC5_32_KEY +-T RIPEMD160_CTX +-T RSA +-T RSA_METHOD +-T RSA_OAEP_PARAMS +-T RSA_PKEY_CTX +-T RSA_PSS_PARAMS +-T SCT +-T SEED_KEY_SCHEDULE +-T SHA256_CTX +-T SHA512_CTX +-T SHA_CTX +-T SRP_ARG +-T SRP_CLIENT_ARG +-T SRP_CTX +-T SRP_SERVER_ARG +-T SRP_VBASE +-T SRP_gN_cache +-T SRP_user_pwd +-T SRTP_PROTECTION_PROFILE +-T SSL +-T SSL3_BUFFER +-T SSL3_COMP +-T SSL3_ENC_METHOD +-T SSL3_RECORD +-T SSL3_STATE +-T SSL_CIPHER +-T SSL_COMP +-T SSL_CONF_CTX +-T SSL_CTX +-T SSL_DANE +-T SSL_EXCERT +-T SSL_METHOD +-T SSL_SESSION +-T SSL_SESSION_ASN1 +-T STACK_OF +-T SXNET +-T SXNETID +-T TCHAR +-T TEST_INFO +-T THREADENTRY32 +-T TIMEOUT_PARAM +-T TLS_SESSION_TICKET_EXT +-T TLS_SIGALGS +-T TS_ACCURACY +-T TS_MSG_IMPRINT +-T TS_REQ +-T TS_RESP +-T TS_RESP_CTX +-T TS_STATUS_INFO +-T TS_TST_INFO +-T TS_VERIFY_CTX +-T TXT_DB +-T UI +-T UINT64 +-T UI_METHOD +-T UI_STRING +-T USERNOTICE +-T WCHAR +-T WHIRLPOOL_CTX +-T WINAPI +-T X509 +-T X509V3_CONF_METHOD +-T X509V3_CTX +-T X509V3_EXT_D2I +-T X509V3_EXT_FREE +-T X509V3_EXT_I2D +-T X509V3_EXT_I2R +-T X509V3_EXT_I2S +-T X509V3_EXT_METHOD +-T X509V3_EXT_NEW +-T X509V3_EXT_R2I +-T X509V3_EXT_S2I +-T X509V3_EXT_V2I +-T X509_ALGOR +-T X509_ATTRIBUTE +-T X509_CERT_AUX +-T X509_CINF +-T X509_CRL +-T X509_CRL_INFO +-T X509_CRL_METHOD +-T X509_EXTENSION +-T X509_INFO +-T X509_LOOKUP +-T X509_LOOKUP_METHOD +-T X509_NAME +-T X509_NAME_ENTRY +-T X509_OBJECT +-T X509_PKEY +-T X509_POLICY_CACHE +-T X509_POLICY_DATA +-T X509_POLICY_LEVEL +-T X509_POLICY_NODE +-T X509_POLICY_TREE +-T X509_PUBKEY +-T X509_PURPOSE +-T X509_REQ +-T X509_REQ_INFO +-T X509_REVOKED +-T X509_SIG +-T X509_STORE +-T X509_STORE_CTX +-T X509_TRUST +-T X509_VAL +-T X509_VERIFY_PARAM +-T X9_62_CHARACTERISTIC_TWO +-T X9_62_CURVE +-T X9_62_FIELDID +-T X9_62_PENTANOMIAL +-T XTS128_CONTEXT +-T _LHASH +-T _STACK +-T __int64 +-T asn1_ps_func +-T bio_dgram_data +-T bio_info_cb +-T BIO_info_cb +-T BIO_callback_fn +-T char_io +-T conf_finish_func +-T conf_init_func +-T const_DES_cblock +-T d2i_of_void +-T des_cblock +-T dynamic_data_ctx +-T dynamic_fns +-T engine_table_doall_cb +-T i2d_of_void +-T int_dhx942_dh +-T nid_triple +-T pem_password_cb +-T pitem +-T piterator +-T pqueue_s +-T session_op +-T size_t +-T tag_exp_arg +-T testdata +-T time_t +-T time_t +-T u32 +-T u64 +-T u8 +-T v3_ext_ctx +-T v3_ext_method +-T STACK_OF_ACCESS_DESCRIPTION_ +-T STACK_OF_ASIdOrRange_ +-T STACK_OF_ASN1_ADB_TABLE_ +-T STACK_OF_ASN1_INTEGER_ +-T STACK_OF_ASN1_OBJECT_ +-T STACK_OF_ASN1_STRING_TABLE_ +-T STACK_OF_ASN1_TYPE_ +-T STACK_OF_ASN1_UTF8STRING_ +-T STACK_OF_ASN1_VALUE_ +-T STACK_OF_BIO_ +-T STACK_OF_BY_DIR_ENTRY_ +-T STACK_OF_BY_DIR_HASH_ +-T STACK_OF_CMS_CertificateChoices_ +-T STACK_OF_CMS_RecipientEncryptedKey_ +-T STACK_OF_CMS_RecipientInfo_ +-T STACK_OF_CMS_RevocationInfoChoice_ +-T STACK_OF_CMS_SignerInfo_ +-T STACK_OF_CONF_IMODULE_ +-T STACK_OF_CONF_MODULE_ +-T STACK_OF_CONF_VALUE_ +-T STACK_OF_CRYPTO_dynlock_ +-T STACK_OF_DIST_POINT_ +-T STACK_OF_ENGINE_ +-T STACK_OF_ENGINE_CLEANUP_ITEM_ +-T STACK_OF_ESS_CERT_ID_ +-T STACK_OF_ESS_CERT_ID_V2_ +-T STACK_OF_EVP_PBE_CTL_ +-T STACK_OF_EVP_PKEY_ASN1_METHOD_ +-T STACK_OF_EVP_PKEY_METHOD_ +-T STACK_OF_GENERAL_NAMES_ +-T STACK_OF_GENERAL_NAME_ +-T STACK_OF_GENERAL_SUBTREE_ +-T STACK_OF_IPAddressFamily_ +-T STACK_OF_IPAddressOrRange_ +-T STACK_OF_MIME_HEADER_ +-T STACK_OF_MIME_PARAM_ +-T STACK_OF_NAME_FUNCS_ +-T STACK_OF_OCSP_CERTID_ +-T STACK_OF_OCSP_ONEREQ_ +-T STACK_OF_OCSP_RESPID_ +-T STACK_OF_OCSP_SINGLERESP_ +-T STACK_OF_OPENSSL_BLOCK_ +-T STACK_OF_OPENSSL_PSTRING_ +-T STACK_OF_OPENSSL_STRING_ +-T STACK_OF_PKCS12_SAFEBAG_ +-T STACK_OF_PKCS7_ +-T STACK_OF_PKCS7_RECIP_INFO_ +-T STACK_OF_PKCS7_SIGNER_INFO_ +-T STACK_OF_POLICYINFO_ +-T STACK_OF_POLICYQUALINFO_ +-T STACK_OF_POLICY_MAPPING_ +-T STACK_OF_Request_ +-T STACK_OF_SCT_ +-T STACK_OF_SRP_gN_ +-T STACK_OF_SRP_gN_cache_ +-T STACK_OF_SRP_user_pwd_ +-T STACK_OF_SRTP_PROTECTION_PROFILE_ +-T STACK_OF_SSL_CIPHER_ +-T STACK_OF_SSL_COMP_ +-T STACK_OF_STRING_ +-T STACK_OF_SXNETID_ +-T STACK_OF_SingleResponse_ +-T STACK_OF_UI_STRING_ +-T STACK_OF_X509V3_EXT_METHOD_ +-T STACK_OF_X509_ +-T STACK_OF_X509_ALGOR_ +-T STACK_OF_X509_ATTRIBUTE_ +-T STACK_OF_X509_CRL_ +-T STACK_OF_X509_EXTENSION_ +-T STACK_OF_X509_INFO_ +-T STACK_OF_X509_LOOKUP_ +-T STACK_OF_X509_NAME_ +-T STACK_OF_X509_NAME_ENTRY_ +-T STACK_OF_X509_OBJECT_ +-T STACK_OF_X509_POLICY_DATA_ +-T STACK_OF_X509_POLICY_NODE_ +-T STACK_OF_X509_PURPOSE_ +-T STACK_OF_X509_REVOKED_ +-T STACK_OF_X509_TRUST_ +-T STACK_OF_X509_VERIFY_PARAM_ +-T STACK_OF_nid_triple_ +-T STACK_OF_void_ +-T LHASH_OF_ADDED_OBJ_ +-T LHASH_OF_APP_INFO_ +-T LHASH_OF_CONF_VALUE_ +-T LHASH_OF_ENGINE_PILE_ +-T LHASH_OF_ERR_STATE_ +-T LHASH_OF_ERR_STRING_DATA_ +-T LHASH_OF_FUNCTION_ +-T LHASH_OF_MEM_ +-T LHASH_OF_OBJ_NAME_ +-T LHASH_OF_OPENSSL_STRING_ +-T LHASH_OF_SSL_SESSION_ +-T LHASH_OF_STRING_ +-T clock_t +-T custom_ext_methods +-T hm_fragment +-T record_pqueue +-T ssl_ctx_st +-T ssl_flag_tbl +-T ssl_st +-T ssl_trace_tbl +-T _stdcall +-T OPTIONS +-T OPT_PAIR +-T uint64_t +-T int64_t +-T uint32_t +-T int32_t +-T uint16_t +-T int16_t +-T uint8_t +-T int8_t +-T STRINT_PAIR +-T felem +-T felem_bytearray +-T SH_LIST +-T PACKET +-T RECORD_LAYER +-T ASYNC_CTX +-T ASYNC_JOB +-T intmax_t +-T uintmax_t +-T pqueue +-T danetls_record +-T CTLOG_STORE +-T OPENSSL_INIT_SETTINGS +-T OSSL_HANDSHAKE_STATE +-T OSSL_STATEM +-T ossl_intmax_t +-T ossl_intmax_t +-T ossl_uintmax_t +-T ossl_uintmax_t +-T CT_POLICY_EVAL_CTX +-T RAND_DRBG +-T RAND_DRBG_CTR +-T RAND_POOL +-T RAND_METHOD diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/libcrypto.num b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/libcrypto.num new file mode 100644 index 000000000..876b7ca71 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/libcrypto.num @@ -0,0 +1,4589 @@ +d2i_EC_PUBKEY 1 1_1_0 EXIST::FUNCTION:EC +b2i_PVK_bio 2 1_1_0 EXIST::FUNCTION:DSA,RC4 +PEM_read_bio_NETSCAPE_CERT_SEQUENCE 3 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_chain 4 1_1_0 EXIST::FUNCTION: +COMP_expand_block 5 1_1_0 EXIST::FUNCTION:COMP +X509V3_get_string 6 1_1_0 EXIST::FUNCTION: +TS_MSG_IMPRINT_free 7 1_1_0 EXIST::FUNCTION:TS +DES_xcbc_encrypt 8 1_1_0 EXIST::FUNCTION:DES +TS_RESP_CTX_new 9 1_1_0 EXIST::FUNCTION:TS +PKCS5_PBE_add 10 1_1_0 EXIST::FUNCTION: +i2d_DSAparams 11 1_1_0 EXIST::FUNCTION:DSA +X509_NAME_get0_der 12 1_1_0 EXIST::FUNCTION: +i2d_ESS_ISSUER_SERIAL 13 1_1_0 EXIST::FUNCTION:TS +X509at_get_attr_by_NID 14 1_1_0 EXIST::FUNCTION: +X509_PUBKEY_set0_param 15 1_1_0 EXIST::FUNCTION: +PKCS12_it 16 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_it 16 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_ASN1_OCTET_STRING 17 1_1_0 EXIST::FUNCTION: +EC_KEY_set_private_key 18 1_1_0 EXIST::FUNCTION:EC +SRP_VBASE_get_by_user 19 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SRP +Camellia_cfb128_encrypt 21 1_1_0 EXIST::FUNCTION:CAMELLIA +DES_ncbc_encrypt 22 1_1_0 EXIST::FUNCTION:DES +TS_REQ_get_ext_count 23 1_1_0 EXIST::FUNCTION:TS +EVP_aes_128_ocb 24 1_1_0 EXIST::FUNCTION:OCB +ASN1_item_d2i_fp 25 1_1_0 EXIST::FUNCTION:STDIO +BN_lshift 26 1_1_0 EXIST::FUNCTION: +X509_NAME_add_entry_by_NID 27 1_1_0 EXIST::FUNCTION: +X509V3_add_value_bool 28 1_1_0 EXIST::FUNCTION: +GENERAL_NAME_get0_otherName 29 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_get_uint64 30 1_1_0 EXIST::FUNCTION: +EVP_DigestInit_ex 31 1_1_0 EXIST::FUNCTION: +CTLOG_new 32 1_1_0 EXIST::FUNCTION:CT +UI_get_result_minsize 33 1_1_0 EXIST::FUNCTION: +EVP_PBE_alg_add_type 34 1_1_0 EXIST::FUNCTION: +EVP_cast5_ofb 35 1_1_0 EXIST::FUNCTION:CAST +d2i_PUBKEY_fp 36 1_1_0 EXIST::FUNCTION:STDIO +PKCS7_set_cipher 37 1_1_0 EXIST::FUNCTION: +BF_decrypt 38 1_1_0 EXIST::FUNCTION:BF +PEM_read_bio_PUBKEY 39 1_1_0 EXIST::FUNCTION: +X509_NAME_delete_entry 40 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_verify_recover 41 1_1_0 EXIST::FUNCTION: +UI_set_method 42 1_1_0 EXIST::FUNCTION: +PKCS7_ISSUER_AND_SERIAL_it 43 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ISSUER_AND_SERIAL_it 43 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EC_GROUP_method_of 44 1_1_0 EXIST::FUNCTION:EC +RSA_blinding_on 45 1_1_0 EXIST::FUNCTION:RSA +X509_get0_signature 47 1_1_0 EXIST::FUNCTION: +X509_REVOKED_get0_extensions 48 1_1_0 EXIST::FUNCTION: +NETSCAPE_SPKI_verify 49 1_1_0 EXIST::FUNCTION: +i2d_OCSP_RESPONSE 50 1_1_0 EXIST::FUNCTION:OCSP +ERR_peek_error 51 1_1_0 EXIST::FUNCTION: +X509v3_asid_validate_resource_set 52 1_1_0 EXIST::FUNCTION:RFC3779 +PEM_write_bio_Parameters 53 1_1_0 EXIST::FUNCTION: +CMS_SignerInfo_verify 54 1_1_0 EXIST::FUNCTION:CMS +X509v3_asid_is_canonical 55 1_1_0 EXIST::FUNCTION:RFC3779 +ASN1_ENUMERATED_get 56 1_1_0 EXIST::FUNCTION: +EVP_MD_do_all_sorted 57 1_1_0 EXIST::FUNCTION: +OCSP_crl_reason_str 58 1_1_0 EXIST::FUNCTION:OCSP +ENGINE_ctrl_cmd_string 59 1_1_0 EXIST::FUNCTION:ENGINE +ENGINE_finish 60 1_1_0 EXIST::FUNCTION:ENGINE +SRP_Calc_client_key 61 1_1_0 EXIST::FUNCTION:SRP +X509_PUBKEY_free 62 1_1_0 EXIST::FUNCTION: +BIO_free_all 63 1_1_0 EXIST::FUNCTION: +EVP_idea_ofb 64 1_1_0 EXIST::FUNCTION:IDEA +DSO_bind_func 65 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_copy 66 1_1_0 EXIST::FUNCTION: +RSA_up_ref 67 1_1_0 EXIST::FUNCTION:RSA +EVP_PKEY_meth_set_ctrl 68 1_1_0 EXIST::FUNCTION: +OCSP_basic_sign 69 1_1_0 EXIST::FUNCTION:OCSP +BN_GENCB_set 70 1_1_0 EXIST::FUNCTION: +BN_generate_prime 71 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8 +d2i_DSAPrivateKey_fp 72 1_1_0 EXIST::FUNCTION:DSA,STDIO +BIO_nread0 73 1_1_0 EXIST::FUNCTION: +NETSCAPE_SPKI_print 74 1_1_0 EXIST::FUNCTION: +X509_set_pubkey 75 1_1_0 EXIST::FUNCTION: +ASN1_item_print 76 1_1_0 EXIST::FUNCTION: +CONF_set_nconf 77 1_1_0 EXIST::FUNCTION: +RAND_set_rand_method 78 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod_mul 79 1_1_0 EXIST::FUNCTION:EC2M +UI_add_input_boolean 80 1_1_0 EXIST::FUNCTION: +ASN1_TIME_adj 81 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_get0_info 82 1_1_0 EXIST::FUNCTION: +BN_add_word 83 1_1_0 EXIST::FUNCTION: +EVP_des_ede 84 1_1_0 EXIST::FUNCTION:DES +EVP_PKEY_add1_attr_by_OBJ 85 1_1_0 EXIST::FUNCTION: +ASYNC_WAIT_CTX_get_all_fds 86 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_meth_set_do_cipher 87 1_1_0 EXIST::FUNCTION: +EVP_set_pw_prompt 88 1_1_0 EXIST::FUNCTION: +d2i_OCSP_RESPBYTES 89 1_1_0 EXIST::FUNCTION:OCSP +TS_REQ_get_ext_by_NID 90 1_1_0 EXIST::FUNCTION:TS +ASN1_item_ndef_i2d 91 1_1_0 EXIST::FUNCTION: +OCSP_archive_cutoff_new 92 1_1_0 EXIST::FUNCTION:OCSP +DSA_size 93 1_1_0 EXIST::FUNCTION:DSA +IPAddressRange_free 94 1_1_0 EXIST::FUNCTION:RFC3779 +CMS_ContentInfo_free 95 1_1_0 EXIST::FUNCTION:CMS +BIO_accept 96 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK +X509_VERIFY_PARAM_set1_policies 97 1_1_0 EXIST::FUNCTION: +SCT_set0_extensions 98 1_1_0 EXIST::FUNCTION:CT +PKCS5_pbe2_set_scrypt 99 1_1_0 EXIST::FUNCTION:SCRYPT +X509_find_by_subject 100 1_1_0 EXIST::FUNCTION: +DSAparams_print 101 1_1_0 EXIST::FUNCTION:DSA +BF_set_key 102 1_1_0 EXIST::FUNCTION:BF +d2i_DHparams 103 1_1_0 EXIST::FUNCTION:DH +i2d_PKCS7_ENC_CONTENT 104 1_1_0 EXIST::FUNCTION: +DH_generate_key 105 1_1_0 EXIST::FUNCTION:DH +ENGINE_add_conf_module 106 1_1_0 EXIST::FUNCTION:ENGINE +BIO_new_socket 107 1_1_0 EXIST::FUNCTION:SOCK +ASN1_OBJECT_free 108 1_1_0 EXIST::FUNCTION: +X509_REQ_get_extensions 109 1_1_0 EXIST::FUNCTION: +X509_get_version 110 1_1_0 EXIST::FUNCTION: +OCSP_CERTID_dup 111 1_1_0 EXIST::FUNCTION:OCSP +RSA_PSS_PARAMS_free 112 1_1_0 EXIST::FUNCTION:RSA +i2d_TS_MSG_IMPRINT 113 1_1_0 EXIST::FUNCTION:TS +EC_POINT_mul 114 1_1_0 EXIST::FUNCTION:EC +WHIRLPOOL_Final 115 1_1_0 EXIST::FUNCTION:WHIRLPOOL +CMS_get1_ReceiptRequest 116 1_1_0 EXIST::FUNCTION:CMS +BIO_sock_non_fatal_error 117 1_1_0 EXIST::FUNCTION:SOCK +HMAC_Update 118 1_1_0 EXIST::FUNCTION: +i2d_PKCS12 119 1_1_0 EXIST::FUNCTION: +EVP_BytesToKey 120 1_1_0 EXIST::FUNCTION: +ENGINE_set_default_pkey_asn1_meths 121 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_BASICRESP_add1_ext_i2d 122 1_1_0 EXIST::FUNCTION:OCSP +EVP_camellia_128_ctr 123 1_1_0 EXIST::FUNCTION:CAMELLIA +EVP_CIPHER_impl_ctx_size 124 1_1_0 EXIST::FUNCTION: +X509_CRL_get_nextUpdate 125 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +PKCS12_free 126 1_1_0 EXIST::FUNCTION: +CMS_signed_get_attr 127 1_1_0 EXIST::FUNCTION:CMS +ENGINE_set_destroy_function 128 1_1_0 EXIST::FUNCTION:ENGINE +ASN1_STRING_TABLE_add 129 1_1_0 EXIST::FUNCTION: +d2i_ASIdentifiers 130 1_1_0 EXIST::FUNCTION:RFC3779 +i2d_PKCS12_bio 131 1_1_0 EXIST::FUNCTION: +X509_to_X509_REQ 132 1_1_0 EXIST::FUNCTION: +OCSP_basic_add1_nonce 133 1_1_0 EXIST::FUNCTION:OCSP +d2i_OCSP_BASICRESP 134 1_1_0 EXIST::FUNCTION:OCSP +X509v3_add_ext 135 1_1_0 EXIST::FUNCTION: +X509v3_addr_subset 136 1_1_0 EXIST::FUNCTION:RFC3779 +CRYPTO_strndup 137 1_1_0 EXIST::FUNCTION: +OCSP_REQ_CTX_free 138 1_1_0 EXIST::FUNCTION:OCSP +X509_STORE_new 140 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_free 141 1_1_0 EXIST::FUNCTION: +PKCS12_BAGS_new 142 1_1_0 EXIST::FUNCTION: +CMAC_CTX_new 143 1_1_0 EXIST::FUNCTION:CMAC +ASIdentifierChoice_new 144 1_1_0 EXIST::FUNCTION:RFC3779 +EVP_PKEY_asn1_set_public 145 1_1_0 EXIST::FUNCTION: +IDEA_set_decrypt_key 146 1_1_0 EXIST::FUNCTION:IDEA +X509_STORE_CTX_set_flags 147 1_1_0 EXIST::FUNCTION: +BIO_ADDR_rawmake 148 1_1_0 EXIST::FUNCTION:SOCK +EVP_PKEY_asn1_set_ctrl 149 1_1_0 EXIST::FUNCTION: +EC_POINTs_mul 150 1_1_0 EXIST::FUNCTION:EC +ASN1_get_object 151 1_1_0 EXIST::FUNCTION: +i2d_IPAddressFamily 152 1_1_0 EXIST::FUNCTION:RFC3779 +ENGINE_get_ctrl_function 153 1_1_0 EXIST::FUNCTION:ENGINE +X509_REVOKED_get_ext_count 154 1_1_0 EXIST::FUNCTION: +BN_is_prime_fasttest_ex 155 1_1_0 EXIST::FUNCTION: +ERR_load_PKCS12_strings 156 1_1_0 EXIST::FUNCTION: +EVP_sha384 157 1_1_0 EXIST::FUNCTION: +i2d_DHparams 158 1_1_0 EXIST::FUNCTION:DH +TS_VERIFY_CTX_set_store 159 1_1_0 EXIST::FUNCTION:TS +PKCS12_verify_mac 160 1_1_0 EXIST::FUNCTION: +X509v3_addr_canonize 161 1_1_0 EXIST::FUNCTION:RFC3779 +ASN1_item_ex_i2d 162 1_1_0 EXIST::FUNCTION: +ENGINE_set_digests 163 1_1_0 EXIST::FUNCTION:ENGINE +PEM_ASN1_read_bio 164 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_free 165 1_1_0 EXIST::FUNCTION:CT +CMS_RecipientInfo_kari_get0_ctx 166 1_1_0 EXIST::FUNCTION:CMS +PKCS7_set_attributes 167 1_1_0 EXIST::FUNCTION: +d2i_POLICYQUALINFO 168 1_1_0 EXIST::FUNCTION: +EVP_MD_type 170 1_1_0 EXIST::FUNCTION: +EVP_PKCS82PKEY 171 1_1_0 EXIST::FUNCTION: +BN_generate_prime_ex 172 1_1_0 EXIST::FUNCTION: +EVP_EncryptInit 173 1_1_0 EXIST::FUNCTION: +RAND_OpenSSL 174 1_1_0 EXIST::FUNCTION: +BN_uadd 175 1_1_0 EXIST::FUNCTION: +EVP_PKEY_derive_init 176 1_1_0 EXIST::FUNCTION: +PEM_write_bio_ASN1_stream 177 1_1_0 EXIST::FUNCTION: +EVP_PKEY_delete_attr 178 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_key_length 179 1_1_0 EXIST::FUNCTION: +BIO_clear_flags 180 1_1_0 EXIST::FUNCTION: +i2d_DISPLAYTEXT 181 1_1_0 EXIST::FUNCTION: +OCSP_response_status 182 1_1_0 EXIST::FUNCTION:OCSP +i2d_ASN1_PRINTABLESTRING 183 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set_hostflags 184 1_1_0 EXIST::FUNCTION: +SCT_get0_log_id 185 1_1_0 EXIST::FUNCTION:CT +ASN1_IA5STRING_it 186 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_IA5STRING_it 186 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PEM_write_bio_ECPrivateKey 187 1_1_0 EXIST::FUNCTION:EC +BN_consttime_swap 188 1_1_0 EXIST::FUNCTION: +BIO_f_buffer 189 1_1_0 EXIST::FUNCTION: +CMS_SignerInfo_get0_signer_id 190 1_1_0 EXIST::FUNCTION:CMS +TS_TST_INFO_new 191 1_1_0 EXIST::FUNCTION:TS +X509_REQ_check_private_key 192 1_1_0 EXIST::FUNCTION: +EVP_DigestInit 193 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_find 194 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_get_count 195 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_get_bit 196 1_1_0 EXIST::FUNCTION: +EVP_PKEY_cmp 197 1_1_0 EXIST::FUNCTION: +d2i_X509_ALGORS 198 1_1_0 EXIST::FUNCTION: +EVP_PKEY2PKCS8 199 1_1_0 EXIST::FUNCTION: +BN_nist_mod_256 200 1_1_0 EXIST::FUNCTION: +OCSP_request_add0_id 201 1_1_0 EXIST::FUNCTION:OCSP +EVP_seed_cfb128 202 1_1_0 EXIST::FUNCTION:SEED +BASIC_CONSTRAINTS_free 203 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_flags 204 1_1_0 EXIST::FUNCTION: +PEM_write_bio_ECPKParameters 205 1_1_0 EXIST::FUNCTION:EC +SCT_set_version 206 1_1_0 EXIST::FUNCTION:CT +CMS_add1_ReceiptRequest 207 1_1_0 EXIST::FUNCTION:CMS +d2i_CRL_DIST_POINTS 208 1_1_0 EXIST::FUNCTION: +X509_CRL_INFO_free 209 1_1_0 EXIST::FUNCTION: +ERR_load_UI_strings 210 1_1_0 EXIST::FUNCTION: +ERR_load_strings 211 1_1_0 EXIST::FUNCTION: +RSA_X931_hash_id 212 1_1_0 EXIST::FUNCTION:RSA +EC_KEY_set_method 213 1_1_0 EXIST::FUNCTION:EC +PEM_write_PKCS8_PRIV_KEY_INFO 214 1_1_0 EXIST::FUNCTION:STDIO +X509at_get0_data_by_OBJ 215 1_1_0 EXIST::FUNCTION: +b2i_PublicKey_bio 216 1_1_0 EXIST::FUNCTION:DSA +s2i_ASN1_OCTET_STRING 217 1_1_0 EXIST::FUNCTION: +POLICYINFO_it 218 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +POLICYINFO_it 218 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OBJ_create 219 1_1_0 EXIST::FUNCTION: +d2i_NOTICEREF 220 1_1_0 EXIST::FUNCTION: +BN_get_rfc2409_prime_768 221 1_1_0 EXIST::FUNCTION: +PEM_read_bio_PKCS8 222 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_new 223 1_1_0 EXIST::FUNCTION: +ASN1_STRING_TABLE_cleanup 224 1_1_0 EXIST::FUNCTION: +ASN1_put_eoc 225 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_input_blocksize 226 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_get0_attrs 227 1_1_0 EXIST::FUNCTION: +PKCS8_get_attr 228 1_1_0 EXIST::FUNCTION: +DSAparams_print_fp 229 1_1_0 EXIST::FUNCTION:DSA,STDIO +EC_POINT_set_Jprojective_coordinates_GFp 230 1_1_0 EXIST::FUNCTION:EC +DIST_POINT_NAME_new 231 1_1_0 EXIST::FUNCTION: +X509_LOOKUP_file 232 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_decrypt 233 1_1_0 EXIST::FUNCTION: +EVP_rc2_ecb 234 1_1_0 EXIST::FUNCTION:RC2 +i2b_PublicKey_bio 235 1_1_0 EXIST::FUNCTION:DSA +d2i_ASN1_SET_ANY 236 1_1_0 EXIST::FUNCTION: +ASN1_item_i2d 238 1_1_0 EXIST::FUNCTION: +OCSP_copy_nonce 239 1_1_0 EXIST::FUNCTION:OCSP +OBJ_txt2nid 240 1_1_0 EXIST::FUNCTION: +SEED_set_key 241 1_1_0 EXIST::FUNCTION:SEED +EC_KEY_clear_flags 242 1_1_0 EXIST::FUNCTION:EC +CMS_RecipientInfo_ktri_get0_algs 243 1_1_0 EXIST::FUNCTION:CMS +i2d_EC_PUBKEY 244 1_1_0 EXIST::FUNCTION:EC +MDC2 245 1_1_0 EXIST::FUNCTION:MDC2 +BN_clear_free 246 1_1_0 EXIST::FUNCTION: +ENGINE_get_pkey_asn1_meths 247 1_1_0 EXIST::FUNCTION:ENGINE +DSO_merge 248 1_1_0 EXIST::FUNCTION: +RSA_get_ex_data 249 1_1_0 EXIST::FUNCTION:RSA +EVP_PKEY_meth_get_decrypt 250 1_1_0 EXIST::FUNCTION: +DES_cfb_encrypt 251 1_1_0 EXIST::FUNCTION:DES +CMS_SignerInfo_set1_signer_cert 252 1_1_0 EXIST::FUNCTION:CMS +X509_CRL_http_nbio 253 1_1_0 EXIST::FUNCTION:OCSP +ENGINE_register_all_ciphers 254 1_1_0 EXIST::FUNCTION:ENGINE +SXNET_new 255 1_1_0 EXIST::FUNCTION: +EVP_camellia_256_ctr 256 1_1_0 EXIST::FUNCTION:CAMELLIA +d2i_PKCS8_PRIV_KEY_INFO 257 1_1_0 EXIST::FUNCTION: +EVP_md2 259 1_1_0 EXIST::FUNCTION:MD2 +RC2_ecb_encrypt 260 1_1_0 EXIST::FUNCTION:RC2 +ENGINE_register_DH 261 1_1_0 EXIST::FUNCTION:ENGINE +ASN1_NULL_free 262 1_1_0 EXIST::FUNCTION: +EC_KEY_copy 263 1_1_0 EXIST::FUNCTION:EC +EVP_des_ede3 264 1_1_0 EXIST::FUNCTION:DES +PKCS7_add1_attrib_digest 265 1_1_0 EXIST::FUNCTION: +EC_POINT_get_affine_coordinates_GFp 266 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC +EVP_seed_ecb 267 1_1_0 EXIST::FUNCTION:SEED +BIO_dgram_sctp_wait_for_dry 268 1_1_0 EXIST::FUNCTION:DGRAM,SCTP +ASN1_OCTET_STRING_NDEF_it 269 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_OCTET_STRING_NDEF_it 269 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_PKEY_asn1_get_count 270 1_1_0 EXIST::FUNCTION: +WHIRLPOOL_Init 271 1_1_0 EXIST::FUNCTION:WHIRLPOOL +EVP_OpenInit 272 1_1_0 EXIST::FUNCTION:RSA +OCSP_response_get1_basic 273 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_gcm128_tag 274 1_1_0 EXIST::FUNCTION: +OCSP_parse_url 275 1_1_0 EXIST::FUNCTION:OCSP +UI_get0_test_string 276 1_1_0 EXIST::FUNCTION: +CRYPTO_secure_free 277 1_1_0 EXIST::FUNCTION: +DSA_print_fp 278 1_1_0 EXIST::FUNCTION:DSA,STDIO +X509_get_ext_d2i 279 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_ENC_CONTENT 280 1_1_0 EXIST::FUNCTION: +BUF_MEM_grow 281 1_1_0 EXIST::FUNCTION: +TS_REQ_free 282 1_1_0 EXIST::FUNCTION:TS +PEM_read_DHparams 283 1_1_0 EXIST::FUNCTION:DH,STDIO +RSA_private_decrypt 284 1_1_0 EXIST::FUNCTION:RSA +X509V3_EXT_get_nid 285 1_1_0 EXIST::FUNCTION: +BIO_s_log 286 1_1_0 EXIST::FUNCTION: +EC_POINT_set_to_infinity 287 1_1_0 EXIST::FUNCTION:EC +EVP_des_ede_ofb 288 1_1_0 EXIST::FUNCTION:DES +ECDH_KDF_X9_62 289 1_1_0 EXIST::FUNCTION:EC +ASN1_UNIVERSALSTRING_to_string 290 1_1_0 EXIST::FUNCTION: +CRYPTO_gcm128_setiv 291 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_set_oid_flags 292 1_1_0 EXIST::FUNCTION: +d2i_ASN1_INTEGER 293 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_ENCRYPT 294 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_set1_issuer 295 1_1_0 EXIST::FUNCTION:CT +X509_NAME_ENTRY_set 296 1_1_0 EXIST::FUNCTION: +PKCS8_set0_pbe 297 1_1_0 EXIST::FUNCTION: +PEM_write_bio_DSA_PUBKEY 298 1_1_0 EXIST::FUNCTION:DSA +PEM_X509_INFO_read_bio 299 1_1_0 EXIST::FUNCTION: +EC_GROUP_get0_order 300 1_1_0 EXIST::FUNCTION:EC +OCSP_BASICRESP_delete_ext 301 1_1_0 EXIST::FUNCTION:OCSP +PKCS12_get_attr_gen 302 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_get0_safes 303 1_1_0 EXIST::FUNCTION: +EVP_PKEY_derive 304 1_1_0 EXIST::FUNCTION: +OCSP_BASICRESP_get_ext_by_NID 305 1_1_0 EXIST::FUNCTION:OCSP +OBJ_dup 306 1_1_0 EXIST::FUNCTION: +CMS_signed_get_attr_count 307 1_1_0 EXIST::FUNCTION:CMS +EC_get_builtin_curves 308 1_1_0 EXIST::FUNCTION:EC +i2d_ASN1_IA5STRING 309 1_1_0 EXIST::FUNCTION: +OCSP_check_nonce 310 1_1_0 EXIST::FUNCTION:OCSP +X509_STORE_CTX_init 311 1_1_0 EXIST::FUNCTION: +OCSP_RESPONSE_free 312 1_1_0 EXIST::FUNCTION:OCSP +ENGINE_set_DH 313 1_1_0 EXIST::FUNCTION:ENGINE +EVP_CIPHER_CTX_set_flags 314 1_1_0 EXIST::FUNCTION: +err_free_strings_int 315 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PKCS7_stream 316 1_1_0 EXIST::FUNCTION: +d2i_X509_CERT_AUX 317 1_1_0 EXIST::FUNCTION: +UI_process 318 1_1_0 EXIST::FUNCTION: +X509_get_subject_name 319 1_1_0 EXIST::FUNCTION: +DH_get_1024_160 320 1_1_0 EXIST::FUNCTION:DH +i2d_ASN1_UNIVERSALSTRING 321 1_1_0 EXIST::FUNCTION: +d2i_OCSP_RESPID 322 1_1_0 EXIST::FUNCTION:OCSP +BIO_s_accept 323 1_1_0 EXIST::FUNCTION:SOCK +EVP_whirlpool 324 1_1_0 EXIST::FUNCTION:WHIRLPOOL +OCSP_ONEREQ_get1_ext_d2i 325 1_1_0 EXIST::FUNCTION:OCSP +d2i_ESS_SIGNING_CERT 326 1_1_0 EXIST::FUNCTION:TS +EC_KEY_set_default_method 327 1_1_0 EXIST::FUNCTION:EC +X509_OBJECT_up_ref_count 328 1_1_0 EXIST::FUNCTION: +RAND_load_file 329 1_1_0 EXIST::FUNCTION: +BIO_ctrl_reset_read_request 330 1_1_0 EXIST::FUNCTION: +CRYPTO_ccm128_tag 331 1_1_0 EXIST::FUNCTION: +BIO_new_dgram_sctp 332 1_1_0 EXIST::FUNCTION:DGRAM,SCTP +d2i_RSAPrivateKey_fp 333 1_1_0 EXIST::FUNCTION:RSA,STDIO +s2i_ASN1_IA5STRING 334 1_1_0 EXIST::FUNCTION: +UI_get_ex_data 335 1_1_0 EXIST::FUNCTION: +EVP_EncryptUpdate 336 1_1_0 EXIST::FUNCTION: +SRP_create_verifier 337 1_1_0 EXIST::FUNCTION:SRP +TS_TST_INFO_print_bio 338 1_1_0 EXIST::FUNCTION:TS +X509_NAME_get_index_by_OBJ 339 1_1_0 EXIST::FUNCTION: +BIO_get_host_ip 340 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK +PKCS7_add_certificate 341 1_1_0 EXIST::FUNCTION: +TS_REQ_get_ext 342 1_1_0 EXIST::FUNCTION:TS +X509_NAME_cmp 343 1_1_0 EXIST::FUNCTION: +DIST_POINT_it 344 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +DIST_POINT_it 344 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PEM_read_X509_CRL 345 1_1_0 EXIST::FUNCTION:STDIO +OPENSSL_sk_sort 346 1_1_0 EXIST::FUNCTION: +CTLOG_STORE_load_file 347 1_1_0 EXIST::FUNCTION:CT +ASN1_SEQUENCE_it 348 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_SEQUENCE_it 348 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_RESP_CTX_get_tst_info 349 1_1_0 EXIST::FUNCTION:TS +RC4 350 1_1_0 EXIST::FUNCTION:RC4 +PKCS7_stream 352 1_1_0 EXIST::FUNCTION: +i2t_ASN1_OBJECT 353 1_1_0 EXIST::FUNCTION: +EC_GROUP_get0_generator 354 1_1_0 EXIST::FUNCTION:EC +RSA_padding_add_PKCS1_PSS_mgf1 355 1_1_0 EXIST::FUNCTION:RSA +EVP_MD_meth_set_init 356 1_1_0 EXIST::FUNCTION: +X509_get_issuer_name 357 1_1_0 EXIST::FUNCTION: +EVP_SignFinal 358 1_1_0 EXIST::FUNCTION: +PKCS12_mac_present 359 1_1_0 EXIST::FUNCTION: +d2i_PUBKEY_bio 360 1_1_0 EXIST::FUNCTION: +BN_asc2bn 361 1_1_0 EXIST::FUNCTION: +EVP_desx_cbc 362 1_1_0 EXIST::FUNCTION:DES +SXNETID_it 363 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +SXNETID_it 363 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CRYPTO_gcm128_encrypt 364 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_ctrl_str 365 1_1_0 EXIST::FUNCTION: +CMS_signed_add1_attr_by_txt 366 1_1_0 EXIST::FUNCTION:CMS +i2d_NETSCAPE_SPKAC 367 1_1_0 EXIST::FUNCTION: +X509V3_add_value_bool_nf 368 1_1_0 EXIST::FUNCTION: +ASN1_item_verify 369 1_1_0 EXIST::FUNCTION: +SEED_ecb_encrypt 370 1_1_0 EXIST::FUNCTION:SEED +X509_PUBKEY_get0_param 371 1_1_0 EXIST::FUNCTION: +ASN1_i2d_fp 372 1_1_0 EXIST::FUNCTION:STDIO +BIO_new_mem_buf 373 1_1_0 EXIST::FUNCTION: +UI_get_input_flags 374 1_1_0 EXIST::FUNCTION: +X509V3_EXT_REQ_add_nconf 375 1_1_0 EXIST::FUNCTION: +X509v3_asid_subset 376 1_1_0 EXIST::FUNCTION:RFC3779 +RSA_check_key_ex 377 1_1_0 EXIST::FUNCTION:RSA +d2i_TS_MSG_IMPRINT_bio 378 1_1_0 EXIST::FUNCTION:TS +i2d_ASN1_TYPE 379 1_1_0 EXIST::FUNCTION: +EVP_aes_256_wrap_pad 380 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_kekri_id_cmp 381 1_1_0 EXIST::FUNCTION:CMS +X509_VERIFY_PARAM_get0_peername 382 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_get_oid_flags 383 1_1_0 EXIST::FUNCTION: +CONF_free 384 1_1_0 EXIST::FUNCTION: +DSO_get_filename 385 1_1_0 EXIST::FUNCTION: +i2d_ASN1_SEQUENCE_ANY 387 1_1_0 EXIST::FUNCTION: +OPENSSL_strlcpy 388 1_1_0 EXIST::FUNCTION: +BIO_get_port 389 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK +DISPLAYTEXT_free 390 1_1_0 EXIST::FUNCTION: +BN_div 391 1_1_0 EXIST::FUNCTION: +RIPEMD160_Update 392 1_1_0 EXIST::FUNCTION:RMD160 +PEM_write_bio_CMS 393 1_1_0 EXIST::FUNCTION:CMS +ASN1_OBJECT_new 394 1_1_0 EXIST::FUNCTION: +EVP_des_ede3_cfb8 395 1_1_0 EXIST::FUNCTION:DES +BIO_dump_indent_fp 396 1_1_0 EXIST::FUNCTION:STDIO +X509_NAME_ENTRY_get_data 397 1_1_0 EXIST::FUNCTION: +BIO_socket 398 1_1_0 EXIST::FUNCTION:SOCK +EVP_PKEY_meth_get_derive 399 1_1_0 EXIST::FUNCTION: +ASN1_STRING_clear_free 400 1_1_0 EXIST::FUNCTION: +d2i_OCSP_REVOKEDINFO 401 1_1_0 EXIST::FUNCTION:OCSP +ASN1_STRING_print_ex_fp 402 1_1_0 EXIST::FUNCTION:STDIO +PKCS7_SIGNED_new 403 1_1_0 EXIST::FUNCTION: +CMS_get0_eContentType 404 1_1_0 EXIST::FUNCTION:CMS +HMAC_Final 405 1_1_0 EXIST::FUNCTION: +X509_CRL_delete_ext 406 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_ordering 407 1_1_0 EXIST::FUNCTION:TS +X509_get_extended_key_usage 408 1_1_0 EXIST::FUNCTION: +ERR_print_errors 409 1_1_0 EXIST::FUNCTION: +X509_REVOKED_set_revocationDate 410 1_1_0 EXIST::FUNCTION: +EVP_CipherFinal_ex 411 1_1_0 EXIST::FUNCTION: +d2i_DSA_PUBKEY 412 1_1_0 EXIST::FUNCTION:DSA +BN_CTX_get 413 1_1_0 EXIST::FUNCTION: +BN_to_montgomery 414 1_1_0 EXIST::FUNCTION: +X509_OBJECT_get0_X509_CRL 415 1_1_0 EXIST::FUNCTION: +EVP_camellia_128_cfb8 416 1_1_0 EXIST::FUNCTION:CAMELLIA +EC_KEY_METHOD_free 417 1_1_0 EXIST::FUNCTION:EC +TS_TST_INFO_set_policy_id 418 1_1_0 EXIST::FUNCTION:TS +d2i_EXTENDED_KEY_USAGE 419 1_1_0 EXIST::FUNCTION: +ASYNC_unblock_pause 420 1_1_0 EXIST::FUNCTION: +i2d_X509_VAL 421 1_1_0 EXIST::FUNCTION: +ASN1_SCTX_get_flags 422 1_1_0 EXIST::FUNCTION: +RIPEMD160 423 1_1_0 EXIST::FUNCTION:RMD160 +CRYPTO_ocb128_setiv 424 1_1_0 EXIST::FUNCTION:OCB +X509_CRL_digest 425 1_1_0 EXIST::FUNCTION: +EVP_aes_128_cbc_hmac_sha1 426 1_1_0 EXIST::FUNCTION: +ERR_load_CMS_strings 427 1_1_0 EXIST::FUNCTION:CMS +EVP_MD_CTX_md 428 1_1_0 EXIST::FUNCTION: +X509_REVOKED_get_ext 429 1_1_0 EXIST::FUNCTION: +d2i_RSA_PSS_PARAMS 430 1_1_0 EXIST::FUNCTION:RSA +USERNOTICE_free 431 1_1_0 EXIST::FUNCTION: +MD4_Transform 432 1_1_0 EXIST::FUNCTION:MD4 +EVP_CIPHER_block_size 433 1_1_0 EXIST::FUNCTION: +CERTIFICATEPOLICIES_new 434 1_1_0 EXIST::FUNCTION: +BIO_dump_fp 435 1_1_0 EXIST::FUNCTION:STDIO +BIO_set_flags 436 1_1_0 EXIST::FUNCTION: +BN_is_one 437 1_1_0 EXIST::FUNCTION: +TS_CONF_set_def_policy 438 1_1_0 EXIST::FUNCTION:TS +DSA_free 439 1_1_0 EXIST::FUNCTION:DSA +BN_GENCB_new 440 1_1_0 EXIST::FUNCTION: +X509_VAL_new 441 1_1_0 EXIST::FUNCTION: +NCONF_load 442 1_1_0 EXIST::FUNCTION: +ASN1_put_object 443 1_1_0 EXIST::FUNCTION: +d2i_OCSP_RESPONSE 444 1_1_0 EXIST::FUNCTION:OCSP +d2i_PublicKey 445 1_1_0 EXIST::FUNCTION: +ENGINE_set_ex_data 446 1_1_0 EXIST::FUNCTION:ENGINE +X509_get_default_private_dir 447 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set0_dane 448 1_1_0 EXIST::FUNCTION: +EVP_des_ecb 449 1_1_0 EXIST::FUNCTION:DES +OCSP_resp_get0 450 1_1_0 EXIST::FUNCTION:OCSP +RSA_X931_generate_key_ex 452 1_1_0 EXIST::FUNCTION:RSA +X509_get_serialNumber 453 1_1_0 EXIST::FUNCTION: +BIO_sock_should_retry 454 1_1_0 EXIST::FUNCTION:SOCK +ENGINE_get_digests 455 1_1_0 EXIST::FUNCTION:ENGINE +TS_MSG_IMPRINT_get_algo 456 1_1_0 EXIST::FUNCTION:TS +DH_new_method 457 1_1_0 EXIST::FUNCTION:DH +BF_ecb_encrypt 458 1_1_0 EXIST::FUNCTION:BF +PEM_write_bio_DHparams 459 1_1_0 EXIST::FUNCTION:DH +EVP_DigestFinal 460 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE 461 1_1_0 EXIST::FUNCTION:CT +X509v3_asid_add_id_or_range 462 1_1_0 EXIST::FUNCTION:RFC3779 +X509_NAME_ENTRY_create_by_NID 463 1_1_0 EXIST::FUNCTION: +EC_KEY_METHOD_get_init 464 1_1_0 EXIST::FUNCTION:EC +ASN1_INTEGER_to_BN 465 1_1_0 EXIST::FUNCTION: +OPENSSL_memcmp 466 1_1_0 EXIST::FUNCTION: +BUF_MEM_new 467 1_1_0 EXIST::FUNCTION: +DSO_set_filename 468 1_1_0 EXIST::FUNCTION: +DH_new 469 1_1_0 EXIST::FUNCTION:DH +OCSP_RESPID_free 470 1_1_0 EXIST::FUNCTION:OCSP +PKCS5_pbe2_set 471 1_1_0 EXIST::FUNCTION: +SCT_set_signature_nid 473 1_1_0 EXIST::FUNCTION:CT +i2d_RSA_PUBKEY_fp 474 1_1_0 EXIST::FUNCTION:RSA,STDIO +PKCS12_BAGS_it 475 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_BAGS_it 475 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_pubkey_digest 476 1_1_0 EXIST::FUNCTION: +ENGINE_register_all_RSA 477 1_1_0 EXIST::FUNCTION:ENGINE +CRYPTO_THREAD_set_local 478 1_1_0 EXIST::FUNCTION: +X509_get_default_cert_dir_env 479 1_1_0 EXIST::FUNCTION: +X509_CRL_sort 480 1_1_0 EXIST::FUNCTION: +i2d_RSA_PUBKEY_bio 481 1_1_0 EXIST::FUNCTION:RSA +ASN1_T61STRING_free 482 1_1_0 EXIST::FUNCTION: +PEM_write_CMS 483 1_1_0 EXIST::FUNCTION:CMS,STDIO +OPENSSL_sk_find 484 1_1_0 EXIST::FUNCTION: +ENGINE_get_ciphers 485 1_1_0 EXIST::FUNCTION:ENGINE +EVP_rc2_ofb 486 1_1_0 EXIST::FUNCTION:RC2 +EVP_PKEY_set1_RSA 487 1_1_0 EXIST::FUNCTION:RSA +CMS_SignerInfo_get0_md_ctx 488 1_1_0 EXIST::FUNCTION:CMS +X509_STORE_set_trust 489 1_1_0 EXIST::FUNCTION: +d2i_POLICYINFO 490 1_1_0 EXIST::FUNCTION: +DES_cbc_encrypt 491 1_1_0 EXIST::FUNCTION:DES +BN_GF2m_mod_sqr_arr 492 1_1_0 EXIST::FUNCTION:EC2M +ASN1_PRINTABLESTRING_it 493 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_PRINTABLESTRING_it 493 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BIO_f_cipher 494 1_1_0 EXIST::FUNCTION: +UI_destroy_method 495 1_1_0 EXIST::FUNCTION: +BN_get_rfc3526_prime_3072 496 1_1_0 EXIST::FUNCTION: +X509_INFO_new 497 1_1_0 EXIST::FUNCTION: +OCSP_RESPDATA_it 498 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_RESPDATA_it 498 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +X509_CRL_print 499 1_1_0 EXIST::FUNCTION: +WHIRLPOOL_Update 500 1_1_0 EXIST::FUNCTION:WHIRLPOOL +DSA_get_ex_data 501 1_1_0 EXIST::FUNCTION:DSA +BN_copy 502 1_1_0 EXIST::FUNCTION: +FIPS_mode_set 503 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_add0_policy 504 1_1_0 EXIST::FUNCTION: +PKCS7_cert_from_signer_info 505 1_1_0 EXIST::FUNCTION: +X509_TRUST_get_trust 506 1_1_0 EXIST::FUNCTION: +DES_string_to_key 507 1_1_0 EXIST::FUNCTION:DES +ERR_error_string 508 1_1_0 EXIST::FUNCTION: +BIO_new_connect 509 1_1_0 EXIST::FUNCTION:SOCK +DSA_new_method 511 1_1_0 EXIST::FUNCTION:DSA +OCSP_CERTID_new 512 1_1_0 EXIST::FUNCTION:OCSP +X509_CRL_get_signature_nid 513 1_1_0 EXIST::FUNCTION: +X509_policy_level_node_count 514 1_1_0 EXIST::FUNCTION: +d2i_OCSP_CERTSTATUS 515 1_1_0 EXIST::FUNCTION:OCSP +X509V3_add1_i2d 516 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_set_serial 517 1_1_0 EXIST::FUNCTION:TS +OCSP_RESPBYTES_new 518 1_1_0 EXIST::FUNCTION:OCSP +OCSP_SINGLERESP_delete_ext 519 1_1_0 EXIST::FUNCTION:OCSP +EVP_MD_CTX_test_flags 521 1_1_0 EXIST::FUNCTION: +X509v3_addr_validate_path 522 1_1_0 EXIST::FUNCTION:RFC3779 +BIO_new_fp 523 1_1_0 EXIST::FUNCTION:STDIO +EC_GROUP_set_generator 524 1_1_0 EXIST::FUNCTION:EC +CRYPTO_memdup 525 1_1_0 EXIST::FUNCTION: +DH_generate_parameters 526 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8,DH +BN_set_negative 527 1_1_0 EXIST::FUNCTION: +i2d_TS_RESP_bio 528 1_1_0 EXIST::FUNCTION:TS +ASYNC_WAIT_CTX_set_wait_fd 529 1_1_0 EXIST::FUNCTION: +ERR_func_error_string 530 1_1_0 EXIST::FUNCTION: +ASN1_STRING_data 531 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +X509_CRL_add1_ext_i2d 532 1_1_0 EXIST::FUNCTION: +i2d_TS_TST_INFO 533 1_1_0 EXIST::FUNCTION:TS +OBJ_sigid_free 534 1_1_0 EXIST::FUNCTION: +TS_STATUS_INFO_get0_status 535 1_1_0 EXIST::FUNCTION:TS +EC_KEY_get_flags 536 1_1_0 EXIST::FUNCTION:EC +ASN1_TYPE_cmp 537 1_1_0 EXIST::FUNCTION: +i2d_RSAPublicKey 538 1_1_0 EXIST::FUNCTION:RSA +EC_GROUP_get_trinomial_basis 539 1_1_0 EXIST::FUNCTION:EC,EC2M +BIO_ADDRINFO_protocol 540 1_1_0 EXIST::FUNCTION:SOCK +i2d_PBKDF2PARAM 541 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_RAND 542 1_1_0 EXIST::FUNCTION:ENGINE +PEM_write_bio_RSAPrivateKey 543 1_1_0 EXIST::FUNCTION:RSA +CONF_get_number 544 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_get_object 545 1_1_0 EXIST::FUNCTION: +X509_EXTENSIONS_it 546 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_EXTENSIONS_it 546 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EC_POINT_set_compressed_coordinates_GF2m 547 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M +RSA_sign_ASN1_OCTET_STRING 548 1_1_0 EXIST::FUNCTION:RSA +d2i_X509_CRL_fp 549 1_1_0 EXIST::FUNCTION:STDIO +i2d_RSA_PUBKEY 550 1_1_0 EXIST::FUNCTION:RSA +EVP_aes_128_ccm 551 1_1_0 EXIST::FUNCTION: +ECParameters_print 552 1_1_0 EXIST::FUNCTION:EC +OCSP_SINGLERESP_get1_ext_d2i 553 1_1_0 EXIST::FUNCTION:OCSP +RAND_status 554 1_1_0 EXIST::FUNCTION: +EVP_ripemd160 555 1_1_0 EXIST::FUNCTION:RMD160 +EVP_MD_meth_set_final 556 1_1_0 EXIST::FUNCTION: +ENGINE_get_cmd_defns 557 1_1_0 EXIST::FUNCTION:ENGINE +d2i_PKEY_USAGE_PERIOD 558 1_1_0 EXIST::FUNCTION: +RSAPublicKey_dup 559 1_1_0 EXIST::FUNCTION:RSA +RAND_write_file 560 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod 561 1_1_0 EXIST::FUNCTION:EC2M +EC_GROUP_get_pentanomial_basis 562 1_1_0 EXIST::FUNCTION:EC,EC2M +X509_CINF_free 563 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_free 564 1_1_0 EXIST::FUNCTION: +EVP_DigestSignInit 565 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_get0_issuer 566 1_1_0 EXIST::FUNCTION:CT +TLS_FEATURE_new 567 1_1_0 EXIST::FUNCTION: +RSA_get_default_method 568 1_1_0 EXIST::FUNCTION:RSA +CRYPTO_cts128_encrypt_block 569 1_1_0 EXIST::FUNCTION: +ASN1_digest 570 1_1_0 EXIST::FUNCTION: +ERR_load_X509V3_strings 571 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_cleanup 572 1_1_0 EXIST::FUNCTION: +d2i_X509 574 1_1_0 EXIST::FUNCTION: +a2i_ASN1_STRING 575 1_1_0 EXIST::FUNCTION: +EC_GROUP_get_mont_data 576 1_1_0 EXIST::FUNCTION:EC +CMAC_CTX_copy 577 1_1_0 EXIST::FUNCTION:CMAC +EVP_camellia_128_cfb128 579 1_1_0 EXIST::FUNCTION:CAMELLIA +DH_compute_key_padded 580 1_1_0 EXIST::FUNCTION:DH +ERR_load_CONF_strings 581 1_1_0 EXIST::FUNCTION: +ESS_ISSUER_SERIAL_dup 582 1_1_0 EXIST::FUNCTION:TS +BN_GF2m_mod_exp_arr 583 1_1_0 EXIST::FUNCTION:EC2M +ASN1_UTF8STRING_free 584 1_1_0 EXIST::FUNCTION: +BN_X931_generate_prime_ex 585 1_1_0 EXIST::FUNCTION: +ENGINE_get_RAND 586 1_1_0 EXIST::FUNCTION:ENGINE +EVP_DecryptInit 587 1_1_0 EXIST::FUNCTION: +BN_bin2bn 588 1_1_0 EXIST::FUNCTION: +X509_subject_name_hash 589 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_meth_set_flags 590 1_1_0 EXIST::FUNCTION: +TS_CONF_set_clock_precision_digits 591 1_1_0 EXIST::FUNCTION:TS +ASN1_TYPE_set 592 1_1_0 EXIST::FUNCTION: +i2d_PKCS8_PRIV_KEY_INFO 593 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_bio 594 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_get_copy 595 1_1_0 EXIST::FUNCTION: +RAND_query_egd_bytes 596 1_1_0 EXIST::FUNCTION:EGD +i2d_ASN1_PRINTABLE 597 1_1_0 EXIST::FUNCTION: +ENGINE_cmd_is_executable 598 1_1_0 EXIST::FUNCTION:ENGINE +BIO_puts 599 1_1_0 EXIST::FUNCTION: +RSAPublicKey_it 601 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA +RSAPublicKey_it 601 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA +ISSUING_DIST_POINT_new 602 1_1_0 EXIST::FUNCTION: +X509_VAL_it 603 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_VAL_it 603 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_DigestVerifyInit 604 1_1_0 EXIST::FUNCTION: +i2d_IPAddressChoice 605 1_1_0 EXIST::FUNCTION:RFC3779 +EVP_md5 606 1_1_0 EXIST::FUNCTION:MD5 +ASRange_new 607 1_1_0 EXIST::FUNCTION:RFC3779 +BN_GF2m_mod_mul_arr 608 1_1_0 EXIST::FUNCTION:EC2M +d2i_RSA_OAEP_PARAMS 609 1_1_0 EXIST::FUNCTION:RSA +BIO_s_bio 610 1_1_0 EXIST::FUNCTION: +OBJ_NAME_add 611 1_1_0 EXIST::FUNCTION: +BIO_fd_non_fatal_error 612 1_1_0 EXIST::FUNCTION: +EVP_PKEY_set_type 613 1_1_0 EXIST::FUNCTION: +ENGINE_get_next 614 1_1_0 EXIST::FUNCTION:ENGINE +BN_is_negative 615 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get_attr_count 616 1_1_0 EXIST::FUNCTION: +X509_REVOKED_get_ext_by_critical 617 1_1_0 EXIST::FUNCTION: +X509at_get_attr 618 1_1_0 EXIST::FUNCTION: +X509_PUBKEY_it 619 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_PUBKEY_it 619 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +DES_ede3_ofb64_encrypt 620 1_1_0 EXIST::FUNCTION:DES +EC_KEY_METHOD_get_compute_key 621 1_1_0 EXIST::FUNCTION:EC +RC2_cfb64_encrypt 622 1_1_0 EXIST::FUNCTION:RC2 +EVP_EncryptFinal_ex 623 1_1_0 EXIST::FUNCTION: +ERR_load_RSA_strings 624 1_1_0 EXIST::FUNCTION: +CRYPTO_secure_malloc_done 625 1_1_0 EXIST::FUNCTION: +RSA_OAEP_PARAMS_new 626 1_1_0 EXIST::FUNCTION:RSA +X509_NAME_free 627 1_1_0 EXIST::FUNCTION: +PKCS12_set_mac 628 1_1_0 EXIST::FUNCTION: +UI_get0_result_string 629 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_add_policy 630 1_1_0 EXIST::FUNCTION:TS +X509_REQ_dup 631 1_1_0 EXIST::FUNCTION: +d2i_DSA_PUBKEY_fp 633 1_1_0 EXIST::FUNCTION:DSA,STDIO +OCSP_REQ_CTX_nbio_d2i 634 1_1_0 EXIST::FUNCTION:OCSP +d2i_X509_REQ_fp 635 1_1_0 EXIST::FUNCTION:STDIO +DH_OpenSSL 636 1_1_0 EXIST::FUNCTION:DH +BN_get_rfc3526_prime_8192 637 1_1_0 EXIST::FUNCTION: +X509_REVOKED_it 638 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_REVOKED_it 638 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CRYPTO_THREAD_write_lock 639 1_1_0 EXIST::FUNCTION: +X509V3_NAME_from_section 640 1_1_0 EXIST::FUNCTION: +EC_POINT_set_compressed_coordinates_GFp 641 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC +OCSP_SINGLERESP_get0_id 642 1_1_0 EXIST::FUNCTION:OCSP +UI_add_info_string 643 1_1_0 EXIST::FUNCTION: +OBJ_NAME_remove 644 1_1_0 EXIST::FUNCTION: +UI_get_method 645 1_1_0 EXIST::FUNCTION: +CONF_modules_unload 646 1_1_0 EXIST::FUNCTION: +CRYPTO_ccm128_encrypt_ccm64 647 1_1_0 EXIST::FUNCTION: +CRYPTO_secure_malloc_init 648 1_1_0 EXIST::FUNCTION: +DSAparams_dup 649 1_1_0 EXIST::FUNCTION:DSA +PKCS8_PRIV_KEY_INFO_new 650 1_1_0 EXIST::FUNCTION: +TS_RESP_verify_token 652 1_1_0 EXIST::FUNCTION:TS +PEM_read_bio_CMS 653 1_1_0 EXIST::FUNCTION:CMS +PEM_get_EVP_CIPHER_INFO 654 1_1_0 EXIST::FUNCTION: +X509V3_EXT_print 655 1_1_0 EXIST::FUNCTION: +i2d_OCSP_SINGLERESP 656 1_1_0 EXIST::FUNCTION:OCSP +ESS_CERT_ID_free 657 1_1_0 EXIST::FUNCTION:TS +PEM_SignInit 658 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_set_key_length 659 1_1_0 EXIST::FUNCTION: +X509_delete_ext 660 1_1_0 EXIST::FUNCTION: +OCSP_resp_get0_produced_at 661 1_1_0 EXIST::FUNCTION:OCSP +IDEA_encrypt 662 1_1_0 EXIST::FUNCTION:IDEA +CRYPTO_nistcts128_encrypt_block 663 1_1_0 EXIST::FUNCTION: +EVP_MD_do_all 664 1_1_0 EXIST::FUNCTION: +EC_KEY_oct2priv 665 1_1_0 EXIST::FUNCTION:EC +CONF_parse_list 666 1_1_0 EXIST::FUNCTION: +ENGINE_set_table_flags 667 1_1_0 EXIST::FUNCTION:ENGINE +EVP_MD_meth_get_ctrl 668 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_get_int_octetstring 669 1_1_0 EXIST::FUNCTION: +PKCS5_pbe_set0_algor 670 1_1_0 EXIST::FUNCTION: +ENGINE_get_table_flags 671 1_1_0 EXIST::FUNCTION:ENGINE +PKCS12_MAC_DATA_new 672 1_1_0 EXIST::FUNCTION: +X509_chain_up_ref 673 1_1_0 EXIST::FUNCTION: +OCSP_REQINFO_it 674 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_REQINFO_it 674 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +PKCS12_add_localkeyid 675 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_get0_type 676 1_1_0 EXIST::FUNCTION: +X509_TRUST_set_default 677 1_1_0 EXIST::FUNCTION: +TXT_DB_read 678 1_1_0 EXIST::FUNCTION: +BN_sub 679 1_1_0 EXIST::FUNCTION: +ASRange_free 680 1_1_0 EXIST::FUNCTION:RFC3779 +EVP_aes_192_cfb8 681 1_1_0 EXIST::FUNCTION: +DSO_global_lookup 682 1_1_0 EXIST::FUNCTION: +PKCS7_SIGNER_INFO_it 683 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_SIGNER_INFO_it 683 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CRYPTO_ocb128_copy_ctx 684 1_1_0 EXIST::FUNCTION:OCB +TS_REQ_get_ext_d2i 685 1_1_0 EXIST::FUNCTION:TS +AES_ige_encrypt 686 1_1_0 EXIST::FUNCTION: +d2i_SXNET 687 1_1_0 EXIST::FUNCTION: +CTLOG_get0_log_id 688 1_1_0 EXIST::FUNCTION:CT +CMS_RecipientInfo_ktri_get0_signer_id 689 1_1_0 EXIST::FUNCTION:CMS +OCSP_REQUEST_add1_ext_i2d 690 1_1_0 EXIST::FUNCTION:OCSP +EVP_PBE_CipherInit 691 1_1_0 EXIST::FUNCTION: +DSA_dup_DH 692 1_1_0 EXIST::FUNCTION:DH,DSA +CONF_imodule_get_value 693 1_1_0 EXIST::FUNCTION: +OCSP_id_issuer_cmp 694 1_1_0 EXIST::FUNCTION:OCSP +ASN1_INTEGER_free 695 1_1_0 EXIST::FUNCTION: +BN_get0_nist_prime_224 696 1_1_0 EXIST::FUNCTION: +OPENSSL_isservice 697 1_1_0 EXIST::FUNCTION: +DH_compute_key 698 1_1_0 EXIST::FUNCTION:DH +TS_RESP_CTX_set_signer_key 699 1_1_0 EXIST::FUNCTION:TS +i2d_DSAPrivateKey_bio 700 1_1_0 EXIST::FUNCTION:DSA +ASN1_item_d2i 702 1_1_0 EXIST::FUNCTION: +BIO_int_ctrl 703 1_1_0 EXIST::FUNCTION: +CMS_ReceiptRequest_it 704 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:CMS +CMS_ReceiptRequest_it 704 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:CMS +X509_ATTRIBUTE_get0_type 705 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_copy 706 1_1_0 EXIST::FUNCTION: +d2i_ASN1_ENUMERATED 707 1_1_0 EXIST::FUNCTION: +d2i_ASIdOrRange 708 1_1_0 EXIST::FUNCTION:RFC3779 +i2s_ASN1_OCTET_STRING 709 1_1_0 EXIST::FUNCTION: +X509_add1_reject_object 710 1_1_0 EXIST::FUNCTION: +ERR_set_mark 711 1_1_0 EXIST::FUNCTION: +d2i_ASN1_VISIBLESTRING 712 1_1_0 EXIST::FUNCTION: +X509_NAME_ENTRY_dup 714 1_1_0 EXIST::FUNCTION: +X509_certificate_type 715 1_1_0 EXIST::FUNCTION: +PKCS7_add_signature 716 1_1_0 EXIST::FUNCTION: +OBJ_ln2nid 717 1_1_0 EXIST::FUNCTION: +CRYPTO_128_unwrap 718 1_1_0 EXIST::FUNCTION: +BIO_new_PKCS7 719 1_1_0 EXIST::FUNCTION: +UI_get0_user_data 720 1_1_0 EXIST::FUNCTION: +TS_RESP_get_token 721 1_1_0 EXIST::FUNCTION:TS +OCSP_RESPID_new 722 1_1_0 EXIST::FUNCTION:OCSP +ASN1_SET_ANY_it 723 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_SET_ANY_it 723 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +d2i_TS_RESP_bio 724 1_1_0 EXIST::FUNCTION:TS +PEM_write_X509_REQ 725 1_1_0 EXIST::FUNCTION:STDIO +BIO_snprintf 726 1_1_0 EXIST::FUNCTION: +EC_POINT_hex2point 727 1_1_0 EXIST::FUNCTION:EC +X509v3_get_ext_by_critical 728 1_1_0 EXIST::FUNCTION: +ENGINE_get_default_RSA 729 1_1_0 EXIST::FUNCTION:ENGINE +DSA_sign_setup 730 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,DSA +OPENSSL_sk_new_null 731 1_1_0 EXIST::FUNCTION: +PEM_read_PKCS8 732 1_1_0 EXIST::FUNCTION:STDIO +BN_mod_sqr 733 1_1_0 EXIST::FUNCTION: +CAST_ofb64_encrypt 734 1_1_0 EXIST::FUNCTION:CAST +TXT_DB_write 735 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_get1_ext_d2i 736 1_1_0 EXIST::FUNCTION:OCSP +CMS_unsigned_add1_attr_by_NID 737 1_1_0 EXIST::FUNCTION:CMS +BN_mod_exp_mont 738 1_1_0 EXIST::FUNCTION: +d2i_DHxparams 739 1_1_0 EXIST::FUNCTION:DH +DH_size 740 1_1_0 EXIST::FUNCTION:DH +CONF_imodule_get_name 741 1_1_0 EXIST::FUNCTION: +ENGINE_get_pkey_meth_engine 742 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_BASICRESP_free 743 1_1_0 EXIST::FUNCTION:OCSP +BN_set_params 744 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8 +BN_add 745 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_free 746 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_ext_d2i 747 1_1_0 EXIST::FUNCTION:TS +RSA_check_key 748 1_1_0 EXIST::FUNCTION:RSA +TS_MSG_IMPRINT_set_algo 749 1_1_0 EXIST::FUNCTION:TS +BN_nist_mod_521 750 1_1_0 EXIST::FUNCTION: +CRYPTO_THREAD_get_local 751 1_1_0 EXIST::FUNCTION: +PKCS7_to_TS_TST_INFO 752 1_1_0 EXIST::FUNCTION:TS +X509_STORE_CTX_new 753 1_1_0 EXIST::FUNCTION: +CTLOG_STORE_new 754 1_1_0 EXIST::FUNCTION:CT +EVP_CIPHER_meth_set_cleanup 755 1_1_0 EXIST::FUNCTION: +d2i_PKCS12_SAFEBAG 756 1_1_0 EXIST::FUNCTION: +EVP_MD_pkey_type 757 1_1_0 EXIST::FUNCTION: +X509_policy_node_get0_qualifiers 758 1_1_0 EXIST::FUNCTION: +OCSP_cert_status_str 759 1_1_0 EXIST::FUNCTION:OCSP +EVP_MD_meth_get_flags 760 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_set 761 1_1_0 EXIST::FUNCTION: +UI_UTIL_read_pw 762 1_1_0 EXIST::FUNCTION: +PKCS7_ENC_CONTENT_free 763 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_type 764 1_1_0 EXIST::FUNCTION:CMS +OCSP_BASICRESP_get_ext 765 1_1_0 EXIST::FUNCTION:OCSP +BN_lebin2bn 766 1_1_0 EXIST::FUNCTION: +AES_decrypt 767 1_1_0 EXIST::FUNCTION: +BIO_fd_should_retry 768 1_1_0 EXIST::FUNCTION: +ASN1_STRING_new 769 1_1_0 EXIST::FUNCTION: +ENGINE_init 770 1_1_0 EXIST::FUNCTION:ENGINE +TS_RESP_CTX_add_flags 771 1_1_0 EXIST::FUNCTION:TS +BIO_gethostbyname 772 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK +X509V3_EXT_add 773 1_1_0 EXIST::FUNCTION: +UI_add_verify_string 774 1_1_0 EXIST::FUNCTION: +EVP_rc5_32_12_16_cfb64 775 1_1_0 EXIST::FUNCTION:RC5 +PKCS7_dataVerify 776 1_1_0 EXIST::FUNCTION: +PKCS7_SIGNER_INFO_free 777 1_1_0 EXIST::FUNCTION: +PKCS7_add_attrib_smimecap 778 1_1_0 EXIST::FUNCTION: +ERR_peek_last_error_line_data 779 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_sign 780 1_1_0 EXIST::FUNCTION: +ASN1_i2d_bio 781 1_1_0 EXIST::FUNCTION: +DSA_verify 782 1_1_0 EXIST::FUNCTION:DSA +i2a_ASN1_OBJECT 783 1_1_0 EXIST::FUNCTION: +i2d_PKEY_USAGE_PERIOD 784 1_1_0 EXIST::FUNCTION: +DSA_new 785 1_1_0 EXIST::FUNCTION:DSA +PEM_read_bio_X509_CRL 786 1_1_0 EXIST::FUNCTION: +PKCS7_dataDecode 787 1_1_0 EXIST::FUNCTION: +DSA_up_ref 788 1_1_0 EXIST::FUNCTION:DSA +EVP_DecryptInit_ex 789 1_1_0 EXIST::FUNCTION: +CONF_get1_default_config_file 790 1_1_0 EXIST::FUNCTION: +CRYPTO_ocb128_encrypt 791 1_1_0 EXIST::FUNCTION:OCB +EXTENDED_KEY_USAGE_new 792 1_1_0 EXIST::FUNCTION: +EVP_EncryptFinal 793 1_1_0 EXIST::FUNCTION: +PEM_write_ECPrivateKey 794 1_1_0 EXIST::FUNCTION:EC,STDIO +EVP_CIPHER_meth_set_get_asn1_params 796 1_1_0 EXIST::FUNCTION: +PKCS7_dataInit 797 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_set_app_data 798 1_1_0 EXIST::FUNCTION: +a2i_GENERAL_NAME 799 1_1_0 EXIST::FUNCTION: +SXNETID_new 800 1_1_0 EXIST::FUNCTION: +RC4_options 801 1_1_0 EXIST::FUNCTION:RC4 +BIO_f_null 802 1_1_0 EXIST::FUNCTION: +EC_GROUP_set_curve_name 803 1_1_0 EXIST::FUNCTION:EC +d2i_PBE2PARAM 804 1_1_0 EXIST::FUNCTION: +EVP_PKEY_security_bits 805 1_1_0 EXIST::FUNCTION: +PKCS12_unpack_p7encdata 806 1_1_0 EXIST::FUNCTION: +X509V3_EXT_i2d 807 1_1_0 EXIST::FUNCTION: +X509V3_get_value_bool 808 1_1_0 EXIST::FUNCTION: +X509_verify_cert_error_string 809 1_1_0 EXIST::FUNCTION: +d2i_X509_PUBKEY 810 1_1_0 EXIST::FUNCTION: +i2a_ASN1_ENUMERATED 811 1_1_0 EXIST::FUNCTION: +PKCS7_ISSUER_AND_SERIAL_new 812 1_1_0 EXIST::FUNCTION: +d2i_USERNOTICE 813 1_1_0 EXIST::FUNCTION: +X509_cmp 814 1_1_0 EXIST::FUNCTION: +EVP_PKEY_set1_EC_KEY 815 1_1_0 EXIST::FUNCTION:EC +ECPKParameters_print_fp 816 1_1_0 EXIST::FUNCTION:EC,STDIO +GENERAL_SUBTREE_free 817 1_1_0 EXIST::FUNCTION: +RSA_blinding_off 818 1_1_0 EXIST::FUNCTION:RSA +i2d_OCSP_REVOKEDINFO 819 1_1_0 EXIST::FUNCTION:OCSP +X509V3_add_standard_extensions 820 1_1_0 EXIST::FUNCTION: +PEM_write_bio_RSA_PUBKEY 821 1_1_0 EXIST::FUNCTION:RSA +i2d_ASN1_UTF8STRING 822 1_1_0 EXIST::FUNCTION: +TS_REQ_delete_ext 823 1_1_0 EXIST::FUNCTION:TS +PKCS7_DIGEST_free 824 1_1_0 EXIST::FUNCTION: +OBJ_nid2ln 825 1_1_0 EXIST::FUNCTION: +COMP_CTX_new 826 1_1_0 EXIST::FUNCTION:COMP +BIO_ADDR_family 827 1_1_0 EXIST::FUNCTION:SOCK +OCSP_RESPONSE_it 828 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_RESPONSE_it 828 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +BIO_ADDRINFO_socktype 829 1_1_0 EXIST::FUNCTION:SOCK +d2i_X509_REQ_bio 830 1_1_0 EXIST::FUNCTION: +EVP_PBE_cleanup 831 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_current_crl 832 1_1_0 EXIST::FUNCTION: +CMS_get0_SignerInfos 833 1_1_0 EXIST::FUNCTION:CMS +EVP_PKEY_paramgen 834 1_1_0 EXIST::FUNCTION: +PEM_write_PKCS8PrivateKey_nid 835 1_1_0 EXIST::FUNCTION:STDIO +PKCS7_ATTR_VERIFY_it 836 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ATTR_VERIFY_it 836 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OCSP_response_status_str 837 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_gcm128_new 838 1_1_0 EXIST::FUNCTION: +SMIME_read_PKCS7 839 1_1_0 EXIST::FUNCTION: +EC_GROUP_copy 840 1_1_0 EXIST::FUNCTION:EC +ENGINE_set_ciphers 841 1_1_0 EXIST::FUNCTION:ENGINE +OPENSSL_LH_doall_arg 842 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_get_ext_by_NID 843 1_1_0 EXIST::FUNCTION:OCSP +X509_REQ_get_attr_by_NID 844 1_1_0 EXIST::FUNCTION: +PBE2PARAM_new 845 1_1_0 EXIST::FUNCTION: +DES_ecb_encrypt 846 1_1_0 EXIST::FUNCTION:DES +EVP_camellia_256_ecb 847 1_1_0 EXIST::FUNCTION:CAMELLIA +PEM_read_RSA_PUBKEY 848 1_1_0 EXIST::FUNCTION:RSA,STDIO +d2i_NETSCAPE_SPKAC 849 1_1_0 EXIST::FUNCTION: +ASN1_TIME_check 851 1_1_0 EXIST::FUNCTION: +PKCS7_DIGEST_new 852 1_1_0 EXIST::FUNCTION: +i2d_TS_TST_INFO_fp 853 1_1_0 EXIST::FUNCTION:STDIO,TS +d2i_PKCS8_fp 854 1_1_0 EXIST::FUNCTION:STDIO +EVP_PKEY_keygen 855 1_1_0 EXIST::FUNCTION: +X509_CRL_dup 856 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_get_cb 857 1_1_0 EXIST::FUNCTION: +X509_STORE_free 858 1_1_0 EXIST::FUNCTION: +ECDSA_sign_ex 859 1_1_0 EXIST::FUNCTION:EC +TXT_DB_insert 860 1_1_0 EXIST::FUNCTION: +EC_POINTs_make_affine 861 1_1_0 EXIST::FUNCTION:EC +RSA_padding_add_PKCS1_PSS 862 1_1_0 EXIST::FUNCTION:RSA +BF_options 863 1_1_0 EXIST::FUNCTION:BF +OCSP_BASICRESP_it 864 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_BASICRESP_it 864 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +X509_VERIFY_PARAM_get0_name 865 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_signer_digest 866 1_1_0 EXIST::FUNCTION:TS +X509_VERIFY_PARAM_set1_email 867 1_1_0 EXIST::FUNCTION: +BIO_sock_error 868 1_1_0 EXIST::FUNCTION:SOCK +RSA_set_default_method 869 1_1_0 EXIST::FUNCTION:RSA +BN_GF2m_mod_sqrt_arr 870 1_1_0 EXIST::FUNCTION:EC2M +X509_get0_extensions 871 1_1_0 EXIST::FUNCTION: +TS_STATUS_INFO_set_status 872 1_1_0 EXIST::FUNCTION:TS +RSA_verify 873 1_1_0 EXIST::FUNCTION:RSA +ASN1_FBOOLEAN_it 874 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_FBOOLEAN_it 874 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +d2i_ASN1_TIME 875 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_signctx 876 1_1_0 EXIST::FUNCTION: +EC_KEY_METHOD_set_compute_key 877 1_1_0 EXIST::FUNCTION:EC +X509_REQ_INFO_free 878 1_1_0 EXIST::FUNCTION: +CMS_ReceiptRequest_create0 879 1_1_0 EXIST::FUNCTION:CMS +EVP_MD_meth_set_cleanup 880 1_1_0 EXIST::FUNCTION: +EVP_aes_128_xts 881 1_1_0 EXIST::FUNCTION: +TS_RESP_verify_signature 883 1_1_0 EXIST::FUNCTION:TS +ENGINE_set_pkey_meths 884 1_1_0 EXIST::FUNCTION:ENGINE +CMS_EncryptedData_decrypt 885 1_1_0 EXIST::FUNCTION:CMS +CONF_module_add 886 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_print 887 1_1_0 EXIST::FUNCTION: +X509_REQ_verify 888 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set_purpose 889 1_1_0 EXIST::FUNCTION: +i2d_TS_MSG_IMPRINT_bio 890 1_1_0 EXIST::FUNCTION:TS +X509_EXTENSION_set_object 891 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_get_app_data 892 1_1_0 EXIST::FUNCTION: +CRL_DIST_POINTS_it 893 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +CRL_DIST_POINTS_it 893 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +DIRECTORYSTRING_new 894 1_1_0 EXIST::FUNCTION: +ERR_load_ASYNC_strings 895 1_1_0 EXIST::FUNCTION: +EVP_bf_cfb64 896 1_1_0 EXIST::FUNCTION:BF +PKCS7_sign_add_signer 897 1_1_0 EXIST::FUNCTION: +X509_print_ex 898 1_1_0 EXIST::FUNCTION: +PKCS7_add_recipient 899 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_add_ext 900 1_1_0 EXIST::FUNCTION:OCSP +d2i_X509_SIG 901 1_1_0 EXIST::FUNCTION: +X509_NAME_set 902 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_pop 903 1_1_0 EXIST::FUNCTION: +ENGINE_register_ciphers 904 1_1_0 EXIST::FUNCTION:ENGINE +PKCS5_pbe2_set_iv 905 1_1_0 EXIST::FUNCTION: +ASN1_add_stable_module 906 1_1_0 EXIST::FUNCTION: +EVP_camellia_128_cbc 907 1_1_0 EXIST::FUNCTION:CAMELLIA +COMP_zlib 908 1_1_0 EXIST::FUNCTION:COMP +EVP_read_pw_string 909 1_1_0 EXIST::FUNCTION: +i2d_ASN1_NULL 910 1_1_0 EXIST::FUNCTION: +DES_encrypt1 911 1_1_0 EXIST::FUNCTION:DES +BN_mod_lshift1_quick 912 1_1_0 EXIST::FUNCTION: +BN_get_rfc3526_prime_6144 913 1_1_0 EXIST::FUNCTION: +OBJ_obj2txt 914 1_1_0 EXIST::FUNCTION: +UI_set_result 915 1_1_0 EXIST::FUNCTION: +EVP_EncodeUpdate 916 1_1_0 EXIST::FUNCTION: +PEM_write_bio_X509_CRL 917 1_1_0 EXIST::FUNCTION: +BN_cmp 918 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_get0_log_store 919 1_1_0 EXIST::FUNCTION:CT +CONF_set_default_method 920 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_get_nm_flags 921 1_1_0 EXIST::FUNCTION: +X509_add1_ext_i2d 922 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_RECIP_INFO 924 1_1_0 EXIST::FUNCTION: +PKCS1_MGF1 925 1_1_0 EXIST::FUNCTION:RSA +BIO_vsnprintf 926 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_current_issuer 927 1_1_0 EXIST::FUNCTION: +CRYPTO_secure_malloc_initialized 928 1_1_0 EXIST::FUNCTION: +o2i_SCT_LIST 929 1_1_0 EXIST::FUNCTION:CT +ASN1_PCTX_get_cert_flags 930 1_1_0 EXIST::FUNCTION: +X509at_add1_attr_by_NID 931 1_1_0 EXIST::FUNCTION: +DHparams_dup 932 1_1_0 EXIST::FUNCTION:DH +X509_get_ext 933 1_1_0 EXIST::FUNCTION: +X509_issuer_and_serial_hash 934 1_1_0 EXIST::FUNCTION: +ASN1_BMPSTRING_it 935 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_BMPSTRING_it 935 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PEM_read_EC_PUBKEY 936 1_1_0 EXIST::FUNCTION:EC,STDIO +d2i_ASN1_IA5STRING 937 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_ext_free 938 1_1_0 EXIST::FUNCTION:TS +i2d_X509_CRL_fp 939 1_1_0 EXIST::FUNCTION:STDIO +PKCS7_get0_signers 940 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_ex_data 941 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTS_set_certs 942 1_1_0 EXIST::FUNCTION:TS +BN_MONT_CTX_copy 943 1_1_0 EXIST::FUNCTION: +OPENSSL_INIT_new 945 1_1_0 EXIST::FUNCTION: +TS_ACCURACY_dup 946 1_1_0 EXIST::FUNCTION:TS +i2d_ECPrivateKey 947 1_1_0 EXIST::FUNCTION:EC +X509_NAME_ENTRY_create_by_OBJ 948 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTX_cleanup 949 1_1_0 EXIST::FUNCTION:TS +ASN1_INTEGER_get 950 1_1_0 EXIST::FUNCTION: +ASN1_PRINTABLE_it 951 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_PRINTABLE_it 951 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_VerifyFinal 952 1_1_0 EXIST::FUNCTION: +TS_ASN1_INTEGER_print_bio 953 1_1_0 EXIST::FUNCTION:TS +X509_NAME_ENTRY_set_object 954 1_1_0 EXIST::FUNCTION: +BIO_s_socket 955 1_1_0 EXIST::FUNCTION:SOCK +EVP_rc5_32_12_16_ecb 956 1_1_0 EXIST::FUNCTION:RC5 +i2d_PKCS8_bio 957 1_1_0 EXIST::FUNCTION: +v2i_ASN1_BIT_STRING 958 1_1_0 EXIST::FUNCTION: +PKEY_USAGE_PERIOD_new 959 1_1_0 EXIST::FUNCTION: +OBJ_NAME_init 960 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_keygen 961 1_1_0 EXIST::FUNCTION: +RSA_PSS_PARAMS_new 962 1_1_0 EXIST::FUNCTION:RSA +RSA_sign 963 1_1_0 EXIST::FUNCTION:RSA +EVP_DigestVerifyFinal 964 1_1_0 EXIST::FUNCTION: +d2i_RSA_PUBKEY_bio 965 1_1_0 EXIST::FUNCTION:RSA +TS_RESP_dup 966 1_1_0 EXIST::FUNCTION:TS +ERR_set_error_data 967 1_1_0 EXIST::FUNCTION: +BN_RECP_CTX_new 968 1_1_0 EXIST::FUNCTION: +DES_options 969 1_1_0 EXIST::FUNCTION:DES +IPAddressChoice_it 970 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +IPAddressChoice_it 970 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +ASN1_UNIVERSALSTRING_it 971 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_UNIVERSALSTRING_it 971 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +d2i_DSAPublicKey 972 1_1_0 EXIST::FUNCTION:DSA +ENGINE_get_name 973 1_1_0 EXIST::FUNCTION:ENGINE +CRYPTO_THREAD_read_lock 974 1_1_0 EXIST::FUNCTION: +ASIdentifierChoice_free 975 1_1_0 EXIST::FUNCTION:RFC3779 +BIO_dgram_sctp_msg_waiting 976 1_1_0 EXIST::FUNCTION:DGRAM,SCTP +BN_is_bit_set 978 1_1_0 EXIST::FUNCTION: +AES_ofb128_encrypt 979 1_1_0 EXIST::FUNCTION: +X509_STORE_add_lookup 980 1_1_0 EXIST::FUNCTION: +ASN1_GENERALSTRING_new 981 1_1_0 EXIST::FUNCTION: +IDEA_options 982 1_1_0 EXIST::FUNCTION:IDEA +d2i_X509_REQ 983 1_1_0 EXIST::FUNCTION: +i2d_TS_STATUS_INFO 984 1_1_0 EXIST::FUNCTION:TS +X509_PURPOSE_get_by_id 985 1_1_0 EXIST::FUNCTION: +X509_get1_ocsp 986 1_1_0 EXIST::FUNCTION: +ISSUING_DIST_POINT_free 987 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_free 988 1_1_0 EXIST::FUNCTION: +ERR_load_TS_strings 989 1_1_0 EXIST::FUNCTION:TS +BN_nist_mod_func 990 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_new 991 1_1_0 EXIST::FUNCTION:OCSP +DSA_SIG_new 992 1_1_0 EXIST::FUNCTION:DSA +DH_get_default_method 993 1_1_0 EXIST::FUNCTION:DH +PEM_proc_type 994 1_1_0 EXIST::FUNCTION: +BIO_printf 995 1_1_0 EXIST::FUNCTION: +a2i_IPADDRESS 996 1_1_0 EXIST::FUNCTION: +ERR_peek_error_line_data 997 1_1_0 EXIST::FUNCTION: +ERR_unload_strings 998 1_1_0 EXIST::FUNCTION: +SEED_cfb128_encrypt 999 1_1_0 EXIST::FUNCTION:SEED +ASN1_BIT_STRING_it 1000 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_BIT_STRING_it 1000 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS12_decrypt_skey 1001 1_1_0 EXIST::FUNCTION: +ENGINE_register_EC 1002 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_RESPONSE_new 1003 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_cbc128_encrypt 1004 1_1_0 EXIST::FUNCTION: +i2d_RSAPublicKey_bio 1005 1_1_0 EXIST::FUNCTION:RSA +X509_chain_check_suiteb 1006 1_1_0 EXIST::FUNCTION: +i2d_OCSP_REQUEST 1007 1_1_0 EXIST::FUNCTION:OCSP +BN_X931_generate_Xpq 1008 1_1_0 EXIST::FUNCTION: +ASN1_item_digest 1009 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set_trust 1010 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_error 1011 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_encrypt 1012 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_it 1013 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_UTCTIME_it 1013 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_DSA_PUBKEY_fp 1014 1_1_0 EXIST::FUNCTION:DSA,STDIO +X509at_get_attr_by_OBJ 1015 1_1_0 EXIST::FUNCTION: +EVP_MD_CTX_copy_ex 1016 1_1_0 EXIST::FUNCTION: +UI_dup_error_string 1017 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_num_items 1018 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_cmp 1020 1_1_0 EXIST::FUNCTION: +X509_NAME_entry_count 1021 1_1_0 EXIST::FUNCTION: +UI_method_set_closer 1022 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_get_down_load 1023 1_1_0 EXIST::FUNCTION: +EVP_md4 1024 1_1_0 EXIST::FUNCTION:MD4 +X509_set_subject_name 1025 1_1_0 EXIST::FUNCTION: +i2d_PKCS8PrivateKey_nid_bio 1026 1_1_0 EXIST::FUNCTION: +ERR_put_error 1027 1_1_0 EXIST::FUNCTION: +ERR_add_error_data 1028 1_1_0 EXIST::FUNCTION: +X509_ALGORS_it 1029 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_ALGORS_it 1029 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +MD5_Update 1030 1_1_0 EXIST::FUNCTION:MD5 +X509_policy_check 1031 1_1_0 EXIST::FUNCTION: +X509_CRL_METHOD_new 1032 1_1_0 EXIST::FUNCTION: +ASN1_ANY_it 1033 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_ANY_it 1033 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +d2i_DSA_SIG 1034 1_1_0 EXIST::FUNCTION:DSA +DH_free 1035 1_1_0 EXIST::FUNCTION:DH +ENGINE_register_all_DSA 1036 1_1_0 EXIST::FUNCTION:ENGINE +TS_REQ_set_msg_imprint 1037 1_1_0 EXIST::FUNCTION:TS +BN_mod_sub_quick 1038 1_1_0 EXIST::FUNCTION: +SMIME_write_CMS 1039 1_1_0 EXIST::FUNCTION:CMS +i2d_DSAPublicKey 1040 1_1_0 EXIST::FUNCTION:DSA +SMIME_text 1042 1_1_0 EXIST::FUNCTION: +PKCS7_add_recipient_info 1043 1_1_0 EXIST::FUNCTION: +BN_get_word 1044 1_1_0 EXIST::FUNCTION: +EVP_CipherFinal 1045 1_1_0 EXIST::FUNCTION: +i2d_X509_bio 1046 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_new 1047 1_1_0 EXIST::FUNCTION: +X509_getm_notAfter 1048 1_1_0 EXIST::FUNCTION: +X509_ALGOR_dup 1049 1_1_0 EXIST::FUNCTION: +d2i_X509_REQ_INFO 1050 1_1_0 EXIST::FUNCTION: +d2i_EC_PUBKEY_bio 1051 1_1_0 EXIST::FUNCTION:EC +X509_STORE_CTX_set_error 1052 1_1_0 EXIST::FUNCTION: +EC_KEY_METHOD_set_keygen 1053 1_1_0 EXIST::FUNCTION:EC +CRYPTO_free 1054 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod_exp 1055 1_1_0 EXIST::FUNCTION:EC2M +OPENSSL_buf2hexstr 1056 1_1_0 EXIST::FUNCTION: +DES_encrypt2 1057 1_1_0 EXIST::FUNCTION:DES +DH_up_ref 1058 1_1_0 EXIST::FUNCTION:DH +RC2_ofb64_encrypt 1059 1_1_0 EXIST::FUNCTION:RC2 +PKCS12_pbe_crypt 1060 1_1_0 EXIST::FUNCTION: +ASIdentifiers_free 1061 1_1_0 EXIST::FUNCTION:RFC3779 +X509_VERIFY_PARAM_get0 1062 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_get_input_blocksize 1063 1_1_0 EXIST::FUNCTION: +TS_ACCURACY_get_micros 1064 1_1_0 EXIST::FUNCTION:TS +PKCS12_SAFEBAG_create_cert 1065 1_1_0 EXIST::FUNCTION: +CRYPTO_mem_debug_malloc 1066 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG +RAND_seed 1067 1_1_0 EXIST::FUNCTION: +NETSCAPE_SPKAC_free 1068 1_1_0 EXIST::FUNCTION: +X509_CRL_diff 1069 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set_flags 1070 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_set_data 1071 1_1_0 EXIST::FUNCTION: +ENGINE_get_EC 1072 1_1_0 EXIST::FUNCTION:ENGINE +ASN1_STRING_copy 1073 1_1_0 EXIST::FUNCTION: +EVP_PKEY_encrypt_old 1074 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_free 1075 1_1_0 EXIST::FUNCTION: +DES_is_weak_key 1076 1_1_0 EXIST::FUNCTION:DES +EVP_PKEY_verify 1077 1_1_0 EXIST::FUNCTION: +ERR_load_BIO_strings 1078 1_1_0 EXIST::FUNCTION: +BIO_nread 1079 1_1_0 EXIST::FUNCTION: +PEM_read_bio_RSAPrivateKey 1080 1_1_0 EXIST::FUNCTION:RSA +OBJ_nid2obj 1081 1_1_0 EXIST::FUNCTION: +CRYPTO_ofb128_encrypt 1082 1_1_0 EXIST::FUNCTION: +ENGINE_set_init_function 1083 1_1_0 EXIST::FUNCTION:ENGINE +NCONF_default 1084 1_1_0 EXIST::FUNCTION: +ENGINE_remove 1085 1_1_0 EXIST::FUNCTION:ENGINE +ASYNC_get_current_job 1086 1_1_0 EXIST::FUNCTION: +OBJ_nid2sn 1087 1_1_0 EXIST::FUNCTION: +X509_gmtime_adj 1088 1_1_0 EXIST::FUNCTION: +X509_add_ext 1089 1_1_0 EXIST::FUNCTION: +ENGINE_set_DSA 1090 1_1_0 EXIST::FUNCTION:ENGINE +EC_KEY_METHOD_set_sign 1091 1_1_0 EXIST::FUNCTION:EC +d2i_TS_MSG_IMPRINT 1092 1_1_0 EXIST::FUNCTION:TS +X509_print_ex_fp 1093 1_1_0 EXIST::FUNCTION:STDIO +ERR_load_PEM_strings 1094 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_pkey_asn1_meths 1095 1_1_0 EXIST::FUNCTION:ENGINE +IPAddressFamily_free 1096 1_1_0 EXIST::FUNCTION:RFC3779 +UI_method_get_prompt_constructor 1097 1_1_0 EXIST::FUNCTION: +ASN1_NULL_it 1098 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_NULL_it 1098 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_REQ_get_pubkey 1099 1_1_0 EXIST::FUNCTION: +X509_CRL_set1_nextUpdate 1100 1_1_0 EXIST::FUNCTION: +EVP_des_ede3_cfb64 1101 1_1_0 EXIST::FUNCTION:DES +BN_to_ASN1_INTEGER 1102 1_1_0 EXIST::FUNCTION: +EXTENDED_KEY_USAGE_free 1103 1_1_0 EXIST::FUNCTION: +PEM_read_bio_EC_PUBKEY 1104 1_1_0 EXIST::FUNCTION:EC +BN_MONT_CTX_set 1105 1_1_0 EXIST::FUNCTION: +TS_CONF_set_serial 1106 1_1_0 EXIST::FUNCTION:TS +X509_NAME_ENTRY_new 1107 1_1_0 EXIST::FUNCTION: +RSA_security_bits 1108 1_1_0 EXIST::FUNCTION:RSA +X509v3_addr_add_prefix 1109 1_1_0 EXIST::FUNCTION:RFC3779 +X509_REQ_print_fp 1110 1_1_0 EXIST::FUNCTION:STDIO +ASN1_item_ex_new 1111 1_1_0 EXIST::FUNCTION: +BIO_s_datagram 1112 1_1_0 EXIST::FUNCTION:DGRAM +PEM_write_bio_PKCS8 1113 1_1_0 EXIST::FUNCTION: +ASN1_str2mask 1114 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_get 1115 1_1_0 EXIST::FUNCTION: +i2d_X509_EXTENSIONS 1116 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_store 1117 1_1_0 EXIST::FUNCTION: +PKCS12_pack_p7data 1118 1_1_0 EXIST::FUNCTION: +RSA_print_fp 1119 1_1_0 EXIST::FUNCTION:RSA,STDIO +OPENSSL_INIT_set_config_appname 1120 1_1_0 EXIST::FUNCTION:STDIO +EC_KEY_print_fp 1121 1_1_0 EXIST::FUNCTION:EC,STDIO +BIO_dup_chain 1122 1_1_0 EXIST::FUNCTION: +PKCS8_PRIV_KEY_INFO_it 1123 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS8_PRIV_KEY_INFO_it 1123 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +RSA_OAEP_PARAMS_free 1124 1_1_0 EXIST::FUNCTION:RSA +ASN1_item_new 1125 1_1_0 EXIST::FUNCTION: +CRYPTO_cts128_encrypt 1126 1_1_0 EXIST::FUNCTION: +RC2_encrypt 1127 1_1_0 EXIST::FUNCTION:RC2 +PEM_write 1128 1_1_0 EXIST::FUNCTION:STDIO +EVP_CIPHER_meth_get_get_asn1_params 1129 1_1_0 EXIST::FUNCTION: +i2d_OCSP_RESPBYTES 1130 1_1_0 EXIST::FUNCTION:OCSP +d2i_ASN1_UTF8STRING 1131 1_1_0 EXIST::FUNCTION: +EXTENDED_KEY_USAGE_it 1132 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +EXTENDED_KEY_USAGE_it 1132 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_CipherInit 1133 1_1_0 EXIST::FUNCTION: +PKCS12_add_safe 1134 1_1_0 EXIST::FUNCTION: +ENGINE_get_digest 1135 1_1_0 EXIST::FUNCTION:ENGINE +EC_GROUP_have_precompute_mult 1136 1_1_0 EXIST::FUNCTION:EC +OPENSSL_gmtime 1137 1_1_0 EXIST::FUNCTION: +X509_set_issuer_name 1138 1_1_0 EXIST::FUNCTION: +RSA_new 1139 1_1_0 EXIST::FUNCTION:RSA +ASN1_STRING_set_by_NID 1140 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PKCS7 1141 1_1_0 EXIST::FUNCTION: +MDC2_Final 1142 1_1_0 EXIST::FUNCTION:MDC2 +SMIME_crlf_copy 1143 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_get_ext_count 1144 1_1_0 EXIST::FUNCTION:OCSP +OCSP_REQ_CTX_new 1145 1_1_0 EXIST::FUNCTION:OCSP +X509_load_cert_crl_file 1146 1_1_0 EXIST::FUNCTION: +EVP_PKEY_new_mac_key 1147 1_1_0 EXIST::FUNCTION: +DIST_POINT_new 1148 1_1_0 EXIST::FUNCTION: +BN_is_prime_fasttest 1149 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8 +EC_POINT_dup 1150 1_1_0 EXIST::FUNCTION:EC +PKCS5_v2_scrypt_keyivgen 1151 1_1_0 EXIST::FUNCTION:SCRYPT +X509_STORE_CTX_set0_param 1152 1_1_0 EXIST::FUNCTION: +DES_check_key_parity 1153 1_1_0 EXIST::FUNCTION:DES +EVP_aes_256_ocb 1154 1_1_0 EXIST::FUNCTION:OCB +X509_VAL_free 1155 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get1_certs 1156 1_1_0 EXIST::FUNCTION: +PEM_write_RSA_PUBKEY 1157 1_1_0 EXIST::FUNCTION:RSA,STDIO +PKCS12_SAFEBAG_get0_p8inf 1158 1_1_0 EXIST::FUNCTION: +X509_CRL_set_issuer_name 1159 1_1_0 EXIST::FUNCTION: +CMS_EncryptedData_encrypt 1160 1_1_0 EXIST::FUNCTION:CMS +ASN1_tag2str 1161 1_1_0 EXIST::FUNCTION: +BN_zero_ex 1162 1_1_0 EXIST::FUNCTION: +X509_NAME_dup 1163 1_1_0 EXIST::FUNCTION: +SCT_LIST_print 1164 1_1_0 EXIST::FUNCTION:CT +NOTICEREF_it 1165 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NOTICEREF_it 1165 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CMS_add0_crl 1166 1_1_0 EXIST::FUNCTION:CMS +d2i_DSAparams 1167 1_1_0 EXIST::FUNCTION:DSA +EVP_CIPHER_CTX_set_app_data 1168 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_param_to_asn1 1169 1_1_0 EXIST::FUNCTION: +TS_CONF_set_certs 1170 1_1_0 EXIST::FUNCTION:TS +BN_security_bits 1171 1_1_0 EXIST::FUNCTION: +X509_PURPOSE_get0_name 1172 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_serial 1173 1_1_0 EXIST::FUNCTION:TS +ASN1_PCTX_get_str_flags 1174 1_1_0 EXIST::FUNCTION: +SHA256 1175 1_1_0 EXIST::FUNCTION: +X509_LOOKUP_hash_dir 1176 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_check 1177 1_1_0 EXIST::FUNCTION: +ENGINE_set_default_RAND 1178 1_1_0 EXIST::FUNCTION:ENGINE +BIO_connect 1179 1_1_0 EXIST::FUNCTION:SOCK +TS_TST_INFO_add_ext 1180 1_1_0 EXIST::FUNCTION:TS +EVP_aes_192_ccm 1181 1_1_0 EXIST::FUNCTION: +X509V3_add_value 1182 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_set0_keygen_info 1183 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_digests 1184 1_1_0 EXIST::FUNCTION:ENGINE +IPAddressOrRange_new 1185 1_1_0 EXIST::FUNCTION:RFC3779 +EVP_aes_256_ofb 1186 1_1_0 EXIST::FUNCTION: +CRYPTO_mem_debug_push 1187 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG +X509_PKEY_new 1188 1_1_0 EXIST::FUNCTION: +X509_get_key_usage 1189 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_create_by_txt 1190 1_1_0 EXIST::FUNCTION: +PEM_SignFinal 1191 1_1_0 EXIST::FUNCTION: +PEM_bytes_read_bio 1192 1_1_0 EXIST::FUNCTION: +X509_signature_dump 1193 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_def_policy 1194 1_1_0 EXIST::FUNCTION:TS +RAND_pseudo_bytes 1195 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +DES_ofb_encrypt 1196 1_1_0 EXIST::FUNCTION:DES +EVP_add_digest 1197 1_1_0 EXIST::FUNCTION: +ASN1_item_sign_ctx 1198 1_1_0 EXIST::FUNCTION: +BIO_dump_indent_cb 1199 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set_depth 1200 1_1_0 EXIST::FUNCTION: +DES_ecb3_encrypt 1201 1_1_0 EXIST::FUNCTION:DES +OBJ_obj2nid 1202 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_free 1203 1_1_0 EXIST::FUNCTION: +EVP_cast5_cfb64 1204 1_1_0 EXIST::FUNCTION:CAST +OPENSSL_uni2asc 1205 1_1_0 EXIST::FUNCTION: +SCT_validation_status_string 1206 1_1_0 EXIST::FUNCTION:CT +PKCS7_add_attribute 1207 1_1_0 EXIST::FUNCTION: +ENGINE_register_DSA 1208 1_1_0 EXIST::FUNCTION:ENGINE +OPENSSL_LH_node_stats 1209 1_1_0 EXIST::FUNCTION:STDIO +X509_policy_tree_free 1210 1_1_0 EXIST::FUNCTION: +EC_GFp_simple_method 1211 1_1_0 EXIST::FUNCTION:EC +X509_it 1212 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_it 1212 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +d2i_PROXY_POLICY 1213 1_1_0 EXIST::FUNCTION: +MDC2_Update 1214 1_1_0 EXIST::FUNCTION:MDC2 +EC_KEY_new_by_curve_name 1215 1_1_0 EXIST::FUNCTION:EC +X509_CRL_free 1216 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_SIGN_ENVELOPE 1217 1_1_0 EXIST::FUNCTION: +OCSP_CERTSTATUS_it 1218 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_CERTSTATUS_it 1218 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +BIO_f_reliable 1219 1_1_0 EXIST::FUNCTION: +OCSP_resp_count 1220 1_1_0 EXIST::FUNCTION:OCSP +i2d_X509_AUX 1221 1_1_0 EXIST::FUNCTION: +RSA_verify_PKCS1_PSS_mgf1 1222 1_1_0 EXIST::FUNCTION:RSA +X509_time_adj 1223 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_find_str 1224 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_get_flags 1225 1_1_0 EXIST::FUNCTION: +OPENSSL_DIR_end 1226 1_1_0 EXIST::FUNCTION: +EC_GROUP_new 1227 1_1_0 EXIST::FUNCTION:EC +CMS_SignerInfo_get0_pkey_ctx 1228 1_1_0 EXIST::FUNCTION:CMS +d2i_ASN1_PRINTABLESTRING 1229 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_ktri_cert_cmp 1230 1_1_0 EXIST::FUNCTION:CMS +CMS_decrypt_set1_pkey 1231 1_1_0 EXIST::FUNCTION:CMS +PKCS7_RECIP_INFO_set 1232 1_1_0 EXIST::FUNCTION: +EC_POINT_is_on_curve 1233 1_1_0 EXIST::FUNCTION:EC +PKCS12_add_cert 1234 1_1_0 EXIST::FUNCTION: +X509_NAME_hash_old 1235 1_1_0 EXIST::FUNCTION: +PBKDF2PARAM_free 1236 1_1_0 EXIST::FUNCTION: +i2d_CMS_ContentInfo 1237 1_1_0 EXIST::FUNCTION:CMS +EVP_CIPHER_meth_set_ctrl 1238 1_1_0 EXIST::FUNCTION: +RSA_public_decrypt 1239 1_1_0 EXIST::FUNCTION:RSA +ENGINE_get_id 1240 1_1_0 EXIST::FUNCTION:ENGINE +PKCS12_item_decrypt_d2i 1241 1_1_0 EXIST::FUNCTION: +PEM_read_bio_DSAparams 1242 1_1_0 EXIST::FUNCTION:DSA +X509_CRL_cmp 1243 1_1_0 EXIST::FUNCTION: +DSO_METHOD_openssl 1244 1_1_0 EXIST::FUNCTION: +d2i_PrivateKey_fp 1245 1_1_0 EXIST::FUNCTION:STDIO +i2d_NETSCAPE_CERT_SEQUENCE 1246 1_1_0 EXIST::FUNCTION: +EC_POINT_oct2point 1248 1_1_0 EXIST::FUNCTION:EC +EVP_CIPHER_CTX_buf_noconst 1249 1_1_0 EXIST::FUNCTION: +OPENSSL_DIR_read 1250 1_1_0 EXIST::FUNCTION: +CMS_add_smimecap 1251 1_1_0 EXIST::FUNCTION:CMS +X509_check_email 1252 1_1_0 EXIST::FUNCTION: +CRYPTO_cts128_decrypt_block 1253 1_1_0 EXIST::FUNCTION: +UI_method_get_opener 1254 1_1_0 EXIST::FUNCTION: +EVP_aes_192_gcm 1255 1_1_0 EXIST::FUNCTION: +TS_CONF_set_tsa_name 1256 1_1_0 EXIST::FUNCTION:TS +X509_email_free 1257 1_1_0 EXIST::FUNCTION: +BIO_get_callback 1258 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_shift 1259 1_1_0 EXIST::FUNCTION: +i2d_X509_REVOKED 1260 1_1_0 EXIST::FUNCTION: +CMS_sign 1261 1_1_0 EXIST::FUNCTION:CMS +X509_STORE_add_cert 1262 1_1_0 EXIST::FUNCTION: +EC_GROUP_precompute_mult 1263 1_1_0 EXIST::FUNCTION:EC +d2i_DISPLAYTEXT 1265 1_1_0 EXIST::FUNCTION: +HMAC_CTX_copy 1266 1_1_0 EXIST::FUNCTION: +CRYPTO_gcm128_init 1267 1_1_0 EXIST::FUNCTION: +i2d_X509_CINF 1268 1_1_0 EXIST::FUNCTION: +X509_REVOKED_delete_ext 1269 1_1_0 EXIST::FUNCTION: +RC5_32_cfb64_encrypt 1270 1_1_0 EXIST::FUNCTION:RC5 +TS_REQ_set_cert_req 1271 1_1_0 EXIST::FUNCTION:TS +TXT_DB_get_by_index 1272 1_1_0 EXIST::FUNCTION: +X509_check_ca 1273 1_1_0 EXIST::FUNCTION: +DH_get_2048_224 1274 1_1_0 EXIST::FUNCTION:DH +X509_http_nbio 1275 1_1_0 EXIST::FUNCTION:OCSP +i2d_AUTHORITY_INFO_ACCESS 1276 1_1_0 EXIST::FUNCTION: +EVP_get_cipherbyname 1277 1_1_0 EXIST::FUNCTION: +CONF_dump_fp 1278 1_1_0 EXIST::FUNCTION:STDIO +d2i_DIST_POINT_NAME 1279 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_set_int64 1280 1_1_0 EXIST::FUNCTION: +ASN1_TIME_free 1281 1_1_0 EXIST::FUNCTION: +i2o_SCT_LIST 1282 1_1_0 EXIST::FUNCTION:CT +AES_encrypt 1283 1_1_0 EXIST::FUNCTION: +MD5_Init 1284 1_1_0 EXIST::FUNCTION:MD5 +UI_add_error_string 1285 1_1_0 EXIST::FUNCTION: +X509_TRUST_cleanup 1286 1_1_0 EXIST::FUNCTION: +PEM_read_X509 1287 1_1_0 EXIST::FUNCTION:STDIO +EC_KEY_new_method 1288 1_1_0 EXIST::FUNCTION:EC +i2d_RSAPublicKey_fp 1289 1_1_0 EXIST::FUNCTION:RSA,STDIO +CRYPTO_ctr128_encrypt_ctr32 1290 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_move_peername 1291 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_it 1292 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_SINGLERESP_it 1292 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +BN_num_bits 1293 1_1_0 EXIST::FUNCTION: +X509_CRL_METHOD_free 1294 1_1_0 EXIST::FUNCTION: +PEM_read_NETSCAPE_CERT_SEQUENCE 1295 1_1_0 EXIST::FUNCTION:STDIO +OPENSSL_load_builtin_modules 1296 1_1_0 EXIST::FUNCTION: +X509_set_version 1297 1_1_0 EXIST::FUNCTION: +i2d_EC_PUBKEY_bio 1298 1_1_0 EXIST::FUNCTION:EC +X509_REQ_get_attr_count 1299 1_1_0 EXIST::FUNCTION: +CMS_set1_signers_certs 1300 1_1_0 EXIST::FUNCTION:CMS +TS_ACCURACY_free 1301 1_1_0 EXIST::FUNCTION:TS +PEM_write_DSA_PUBKEY 1302 1_1_0 EXIST::FUNCTION:DSA,STDIO +BN_rshift1 1303 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_ENVELOPE 1304 1_1_0 EXIST::FUNCTION: +PBKDF2PARAM_it 1305 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PBKDF2PARAM_it 1305 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +UI_get_result_maxsize 1306 1_1_0 EXIST::FUNCTION: +PBEPARAM_it 1307 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PBEPARAM_it 1307 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_ACCURACY_set_seconds 1308 1_1_0 EXIST::FUNCTION:TS +UI_get0_action_string 1309 1_1_0 EXIST::FUNCTION: +RC2_decrypt 1310 1_1_0 EXIST::FUNCTION:RC2 +OPENSSL_atexit 1311 1_1_0 EXIST::FUNCTION: +CMS_add_standard_smimecap 1312 1_1_0 EXIST::FUNCTION:CMS +PKCS7_add_attrib_content_type 1313 1_1_0 EXIST::FUNCTION: +BN_BLINDING_set_flags 1314 1_1_0 EXIST::FUNCTION: +ERR_peek_last_error 1315 1_1_0 EXIST::FUNCTION: +ENGINE_set_cmd_defns 1316 1_1_0 EXIST::FUNCTION:ENGINE +d2i_ASN1_NULL 1317 1_1_0 EXIST::FUNCTION: +RAND_event 1318 1_1_0 EXIST:_WIN32:FUNCTION:DEPRECATEDIN_1_1_0 +i2d_PKCS12_fp 1319 1_1_0 EXIST::FUNCTION:STDIO +EVP_PKEY_meth_get_init 1320 1_1_0 EXIST::FUNCTION: +X509_check_trust 1321 1_1_0 EXIST::FUNCTION: +b2i_PrivateKey 1322 1_1_0 EXIST::FUNCTION:DSA +HMAC_Init_ex 1323 1_1_0 EXIST::FUNCTION: +SMIME_read_CMS 1324 1_1_0 EXIST::FUNCTION:CMS +X509_subject_name_cmp 1325 1_1_0 EXIST::FUNCTION: +CRYPTO_ocb128_finish 1326 1_1_0 EXIST::FUNCTION:OCB +EVP_CIPHER_do_all 1327 1_1_0 EXIST::FUNCTION: +POLICY_MAPPINGS_it 1328 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +POLICY_MAPPINGS_it 1328 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +SCT_set0_log_id 1329 1_1_0 EXIST::FUNCTION:CT +CRYPTO_cfb128_encrypt 1330 1_1_0 EXIST::FUNCTION: +RSA_padding_add_PKCS1_type_2 1331 1_1_0 EXIST::FUNCTION:RSA +TS_CONF_set_signer_cert 1332 1_1_0 EXIST::FUNCTION:TS +i2d_ASN1_OBJECT 1333 1_1_0 EXIST::FUNCTION: +d2i_PKCS8_PRIV_KEY_INFO_bio 1334 1_1_0 EXIST::FUNCTION: +X509V3_add_value_int 1335 1_1_0 EXIST::FUNCTION: +TS_REQ_set_nonce 1336 1_1_0 EXIST::FUNCTION:TS +Camellia_ctr128_encrypt 1337 1_1_0 EXIST::FUNCTION:CAMELLIA +X509_LOOKUP_new 1338 1_1_0 EXIST::FUNCTION: +AUTHORITY_INFO_ACCESS_new 1339 1_1_0 EXIST::FUNCTION: +CRYPTO_mem_leaks_fp 1340 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG,STDIO +DES_set_key_unchecked 1341 1_1_0 EXIST::FUNCTION:DES +BN_free 1342 1_1_0 EXIST::FUNCTION: +EVP_aes_128_cfb1 1343 1_1_0 EXIST::FUNCTION: +EC_KEY_get0_group 1344 1_1_0 EXIST::FUNCTION:EC +PEM_write_bio_CMS_stream 1345 1_1_0 EXIST::FUNCTION:CMS +BIO_f_linebuffer 1346 1_1_0 EXIST::FUNCTION: +ASN1_item_d2i_bio 1347 1_1_0 EXIST::FUNCTION: +ENGINE_get_flags 1348 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_resp_find 1349 1_1_0 EXIST::FUNCTION:OCSP +OPENSSL_LH_node_usage_stats_bio 1350 1_1_0 EXIST::FUNCTION: +EVP_PKEY_encrypt 1351 1_1_0 EXIST::FUNCTION: +CRYPTO_cfb128_8_encrypt 1352 1_1_0 EXIST::FUNCTION: +SXNET_get_id_INTEGER 1353 1_1_0 EXIST::FUNCTION: +CRYPTO_clear_free 1354 1_1_0 EXIST::FUNCTION: +i2v_GENERAL_NAME 1355 1_1_0 EXIST::FUNCTION: +PKCS7_ENC_CONTENT_new 1356 1_1_0 EXIST::FUNCTION: +CRYPTO_realloc 1357 1_1_0 EXIST::FUNCTION: +BIO_ctrl_pending 1358 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_new 1360 1_1_0 EXIST::FUNCTION: +X509_sign_ctx 1361 1_1_0 EXIST::FUNCTION: +BN_is_odd 1362 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_current_cert 1363 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_get_int64 1364 1_1_0 EXIST::FUNCTION: +ASN1_SCTX_get_app_data 1365 1_1_0 EXIST::FUNCTION: +X509_get_default_cert_file_env 1366 1_1_0 EXIST::FUNCTION: +X509v3_addr_validate_resource_set 1367 1_1_0 EXIST::FUNCTION:RFC3779 +d2i_X509_VAL 1368 1_1_0 EXIST::FUNCTION: +CRYPTO_gcm128_decrypt_ctr32 1370 1_1_0 EXIST::FUNCTION: +DHparams_print 1371 1_1_0 EXIST::FUNCTION:DH +OPENSSL_sk_unshift 1372 1_1_0 EXIST::FUNCTION: +BN_GENCB_set_old 1373 1_1_0 EXIST::FUNCTION: +PEM_write_bio_X509 1374 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_free 1375 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_DH 1376 1_1_0 EXIST::FUNCTION:ENGINE +PROXY_CERT_INFO_EXTENSION_it 1377 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PROXY_CERT_INFO_EXTENSION_it 1377 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CT_POLICY_EVAL_CTX_set1_cert 1378 1_1_0 EXIST::FUNCTION:CT +X509_NAME_hash 1379 1_1_0 EXIST::FUNCTION: +SCT_set_timestamp 1380 1_1_0 EXIST::FUNCTION:CT +UI_new 1381 1_1_0 EXIST::FUNCTION: +TS_REQ_get_msg_imprint 1382 1_1_0 EXIST::FUNCTION:TS +i2d_PKCS12_BAGS 1383 1_1_0 EXIST::FUNCTION: +CERTIFICATEPOLICIES_free 1385 1_1_0 EXIST::FUNCTION: +X509V3_get_section 1386 1_1_0 EXIST::FUNCTION: +BIO_parse_hostserv 1387 1_1_0 EXIST::FUNCTION:SOCK +EVP_PKEY_meth_set_cleanup 1388 1_1_0 EXIST::FUNCTION: +PROXY_CERT_INFO_EXTENSION_free 1389 1_1_0 EXIST::FUNCTION: +X509_dup 1390 1_1_0 EXIST::FUNCTION: +EDIPARTYNAME_free 1391 1_1_0 EXIST::FUNCTION: +X509_CRL_add0_revoked 1393 1_1_0 EXIST::FUNCTION: +GENERAL_NAME_set0_value 1394 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_dup 1395 1_1_0 EXIST::FUNCTION: +EC_GROUP_check_discriminant 1396 1_1_0 EXIST::FUNCTION:EC +PKCS12_MAC_DATA_free 1397 1_1_0 EXIST::FUNCTION: +PEM_read_bio_PrivateKey 1398 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_ENCRYPT 1399 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_ctrl 1400 1_1_0 EXIST::FUNCTION: +X509_REQ_set_pubkey 1401 1_1_0 EXIST::FUNCTION: +UI_create_method 1402 1_1_0 EXIST::FUNCTION: +X509_REQ_add_extensions_nid 1403 1_1_0 EXIST::FUNCTION: +PEM_X509_INFO_write_bio 1404 1_1_0 EXIST::FUNCTION: +BIO_dump_cb 1405 1_1_0 EXIST::FUNCTION: +v2i_GENERAL_NAMES 1406 1_1_0 EXIST::FUNCTION: +EVP_des_ede3_ofb 1407 1_1_0 EXIST::FUNCTION:DES +EVP_MD_meth_get_cleanup 1408 1_1_0 EXIST::FUNCTION: +SRP_Calc_server_key 1409 1_1_0 EXIST::FUNCTION:SRP +BN_mod_exp_simple 1410 1_1_0 EXIST::FUNCTION: +BIO_set_ex_data 1411 1_1_0 EXIST::FUNCTION: +SHA512 1412 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_explicit_policy 1413 1_1_0 EXIST::FUNCTION: +EVP_DecodeBlock 1414 1_1_0 EXIST::FUNCTION: +OCSP_REQ_CTX_http 1415 1_1_0 EXIST::FUNCTION:OCSP +EVP_MD_CTX_reset 1416 1_1_0 EXIST::FUNCTION: +X509_NAME_new 1417 1_1_0 EXIST::FUNCTION: +ASN1_item_pack 1418 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_set_asc 1419 1_1_0 EXIST::FUNCTION: +d2i_GENERAL_NAME 1420 1_1_0 EXIST::FUNCTION: +i2d_ESS_CERT_ID 1421 1_1_0 EXIST::FUNCTION:TS +X509_TRUST_get_by_id 1422 1_1_0 EXIST::FUNCTION: +d2i_RSA_PUBKEY_fp 1423 1_1_0 EXIST::FUNCTION:RSA,STDIO +EVP_PBE_get 1424 1_1_0 EXIST::FUNCTION: +CRYPTO_nistcts128_encrypt 1425 1_1_0 EXIST::FUNCTION: +CONF_modules_finish 1426 1_1_0 EXIST::FUNCTION: +BN_value_one 1427 1_1_0 EXIST::FUNCTION: +RSA_padding_add_SSLv23 1428 1_1_0 EXIST::FUNCTION:RSA +OCSP_RESPBYTES_it 1429 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_RESPBYTES_it 1429 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +EVP_aes_192_wrap 1430 1_1_0 EXIST::FUNCTION: +OCSP_CERTID_it 1431 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_CERTID_it 1431 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +ENGINE_get_RSA 1432 1_1_0 EXIST::FUNCTION:ENGINE +RAND_get_rand_method 1433 1_1_0 EXIST::FUNCTION: +ERR_load_DSA_strings 1434 1_1_0 EXIST::FUNCTION:DSA +ASN1_check_infinite_end 1435 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_DIGEST 1436 1_1_0 EXIST::FUNCTION: +ERR_lib_error_string 1437 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_set1_object 1438 1_1_0 EXIST::FUNCTION: +i2d_ECPrivateKey_bio 1439 1_1_0 EXIST::FUNCTION:EC +BN_GENCB_free 1440 1_1_0 EXIST::FUNCTION: +HMAC_size 1441 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get0_DH 1442 1_1_0 EXIST::FUNCTION:DH +d2i_OCSP_CRLID 1443 1_1_0 EXIST::FUNCTION:OCSP +EVP_CIPHER_CTX_set_padding 1444 1_1_0 EXIST::FUNCTION: +CTLOG_new_from_base64 1445 1_1_0 EXIST::FUNCTION:CT +AES_bi_ige_encrypt 1446 1_1_0 EXIST::FUNCTION: +ERR_pop_to_mark 1447 1_1_0 EXIST::FUNCTION: +CRL_DIST_POINTS_new 1449 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get0_asn1 1450 1_1_0 EXIST::FUNCTION: +EVP_camellia_192_ctr 1451 1_1_0 EXIST::FUNCTION:CAMELLIA +EVP_PKEY_free 1452 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_count 1453 1_1_0 EXIST::FUNCTION: +BIO_new_dgram 1454 1_1_0 EXIST::FUNCTION:DGRAM +CMS_RecipientInfo_kari_get0_reks 1455 1_1_0 EXIST::FUNCTION:CMS +BASIC_CONSTRAINTS_new 1456 1_1_0 EXIST::FUNCTION: +PEM_read_bio_X509_REQ 1457 1_1_0 EXIST::FUNCTION: +BIO_sock_init 1458 1_1_0 EXIST::FUNCTION:SOCK +BN_nist_mod_192 1459 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_ISSUER_AND_SERIAL 1460 1_1_0 EXIST::FUNCTION: +X509V3_EXT_nconf 1461 1_1_0 EXIST::FUNCTION: +X509v3_addr_inherits 1462 1_1_0 EXIST::FUNCTION:RFC3779 +NETSCAPE_SPKI_sign 1463 1_1_0 EXIST::FUNCTION: +BN_BLINDING_update 1464 1_1_0 EXIST::FUNCTION: +BN_gcd 1465 1_1_0 EXIST::FUNCTION: +CMS_dataInit 1466 1_1_0 EXIST::FUNCTION:CMS +TS_CONF_get_tsa_section 1467 1_1_0 EXIST::FUNCTION:TS +i2d_PKCS7_SIGNER_INFO 1468 1_1_0 EXIST::FUNCTION: +EVP_get_pw_prompt 1469 1_1_0 EXIST::FUNCTION: +BN_bn2bin 1470 1_1_0 EXIST::FUNCTION: +d2i_ASN1_BIT_STRING 1471 1_1_0 EXIST::FUNCTION: +OCSP_CERTSTATUS_new 1472 1_1_0 EXIST::FUNCTION:OCSP +ENGINE_register_RAND 1473 1_1_0 EXIST::FUNCTION:ENGINE +X509V3_section_free 1474 1_1_0 EXIST::FUNCTION: +CRYPTO_mem_debug_free 1475 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG +d2i_OCSP_REQUEST 1476 1_1_0 EXIST::FUNCTION:OCSP +ENGINE_get_cipher_engine 1477 1_1_0 EXIST::FUNCTION:ENGINE +SHA384_Final 1478 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_certs 1479 1_1_0 EXIST::FUNCTION:TS +BN_MONT_CTX_free 1480 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod_solve_quad_arr 1481 1_1_0 EXIST::FUNCTION:EC2M +UI_add_input_string 1482 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_version 1483 1_1_0 EXIST::FUNCTION:TS +BIO_accept_ex 1484 1_1_0 EXIST::FUNCTION:SOCK +CRYPTO_get_mem_functions 1485 1_1_0 EXIST::FUNCTION: +PEM_read_bio 1486 1_1_0 EXIST::FUNCTION: +OCSP_BASICRESP_get_ext_by_critical 1487 1_1_0 EXIST::FUNCTION:OCSP +SXNET_it 1488 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +SXNET_it 1488 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BIO_indent 1489 1_1_0 EXIST::FUNCTION: +i2d_X509_fp 1490 1_1_0 EXIST::FUNCTION:STDIO +d2i_ASN1_TYPE 1491 1_1_0 EXIST::FUNCTION: +CTLOG_STORE_free 1492 1_1_0 EXIST::FUNCTION:CT +ENGINE_get_pkey_meths 1493 1_1_0 EXIST::FUNCTION:ENGINE +i2d_TS_REQ_bio 1494 1_1_0 EXIST::FUNCTION:TS +EVP_PKEY_CTX_get_operation 1495 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_ctrl 1496 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_set_critical 1497 1_1_0 EXIST::FUNCTION: +BIO_ADDR_clear 1498 1_1_0 EXIST::FUNCTION:SOCK +ENGINE_get_DSA 1499 1_1_0 EXIST::FUNCTION:ENGINE +ASYNC_get_wait_ctx 1500 1_1_0 EXIST::FUNCTION: +ENGINE_set_load_privkey_function 1501 1_1_0 EXIST::FUNCTION:ENGINE +CRYPTO_ccm128_setiv 1502 1_1_0 EXIST::FUNCTION: +PKCS7_dataFinal 1503 1_1_0 EXIST::FUNCTION: +SHA1_Final 1504 1_1_0 EXIST::FUNCTION: +i2a_ASN1_STRING 1505 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_rand_key 1506 1_1_0 EXIST::FUNCTION: +AES_set_encrypt_key 1507 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_new 1508 1_1_0 EXIST::FUNCTION: +AES_cbc_encrypt 1509 1_1_0 EXIST::FUNCTION: +OCSP_RESPDATA_free 1510 1_1_0 EXIST::FUNCTION:OCSP +EVP_PKEY_asn1_find 1511 1_1_0 EXIST::FUNCTION: +d2i_ASN1_GENERALIZEDTIME 1512 1_1_0 EXIST::FUNCTION: +OPENSSL_cleanup 1513 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_create 1514 1_1_0 EXIST::FUNCTION: +SCT_get_source 1515 1_1_0 EXIST::FUNCTION:CT +EVP_PKEY_verify_init 1516 1_1_0 EXIST::FUNCTION: +ASN1_TIME_set_string 1517 1_1_0 EXIST::FUNCTION: +BIO_free 1518 1_1_0 EXIST::FUNCTION: +i2d_X509_ALGOR 1519 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set0_crls 1520 1_1_0 EXIST::FUNCTION: +ASYNC_pause_job 1521 1_1_0 EXIST::FUNCTION: +OCSP_BASICRESP_new 1522 1_1_0 EXIST::FUNCTION:OCSP +EVP_camellia_256_ofb 1523 1_1_0 EXIST::FUNCTION:CAMELLIA +PKCS12_item_i2d_encrypt 1524 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_copy 1525 1_1_0 EXIST::FUNCTION: +EC_POINT_clear_free 1526 1_1_0 EXIST::FUNCTION:EC +i2s_ASN1_ENUMERATED_TABLE 1527 1_1_0 EXIST::FUNCTION: +PKCS7_verify 1528 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_add0_table 1529 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_cert 1530 1_1_0 EXIST::FUNCTION: +ASN1_GENERALSTRING_free 1531 1_1_0 EXIST::FUNCTION: +BN_MONT_CTX_set_locked 1532 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_set_num 1533 1_1_0 EXIST::FUNCTION: +CONF_load 1534 1_1_0 EXIST::FUNCTION: +EC_KEY_METHOD_get_keygen 1535 1_1_0 EXIST::FUNCTION:EC +EVP_PKEY_add1_attr_by_txt 1536 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_set_uint64 1537 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get_attr_by_OBJ 1538 1_1_0 EXIST::FUNCTION: +ASN1_add_oid_module 1539 1_1_0 EXIST::FUNCTION: +BN_div_recp 1540 1_1_0 EXIST::FUNCTION: +SRP_Verify_B_mod_N 1541 1_1_0 EXIST::FUNCTION:SRP +SXNET_free 1542 1_1_0 EXIST::FUNCTION: +CMS_get0_content 1543 1_1_0 EXIST::FUNCTION:CMS +BN_is_word 1544 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_key_length 1545 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_asn1_to_param 1546 1_1_0 EXIST::FUNCTION: +OCSP_request_onereq_get0 1547 1_1_0 EXIST::FUNCTION:OCSP +ERR_load_PKCS7_strings 1548 1_1_0 EXIST::FUNCTION: +X509_PUBKEY_get 1549 1_1_0 EXIST::FUNCTION: +EC_KEY_free 1550 1_1_0 EXIST::FUNCTION:EC +BIO_read 1551 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get_attr_by_NID 1552 1_1_0 EXIST::FUNCTION: +BIO_get_accept_socket 1553 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK +CMS_SignerInfo_sign 1554 1_1_0 EXIST::FUNCTION:CMS +ASN1_item_i2d_bio 1555 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_block_size 1556 1_1_0 EXIST::FUNCTION: +DIRECTORYSTRING_free 1557 1_1_0 EXIST::FUNCTION: +TS_CONF_set_default_engine 1558 1_1_0 EXIST::FUNCTION:ENGINE,TS +BN_set_bit 1559 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_app_datasize 1560 1_1_0 EXIST::FUNCTION: +DSO_free 1561 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_tsa 1562 1_1_0 EXIST::FUNCTION:TS +EC_GROUP_check 1563 1_1_0 EXIST::FUNCTION:EC +OPENSSL_sk_delete 1564 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_extension_cb 1565 1_1_0 EXIST::FUNCTION:TS +EVP_CIPHER_CTX_nid 1566 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_add_md 1567 1_1_0 EXIST::FUNCTION:TS +DES_set_key 1568 1_1_0 EXIST::FUNCTION:DES +X509V3_extensions_print 1569 1_1_0 EXIST::FUNCTION: +PEM_do_header 1570 1_1_0 EXIST::FUNCTION: +i2d_re_X509_CRL_tbs 1571 1_1_0 EXIST::FUNCTION: +BIO_method_name 1572 1_1_0 EXIST::FUNCTION: +i2d_OCSP_CRLID 1573 1_1_0 EXIST::FUNCTION:OCSP +OCSP_request_set1_name 1574 1_1_0 EXIST::FUNCTION:OCSP +d2i_X509_NAME_ENTRY 1575 1_1_0 EXIST::FUNCTION: +X509_trusted 1576 1_1_0 EXIST::FUNCTION: +X509_TRUST_get_flags 1577 1_1_0 EXIST::FUNCTION: +PKCS7_set_content 1578 1_1_0 EXIST::FUNCTION: +PEM_write_X509_REQ_NEW 1579 1_1_0 EXIST::FUNCTION:STDIO +CONF_imodule_set_usr_data 1580 1_1_0 EXIST::FUNCTION: +d2i_TS_RESP_fp 1581 1_1_0 EXIST::FUNCTION:STDIO,TS +X509_policy_tree_get0_user_policies 1582 1_1_0 EXIST::FUNCTION: +DSA_do_sign 1584 1_1_0 EXIST::FUNCTION:DSA +EVP_CIPHER_CTX_reset 1585 1_1_0 EXIST::FUNCTION: +OCSP_REVOKEDINFO_new 1586 1_1_0 EXIST::FUNCTION:OCSP +SRP_Verify_A_mod_N 1587 1_1_0 EXIST::FUNCTION:SRP +SRP_VBASE_free 1588 1_1_0 EXIST::FUNCTION:SRP +PKCS7_add0_attrib_signing_time 1589 1_1_0 EXIST::FUNCTION: +X509_STORE_set_flags 1590 1_1_0 EXIST::FUNCTION: +UI_get0_output_string 1591 1_1_0 EXIST::FUNCTION: +ERR_get_error_line_data 1592 1_1_0 EXIST::FUNCTION: +CTLOG_get0_name 1593 1_1_0 EXIST::FUNCTION:CT +ASN1_TBOOLEAN_it 1594 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_TBOOLEAN_it 1594 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +RC2_set_key 1595 1_1_0 EXIST::FUNCTION:RC2 +X509_REVOKED_get_ext_by_NID 1596 1_1_0 EXIST::FUNCTION: +RSA_padding_add_none 1597 1_1_0 EXIST::FUNCTION:RSA +EVP_rc5_32_12_16_cbc 1599 1_1_0 EXIST::FUNCTION:RC5 +PEM_dek_info 1600 1_1_0 EXIST::FUNCTION: +ASN1_SCTX_get_template 1601 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_get0 1602 1_1_0 EXIST::FUNCTION: +X509_verify 1603 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_get_request 1604 1_1_0 EXIST::FUNCTION:TS +EVP_cast5_cbc 1605 1_1_0 EXIST::FUNCTION:CAST +PEM_read_bio_X509_AUX 1606 1_1_0 EXIST::FUNCTION: +TS_ext_print_bio 1607 1_1_0 EXIST::FUNCTION:TS +SCT_set1_log_id 1608 1_1_0 EXIST::FUNCTION:CT +X509_get0_pubkey_bitstr 1609 1_1_0 EXIST::FUNCTION: +ENGINE_register_all_RAND 1610 1_1_0 EXIST::FUNCTION:ENGINE +EVP_MD_meth_get_result_size 1612 1_1_0 EXIST::FUNCTION: +BIO_ADDRINFO_address 1613 1_1_0 EXIST::FUNCTION:SOCK +ASN1_STRING_print_ex 1614 1_1_0 EXIST::FUNCTION: +i2d_CMS_ReceiptRequest 1615 1_1_0 EXIST::FUNCTION:CMS +d2i_TS_REQ_fp 1616 1_1_0 EXIST::FUNCTION:STDIO,TS +OCSP_REQ_CTX_i2d 1617 1_1_0 EXIST::FUNCTION:OCSP +EVP_PKEY_get_default_digest_nid 1618 1_1_0 EXIST::FUNCTION: +ASIdOrRange_new 1619 1_1_0 EXIST::FUNCTION:RFC3779 +ASN1_SCTX_new 1620 1_1_0 EXIST::FUNCTION: +X509V3_EXT_get 1621 1_1_0 EXIST::FUNCTION: +OCSP_id_cmp 1622 1_1_0 EXIST::FUNCTION:OCSP +NCONF_dump_bio 1623 1_1_0 EXIST::FUNCTION: +X509_NAME_get_entry 1624 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get1_DH 1625 1_1_0 EXIST::FUNCTION:DH +CRYPTO_gcm128_aad 1626 1_1_0 EXIST::FUNCTION: +EVP_des_cfb8 1627 1_1_0 EXIST::FUNCTION:DES +BN_BLINDING_convert 1628 1_1_0 EXIST::FUNCTION: +CRYPTO_ocb128_cleanup 1629 1_1_0 EXIST::FUNCTION:OCB +EVP_des_ede_cbc 1630 1_1_0 EXIST::FUNCTION:DES +i2d_ASN1_TIME 1631 1_1_0 EXIST::FUNCTION: +ENGINE_register_all_pkey_asn1_meths 1632 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_set_max_response_length 1633 1_1_0 EXIST::FUNCTION:OCSP +d2i_ISSUING_DIST_POINT 1634 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_set0_key 1635 1_1_0 EXIST::FUNCTION:CMS +NCONF_new 1636 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_free 1637 1_1_0 EXIST::FUNCTION:OCSP +PKCS7_ENCRYPT_free 1638 1_1_0 EXIST::FUNCTION: +i2d_DIST_POINT 1639 1_1_0 EXIST::FUNCTION: +EVP_PKEY_paramgen_init 1640 1_1_0 EXIST::FUNCTION: +TS_MSG_IMPRINT_dup 1641 1_1_0 EXIST::FUNCTION:TS +CMS_ContentInfo_it 1642 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:CMS +CMS_ContentInfo_it 1642 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:CMS +OCSP_resp_get0_signature 1643 1_1_0 EXIST::FUNCTION:OCSP +X509_STORE_CTX_get1_issuer 1644 1_1_0 EXIST::FUNCTION: +EVP_Digest 1645 1_1_0 EXIST::FUNCTION: +CRYPTO_set_ex_data 1646 1_1_0 EXIST::FUNCTION: +BN_bn2hex 1647 1_1_0 EXIST::FUNCTION: +BN_lshift1 1648 1_1_0 EXIST::FUNCTION: +i2d_EDIPARTYNAME 1649 1_1_0 EXIST::FUNCTION: +X509_policy_tree_get0_policies 1650 1_1_0 EXIST::FUNCTION: +X509at_add1_attr 1651 1_1_0 EXIST::FUNCTION: +X509_get_ex_data 1653 1_1_0 EXIST::FUNCTION: +RSA_set_method 1654 1_1_0 EXIST::FUNCTION:RSA +X509_REVOKED_dup 1655 1_1_0 EXIST::FUNCTION: +ASN1_TIME_new 1656 1_1_0 EXIST::FUNCTION: +PEM_write_NETSCAPE_CERT_SEQUENCE 1657 1_1_0 EXIST::FUNCTION:STDIO +PEM_read_X509_REQ 1658 1_1_0 EXIST::FUNCTION:STDIO +EC_GROUP_free 1659 1_1_0 EXIST::FUNCTION:EC +X509_CRL_get_meth_data 1660 1_1_0 EXIST::FUNCTION: +X509V3_add_value_uchar 1661 1_1_0 EXIST::FUNCTION: +BIO_asn1_get_suffix 1662 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_clear_flags 1663 1_1_0 EXIST::FUNCTION: +X509_NAME_add_entry_by_txt 1664 1_1_0 EXIST::FUNCTION: +DES_ede3_cfb_encrypt 1665 1_1_0 EXIST::FUNCTION:DES +i2d_CMS_bio_stream 1667 1_1_0 EXIST::FUNCTION:CMS +DES_quad_cksum 1668 1_1_0 EXIST::FUNCTION:DES +X509_ATTRIBUTE_create_by_NID 1669 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTX_free 1670 1_1_0 EXIST::FUNCTION:TS +EC_KEY_up_ref 1671 1_1_0 EXIST::FUNCTION:EC +EC_GROUP_get_basis_type 1672 1_1_0 EXIST::FUNCTION:EC +OCSP_crlID_new 1673 1_1_0 EXIST:!VMS:FUNCTION:OCSP +OCSP_crlID2_new 1673 1_1_0 EXIST:VMS:FUNCTION:OCSP +PEM_write_PKCS7 1674 1_1_0 EXIST::FUNCTION:STDIO +PKCS7_add_signer 1675 1_1_0 EXIST::FUNCTION: +X509_SIG_it 1676 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_SIG_it 1676 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASYNC_start_job 1677 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_dup 1678 1_1_0 EXIST::FUNCTION:TS +EVP_aes_192_ctr 1679 1_1_0 EXIST::FUNCTION: +PKCS12_pack_authsafes 1680 1_1_0 EXIST::FUNCTION: +PKCS7_get_attribute 1681 1_1_0 EXIST::FUNCTION: +OPENSSL_config 1682 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +s2i_ASN1_INTEGER 1683 1_1_0 EXIST::FUNCTION: +CMS_signed_add1_attr_by_OBJ 1684 1_1_0 EXIST::FUNCTION:CMS +CRYPTO_128_wrap_pad 1685 1_1_0 EXIST::FUNCTION: +CMS_EncryptedData_set1_key 1686 1_1_0 EXIST::FUNCTION:CMS +OBJ_find_sigid_by_algs 1687 1_1_0 EXIST::FUNCTION: +ASN1_generate_nconf 1688 1_1_0 EXIST::FUNCTION: +CMS_add0_recipient_password 1689 1_1_0 EXIST::FUNCTION:CMS +UI_get_string_type 1690 1_1_0 EXIST::FUNCTION: +PEM_read_bio_ECPrivateKey 1691 1_1_0 EXIST::FUNCTION:EC +EVP_PKEY_get_attr 1692 1_1_0 EXIST::FUNCTION: +PEM_read_bio_ECPKParameters 1693 1_1_0 EXIST::FUNCTION:EC +d2i_PKCS12_MAC_DATA 1694 1_1_0 EXIST::FUNCTION: +ENGINE_ctrl_cmd 1695 1_1_0 EXIST::FUNCTION:ENGINE +PKCS12_SAFEBAG_get_bag_nid 1696 1_1_0 EXIST::FUNCTION: +TS_CONF_set_digests 1697 1_1_0 EXIST::FUNCTION:TS +PKCS7_SIGNED_it 1698 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_SIGNED_it 1698 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +b2i_PublicKey 1699 1_1_0 EXIST::FUNCTION:DSA +X509_PURPOSE_cleanup 1700 1_1_0 EXIST::FUNCTION: +ESS_SIGNING_CERT_dup 1701 1_1_0 EXIST::FUNCTION:TS +ENGINE_set_default_DSA 1702 1_1_0 EXIST::FUNCTION:ENGINE +X509_REVOKED_new 1703 1_1_0 EXIST::FUNCTION: +NCONF_WIN32 1704 1_1_0 EXIST::FUNCTION: +RSA_padding_check_PKCS1_OAEP_mgf1 1705 1_1_0 EXIST::FUNCTION:RSA +X509_policy_tree_get0_level 1706 1_1_0 EXIST::FUNCTION: +ASN1_parse_dump 1708 1_1_0 EXIST::FUNCTION: +BIO_vfree 1709 1_1_0 EXIST::FUNCTION: +CRYPTO_cbc128_decrypt 1710 1_1_0 EXIST::FUNCTION: +UI_dup_verify_string 1711 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_bio 1712 1_1_0 EXIST::FUNCTION: +ENGINE_set_default_digests 1713 1_1_0 EXIST::FUNCTION:ENGINE +i2d_PublicKey 1714 1_1_0 EXIST::FUNCTION: +RC5_32_set_key 1715 1_1_0 EXIST::FUNCTION:RC5 +AES_unwrap_key 1716 1_1_0 EXIST::FUNCTION: +EVP_Cipher 1717 1_1_0 EXIST::FUNCTION: +AES_set_decrypt_key 1718 1_1_0 EXIST::FUNCTION: +BF_ofb64_encrypt 1719 1_1_0 EXIST::FUNCTION:BF +d2i_TS_TST_INFO_fp 1720 1_1_0 EXIST::FUNCTION:STDIO,TS +X509_find_by_issuer_and_serial 1721 1_1_0 EXIST::FUNCTION: +EVP_PKEY_type 1722 1_1_0 EXIST::FUNCTION: +ENGINE_ctrl 1723 1_1_0 EXIST::FUNCTION:ENGINE +EVP_cast5_ecb 1724 1_1_0 EXIST::FUNCTION:CAST +BIO_nwrite0 1725 1_1_0 EXIST::FUNCTION: +CAST_encrypt 1726 1_1_0 EXIST::FUNCTION:CAST +a2d_ASN1_OBJECT 1727 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_delete_ext 1728 1_1_0 EXIST::FUNCTION:OCSP +UI_method_get_reader 1729 1_1_0 EXIST::FUNCTION: +CMS_unsigned_get_attr 1730 1_1_0 EXIST::FUNCTION:CMS +EVP_aes_256_cbc 1731 1_1_0 EXIST::FUNCTION: +X509_check_ip_asc 1732 1_1_0 EXIST::FUNCTION: +PEM_write_bio_X509_AUX 1733 1_1_0 EXIST::FUNCTION: +RC2_cbc_encrypt 1734 1_1_0 EXIST::FUNCTION:RC2 +TS_MSG_IMPRINT_new 1735 1_1_0 EXIST::FUNCTION:TS +EVP_ENCODE_CTX_new 1736 1_1_0 EXIST::FUNCTION: +BIO_f_base64 1737 1_1_0 EXIST::FUNCTION: +CMS_verify 1738 1_1_0 EXIST::FUNCTION:CMS +i2d_PrivateKey 1739 1_1_0 EXIST::FUNCTION: +i2d_OCSP_ONEREQ 1740 1_1_0 EXIST::FUNCTION:OCSP +OPENSSL_issetugid 1741 1_1_0 EXIST::FUNCTION: +d2i_ASN1_OBJECT 1742 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_flags 1743 1_1_0 EXIST::FUNCTION: +EVP_idea_cbc 1744 1_1_0 EXIST::FUNCTION:IDEA +EC_POINT_cmp 1745 1_1_0 EXIST::FUNCTION:EC +ASN1_buf_print 1746 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_hex2ctrl 1747 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PKCS8PrivateKey 1748 1_1_0 EXIST::FUNCTION: +CMAC_Update 1749 1_1_0 EXIST::FUNCTION:CMAC +d2i_ASN1_UTCTIME 1750 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_insert 1751 1_1_0 EXIST::FUNCTION: +DSO_up_ref 1752 1_1_0 EXIST::FUNCTION: +EVP_rc2_cbc 1753 1_1_0 EXIST::FUNCTION:RC2 +i2d_NETSCAPE_SPKI 1754 1_1_0 EXIST::FUNCTION: +ASYNC_init_thread 1755 1_1_0 EXIST::FUNCTION: +OCSP_BASICRESP_get_ext_by_OBJ 1756 1_1_0 EXIST::FUNCTION:OCSP +X509_reject_clear 1757 1_1_0 EXIST::FUNCTION: +DH_security_bits 1758 1_1_0 EXIST::FUNCTION:DH +LONG_it 1759 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DEPRECATEDIN_1_2_0 +LONG_it 1759 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DEPRECATEDIN_1_2_0 +ASN1_dup 1760 1_1_0 EXIST::FUNCTION: +TS_RESP_new 1761 1_1_0 EXIST::FUNCTION:TS +i2d_PKCS8PrivateKeyInfo_fp 1762 1_1_0 EXIST::FUNCTION:STDIO +X509_alias_get0 1763 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_free 1764 1_1_0 EXIST::FUNCTION: +d2i_X509_bio 1765 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_exts 1766 1_1_0 EXIST::FUNCTION:TS +EVP_aes_256_ecb 1767 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_name_print 1768 1_1_0 EXIST::FUNCTION: +d2i_X509_EXTENSIONS 1769 1_1_0 EXIST::FUNCTION: +ASN1_OCTET_STRING_free 1770 1_1_0 EXIST::FUNCTION: +PKCS7_RECIP_INFO_free 1771 1_1_0 EXIST::FUNCTION: +ASN1_tag2bit 1772 1_1_0 EXIST::FUNCTION: +TS_REQ_add_ext 1773 1_1_0 EXIST::FUNCTION:TS +X509_digest 1776 1_1_0 EXIST::FUNCTION: +CRYPTO_THREAD_cleanup_local 1777 1_1_0 EXIST::FUNCTION: +NETSCAPE_CERT_SEQUENCE_it 1778 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NETSCAPE_CERT_SEQUENCE_it 1778 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_aes_128_wrap 1779 1_1_0 EXIST::FUNCTION: +X509V3_conf_free 1780 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_ext_by_NID 1781 1_1_0 EXIST::FUNCTION:TS +EVP_aes_256_cfb1 1782 1_1_0 EXIST::FUNCTION: +X509_issuer_name_cmp 1783 1_1_0 EXIST::FUNCTION: +CMS_RecipientEncryptedKey_get0_id 1784 1_1_0 EXIST::FUNCTION:CMS +EVP_PKEY_meth_get_verify_recover 1785 1_1_0 EXIST::FUNCTION: +NAME_CONSTRAINTS_check 1786 1_1_0 EXIST::FUNCTION: +X509_CERT_AUX_it 1787 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CERT_AUX_it 1787 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_get_X509_PUBKEY 1789 1_1_0 EXIST::FUNCTION: +TXT_DB_create_index 1790 1_1_0 EXIST::FUNCTION: +RAND_set_rand_engine 1791 1_1_0 EXIST::FUNCTION:ENGINE +X509_set_serialNumber 1792 1_1_0 EXIST::FUNCTION: +BN_mod_exp_mont_consttime 1793 1_1_0 EXIST::FUNCTION: +X509V3_parse_list 1794 1_1_0 EXIST::FUNCTION: +ACCESS_DESCRIPTION_new 1795 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_clear_flags 1796 1_1_0 EXIST::FUNCTION: +ECDSA_size 1797 1_1_0 EXIST::FUNCTION:EC +X509_ALGOR_get0 1798 1_1_0 EXIST::FUNCTION: +d2i_ACCESS_DESCRIPTION 1799 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_get_ext_by_NID 1800 1_1_0 EXIST::FUNCTION:OCSP +a2i_IPADDRESS_NC 1801 1_1_0 EXIST::FUNCTION: +CTLOG_STORE_load_default_file 1802 1_1_0 EXIST::FUNCTION:CT +PKCS12_SAFEBAG_create_pkcs8_encrypt 1803 1_1_0 EXIST::FUNCTION: +RAND_screen 1804 1_1_0 EXIST:_WIN32:FUNCTION:DEPRECATEDIN_1_1_0 +CONF_get_string 1805 1_1_0 EXIST::FUNCTION: +X509_cmp_current_time 1806 1_1_0 EXIST::FUNCTION: +i2d_DSAPrivateKey 1807 1_1_0 EXIST::FUNCTION:DSA +ASN1_BIT_STRING_new 1808 1_1_0 EXIST::FUNCTION: +BIO_new_file 1809 1_1_0 EXIST::FUNCTION: +PKCS7_SIGNER_INFO_get0_algs 1810 1_1_0 EXIST::FUNCTION: +TS_RESP_set_status_info 1811 1_1_0 EXIST::FUNCTION:TS +OPENSSL_LH_delete 1812 1_1_0 EXIST::FUNCTION: +TS_STATUS_INFO_dup 1813 1_1_0 EXIST::FUNCTION:TS +X509v3_addr_get_range 1814 1_1_0 EXIST::FUNCTION:RFC3779 +X509_EXTENSION_get_data 1815 1_1_0 EXIST::FUNCTION: +RC5_32_encrypt 1816 1_1_0 EXIST::FUNCTION:RC5 +DIST_POINT_set_dpname 1817 1_1_0 EXIST::FUNCTION: +BIO_sock_info 1818 1_1_0 EXIST::FUNCTION:SOCK +OPENSSL_hexstr2buf 1819 1_1_0 EXIST::FUNCTION: +EVP_add_cipher 1820 1_1_0 EXIST::FUNCTION: +X509V3_EXT_add_list 1821 1_1_0 EXIST::FUNCTION: +CMS_compress 1822 1_1_0 EXIST::FUNCTION:CMS +X509_get_ext_by_critical 1823 1_1_0 EXIST::FUNCTION: +ASYNC_WAIT_CTX_clear_fd 1824 1_1_0 EXIST::FUNCTION: +ZLONG_it 1825 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DEPRECATEDIN_1_2_0 +ZLONG_it 1825 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DEPRECATEDIN_1_2_0 +OPENSSL_sk_find_ex 1826 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_to_BN 1827 1_1_0 EXIST::FUNCTION: +X509_CRL_get_ext_d2i 1828 1_1_0 EXIST::FUNCTION: +i2d_AUTHORITY_KEYID 1829 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_time 1830 1_1_0 EXIST::FUNCTION:TS +ASN1_VISIBLESTRING_it 1831 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_VISIBLESTRING_it 1831 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509V3_EXT_REQ_add_conf 1832 1_1_0 EXIST::FUNCTION: +ASN1_STRING_to_UTF8 1833 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_update 1835 1_1_0 EXIST::FUNCTION: +EVP_camellia_192_cbc 1836 1_1_0 EXIST::FUNCTION:CAMELLIA +OPENSSL_LH_stats_bio 1837 1_1_0 EXIST::FUNCTION: +PKCS7_set_signed_attributes 1838 1_1_0 EXIST::FUNCTION: +EC_KEY_priv2buf 1839 1_1_0 EXIST::FUNCTION:EC +BN_BLINDING_free 1840 1_1_0 EXIST::FUNCTION: +IPAddressChoice_new 1841 1_1_0 EXIST::FUNCTION:RFC3779 +X509_CRL_get_ext_count 1842 1_1_0 EXIST::FUNCTION: +PKCS12_add_key 1843 1_1_0 EXIST::FUNCTION: +EVP_camellia_128_cfb1 1844 1_1_0 EXIST::FUNCTION:CAMELLIA +BIO_find_type 1845 1_1_0 EXIST::FUNCTION: +ISSUING_DIST_POINT_it 1846 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ISSUING_DIST_POINT_it 1846 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BIO_ctrl_wpending 1847 1_1_0 EXIST::FUNCTION: +X509_ALGOR_cmp 1848 1_1_0 EXIST::FUNCTION: +i2d_ASN1_bio_stream 1849 1_1_0 EXIST::FUNCTION: +CRYPTO_THREAD_init_local 1850 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_serial_cb 1851 1_1_0 EXIST::FUNCTION:TS +POLICY_MAPPING_it 1852 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +POLICY_MAPPING_it 1852 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ERR_load_KDF_strings 1853 1_1_0 EXIST::FUNCTION: +UI_method_set_reader 1854 1_1_0 EXIST::FUNCTION: +BIO_next 1855 1_1_0 EXIST::FUNCTION: +ASN1_STRING_set_default_mask_asc 1856 1_1_0 EXIST::FUNCTION: +X509_CRL_new 1857 1_1_0 EXIST::FUNCTION: +i2b_PrivateKey_bio 1858 1_1_0 EXIST::FUNCTION:DSA +ASN1_STRING_length_set 1859 1_1_0 EXIST::FUNCTION: +PEM_write_PKCS8 1860 1_1_0 EXIST::FUNCTION:STDIO +PKCS7_digest_from_attributes 1861 1_1_0 EXIST::FUNCTION: +EC_GROUP_set_curve_GFp 1862 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC +X509_PURPOSE_get0 1863 1_1_0 EXIST::FUNCTION: +EVP_PKEY_set1_DSA 1864 1_1_0 EXIST::FUNCTION:DSA +X509_NAME_it 1865 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_NAME_it 1865 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OBJ_add_object 1866 1_1_0 EXIST::FUNCTION: +DSA_generate_key 1867 1_1_0 EXIST::FUNCTION:DSA +EVP_DigestUpdate 1868 1_1_0 EXIST::FUNCTION: +X509_get_ext_by_OBJ 1869 1_1_0 EXIST::FUNCTION: +PBEPARAM_new 1870 1_1_0 EXIST::FUNCTION: +EVP_aes_128_cbc 1871 1_1_0 EXIST::FUNCTION: +CRYPTO_dup_ex_data 1872 1_1_0 EXIST::FUNCTION: +OCSP_single_get0_status 1873 1_1_0 EXIST::FUNCTION:OCSP +d2i_AUTHORITY_INFO_ACCESS 1874 1_1_0 EXIST::FUNCTION: +PEM_read_RSAPrivateKey 1875 1_1_0 EXIST::FUNCTION:RSA,STDIO +BIO_closesocket 1876 1_1_0 EXIST::FUNCTION:SOCK +RSA_verify_ASN1_OCTET_STRING 1877 1_1_0 EXIST::FUNCTION:RSA +SCT_set_log_entry_type 1878 1_1_0 EXIST::FUNCTION:CT +BN_new 1879 1_1_0 EXIST::FUNCTION: +X509_OBJECT_retrieve_by_subject 1880 1_1_0 EXIST::FUNCTION: +MD5_Final 1881 1_1_0 EXIST::FUNCTION:MD5 +X509_STORE_set_verify_cb 1882 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_print 1883 1_1_0 EXIST::FUNCTION:OCSP +CMS_add1_crl 1884 1_1_0 EXIST::FUNCTION:CMS +d2i_EDIPARTYNAME 1885 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set0_trusted_stack 1886 1_1_0 EXIST::FUNCTION: +BIO_ADDR_service_string 1887 1_1_0 EXIST::FUNCTION:SOCK +ASN1_BOOLEAN_it 1888 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_BOOLEAN_it 1888 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_RESP_CTX_set_time_cb 1889 1_1_0 EXIST::FUNCTION:TS +IDEA_cbc_encrypt 1890 1_1_0 EXIST::FUNCTION:IDEA +BN_CTX_secure_new 1891 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_add_ext 1892 1_1_0 EXIST::FUNCTION:OCSP +CMS_uncompress 1893 1_1_0 EXIST::FUNCTION:CMS +CRYPTO_mem_debug_pop 1895 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG +EVP_aes_192_cfb128 1896 1_1_0 EXIST::FUNCTION: +OCSP_REQ_CTX_nbio 1897 1_1_0 EXIST::FUNCTION:OCSP +EVP_CIPHER_CTX_copy 1898 1_1_0 EXIST::FUNCTION: +CRYPTO_secure_allocated 1899 1_1_0 EXIST::FUNCTION: +UI_UTIL_read_pw_string 1900 1_1_0 EXIST::FUNCTION: +NOTICEREF_free 1901 1_1_0 EXIST::FUNCTION: +AES_cfb1_encrypt 1902 1_1_0 EXIST::FUNCTION: +X509v3_get_ext 1903 1_1_0 EXIST::FUNCTION: +CRYPTO_gcm128_encrypt_ctr32 1905 1_1_0 EXIST::FUNCTION: +SCT_set1_signature 1906 1_1_0 EXIST::FUNCTION:CT +CONF_imodule_get_module 1907 1_1_0 EXIST::FUNCTION: +NAME_CONSTRAINTS_new 1908 1_1_0 EXIST::FUNCTION: +BN_usub 1909 1_1_0 EXIST::FUNCTION: +SRP_Calc_B 1910 1_1_0 EXIST::FUNCTION:SRP +CMS_decrypt_set1_key 1911 1_1_0 EXIST::FUNCTION:CMS +EC_GROUP_get_degree 1912 1_1_0 EXIST::FUNCTION:EC +X509_ALGOR_set0 1913 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_set_down_load 1914 1_1_0 EXIST::FUNCTION: +X509v3_asid_inherits 1915 1_1_0 EXIST::FUNCTION:RFC3779 +EVP_MD_meth_get_app_datasize 1916 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_num_untrusted 1917 1_1_0 EXIST::FUNCTION: +RAND_poll 1918 1_1_0 EXIST::FUNCTION: +EVP_PKEY_print_public 1919 1_1_0 EXIST::FUNCTION: +CMS_SignedData_init 1920 1_1_0 EXIST::FUNCTION:CMS +X509_REQ_free 1921 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_set 1922 1_1_0 EXIST::FUNCTION: +EVP_DecodeFinal 1923 1_1_0 EXIST::FUNCTION: +MD5_Transform 1925 1_1_0 EXIST::FUNCTION:MD5 +SRP_create_verifier_BN 1926 1_1_0 EXIST::FUNCTION:SRP +ENGINE_register_all_EC 1927 1_1_0 EXIST::FUNCTION:ENGINE +EVP_camellia_128_ofb 1928 1_1_0 EXIST::FUNCTION:CAMELLIA +PEM_write_X509_AUX 1929 1_1_0 EXIST::FUNCTION:STDIO +X509_LOOKUP_by_subject 1930 1_1_0 EXIST::FUNCTION: +X509_REQ_add_extensions 1931 1_1_0 EXIST::FUNCTION: +Camellia_cbc_encrypt 1932 1_1_0 EXIST::FUNCTION:CAMELLIA +EC_KEY_METHOD_new 1933 1_1_0 EXIST::FUNCTION:EC +RSA_flags 1934 1_1_0 EXIST::FUNCTION:RSA +X509_NAME_add_entry 1935 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_get_asn1_iv 1936 1_1_0 EXIST::FUNCTION: +i2d_RSAPrivateKey_bio 1937 1_1_0 EXIST::FUNCTION:RSA +PKCS5_PBE_keyivgen 1938 1_1_0 EXIST::FUNCTION: +i2d_OCSP_SERVICELOC 1939 1_1_0 EXIST::FUNCTION:OCSP +EC_POINT_copy 1940 1_1_0 EXIST::FUNCTION:EC +X509V3_EXT_CRL_add_nconf 1941 1_1_0 EXIST::FUNCTION: +SHA256_Init 1942 1_1_0 EXIST::FUNCTION: +X509_NAME_ENTRY_get_object 1943 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_free 1944 1_1_0 EXIST::FUNCTION: +X509_CRL_set_meth_data 1945 1_1_0 EXIST::FUNCTION: +EVP_aes_192_cfb1 1946 1_1_0 EXIST::FUNCTION: +EVP_MD_CTX_set_flags 1947 1_1_0 EXIST::FUNCTION: +EVP_seed_cbc 1948 1_1_0 EXIST::FUNCTION:SEED +d2i_PKCS12 1949 1_1_0 EXIST::FUNCTION: +X509_policy_node_get0_policy 1950 1_1_0 EXIST::FUNCTION: +PKCS12_unpack_p7data 1951 1_1_0 EXIST::FUNCTION: +ECDSA_sign 1952 1_1_0 EXIST::FUNCTION:EC +d2i_PKCS12_fp 1953 1_1_0 EXIST::FUNCTION:STDIO +CMS_unsigned_get_attr_by_NID 1954 1_1_0 EXIST::FUNCTION:CMS +UI_add_user_data 1955 1_1_0 EXIST::FUNCTION: +BN_bntest_rand 1956 1_1_0 EXIST::FUNCTION: +X509_get_pubkey 1957 1_1_0 EXIST::FUNCTION: +i2d_X509_NAME 1958 1_1_0 EXIST::FUNCTION: +EVP_PKEY_add1_attr 1959 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_purpose_inherit 1960 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_keygen 1961 1_1_0 EXIST::FUNCTION: +ENGINE_get_pkey_asn1_meth 1962 1_1_0 EXIST::FUNCTION:ENGINE +SHA256_Update 1963 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_ISSUER_AND_SERIAL 1964 1_1_0 EXIST::FUNCTION: +PKCS12_unpack_authsafes 1965 1_1_0 EXIST::FUNCTION: +X509_CRL_it 1966 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CRL_it 1966 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +d2i_X509_ALGOR 1967 1_1_0 EXIST::FUNCTION: +PKCS12_PBE_keyivgen 1968 1_1_0 EXIST::FUNCTION: +BIO_test_flags 1969 1_1_0 EXIST::FUNCTION: +EC_POINT_get_affine_coordinates_GF2m 1970 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M +EVP_ENCODE_CTX_num 1971 1_1_0 EXIST::FUNCTION: +Camellia_cfb1_encrypt 1972 1_1_0 EXIST::FUNCTION:CAMELLIA +NCONF_load_fp 1973 1_1_0 EXIST::FUNCTION:STDIO +i2d_OCSP_REQINFO 1974 1_1_0 EXIST::FUNCTION:OCSP +EVP_PKEY_sign 1975 1_1_0 EXIST::FUNCTION: +TS_REQ_get_ext_by_critical 1976 1_1_0 EXIST::FUNCTION:TS +EC_KEY_key2buf 1977 1_1_0 EXIST::FUNCTION:EC +X509_EXTENSION_it 1978 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_EXTENSION_it 1978 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_PKCS8_fp 1979 1_1_0 EXIST::FUNCTION:STDIO +UTF8_getc 1980 1_1_0 EXIST::FUNCTION: +ASN1_IA5STRING_free 1981 1_1_0 EXIST::FUNCTION: +EC_KEY_METHOD_get_verify 1982 1_1_0 EXIST::FUNCTION:EC +OBJ_NAME_do_all 1983 1_1_0 EXIST::FUNCTION: +d2i_TS_MSG_IMPRINT_fp 1984 1_1_0 EXIST::FUNCTION:STDIO,TS +X509_CRL_verify 1985 1_1_0 EXIST::FUNCTION: +X509_get0_uids 1986 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get0_DSA 1987 1_1_0 EXIST::FUNCTION:DSA +d2i_CMS_ContentInfo 1988 1_1_0 EXIST::FUNCTION:CMS +EVP_CIPHER_meth_get_do_cipher 1989 1_1_0 EXIST::FUNCTION: +i2d_DSA_PUBKEY 1990 1_1_0 EXIST::FUNCTION:DSA +GENERAL_NAME_it 1991 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +GENERAL_NAME_it 1991 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_des_ede_ecb 1992 1_1_0 EXIST::FUNCTION:DES +i2d_CRL_DIST_POINTS 1993 1_1_0 EXIST::FUNCTION: +PEM_write_bio_X509_REQ_NEW 1994 1_1_0 EXIST::FUNCTION: +RC5_32_ofb64_encrypt 1995 1_1_0 EXIST::FUNCTION:RC5 +i2d_PKCS7 1996 1_1_0 EXIST::FUNCTION: +BN_mod_lshift_quick 1997 1_1_0 EXIST::FUNCTION: +DIST_POINT_NAME_it 1998 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +DIST_POINT_NAME_it 1998 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PEM_read_PrivateKey 1999 1_1_0 EXIST::FUNCTION:STDIO +X509V3_get_d2i 2000 1_1_0 EXIST::FUNCTION: +PKCS7_SIGNER_INFO_sign 2001 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_free 2002 1_1_0 EXIST::FUNCTION:TS +DSA_security_bits 2003 1_1_0 EXIST::FUNCTION:DSA +X509v3_addr_is_canonical 2004 1_1_0 EXIST::FUNCTION:RFC3779 +BN_mod_mul_reciprocal 2005 1_1_0 EXIST::FUNCTION: +TS_REQ_get_version 2006 1_1_0 EXIST::FUNCTION:TS +BN_exp 2007 1_1_0 EXIST::FUNCTION: +i2d_SXNET 2008 1_1_0 EXIST::FUNCTION: +OBJ_bsearch_ 2009 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_new 2010 1_1_0 EXIST::FUNCTION: +ENGINE_register_all_pkey_meths 2011 1_1_0 EXIST::FUNCTION:ENGINE +ENGINE_get_init_function 2012 1_1_0 EXIST::FUNCTION:ENGINE +EC_POINT_point2hex 2013 1_1_0 EXIST::FUNCTION:EC +ENGINE_get_default_DSA 2014 1_1_0 EXIST::FUNCTION:ENGINE +ENGINE_register_all_complete 2015 1_1_0 EXIST::FUNCTION:ENGINE +SRP_get_default_gN 2016 1_1_0 EXIST::FUNCTION:SRP +UI_dup_input_boolean 2017 1_1_0 EXIST::FUNCTION: +PKCS7_dup 2018 1_1_0 EXIST::FUNCTION: +i2d_TS_REQ_fp 2019 1_1_0 EXIST::FUNCTION:STDIO,TS +i2d_OTHERNAME 2020 1_1_0 EXIST::FUNCTION: +EC_KEY_get0_private_key 2021 1_1_0 EXIST::FUNCTION:EC +SCT_get0_extensions 2022 1_1_0 EXIST::FUNCTION:CT +OPENSSL_LH_node_stats_bio 2023 1_1_0 EXIST::FUNCTION: +i2d_DIRECTORYSTRING 2024 1_1_0 EXIST::FUNCTION: +BN_X931_derive_prime_ex 2025 1_1_0 EXIST::FUNCTION: +ENGINE_get_pkey_asn1_meth_str 2026 1_1_0 EXIST::FUNCTION:ENGINE +PKCS7_signatureVerify 2027 1_1_0 EXIST::FUNCTION: +CRYPTO_ocb128_new 2028 1_1_0 EXIST::FUNCTION:OCB +EC_curve_nist2nid 2029 1_1_0 EXIST::FUNCTION:EC +UI_get0_result 2030 1_1_0 EXIST::FUNCTION: +OCSP_request_add1_nonce 2031 1_1_0 EXIST::FUNCTION:OCSP +UI_construct_prompt 2032 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_RSA 2033 1_1_0 EXIST::FUNCTION:ENGINE +EC_GROUP_order_bits 2034 1_1_0 EXIST::FUNCTION:EC +d2i_CMS_bio 2035 1_1_0 EXIST::FUNCTION:CMS +OPENSSL_sk_num 2036 1_1_0 EXIST::FUNCTION: +_shadow_DES_check_key 2037 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES +_shadow_DES_check_key 2037 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES +CMS_RecipientInfo_set0_pkey 2038 1_1_0 EXIST::FUNCTION:CMS +X509_STORE_CTX_set_default 2039 1_1_0 EXIST::FUNCTION: +AES_wrap_key 2040 1_1_0 EXIST::FUNCTION: +EVP_md_null 2041 1_1_0 EXIST::FUNCTION: +i2d_SCT_LIST 2042 1_1_0 EXIST::FUNCTION:CT +PKCS7_get_issuer_and_serial 2043 1_1_0 EXIST::FUNCTION: +PKCS7_SIGN_ENVELOPE_it 2044 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_SIGN_ENVELOPE_it 2044 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_d2i_fp 2045 1_1_0 EXIST::FUNCTION:STDIO +EVP_DecryptFinal 2046 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_it 2047 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_ENUMERATED_it 2047 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +o2i_ECPublicKey 2048 1_1_0 EXIST::FUNCTION:EC +ERR_load_BUF_strings 2049 1_1_0 EXIST::FUNCTION: +PEM_read_bio_RSA_PUBKEY 2050 1_1_0 EXIST::FUNCTION:RSA +OCSP_SINGLERESP_new 2051 1_1_0 EXIST::FUNCTION:OCSP +ASN1_SCTX_free 2052 1_1_0 EXIST::FUNCTION: +i2d_ECPrivateKey_fp 2053 1_1_0 EXIST::FUNCTION:EC,STDIO +EVP_CIPHER_CTX_original_iv 2054 1_1_0 EXIST::FUNCTION: +PKCS7_SIGNED_free 2055 1_1_0 EXIST::FUNCTION: +X509_TRUST_get0_name 2056 1_1_0 EXIST::FUNCTION: +ENGINE_get_load_pubkey_function 2057 1_1_0 EXIST::FUNCTION:ENGINE +UI_get_default_method 2058 1_1_0 EXIST::FUNCTION: +PKCS12_add_CSPName_asc 2059 1_1_0 EXIST::FUNCTION: +PEM_write_PUBKEY 2060 1_1_0 EXIST::FUNCTION:STDIO +UI_method_set_prompt_constructor 2061 1_1_0 EXIST::FUNCTION: +OBJ_length 2062 1_1_0 EXIST::FUNCTION: +BN_GENCB_get_arg 2063 1_1_0 EXIST::FUNCTION: +EVP_MD_CTX_clear_flags 2064 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_verifyctx 2065 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_get0_cert 2066 1_1_0 EXIST::FUNCTION:CT +PEM_write_DHparams 2067 1_1_0 EXIST::FUNCTION:DH,STDIO +DH_set_ex_data 2068 1_1_0 EXIST::FUNCTION:DH +OCSP_SIGNATURE_free 2069 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_128_unwrap_pad 2070 1_1_0 EXIST::FUNCTION: +BIO_new_CMS 2071 1_1_0 EXIST::FUNCTION:CMS +i2d_ASN1_ENUMERATED 2072 1_1_0 EXIST::FUNCTION: +PEM_read_DSAparams 2073 1_1_0 EXIST::FUNCTION:DSA,STDIO +TS_TST_INFO_set_ordering 2074 1_1_0 EXIST::FUNCTION:TS +MDC2_Init 2075 1_1_0 EXIST::FUNCTION:MDC2 +i2o_SCT 2076 1_1_0 EXIST::FUNCTION:CT +d2i_TS_STATUS_INFO 2077 1_1_0 EXIST::FUNCTION:TS +ERR_error_string_n 2078 1_1_0 EXIST::FUNCTION: +HMAC 2079 1_1_0 EXIST::FUNCTION: +BN_mul 2080 1_1_0 EXIST::FUNCTION: +BN_get0_nist_prime_384 2081 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set1_ip_asc 2082 1_1_0 EXIST::FUNCTION: +CONF_modules_load 2083 1_1_0 EXIST::FUNCTION: +d2i_RSAPublicKey 2084 1_1_0 EXIST::FUNCTION:RSA +i2d_ASN1_GENERALSTRING 2085 1_1_0 EXIST::FUNCTION: +POLICYQUALINFO_new 2086 1_1_0 EXIST::FUNCTION: +PKCS7_RECIP_INFO_get0_alg 2087 1_1_0 EXIST::FUNCTION: +EVP_PKEY_base_id 2088 1_1_0 EXIST::FUNCTION: +UI_method_set_opener 2089 1_1_0 EXIST::FUNCTION: +X509v3_get_ext_by_NID 2090 1_1_0 EXIST::FUNCTION: +TS_CONF_set_policies 2091 1_1_0 EXIST::FUNCTION:TS +CMS_SignerInfo_cert_cmp 2092 1_1_0 EXIST::FUNCTION:CMS +PEM_read 2093 1_1_0 EXIST::FUNCTION:STDIO +X509_STORE_set_depth 2094 1_1_0 EXIST::FUNCTION: +EC_KEY_METHOD_get_sign 2095 1_1_0 EXIST::FUNCTION:EC +EVP_CIPHER_CTX_iv 2096 1_1_0 EXIST::FUNCTION: +i2d_ESS_SIGNING_CERT 2097 1_1_0 EXIST::FUNCTION:TS +TS_RESP_set_tst_info 2098 1_1_0 EXIST::FUNCTION:TS +EVP_PKEY_CTX_set_data 2099 1_1_0 EXIST::FUNCTION: +CMS_EnvelopedData_create 2100 1_1_0 EXIST::FUNCTION:CMS +SCT_new 2101 1_1_0 EXIST::FUNCTION:CT +X509_REQ_add1_attr 2102 1_1_0 EXIST::FUNCTION: +X509_get_ext_count 2103 1_1_0 EXIST::FUNCTION: +CRYPTO_cts128_decrypt 2104 1_1_0 EXIST::FUNCTION: +ASYNC_WAIT_CTX_get_fd 2105 1_1_0 EXIST::FUNCTION: +i2d_TS_REQ 2106 1_1_0 EXIST::FUNCTION:TS +OCSP_ONEREQ_add1_ext_i2d 2107 1_1_0 EXIST::FUNCTION:OCSP +ENGINE_register_pkey_meths 2108 1_1_0 EXIST::FUNCTION:ENGINE +ENGINE_load_public_key 2109 1_1_0 EXIST::FUNCTION:ENGINE +ASIdOrRange_it 2110 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +ASIdOrRange_it 2110 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +DHparams_print_fp 2111 1_1_0 EXIST::FUNCTION:DH,STDIO +ERR_load_CRYPTO_strings 2112 1_1_0 EXIST:!VMS:FUNCTION: +ERR_load_CRYPTOlib_strings 2112 1_1_0 EXIST:VMS:FUNCTION: +X509_REQ_set_version 2113 1_1_0 EXIST::FUNCTION: +d2i_ASN1_GENERALSTRING 2114 1_1_0 EXIST::FUNCTION: +i2d_ASIdentifiers 2115 1_1_0 EXIST::FUNCTION:RFC3779 +X509V3_EXT_cleanup 2116 1_1_0 EXIST::FUNCTION: +CAST_ecb_encrypt 2117 1_1_0 EXIST::FUNCTION:CAST +BIO_s_file 2118 1_1_0 EXIST::FUNCTION: +RSA_X931_derive_ex 2119 1_1_0 EXIST::FUNCTION:RSA +EVP_PKEY_decrypt_init 2120 1_1_0 EXIST::FUNCTION: +ENGINE_get_destroy_function 2121 1_1_0 EXIST::FUNCTION:ENGINE +SHA224_Init 2122 1_1_0 EXIST::FUNCTION: +X509V3_EXT_add_conf 2123 1_1_0 EXIST::FUNCTION: +ASN1_object_size 2124 1_1_0 EXIST::FUNCTION: +X509_REVOKED_free 2125 1_1_0 EXIST::FUNCTION: +BN_mod_exp_recp 2126 1_1_0 EXIST::FUNCTION: +EVP_mdc2 2127 1_1_0 EXIST::FUNCTION:MDC2 +EVP_des_cfb64 2128 1_1_0 EXIST::FUNCTION:DES +PKCS7_sign 2129 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_get_ext_by_critical 2130 1_1_0 EXIST::FUNCTION:OCSP +EDIPARTYNAME_it 2131 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +EDIPARTYNAME_it 2131 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ERR_print_errors_fp 2132 1_1_0 EXIST::FUNCTION:STDIO +BN_GF2m_mod_div_arr 2133 1_1_0 EXIST::FUNCTION:EC2M +PKCS12_SAFEBAG_get0_attr 2134 1_1_0 EXIST::FUNCTION: +BIO_s_mem 2135 1_1_0 EXIST::FUNCTION: +OCSP_RESPDATA_new 2136 1_1_0 EXIST::FUNCTION:OCSP +ASN1_item_i2d_fp 2137 1_1_0 EXIST::FUNCTION:STDIO +BN_GF2m_mod_sqr 2138 1_1_0 EXIST::FUNCTION:EC2M +ASN1_PRINTABLE_new 2139 1_1_0 EXIST::FUNCTION: +OBJ_NAME_new_index 2140 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_add_alias 2141 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get1_DSA 2142 1_1_0 EXIST::FUNCTION:DSA +SEED_cbc_encrypt 2143 1_1_0 EXIST::FUNCTION:SEED +EVP_rc2_40_cbc 2144 1_1_0 EXIST::FUNCTION:RC2 +ECDSA_SIG_new 2145 1_1_0 EXIST::FUNCTION:EC +i2d_PKCS8PrivateKey_nid_fp 2146 1_1_0 EXIST::FUNCTION:STDIO +X509_NAME_ENTRY_it 2147 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_NAME_ENTRY_it 2147 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CRYPTO_THREAD_compare_id 2148 1_1_0 EXIST::FUNCTION: +d2i_IPAddressChoice 2149 1_1_0 EXIST::FUNCTION:RFC3779 +IPAddressFamily_it 2150 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +IPAddressFamily_it 2150 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +ERR_load_OCSP_strings 2151 1_1_0 EXIST::FUNCTION:OCSP +BIO_push 2152 1_1_0 EXIST::FUNCTION: +ASN1_BMPSTRING_new 2153 1_1_0 EXIST::FUNCTION: +COMP_get_type 2154 1_1_0 EXIST::FUNCTION:COMP +d2i_ASIdentifierChoice 2155 1_1_0 EXIST::FUNCTION:RFC3779 +i2d_ASN1_T61STRING 2156 1_1_0 EXIST::FUNCTION: +X509_add1_trust_object 2157 1_1_0 EXIST::FUNCTION: +PEM_write_X509 2158 1_1_0 EXIST::FUNCTION:STDIO +BN_CTX_free 2159 1_1_0 EXIST::FUNCTION: +EC_GROUP_get_curve_GF2m 2160 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M +EVP_MD_flags 2161 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_set 2162 1_1_0 EXIST::FUNCTION: +OCSP_request_sign 2163 1_1_0 EXIST::FUNCTION:OCSP +BN_GF2m_mod_solve_quad 2164 1_1_0 EXIST::FUNCTION:EC2M +EC_POINT_method_of 2165 1_1_0 EXIST::FUNCTION:EC +PKCS7_ENCRYPT_it 2166 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ENCRYPT_it 2166 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +AUTHORITY_INFO_ACCESS_it 2167 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +AUTHORITY_INFO_ACCESS_it 2167 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_EXTENSION_create_by_NID 2168 1_1_0 EXIST::FUNCTION: +i2d_RSAPrivateKey 2169 1_1_0 EXIST::FUNCTION:RSA +d2i_CERTIFICATEPOLICIES 2170 1_1_0 EXIST::FUNCTION: +CMAC_CTX_get0_cipher_ctx 2171 1_1_0 EXIST::FUNCTION:CMAC +X509_STORE_load_locations 2172 1_1_0 EXIST::FUNCTION: +OBJ_find_sigid_algs 2173 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_accuracy 2174 1_1_0 EXIST::FUNCTION:TS +NETSCAPE_SPKI_get_pubkey 2175 1_1_0 EXIST::FUNCTION: +ECDSA_do_sign_ex 2176 1_1_0 EXIST::FUNCTION:EC +OCSP_ONEREQ_get_ext 2177 1_1_0 EXIST::FUNCTION:OCSP +BN_get_rfc3526_prime_4096 2179 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_fp 2180 1_1_0 EXIST::FUNCTION:STDIO +PEM_write_bio_NETSCAPE_CERT_SEQUENCE 2181 1_1_0 EXIST::FUNCTION: +PKCS12_AUTHSAFES_it 2182 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_AUTHSAFES_it 2182 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_MD_CTX_free 2183 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_kari_orig_id_cmp 2184 1_1_0 EXIST::FUNCTION:CMS +NETSCAPE_SPKI_b64_encode 2185 1_1_0 EXIST::FUNCTION: +d2i_PrivateKey 2186 1_1_0 EXIST::FUNCTION: +EVP_MD_CTX_new 2187 1_1_0 EXIST::FUNCTION: +X509_get0_tbs_sigalg 2189 1_1_0 EXIST::FUNCTION: +ASN1_GENERALIZEDTIME_new 2190 1_1_0 EXIST::FUNCTION: +d2i_ECDSA_SIG 2191 1_1_0 EXIST::FUNCTION:EC +d2i_OTHERNAME 2192 1_1_0 EXIST::FUNCTION: +i2d_TS_RESP_fp 2193 1_1_0 EXIST::FUNCTION:STDIO,TS +OCSP_BASICRESP_get_ext_count 2194 1_1_0 EXIST::FUNCTION:OCSP +ASN1_T61STRING_new 2195 1_1_0 EXIST::FUNCTION: +BN_kronecker 2196 1_1_0 EXIST::FUNCTION: +i2d_ACCESS_DESCRIPTION 2197 1_1_0 EXIST::FUNCTION: +EVP_camellia_192_cfb8 2198 1_1_0 EXIST::FUNCTION:CAMELLIA +X509_STORE_CTX_set_depth 2199 1_1_0 EXIST::FUNCTION: +X509v3_delete_ext 2200 1_1_0 EXIST::FUNCTION: +ASN1_STRING_set0 2201 1_1_0 EXIST::FUNCTION: +BN_GF2m_add 2202 1_1_0 EXIST::FUNCTION:EC2M +CMAC_resume 2203 1_1_0 EXIST::FUNCTION:CMAC +TS_ACCURACY_set_millis 2204 1_1_0 EXIST::FUNCTION:TS +X509V3_EXT_conf 2205 1_1_0 EXIST::FUNCTION: +i2d_DHxparams 2206 1_1_0 EXIST::FUNCTION:DH +EVP_CIPHER_CTX_free 2207 1_1_0 EXIST::FUNCTION: +WHIRLPOOL_BitUpdate 2208 1_1_0 EXIST::FUNCTION:WHIRLPOOL +EVP_idea_ecb 2209 1_1_0 EXIST::FUNCTION:IDEA +i2d_TS_ACCURACY 2210 1_1_0 EXIST::FUNCTION:TS +ASN1_VISIBLESTRING_free 2211 1_1_0 EXIST::FUNCTION: +NCONF_load_bio 2212 1_1_0 EXIST::FUNCTION: +DSA_get_default_method 2213 1_1_0 EXIST::FUNCTION:DSA +OPENSSL_LH_retrieve 2214 1_1_0 EXIST::FUNCTION: +CRYPTO_ccm128_decrypt_ccm64 2215 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_clock_precision_digits 2216 1_1_0 EXIST::FUNCTION:TS +SCT_LIST_validate 2217 1_1_0 EXIST::FUNCTION:CT +X509_PURPOSE_get_id 2218 1_1_0 EXIST::FUNCTION: +EC_KEY_get_ex_data 2219 1_1_0 EXIST::FUNCTION:EC +EVP_MD_size 2220 1_1_0 EXIST::FUNCTION: +CRYPTO_malloc 2221 1_1_0 EXIST::FUNCTION: +ERR_load_ASN1_strings 2222 1_1_0 EXIST::FUNCTION: +X509_REQ_get_extension_nids 2223 1_1_0 EXIST::FUNCTION: +TS_REQ_get_ext_by_OBJ 2224 1_1_0 EXIST::FUNCTION:TS +i2d_X509 2225 1_1_0 EXIST::FUNCTION: +PEM_read_X509_AUX 2226 1_1_0 EXIST::FUNCTION:STDIO +TS_VERIFY_CTX_set_flags 2227 1_1_0 EXIST::FUNCTION:TS +IPAddressRange_new 2228 1_1_0 EXIST::FUNCTION:RFC3779 +TS_REQ_get_exts 2229 1_1_0 EXIST::FUNCTION:TS +POLICY_CONSTRAINTS_new 2230 1_1_0 EXIST::FUNCTION: +OTHERNAME_new 2231 1_1_0 EXIST::FUNCTION: +BN_rshift 2232 1_1_0 EXIST::FUNCTION: +i2d_GENERAL_NAMES 2233 1_1_0 EXIST::FUNCTION: +EC_METHOD_get_field_type 2234 1_1_0 EXIST::FUNCTION:EC +ENGINE_set_name 2235 1_1_0 EXIST::FUNCTION:ENGINE +TS_TST_INFO_get_policy_id 2236 1_1_0 EXIST::FUNCTION:TS +PKCS7_SIGNER_INFO_set 2237 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PKCS8_PRIV_KEY_INFO 2238 1_1_0 EXIST::FUNCTION: +EC_GROUP_set_curve_GF2m 2239 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M +ENGINE_load_builtin_engines 2240 1_1_0 EXIST::FUNCTION:ENGINE +SRP_VBASE_init 2241 1_1_0 EXIST::FUNCTION:SRP +SHA224_Final 2242 1_1_0 EXIST::FUNCTION: +OCSP_CERTSTATUS_free 2243 1_1_0 EXIST::FUNCTION:OCSP +d2i_TS_TST_INFO 2244 1_1_0 EXIST::FUNCTION:TS +IPAddressOrRange_it 2245 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +IPAddressOrRange_it 2245 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +ENGINE_get_cipher 2246 1_1_0 EXIST::FUNCTION:ENGINE +TS_TST_INFO_delete_ext 2247 1_1_0 EXIST::FUNCTION:TS +TS_OBJ_print_bio 2248 1_1_0 EXIST::FUNCTION:TS +X509_time_adj_ex 2249 1_1_0 EXIST::FUNCTION: +OCSP_request_add1_cert 2250 1_1_0 EXIST::FUNCTION:OCSP +ERR_load_X509_strings 2251 1_1_0 EXIST::FUNCTION: +SHA1_Transform 2252 1_1_0 EXIST::FUNCTION: +CMS_signed_get_attr_by_NID 2253 1_1_0 EXIST::FUNCTION:CMS +X509_STORE_CTX_get_by_subject 2254 1_1_0 EXIST::FUNCTION: +ASN1_OCTET_STRING_it 2255 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_OCTET_STRING_it 2255 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OPENSSL_sk_set_cmp_func 2256 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_table_cleanup 2257 1_1_0 EXIST::FUNCTION: +i2d_re_X509_REQ_tbs 2258 1_1_0 EXIST::FUNCTION: +CONF_load_bio 2259 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_get0_object 2260 1_1_0 EXIST::FUNCTION: +EVP_PKEY_missing_parameters 2261 1_1_0 EXIST::FUNCTION: +X509_REQ_INFO_new 2262 1_1_0 EXIST::FUNCTION: +EVP_rc2_cfb64 2263 1_1_0 EXIST::FUNCTION:RC2 +PKCS7_get_smimecap 2264 1_1_0 EXIST::FUNCTION: +ERR_get_state 2265 1_1_0 EXIST::FUNCTION: +d2i_DSAPrivateKey_bio 2266 1_1_0 EXIST::FUNCTION:DSA +X509_PURPOSE_get_trust 2267 1_1_0 EXIST::FUNCTION: +EC_GROUP_get_point_conversion_form 2268 1_1_0 EXIST::FUNCTION:EC +ASN1_OBJECT_it 2269 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_OBJECT_it 2269 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BN_mod_add_quick 2270 1_1_0 EXIST::FUNCTION: +NCONF_free 2271 1_1_0 EXIST::FUNCTION: +NETSCAPE_SPKI_b64_decode 2272 1_1_0 EXIST::FUNCTION: +BIO_f_md 2273 1_1_0 EXIST::FUNCTION: +EVP_MD_CTX_pkey_ctx 2274 1_1_0 EXIST::FUNCTION: +ENGINE_set_default_EC 2275 1_1_0 EXIST::FUNCTION:ENGINE +CMS_ReceiptRequest_free 2276 1_1_0 EXIST::FUNCTION:CMS +TS_STATUS_INFO_get0_text 2277 1_1_0 EXIST::FUNCTION:TS +CRYPTO_get_ex_new_index 2278 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_set_flags 2279 1_1_0 EXIST::FUNCTION: +PEM_write_X509_CRL 2280 1_1_0 EXIST::FUNCTION:STDIO +BF_cbc_encrypt 2281 1_1_0 EXIST::FUNCTION:BF +BN_num_bits_word 2282 1_1_0 EXIST::FUNCTION: +EVP_DecodeInit 2283 1_1_0 EXIST::FUNCTION: +BN_ucmp 2284 1_1_0 EXIST::FUNCTION: +SXNET_get_id_asc 2285 1_1_0 EXIST::FUNCTION: +SCT_set1_extensions 2286 1_1_0 EXIST::FUNCTION:CT +PKCS12_SAFEBAG_new 2287 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_set_nonce 2288 1_1_0 EXIST::FUNCTION:TS +PEM_read_ECPrivateKey 2289 1_1_0 EXIST::FUNCTION:EC,STDIO +RSA_free 2290 1_1_0 EXIST::FUNCTION:RSA +X509_CRL_INFO_new 2291 1_1_0 EXIST::FUNCTION: +AES_cfb8_encrypt 2292 1_1_0 EXIST::FUNCTION: +d2i_ASN1_SEQUENCE_ANY 2293 1_1_0 EXIST::FUNCTION: +PKCS12_create 2294 1_1_0 EXIST::FUNCTION: +X509at_get_attr_count 2295 1_1_0 EXIST::FUNCTION: +PKCS12_init 2296 1_1_0 EXIST::FUNCTION: +CRYPTO_free_ex_data 2297 1_1_0 EXIST::FUNCTION: +EVP_aes_128_cfb8 2298 1_1_0 EXIST::FUNCTION: +ESS_ISSUER_SERIAL_free 2299 1_1_0 EXIST::FUNCTION:TS +BN_mod_exp_mont_word 2300 1_1_0 EXIST::FUNCTION: +X509V3_EXT_nconf_nid 2301 1_1_0 EXIST::FUNCTION: +UTF8_putc 2302 1_1_0 EXIST::FUNCTION: +RSA_private_encrypt 2303 1_1_0 EXIST::FUNCTION:RSA +X509_LOOKUP_shutdown 2304 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_set_accuracy 2305 1_1_0 EXIST::FUNCTION:TS +OCSP_basic_verify 2306 1_1_0 EXIST::FUNCTION:OCSP +X509at_add1_attr_by_OBJ 2307 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_add0 2308 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_get1_crl 2309 1_1_0 EXIST::FUNCTION: +ASN1_STRING_get_default_mask 2310 1_1_0 EXIST::FUNCTION: +X509_alias_set1 2311 1_1_0 EXIST::FUNCTION: +ASN1_item_unpack 2312 1_1_0 EXIST::FUNCTION: +HMAC_CTX_free 2313 1_1_0 EXIST::FUNCTION: +EC_POINT_new 2314 1_1_0 EXIST::FUNCTION:EC +PKCS7_ISSUER_AND_SERIAL_digest 2315 1_1_0 EXIST::FUNCTION: +EVP_des_ofb 2316 1_1_0 EXIST::FUNCTION:DES +DSA_set_method 2317 1_1_0 EXIST::FUNCTION:DSA +EVP_PKEY_get1_RSA 2318 1_1_0 EXIST::FUNCTION:RSA +EC_KEY_OpenSSL 2319 1_1_0 EXIST::FUNCTION:EC +EVP_camellia_192_ofb 2320 1_1_0 EXIST::FUNCTION:CAMELLIA +ASN1_STRING_length 2321 1_1_0 EXIST::FUNCTION: +PKCS7_set_digest 2322 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PUBKEY 2323 1_1_0 EXIST::FUNCTION: +PEM_read_PKCS7 2324 1_1_0 EXIST::FUNCTION:STDIO +DH_get_2048_256 2325 1_1_0 EXIST::FUNCTION:DH +X509at_delete_attr 2326 1_1_0 EXIST::FUNCTION: +PEM_write_bio 2327 1_1_0 EXIST::FUNCTION: +CMS_signed_get_attr_by_OBJ 2329 1_1_0 EXIST::FUNCTION:CMS +X509_REVOKED_add_ext 2330 1_1_0 EXIST::FUNCTION: +EVP_CipherUpdate 2331 1_1_0 EXIST::FUNCTION: +Camellia_cfb8_encrypt 2332 1_1_0 EXIST::FUNCTION:CAMELLIA +EVP_aes_256_xts 2333 1_1_0 EXIST::FUNCTION: +EVP_DigestSignFinal 2334 1_1_0 EXIST::FUNCTION: +ASN1_STRING_cmp 2335 1_1_0 EXIST::FUNCTION: +EVP_chacha20_poly1305 2336 1_1_0 EXIST::FUNCTION:CHACHA,POLY1305 +OPENSSL_sk_zero 2337 1_1_0 EXIST::FUNCTION: +ASN1_PRINTABLE_type 2338 1_1_0 EXIST::FUNCTION: +TS_CONF_set_ess_cert_id_chain 2339 1_1_0 EXIST::FUNCTION:TS +PEM_read_DSAPrivateKey 2340 1_1_0 EXIST::FUNCTION:DSA,STDIO +DH_generate_parameters_ex 2341 1_1_0 EXIST::FUNCTION:DH +UI_dup_input_string 2342 1_1_0 EXIST::FUNCTION: +X509_keyid_set1 2343 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set1 2344 1_1_0 EXIST::FUNCTION: +EC_GROUP_get_asn1_flag 2345 1_1_0 EXIST::FUNCTION:EC +CMS_decrypt_set1_password 2346 1_1_0 EXIST::FUNCTION:CMS +BIO_copy_next_retry 2347 1_1_0 EXIST::FUNCTION: +X509_POLICY_NODE_print 2348 1_1_0 EXIST::FUNCTION: +ASN1_TIME_diff 2349 1_1_0 EXIST::FUNCTION: +BIO_s_fd 2350 1_1_0 EXIST::FUNCTION: +i2d_CMS_bio 2351 1_1_0 EXIST::FUNCTION:CMS +CRYPTO_gcm128_decrypt 2352 1_1_0 EXIST::FUNCTION: +EVP_aes_256_ctr 2353 1_1_0 EXIST::FUNCTION: +EVP_PKEY_bits 2354 1_1_0 EXIST::FUNCTION: +BN_BLINDING_new 2355 1_1_0 EXIST::FUNCTION: +ASN1_GENERALIZEDTIME_check 2356 1_1_0 EXIST::FUNCTION: +BN_clear_bit 2357 1_1_0 EXIST::FUNCTION: +BN_bn2lebinpad 2358 1_1_0 EXIST::FUNCTION: +EVP_PKEY_up_ref 2359 1_1_0 EXIST::FUNCTION: +X509_getm_notBefore 2360 1_1_0 EXIST::FUNCTION: +BN_nist_mod_224 2361 1_1_0 EXIST::FUNCTION: +DES_decrypt3 2362 1_1_0 EXIST::FUNCTION:DES +OTHERNAME_it 2363 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +OTHERNAME_it 2363 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509at_add1_attr_by_txt 2364 1_1_0 EXIST::FUNCTION: +PKCS7_SIGN_ENVELOPE_free 2365 1_1_0 EXIST::FUNCTION: +BIO_dgram_is_sctp 2366 1_1_0 EXIST::FUNCTION:DGRAM,SCTP +DH_check 2367 1_1_0 EXIST::FUNCTION:DH +Camellia_set_key 2368 1_1_0 EXIST::FUNCTION:CAMELLIA +X509_LOOKUP_by_issuer_serial 2369 1_1_0 EXIST::FUNCTION: +ASN1_BMPSTRING_free 2370 1_1_0 EXIST::FUNCTION: +BIO_new_accept 2371 1_1_0 EXIST::FUNCTION:SOCK +GENERAL_NAME_new 2372 1_1_0 EXIST::FUNCTION: +DES_encrypt3 2373 1_1_0 EXIST::FUNCTION:DES +PKCS7_get_signer_info 2374 1_1_0 EXIST::FUNCTION: +ASN1_OCTET_STRING_set 2375 1_1_0 EXIST::FUNCTION: +BN_mask_bits 2376 1_1_0 EXIST::FUNCTION: +ASN1_UTF8STRING_it 2377 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_UTF8STRING_it 2377 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_SCTX_set_app_data 2378 1_1_0 EXIST::FUNCTION: +CMS_add0_cert 2379 1_1_0 EXIST::FUNCTION:CMS +i2d_GENERAL_NAME 2380 1_1_0 EXIST::FUNCTION: +BIO_ADDR_new 2381 1_1_0 EXIST::FUNCTION:SOCK +ENGINE_get_pkey_asn1_meth_engine 2382 1_1_0 EXIST::FUNCTION:ENGINE +d2i_ASN1_BMPSTRING 2383 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_create0_p8inf 2384 1_1_0 EXIST::FUNCTION: +OBJ_cmp 2385 1_1_0 EXIST::FUNCTION: +MD2 2386 1_1_0 EXIST::FUNCTION:MD2 +X509_PUBKEY_new 2387 1_1_0 EXIST::FUNCTION: +BN_CTX_end 2388 1_1_0 EXIST::FUNCTION: +BIO_get_retry_BIO 2389 1_1_0 EXIST::FUNCTION: +X509_REQ_add1_attr_by_OBJ 2390 1_1_0 EXIST::FUNCTION: +ASN1_item_ex_free 2391 1_1_0 EXIST::FUNCTION: +X509_SIG_new 2392 1_1_0 EXIST::FUNCTION: +BN_sqr 2393 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_set_time 2394 1_1_0 EXIST::FUNCTION:TS +OPENSSL_die 2395 1_1_0 EXIST::FUNCTION: +X509_LOOKUP_by_alias 2396 1_1_0 EXIST::FUNCTION: +EC_KEY_set_conv_form 2397 1_1_0 EXIST::FUNCTION:EC +X509_TRUST_get_count 2399 1_1_0 EXIST::FUNCTION: +IPAddressOrRange_free 2400 1_1_0 EXIST::FUNCTION:RFC3779 +RSA_padding_add_PKCS1_OAEP 2401 1_1_0 EXIST::FUNCTION:RSA +EC_KEY_set_ex_data 2402 1_1_0 EXIST::FUNCTION:EC +SRP_VBASE_new 2403 1_1_0 EXIST::FUNCTION:SRP +i2d_ECDSA_SIG 2404 1_1_0 EXIST::FUNCTION:EC +BIO_dump_indent 2405 1_1_0 EXIST::FUNCTION: +ENGINE_set_pkey_asn1_meths 2406 1_1_0 EXIST::FUNCTION:ENGINE +OPENSSL_gmtime_diff 2407 1_1_0 EXIST::FUNCTION: +TS_CONF_set_crypto_device 2408 1_1_0 EXIST::FUNCTION:ENGINE,TS +COMP_CTX_get_method 2409 1_1_0 EXIST::FUNCTION:COMP +EC_GROUP_get_cofactor 2410 1_1_0 EXIST::FUNCTION:EC +EVP_rc5_32_12_16_ofb 2411 1_1_0 EXIST::FUNCTION:RC5 +EVP_MD_CTX_md_data 2412 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_set_nm_flags 2413 1_1_0 EXIST::FUNCTION: +BIO_ctrl 2414 1_1_0 EXIST::FUNCTION: +X509_CRL_set_default_method 2415 1_1_0 EXIST::FUNCTION: +d2i_RSAPublicKey_fp 2417 1_1_0 EXIST::FUNCTION:RSA,STDIO +UI_method_get_flusher 2418 1_1_0 EXIST::FUNCTION: +EC_POINT_dbl 2419 1_1_0 EXIST::FUNCTION:EC +i2d_X509_CRL_INFO 2420 1_1_0 EXIST::FUNCTION: +i2d_OCSP_CERTSTATUS 2421 1_1_0 EXIST::FUNCTION:OCSP +X509_REVOKED_get0_revocationDate 2422 1_1_0 EXIST::FUNCTION: +PKCS7_add_crl 2423 1_1_0 EXIST::FUNCTION: +ECDSA_do_sign 2424 1_1_0 EXIST::FUNCTION:EC +ASN1_GENERALIZEDTIME_it 2425 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_GENERALIZEDTIME_it 2425 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS8_pkey_get0 2426 1_1_0 EXIST::FUNCTION: +OCSP_sendreq_new 2427 1_1_0 EXIST::FUNCTION:OCSP +EVP_aes_256_cfb128 2428 1_1_0 EXIST::FUNCTION: +RSA_set_ex_data 2429 1_1_0 EXIST::FUNCTION:RSA +BN_GENCB_call 2430 1_1_0 EXIST::FUNCTION: +X509V3_EXT_add_nconf_sk 2431 1_1_0 EXIST::FUNCTION: +i2d_TS_MSG_IMPRINT_fp 2432 1_1_0 EXIST::FUNCTION:STDIO,TS +PKCS12_new 2433 1_1_0 EXIST::FUNCTION: +X509_REVOKED_set_serialNumber 2434 1_1_0 EXIST::FUNCTION: +EVP_get_digestbyname 2435 1_1_0 EXIST::FUNCTION: +X509_CRL_get_lastUpdate 2436 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +OBJ_create_objects 2437 1_1_0 EXIST::FUNCTION: +EVP_enc_null 2438 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_get_ext_by_critical 2439 1_1_0 EXIST::FUNCTION:OCSP +OCSP_request_onereq_count 2440 1_1_0 EXIST::FUNCTION:OCSP +BN_hex2bn 2441 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_meth_set_impl_ctx_size 2442 1_1_0 EXIST::FUNCTION: +ASIdentifiers_new 2443 1_1_0 EXIST::FUNCTION:RFC3779 +CONF_imodule_get_flags 2444 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_it 2445 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_SAFEBAG_it 2445 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_CIPHER_meth_set_set_asn1_params 2446 1_1_0 EXIST::FUNCTION: +EC_KEY_get_enc_flags 2447 1_1_0 EXIST::FUNCTION:EC +X509_OBJECT_idx_by_subject 2448 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_copy 2449 1_1_0 EXIST::FUNCTION: +NETSCAPE_CERT_SEQUENCE_new 2450 1_1_0 EXIST::FUNCTION: +CRYPTO_ocb128_decrypt 2451 1_1_0 EXIST::FUNCTION:OCB +ASYNC_WAIT_CTX_free 2452 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_DIGEST 2453 1_1_0 EXIST::FUNCTION: +d2i_TS_TST_INFO_bio 2454 1_1_0 EXIST::FUNCTION:TS +BIGNUM_it 2455 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +BIGNUM_it 2455 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BN_BLINDING_get_flags 2456 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_get_critical 2457 1_1_0 EXIST::FUNCTION: +DSA_set_default_method 2458 1_1_0 EXIST::FUNCTION:DSA +PEM_write_bio_DHxparams 2459 1_1_0 EXIST::FUNCTION:DH +DSA_set_ex_data 2460 1_1_0 EXIST::FUNCTION:DSA +BIO_s_datagram_sctp 2461 1_1_0 EXIST::FUNCTION:DGRAM,SCTP +SXNET_add_id_asc 2462 1_1_0 EXIST::FUNCTION: +X509_print_fp 2463 1_1_0 EXIST::FUNCTION:STDIO +TS_REQ_set_version 2464 1_1_0 EXIST::FUNCTION:TS +OCSP_REQINFO_new 2465 1_1_0 EXIST::FUNCTION:OCSP +Camellia_decrypt 2466 1_1_0 EXIST::FUNCTION:CAMELLIA +X509_signature_print 2467 1_1_0 EXIST::FUNCTION: +EVP_camellia_128_ecb 2468 1_1_0 EXIST::FUNCTION:CAMELLIA +MD2_Final 2469 1_1_0 EXIST::FUNCTION:MD2 +OCSP_REQ_CTX_add1_header 2470 1_1_0 EXIST::FUNCTION:OCSP +NETSCAPE_SPKAC_it 2471 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NETSCAPE_SPKAC_it 2471 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASIdOrRange_free 2472 1_1_0 EXIST::FUNCTION:RFC3779 +EC_POINT_get_Jprojective_coordinates_GFp 2473 1_1_0 EXIST::FUNCTION:EC +EVP_aes_128_cbc_hmac_sha256 2474 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_SIGNED 2475 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTX_set_data 2476 1_1_0 EXIST::FUNCTION:TS +BN_pseudo_rand_range 2477 1_1_0 EXIST::FUNCTION: +X509V3_EXT_add_nconf 2478 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_ctrl 2479 1_1_0 EXIST::FUNCTION: +ASN1_T61STRING_it 2480 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_T61STRING_it 2480 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ENGINE_get_prev 2481 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_accept_responses_new 2482 1_1_0 EXIST::FUNCTION:OCSP +ERR_load_EC_strings 2483 1_1_0 EXIST::FUNCTION:EC +X509V3_string_free 2484 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_paramgen 2485 1_1_0 EXIST::FUNCTION: +ENGINE_set_load_ssl_client_cert_function 2486 1_1_0 EXIST::FUNCTION:ENGINE +EVP_ENCODE_CTX_free 2487 1_1_0 EXIST::FUNCTION: +i2d_ASN1_BIT_STRING 2488 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_verifyctx 2489 1_1_0 EXIST::FUNCTION: +X509_TRUST_add 2490 1_1_0 EXIST::FUNCTION: +BUF_MEM_free 2491 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_accuracy 2492 1_1_0 EXIST::FUNCTION:TS +TS_REQ_dup 2493 1_1_0 EXIST::FUNCTION:TS +ASN1_STRING_type_new 2494 1_1_0 EXIST::FUNCTION: +TS_STATUS_INFO_free 2495 1_1_0 EXIST::FUNCTION:TS +BN_mod_mul 2496 1_1_0 EXIST::FUNCTION: +CMS_add0_recipient_key 2497 1_1_0 EXIST::FUNCTION:CMS +BIO_f_zlib 2498 1_1_0 EXIST:ZLIB:FUNCTION:COMP +AES_cfb128_encrypt 2499 1_1_0 EXIST::FUNCTION: +ENGINE_set_EC 2500 1_1_0 EXIST::FUNCTION:ENGINE +d2i_ECPKParameters 2501 1_1_0 EXIST::FUNCTION:EC +IDEA_ofb64_encrypt 2502 1_1_0 EXIST::FUNCTION:IDEA +CAST_decrypt 2503 1_1_0 EXIST::FUNCTION:CAST +TS_STATUS_INFO_get0_failure_info 2504 1_1_0 EXIST::FUNCTION:TS +ENGINE_unregister_pkey_meths 2506 1_1_0 EXIST::FUNCTION:ENGINE +DISPLAYTEXT_new 2507 1_1_0 EXIST::FUNCTION: +CMS_final 2508 1_1_0 EXIST::FUNCTION:CMS +BIO_nwrite 2509 1_1_0 EXIST::FUNCTION: +GENERAL_NAME_free 2510 1_1_0 EXIST::FUNCTION: +PKCS12_pack_p7encdata 2511 1_1_0 EXIST::FUNCTION: +BN_generate_dsa_nonce 2512 1_1_0 EXIST::FUNCTION: +X509_verify_cert 2513 1_1_0 EXIST::FUNCTION: +X509_policy_level_get0_node 2514 1_1_0 EXIST::FUNCTION: +X509_REQ_get_attr 2515 1_1_0 EXIST::FUNCTION: +SHA1 2516 1_1_0 EXIST::FUNCTION: +X509_print 2517 1_1_0 EXIST::FUNCTION: +d2i_AutoPrivateKey 2518 1_1_0 EXIST::FUNCTION: +X509_REQ_new 2519 1_1_0 EXIST::FUNCTION: +PKCS12_add_safes 2520 1_1_0 EXIST::FUNCTION: +PKCS12_parse 2521 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod_div 2522 1_1_0 EXIST::FUNCTION:EC2M +i2d_USERNOTICE 2523 1_1_0 EXIST::FUNCTION: +d2i_NETSCAPE_SPKI 2524 1_1_0 EXIST::FUNCTION: +CRYPTO_mem_leaks 2525 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG +BN_get_rfc3526_prime_1536 2526 1_1_0 EXIST::FUNCTION: +DSA_sign 2527 1_1_0 EXIST::FUNCTION:DSA +RAND_egd 2528 1_1_0 EXIST::FUNCTION:EGD +ASN1_d2i_bio 2529 1_1_0 EXIST::FUNCTION: +X509_REQ_digest 2531 1_1_0 EXIST::FUNCTION: +X509_set1_notAfter 2532 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_type 2533 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_set_octetstring 2534 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_set_free 2535 1_1_0 EXIST::FUNCTION: +CMS_signed_get0_data_by_OBJ 2536 1_1_0 EXIST::FUNCTION:CMS +X509_PURPOSE_add 2537 1_1_0 EXIST::FUNCTION: +PKCS7_ENVELOPE_free 2538 1_1_0 EXIST::FUNCTION: +PKCS12_key_gen_uni 2539 1_1_0 EXIST::FUNCTION: +WHIRLPOOL 2540 1_1_0 EXIST::FUNCTION:WHIRLPOOL +UI_set_default_method 2542 1_1_0 EXIST::FUNCTION: +EC_POINT_is_at_infinity 2543 1_1_0 EXIST::FUNCTION:EC +i2d_NOTICEREF 2544 1_1_0 EXIST::FUNCTION: +EC_KEY_new 2545 1_1_0 EXIST::FUNCTION:EC +EVP_chacha20 2546 1_1_0 EXIST::FUNCTION:CHACHA +BN_bn2dec 2547 1_1_0 EXIST::FUNCTION: +X509_REQ_print_ex 2548 1_1_0 EXIST::FUNCTION: +PEM_read_CMS 2549 1_1_0 EXIST::FUNCTION:CMS,STDIO +d2i_NETSCAPE_CERT_SEQUENCE 2550 1_1_0 EXIST::FUNCTION: +X509_CRL_set_version 2551 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_set_cert_flags 2552 1_1_0 EXIST::FUNCTION: +PKCS8_PRIV_KEY_INFO_free 2553 1_1_0 EXIST::FUNCTION: +SHA224_Update 2554 1_1_0 EXIST::FUNCTION: +EC_GROUP_new_by_curve_name 2555 1_1_0 EXIST::FUNCTION:EC +X509_STORE_set_purpose 2556 1_1_0 EXIST::FUNCTION: +X509_CRL_get0_signature 2557 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_get_keygen_info 2558 1_1_0 EXIST::FUNCTION: +d2i_ASN1_UINTEGER 2559 1_1_0 EXIST::FUNCTION: +i2s_ASN1_INTEGER 2560 1_1_0 EXIST::FUNCTION: +d2i_EC_PUBKEY_fp 2561 1_1_0 EXIST::FUNCTION:EC,STDIO +i2d_OCSP_SIGNATURE 2562 1_1_0 EXIST::FUNCTION:OCSP +i2d_X509_EXTENSION 2563 1_1_0 EXIST::FUNCTION: +PEM_read_bio_X509 2564 1_1_0 EXIST::FUNCTION: +DES_key_sched 2565 1_1_0 EXIST::FUNCTION:DES +GENERAL_NAME_dup 2566 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get1_crls 2567 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_verify 2568 1_1_0 EXIST::FUNCTION: +EVP_sha256 2569 1_1_0 EXIST::FUNCTION: +CMS_unsigned_delete_attr 2570 1_1_0 EXIST::FUNCTION:CMS +EVP_md5_sha1 2571 1_1_0 EXIST::FUNCTION:MD5 +EVP_PKEY_sign_init 2572 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_insert 2573 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_meth_get_cleanup 2574 1_1_0 EXIST::FUNCTION: +ASN1_item_ex_d2i 2575 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_free 2576 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_new 2577 1_1_0 EXIST::FUNCTION: +RSA_padding_check_PKCS1_OAEP 2578 1_1_0 EXIST::FUNCTION:RSA +OCSP_SERVICELOC_it 2579 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_SERVICELOC_it 2579 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +PKCS12_SAFEBAG_get_nid 2580 1_1_0 EXIST::FUNCTION: +EVP_MD_CTX_set_update_fn 2581 1_1_0 EXIST::FUNCTION: +BIO_f_asn1 2582 1_1_0 EXIST::FUNCTION: +BIO_dump 2583 1_1_0 EXIST::FUNCTION: +ENGINE_load_ssl_client_cert 2584 1_1_0 EXIST::FUNCTION:ENGINE +X509_STORE_CTX_set_verify_cb 2585 1_1_0 EXIST::FUNCTION: +CRYPTO_clear_realloc 2586 1_1_0 EXIST::FUNCTION: +OPENSSL_strnlen 2587 1_1_0 EXIST::FUNCTION: +IDEA_ecb_encrypt 2588 1_1_0 EXIST::FUNCTION:IDEA +ASN1_STRING_set_default_mask 2589 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTX_add_flags 2590 1_1_0 EXIST::FUNCTION:TS +FIPS_mode 2591 1_1_0 EXIST::FUNCTION: +d2i_ASN1_UNIVERSALSTRING 2592 1_1_0 EXIST::FUNCTION: +NAME_CONSTRAINTS_free 2593 1_1_0 EXIST::FUNCTION: +EC_GROUP_get_order 2594 1_1_0 EXIST::FUNCTION:EC +X509_REVOKED_add1_ext_i2d 2595 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_add1_host 2596 1_1_0 EXIST::FUNCTION: +i2d_PUBKEY_bio 2597 1_1_0 EXIST::FUNCTION: +MD4_Update 2598 1_1_0 EXIST::FUNCTION:MD4 +X509_STORE_CTX_set_time 2599 1_1_0 EXIST::FUNCTION: +ENGINE_set_default_DH 2600 1_1_0 EXIST::FUNCTION:ENGINE +X509_ocspid_print 2601 1_1_0 EXIST::FUNCTION: +DH_set_method 2602 1_1_0 EXIST::FUNCTION:DH +EVP_rc2_64_cbc 2603 1_1_0 EXIST::FUNCTION:RC2 +CRYPTO_THREAD_get_current_id 2604 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_set_cb 2605 1_1_0 EXIST::FUNCTION: +PROXY_POLICY_it 2606 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PROXY_POLICY_it 2606 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ENGINE_register_complete 2607 1_1_0 EXIST::FUNCTION:ENGINE +EVP_DecodeUpdate 2609 1_1_0 EXIST::FUNCTION: +ENGINE_get_default_RAND 2610 1_1_0 EXIST::FUNCTION:ENGINE +ERR_peek_last_error_line 2611 1_1_0 EXIST::FUNCTION: +ENGINE_get_ssl_client_cert_function 2612 1_1_0 EXIST::FUNCTION:ENGINE +OPENSSL_LH_node_usage_stats 2613 1_1_0 EXIST::FUNCTION:STDIO +DIRECTORYSTRING_it 2614 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +DIRECTORYSTRING_it 2614 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BIO_write 2615 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_get_ext_by_OBJ 2616 1_1_0 EXIST::FUNCTION:OCSP +SEED_encrypt 2617 1_1_0 EXIST::FUNCTION:SEED +IPAddressRange_it 2618 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +IPAddressRange_it 2618 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +PEM_read_bio_DSAPrivateKey 2619 1_1_0 EXIST::FUNCTION:DSA +CMS_get0_type 2620 1_1_0 EXIST::FUNCTION:CMS +ASN1_PCTX_free 2621 1_1_0 EXIST::FUNCTION: +ESS_SIGNING_CERT_new 2622 1_1_0 EXIST::FUNCTION:TS +X509V3_EXT_conf_nid 2623 1_1_0 EXIST::FUNCTION: +EC_KEY_check_key 2624 1_1_0 EXIST::FUNCTION:EC +PKCS5_PBKDF2_HMAC 2625 1_1_0 EXIST::FUNCTION: +CONF_get_section 2626 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_kari_decrypt 2627 1_1_0 EXIST::FUNCTION:CMS +OBJ_add_sigid 2628 1_1_0 EXIST::FUNCTION: +d2i_SXNETID 2629 1_1_0 EXIST::FUNCTION: +CMS_get1_certs 2630 1_1_0 EXIST::FUNCTION:CMS +X509_CRL_check_suiteb 2631 1_1_0 EXIST::FUNCTION: +PKCS7_ENVELOPE_it 2632 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ENVELOPE_it 2632 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASIdentifierChoice_it 2633 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +ASIdentifierChoice_it 2633 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +CMS_RecipientEncryptedKey_cert_cmp 2634 1_1_0 EXIST::FUNCTION:CMS +EVP_PKEY_CTX_get_app_data 2635 1_1_0 EXIST::FUNCTION: +EC_GROUP_clear_free 2636 1_1_0 EXIST::FUNCTION:EC +BN_get_rfc2409_prime_1024 2637 1_1_0 EXIST::FUNCTION: +CRYPTO_set_mem_functions 2638 1_1_0 EXIST::FUNCTION: +i2d_ASN1_VISIBLESTRING 2639 1_1_0 EXIST::FUNCTION: +d2i_PBKDF2PARAM 2640 1_1_0 EXIST::FUNCTION: +ERR_load_COMP_strings 2641 1_1_0 EXIST::FUNCTION:COMP +EVP_PKEY_meth_add0 2642 1_1_0 EXIST::FUNCTION: +EVP_rc4_40 2643 1_1_0 EXIST::FUNCTION:RC4 +RSA_bits 2645 1_1_0 EXIST::FUNCTION:RSA +ASN1_item_dup 2646 1_1_0 EXIST::FUNCTION: +GENERAL_NAMES_it 2647 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +GENERAL_NAMES_it 2647 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_issuer_name_hash 2648 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_nonce 2649 1_1_0 EXIST::FUNCTION:TS +MD4_Init 2650 1_1_0 EXIST::FUNCTION:MD4 +X509_EXTENSION_create_by_OBJ 2651 1_1_0 EXIST::FUNCTION: +EVP_aes_256_cbc_hmac_sha1 2652 1_1_0 EXIST::FUNCTION: +SCT_validate 2653 1_1_0 EXIST::FUNCTION:CT +EC_GROUP_dup 2654 1_1_0 EXIST::FUNCTION:EC +EVP_sha1 2655 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_new 2656 1_1_0 EXIST::FUNCTION: +BN_dup 2657 1_1_0 EXIST::FUNCTION: +TS_MSG_IMPRINT_print_bio 2658 1_1_0 EXIST::FUNCTION:TS +CONF_module_set_usr_data 2659 1_1_0 EXIST::FUNCTION: +EC_KEY_generate_key 2660 1_1_0 EXIST::FUNCTION:EC +BIO_ctrl_get_write_guarantee 2661 1_1_0 EXIST::FUNCTION: +EVP_PKEY_assign 2662 1_1_0 EXIST::FUNCTION: +EVP_aes_128_ofb 2663 1_1_0 EXIST::FUNCTION: +CMS_data 2664 1_1_0 EXIST::FUNCTION:CMS +X509_load_cert_file 2665 1_1_0 EXIST::FUNCTION: +EC_GFp_nistp521_method 2667 1_1_0 EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128 +ECDSA_SIG_free 2668 1_1_0 EXIST::FUNCTION:EC +d2i_PKCS12_BAGS 2669 1_1_0 EXIST::FUNCTION: +RSA_public_encrypt 2670 1_1_0 EXIST::FUNCTION:RSA +X509_CRL_get0_extensions 2671 1_1_0 EXIST::FUNCTION: +CMS_digest_verify 2672 1_1_0 EXIST::FUNCTION:CMS +ASN1_GENERALIZEDTIME_set 2673 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTX_set_imprint 2674 1_1_0 EXIST::FUNCTION:TS +BN_RECP_CTX_set 2675 1_1_0 EXIST::FUNCTION: +CRYPTO_secure_zalloc 2676 1_1_0 EXIST::FUNCTION: +i2d_EXTENDED_KEY_USAGE 2677 1_1_0 EXIST::FUNCTION: +PEM_write_bio_DSAparams 2678 1_1_0 EXIST::FUNCTION:DSA +X509_cmp_time 2679 1_1_0 EXIST::FUNCTION: +d2i_CMS_ReceiptRequest 2680 1_1_0 EXIST::FUNCTION:CMS +X509_CRL_INFO_it 2681 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CRL_INFO_it 2681 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BUF_reverse 2682 1_1_0 EXIST::FUNCTION: +d2i_OCSP_SIGNATURE 2683 1_1_0 EXIST::FUNCTION:OCSP +X509_REQ_delete_attr 2684 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_signer_cert 2685 1_1_0 EXIST::FUNCTION:TS +X509V3_EXT_d2i 2686 1_1_0 EXIST::FUNCTION: +ASN1_GENERALSTRING_it 2687 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_GENERALSTRING_it 2687 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +POLICYQUALINFO_free 2688 1_1_0 EXIST::FUNCTION: +EC_KEY_set_group 2689 1_1_0 EXIST::FUNCTION:EC +OCSP_check_validity 2690 1_1_0 EXIST::FUNCTION:OCSP +PEM_write_ECPKParameters 2691 1_1_0 EXIST::FUNCTION:EC,STDIO +X509_VERIFY_PARAM_lookup 2692 1_1_0 EXIST::FUNCTION: +X509_LOOKUP_by_fingerprint 2693 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_meth_free 2694 1_1_0 EXIST::FUNCTION: +PKCS7_RECIP_INFO_new 2695 1_1_0 EXIST::FUNCTION: +d2i_ECPrivateKey_fp 2696 1_1_0 EXIST::FUNCTION:EC,STDIO +TS_CONF_set_ordering 2697 1_1_0 EXIST::FUNCTION:TS +X509_CRL_get_ext 2698 1_1_0 EXIST::FUNCTION: +X509_CRL_get_ext_by_OBJ 2699 1_1_0 EXIST::FUNCTION: +OCSP_basic_add1_cert 2700 1_1_0 EXIST::FUNCTION:OCSP +ASN1_PRINTABLESTRING_new 2701 1_1_0 EXIST::FUNCTION: +i2d_PBEPARAM 2702 1_1_0 EXIST::FUNCTION: +NETSCAPE_SPKI_new 2703 1_1_0 EXIST::FUNCTION: +AES_options 2704 1_1_0 EXIST::FUNCTION: +POLICYINFO_free 2705 1_1_0 EXIST::FUNCTION: +PEM_read_bio_Parameters 2706 1_1_0 EXIST::FUNCTION: +BN_abs_is_word 2707 1_1_0 EXIST::FUNCTION: +BIO_set_callback_arg 2708 1_1_0 EXIST::FUNCTION: +CONF_modules_load_file 2709 1_1_0 EXIST::FUNCTION: +X509_trust_clear 2710 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_test_flags 2711 1_1_0 EXIST::FUNCTION: +PKCS12_BAGS_free 2712 1_1_0 EXIST::FUNCTION: +PEM_X509_INFO_read 2713 1_1_0 EXIST::FUNCTION:STDIO +d2i_DSAPrivateKey 2714 1_1_0 EXIST::FUNCTION:DSA +i2d_PKCS8_PRIV_KEY_INFO_fp 2715 1_1_0 EXIST::FUNCTION:STDIO +TS_RESP_print_bio 2716 1_1_0 EXIST::FUNCTION:TS +X509_STORE_set_default_paths 2717 1_1_0 EXIST::FUNCTION: +d2i_TS_REQ 2718 1_1_0 EXIST::FUNCTION:TS +i2d_TS_TST_INFO_bio 2719 1_1_0 EXIST::FUNCTION:TS +CMS_sign_receipt 2720 1_1_0 EXIST::FUNCTION:CMS +ENGINE_set_RAND 2721 1_1_0 EXIST::FUNCTION:ENGINE +X509_REVOKED_get_ext_by_OBJ 2722 1_1_0 EXIST::FUNCTION: +SEED_decrypt 2723 1_1_0 EXIST::FUNCTION:SEED +PEM_write_PKCS8PrivateKey 2724 1_1_0 EXIST::FUNCTION:STDIO +ENGINE_new 2725 1_1_0 EXIST::FUNCTION:ENGINE +X509_check_issued 2726 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_iv_length 2727 1_1_0 EXIST::FUNCTION: +DES_string_to_2keys 2728 1_1_0 EXIST::FUNCTION:DES +EVP_PKEY_copy_parameters 2729 1_1_0 EXIST::FUNCTION: +CMS_ContentInfo_print_ctx 2730 1_1_0 EXIST::FUNCTION:CMS +d2i_PKCS7_SIGNED 2731 1_1_0 EXIST::FUNCTION: +GENERAL_NAMES_free 2732 1_1_0 EXIST::FUNCTION: +SCT_get_timestamp 2733 1_1_0 EXIST::FUNCTION:CT +OCSP_SIGNATURE_it 2734 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_SIGNATURE_it 2734 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +CMS_verify_receipt 2735 1_1_0 EXIST::FUNCTION:CMS +CRYPTO_THREAD_lock_new 2736 1_1_0 EXIST::FUNCTION: +BIO_get_ex_data 2737 1_1_0 EXIST::FUNCTION: +CMS_digest_create 2738 1_1_0 EXIST::FUNCTION:CMS +EC_KEY_METHOD_set_verify 2739 1_1_0 EXIST::FUNCTION:EC +PEM_read_RSAPublicKey 2740 1_1_0 EXIST::FUNCTION:RSA,STDIO +ENGINE_pkey_asn1_find_str 2741 1_1_0 EXIST::FUNCTION:ENGINE +ENGINE_get_load_privkey_function 2742 1_1_0 EXIST::FUNCTION:ENGINE +d2i_IPAddressRange 2743 1_1_0 EXIST::FUNCTION:RFC3779 +ERR_remove_state 2744 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_0_0 +X509_CRL_print_fp 2745 1_1_0 EXIST::FUNCTION:STDIO +TS_CONF_load_key 2746 1_1_0 EXIST::FUNCTION:TS +d2i_OCSP_REQINFO 2747 1_1_0 EXIST::FUNCTION:OCSP +d2i_X509_CINF 2748 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_get_ext_by_critical 2749 1_1_0 EXIST::FUNCTION:OCSP +X509_REQ_to_X509 2750 1_1_0 EXIST::FUNCTION: +EVP_aes_192_wrap_pad 2751 1_1_0 EXIST::FUNCTION: +PKCS7_SIGN_ENVELOPE_new 2752 1_1_0 EXIST::FUNCTION: +TS_REQ_get_policy_id 2753 1_1_0 EXIST::FUNCTION:TS +RC5_32_cbc_encrypt 2754 1_1_0 EXIST::FUNCTION:RC5 +BN_is_zero 2755 1_1_0 EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_new 2756 1_1_0 EXIST::FUNCTION:CT +NETSCAPE_SPKI_it 2757 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NETSCAPE_SPKI_it 2757 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CRYPTO_THREAD_unlock 2758 1_1_0 EXIST::FUNCTION: +UI_method_set_writer 2759 1_1_0 EXIST::FUNCTION: +UI_dup_info_string 2760 1_1_0 EXIST::FUNCTION: +OPENSSL_init 2761 1_1_0 EXIST::FUNCTION: +TS_RESP_get_tst_info 2762 1_1_0 EXIST::FUNCTION:TS +X509_VERIFY_PARAM_get_depth 2763 1_1_0 EXIST::FUNCTION: +EVP_SealFinal 2764 1_1_0 EXIST::FUNCTION:RSA +BIO_set 2765 1_1_0 NOEXIST::FUNCTION: +CONF_imodule_set_flags 2766 1_1_0 EXIST::FUNCTION: +i2d_ASN1_SET_ANY 2767 1_1_0 EXIST::FUNCTION: +EVP_PKEY_decrypt 2768 1_1_0 EXIST::FUNCTION: +OCSP_RESPID_it 2769 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_RESPID_it 2769 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +EVP_des_ede3_cbc 2770 1_1_0 EXIST::FUNCTION:DES +X509_up_ref 2771 1_1_0 EXIST::FUNCTION: +OBJ_NAME_do_all_sorted 2772 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_DSA 2773 1_1_0 EXIST::FUNCTION:ENGINE +ASN1_bn_print 2774 1_1_0 EXIST::FUNCTION: +CMS_is_detached 2775 1_1_0 EXIST::FUNCTION:CMS +X509_REQ_INFO_it 2776 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_REQ_INFO_it 2776 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +RSAPrivateKey_it 2777 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA +RSAPrivateKey_it 2777 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA +X509_NAME_ENTRY_free 2778 1_1_0 EXIST::FUNCTION: +BIO_new_fd 2779 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_value 2781 1_1_0 EXIST::FUNCTION: +NCONF_get_section 2782 1_1_0 EXIST::FUNCTION: +PKCS12_MAC_DATA_it 2783 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_MAC_DATA_it 2783 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_REQ_add1_attr_by_NID 2784 1_1_0 EXIST::FUNCTION: +ASN1_sign 2785 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_encrypt 2786 1_1_0 EXIST::FUNCTION:CMS +X509_get_pubkey_parameters 2787 1_1_0 EXIST::FUNCTION: +PKCS12_setup_mac 2788 1_1_0 EXIST::FUNCTION: +PEM_read_bio_PKCS7 2789 1_1_0 EXIST::FUNCTION: +SHA512_Final 2790 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set1_host 2791 1_1_0 EXIST::FUNCTION: +OCSP_resp_find_status 2792 1_1_0 EXIST::FUNCTION:OCSP +d2i_ASN1_T61STRING 2793 1_1_0 EXIST::FUNCTION: +DES_pcbc_encrypt 2794 1_1_0 EXIST::FUNCTION:DES +EVP_PKEY_print_params 2795 1_1_0 EXIST::FUNCTION: +BN_get0_nist_prime_192 2796 1_1_0 EXIST::FUNCTION: +EVP_SealInit 2798 1_1_0 EXIST::FUNCTION:RSA +X509_REQ_get0_signature 2799 1_1_0 EXIST::FUNCTION: +PKEY_USAGE_PERIOD_free 2800 1_1_0 EXIST::FUNCTION: +EC_GROUP_set_point_conversion_form 2801 1_1_0 EXIST::FUNCTION:EC +CMS_dataFinal 2802 1_1_0 EXIST::FUNCTION:CMS +ASN1_TIME_it 2803 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_TIME_it 2803 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ENGINE_get_static_state 2804 1_1_0 EXIST::FUNCTION:ENGINE +EC_KEY_set_asn1_flag 2805 1_1_0 EXIST::FUNCTION:EC +EC_GFp_mont_method 2806 1_1_0 EXIST::FUNCTION:EC +OPENSSL_asc2uni 2807 1_1_0 EXIST::FUNCTION: +TS_REQ_new 2808 1_1_0 EXIST::FUNCTION:TS +ENGINE_register_all_DH 2809 1_1_0 EXIST::FUNCTION:ENGINE +ERR_clear_error 2810 1_1_0 EXIST::FUNCTION: +EC_KEY_dup 2811 1_1_0 EXIST::FUNCTION:EC +X509_LOOKUP_init 2812 1_1_0 EXIST::FUNCTION: +i2b_PVK_bio 2813 1_1_0 EXIST::FUNCTION:DSA,RC4 +OCSP_ONEREQ_free 2814 1_1_0 EXIST::FUNCTION:OCSP +X509V3_EXT_print_fp 2815 1_1_0 EXIST::FUNCTION:STDIO +OBJ_bsearch_ex_ 2816 1_1_0 EXIST::FUNCTION: +DES_ofb64_encrypt 2817 1_1_0 EXIST::FUNCTION:DES +i2d_IPAddressOrRange 2818 1_1_0 EXIST::FUNCTION:RFC3779 +CRYPTO_secure_used 2819 1_1_0 EXIST::FUNCTION: +d2i_X509_CRL_INFO 2820 1_1_0 EXIST::FUNCTION: +X509_CRL_get_issuer 2821 1_1_0 EXIST::FUNCTION: +d2i_SCT_LIST 2822 1_1_0 EXIST::FUNCTION:CT +EC_GFp_nist_method 2823 1_1_0 EXIST::FUNCTION:EC +SCT_free 2824 1_1_0 EXIST::FUNCTION:CT +TS_TST_INFO_get_msg_imprint 2825 1_1_0 EXIST::FUNCTION:TS +X509v3_addr_add_range 2826 1_1_0 EXIST::FUNCTION:RFC3779 +PKCS12_get_friendlyname 2827 1_1_0 EXIST::FUNCTION: +X509_CRL_add_ext 2829 1_1_0 EXIST::FUNCTION: +X509_REQ_get_signature_nid 2830 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_ext 2831 1_1_0 EXIST::FUNCTION:TS +i2d_OCSP_RESPID 2832 1_1_0 EXIST::FUNCTION:OCSP +EVP_camellia_256_cfb8 2833 1_1_0 EXIST::FUNCTION:CAMELLIA +EC_KEY_get0_public_key 2834 1_1_0 EXIST::FUNCTION:EC +SRP_Calc_x 2835 1_1_0 EXIST::FUNCTION:SRP +a2i_ASN1_ENUMERATED 2836 1_1_0 EXIST::FUNCTION: +CONF_module_get_usr_data 2837 1_1_0 EXIST::FUNCTION: +i2d_X509_NAME_ENTRY 2838 1_1_0 EXIST::FUNCTION: +SCT_LIST_free 2839 1_1_0 EXIST::FUNCTION:CT +PROXY_POLICY_new 2840 1_1_0 EXIST::FUNCTION: +X509_ALGOR_set_md 2841 1_1_0 EXIST::FUNCTION: +PKCS7_print_ctx 2842 1_1_0 EXIST::FUNCTION: +ASN1_UTF8STRING_new 2843 1_1_0 EXIST::FUNCTION: +EVP_des_cbc 2844 1_1_0 EXIST::FUNCTION:DES +i2v_ASN1_BIT_STRING 2845 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_set1 2846 1_1_0 EXIST::FUNCTION: +d2i_X509_CRL_bio 2847 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAG_get1_cert 2848 1_1_0 EXIST::FUNCTION: +ASN1_UNIVERSALSTRING_free 2849 1_1_0 EXIST::FUNCTION: +EC_KEY_precompute_mult 2850 1_1_0 EXIST::FUNCTION:EC +CRYPTO_mem_debug_realloc 2851 1_1_0 EXIST::FUNCTION:CRYPTO_MDEBUG +PKCS7_new 2852 1_1_0 EXIST::FUNCTION: +BASIC_CONSTRAINTS_it 2853 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +BASIC_CONSTRAINTS_it 2853 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_generate_v3 2854 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PrivateKey 2855 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_check 2856 1_1_0 EXIST::FUNCTION: +ACCESS_DESCRIPTION_it 2857 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ACCESS_DESCRIPTION_it 2857 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_MSG_IMPRINT_get_msg 2859 1_1_0 EXIST::FUNCTION:TS +PKCS8_add_keyusage 2860 1_1_0 EXIST::FUNCTION: +X509_EXTENSION_dup 2861 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_new 2862 1_1_0 EXIST::FUNCTION: +BIO_socket_nbio 2863 1_1_0 EXIST::FUNCTION:SOCK +EVP_CIPHER_set_asn1_iv 2864 1_1_0 EXIST::FUNCTION: +EC_GFp_nistp224_method 2865 1_1_0 EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128 +BN_swap 2866 1_1_0 EXIST::FUNCTION: +d2i_ECParameters 2867 1_1_0 EXIST::FUNCTION:EC +X509_NAME_add_entry_by_OBJ 2868 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_get_ext_count 2869 1_1_0 EXIST::FUNCTION:TS +i2d_OCSP_CERTID 2870 1_1_0 EXIST::FUNCTION:OCSP +BN_CTX_start 2871 1_1_0 EXIST::FUNCTION: +BN_print 2872 1_1_0 EXIST::FUNCTION: +EC_KEY_set_flags 2873 1_1_0 EXIST::FUNCTION:EC +EVP_PKEY_get0 2874 1_1_0 EXIST::FUNCTION: +ENGINE_set_default 2875 1_1_0 EXIST::FUNCTION:ENGINE +NCONF_get_number_e 2876 1_1_0 EXIST::FUNCTION: +OPENSSL_cleanse 2877 1_1_0 EXIST::FUNCTION: +SCT_set0_signature 2878 1_1_0 EXIST::FUNCTION:CT +X509_CRL_sign 2879 1_1_0 EXIST::FUNCTION: +X509_CINF_it 2880 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CINF_it 2880 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_CONF_set_accuracy 2881 1_1_0 EXIST::FUNCTION:TS +DES_crypt 2882 1_1_0 EXIST::FUNCTION:DES +BN_BLINDING_create_param 2883 1_1_0 EXIST::FUNCTION: +OCSP_SERVICELOC_free 2884 1_1_0 EXIST::FUNCTION:OCSP +DIST_POINT_NAME_free 2885 1_1_0 EXIST::FUNCTION: +BIO_listen 2886 1_1_0 EXIST::FUNCTION:SOCK +BIO_ADDR_path_string 2887 1_1_0 EXIST::FUNCTION:SOCK +POLICY_CONSTRAINTS_it 2888 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +POLICY_CONSTRAINTS_it 2888 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +NCONF_free_data 2889 1_1_0 EXIST::FUNCTION: +BIO_asn1_set_prefix 2890 1_1_0 EXIST::FUNCTION: +PEM_SignUpdate 2891 1_1_0 EXIST::FUNCTION: +PEM_write_bio_EC_PUBKEY 2892 1_1_0 EXIST::FUNCTION:EC +CMS_add_simple_smimecap 2893 1_1_0 EXIST::FUNCTION:CMS +IPAddressChoice_free 2894 1_1_0 EXIST::FUNCTION:RFC3779 +d2i_X509_AUX 2895 1_1_0 EXIST::FUNCTION: +X509_get_default_cert_area 2896 1_1_0 EXIST::FUNCTION: +ERR_load_DSO_strings 2897 1_1_0 EXIST::FUNCTION: +ASIdentifiers_it 2898 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +ASIdentifiers_it 2898 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +BN_mod_lshift 2899 1_1_0 EXIST::FUNCTION: +ENGINE_get_last 2900 1_1_0 EXIST::FUNCTION:ENGINE +EVP_PKEY_encrypt_init 2901 1_1_0 EXIST::FUNCTION: +i2d_RSAPrivateKey_fp 2902 1_1_0 EXIST::FUNCTION:RSA,STDIO +X509_REQ_print 2903 1_1_0 EXIST::FUNCTION: +RSA_size 2904 1_1_0 EXIST::FUNCTION:RSA +EVP_CIPHER_CTX_iv_noconst 2905 1_1_0 EXIST::FUNCTION: +DH_set_default_method 2906 1_1_0 EXIST::FUNCTION:DH +X509_ALGOR_new 2907 1_1_0 EXIST::FUNCTION: +EVP_aes_192_ofb 2908 1_1_0 EXIST::FUNCTION: +EVP_des_ede3_cfb1 2909 1_1_0 EXIST::FUNCTION:DES +TS_REQ_to_TS_VERIFY_CTX 2910 1_1_0 EXIST::FUNCTION:TS +d2i_PBEPARAM 2911 1_1_0 EXIST::FUNCTION: +BN_get0_nist_prime_521 2912 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_get_ext_by_NID 2913 1_1_0 EXIST::FUNCTION:OCSP +X509_PUBKEY_get0 2914 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_parent_ctx 2915 1_1_0 EXIST::FUNCTION: +EC_GROUP_set_seed 2916 1_1_0 EXIST::FUNCTION:EC +X509_STORE_CTX_free 2917 1_1_0 EXIST::FUNCTION: +AUTHORITY_KEYID_it 2918 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +AUTHORITY_KEYID_it 2918 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509V3_get_value_int 2919 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_set_string 2920 1_1_0 EXIST::FUNCTION: +RC5_32_decrypt 2921 1_1_0 EXIST::FUNCTION:RC5 +i2d_X509_REQ_INFO 2922 1_1_0 EXIST::FUNCTION: +EVP_des_cfb1 2923 1_1_0 EXIST::FUNCTION:DES +OBJ_NAME_cleanup 2924 1_1_0 EXIST::FUNCTION: +OCSP_BASICRESP_get1_ext_d2i 2925 1_1_0 EXIST::FUNCTION:OCSP +DES_cfb64_encrypt 2926 1_1_0 EXIST::FUNCTION:DES +CAST_cfb64_encrypt 2927 1_1_0 EXIST::FUNCTION:CAST +EVP_PKEY_asn1_set_param 2928 1_1_0 EXIST::FUNCTION: +BN_RECP_CTX_free 2929 1_1_0 EXIST::FUNCTION: +BN_with_flags 2930 1_1_0 EXIST::FUNCTION: +DSO_ctrl 2931 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_get_final 2932 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_get_octetstring 2933 1_1_0 EXIST::FUNCTION: +ENGINE_by_id 2934 1_1_0 EXIST::FUNCTION:ENGINE +d2i_PKCS7_SIGNER_INFO 2935 1_1_0 EXIST::FUNCTION: +EVP_aes_192_cbc 2936 1_1_0 EXIST::FUNCTION: +PKCS8_pkey_set0 2937 1_1_0 EXIST::FUNCTION: +X509_get1_email 2938 1_1_0 EXIST::FUNCTION: +EC_POINT_point2oct 2939 1_1_0 EXIST::FUNCTION:EC +EC_GROUP_get_curve_GFp 2940 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC +ASYNC_block_pause 2941 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_get_ext 2942 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_strdup 2943 1_1_0 EXIST::FUNCTION: +i2d_X509_CRL_bio 2945 1_1_0 EXIST::FUNCTION: +EVP_PKEY_asn1_set_item 2946 1_1_0 EXIST::FUNCTION: +CRYPTO_ccm128_encrypt 2947 1_1_0 EXIST::FUNCTION: +X509v3_addr_get_afi 2948 1_1_0 EXIST::FUNCTION:RFC3779 +X509_STORE_CTX_get0_param 2949 1_1_0 EXIST::FUNCTION: +EVP_add_alg_module 2950 1_1_0 EXIST::FUNCTION: +X509_check_purpose 2951 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_delete_ext 2952 1_1_0 EXIST::FUNCTION:OCSP +X509_PURPOSE_get_count 2953 1_1_0 EXIST::FUNCTION: +d2i_PKCS12_bio 2954 1_1_0 EXIST::FUNCTION: +ASN1_item_free 2955 1_1_0 EXIST::FUNCTION: +PKCS7_content_new 2956 1_1_0 EXIST::FUNCTION: +X509_keyid_get0 2957 1_1_0 EXIST::FUNCTION: +COMP_get_name 2958 1_1_0 EXIST::FUNCTION:COMP +EC_GROUP_new_curve_GF2m 2959 1_1_0 EXIST::FUNCTION:EC,EC2M +X509_SIG_free 2960 1_1_0 EXIST::FUNCTION: +PEM_ASN1_write 2961 1_1_0 EXIST::FUNCTION:STDIO +ENGINE_get_digest_engine 2962 1_1_0 EXIST::FUNCTION:ENGINE +BN_CTX_new 2963 1_1_0 EXIST::FUNCTION: +EC_curve_nid2nist 2964 1_1_0 EXIST::FUNCTION:EC +ENGINE_get_finish_function 2965 1_1_0 EXIST::FUNCTION:ENGINE +EC_POINT_add 2966 1_1_0 EXIST::FUNCTION:EC +EC_KEY_oct2key 2967 1_1_0 EXIST::FUNCTION:EC +SHA384_Init 2968 1_1_0 EXIST::FUNCTION: +ASN1_UNIVERSALSTRING_new 2969 1_1_0 EXIST::FUNCTION: +EVP_PKEY_print_private 2970 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_new 2971 1_1_0 EXIST::FUNCTION: +NAME_CONSTRAINTS_it 2972 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NAME_CONSTRAINTS_it 2972 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_REQ_get_cert_req 2973 1_1_0 EXIST::FUNCTION:TS +BIO_pop 2974 1_1_0 EXIST::FUNCTION: +SHA256_Final 2975 1_1_0 EXIST::FUNCTION: +EVP_PKEY_set1_DH 2976 1_1_0 EXIST::FUNCTION:DH +DH_get_ex_data 2977 1_1_0 EXIST::FUNCTION:DH +CRYPTO_secure_malloc 2978 1_1_0 EXIST::FUNCTION: +TS_RESP_get_status_info 2979 1_1_0 EXIST::FUNCTION:TS +HMAC_CTX_new 2980 1_1_0 EXIST::FUNCTION: +ENGINE_get_default_DH 2981 1_1_0 EXIST::FUNCTION:ENGINE +ECDSA_do_verify 2982 1_1_0 EXIST::FUNCTION:EC +DSO_flags 2983 1_1_0 EXIST::FUNCTION: +RAND_add 2984 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_do_all_sorted 2985 1_1_0 EXIST::FUNCTION: +PKCS7_encrypt 2986 1_1_0 EXIST::FUNCTION: +i2d_DSA_SIG 2987 1_1_0 EXIST::FUNCTION:DSA +CMS_set_detached 2988 1_1_0 EXIST::FUNCTION:CMS +X509_REQ_get_attr_by_OBJ 2989 1_1_0 EXIST::FUNCTION: +i2d_ASRange 2990 1_1_0 EXIST::FUNCTION:RFC3779 +EC_GROUP_set_asn1_flag 2991 1_1_0 EXIST::FUNCTION:EC +EVP_PKEY_new 2992 1_1_0 EXIST::FUNCTION: +i2d_POLICYINFO 2993 1_1_0 EXIST::FUNCTION: +BN_get_flags 2994 1_1_0 EXIST::FUNCTION: +SHA384 2995 1_1_0 EXIST::FUNCTION: +NCONF_get_string 2996 1_1_0 EXIST::FUNCTION: +d2i_PROXY_CERT_INFO_EXTENSION 2997 1_1_0 EXIST::FUNCTION: +EC_POINT_point2buf 2998 1_1_0 EXIST::FUNCTION:EC +RSA_padding_add_PKCS1_OAEP_mgf1 2999 1_1_0 EXIST::FUNCTION:RSA +COMP_CTX_get_type 3000 1_1_0 EXIST::FUNCTION:COMP +TS_RESP_CTX_set_status_info 3001 1_1_0 EXIST::FUNCTION:TS +BIO_f_nbio_test 3002 1_1_0 EXIST::FUNCTION: +SEED_ofb128_encrypt 3003 1_1_0 EXIST::FUNCTION:SEED +d2i_RSAPrivateKey_bio 3004 1_1_0 EXIST::FUNCTION:RSA +DH_KDF_X9_42 3005 1_1_0 EXIST::FUNCTION:CMS,DH +EVP_PKEY_meth_set_signctx 3006 1_1_0 EXIST::FUNCTION: +X509_CRL_get_version 3007 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get0_info 3008 1_1_0 EXIST::FUNCTION: +PEM_read_bio_RSAPublicKey 3009 1_1_0 EXIST::FUNCTION:RSA +EVP_PKEY_asn1_set_private 3010 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get0_RSA 3011 1_1_0 EXIST::FUNCTION:RSA +DES_ede3_cfb64_encrypt 3012 1_1_0 EXIST::FUNCTION:DES +POLICY_MAPPING_free 3014 1_1_0 EXIST::FUNCTION: +EVP_aes_128_gcm 3015 1_1_0 EXIST::FUNCTION: +BIO_dgram_non_fatal_error 3016 1_1_0 EXIST::FUNCTION:DGRAM +OCSP_request_is_signed 3017 1_1_0 EXIST::FUNCTION:OCSP +i2d_BASIC_CONSTRAINTS 3018 1_1_0 EXIST::FUNCTION: +EC_KEY_get_method 3019 1_1_0 EXIST::FUNCTION:EC +EC_POINT_bn2point 3021 1_1_0 EXIST::FUNCTION:EC +PBE2PARAM_it 3022 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PBE2PARAM_it 3022 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BN_rand 3023 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_unpack_sequence 3024 1_1_0 EXIST::FUNCTION: +X509_CRL_sign_ctx 3025 1_1_0 EXIST::FUNCTION: +X509_STORE_add_crl 3026 1_1_0 EXIST::FUNCTION: +PEM_write_RSAPrivateKey 3027 1_1_0 EXIST::FUNCTION:RSA,STDIO +RC4_set_key 3028 1_1_0 EXIST::FUNCTION:RC4 +EVP_CIPHER_CTX_cipher 3029 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PKCS8PrivateKey_nid 3030 1_1_0 EXIST::FUNCTION: +BN_MONT_CTX_new 3031 1_1_0 EXIST::FUNCTION: +CRYPTO_free_ex_index 3032 1_1_0 EXIST::FUNCTION: +ASYNC_WAIT_CTX_new 3033 1_1_0 EXIST::FUNCTION: +PKCS7_it 3034 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_it 3034 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CMS_unsigned_get_attr_by_OBJ 3035 1_1_0 EXIST::FUNCTION:CMS +BN_clear 3036 1_1_0 EXIST::FUNCTION: +BIO_socket_ioctl 3037 1_1_0 EXIST::FUNCTION:SOCK +GENERAL_NAME_cmp 3038 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_purpose 3039 1_1_0 EXIST::FUNCTION: +X509_REVOKED_get_ext_d2i 3040 1_1_0 EXIST::FUNCTION: +X509V3_set_conf_lhash 3041 1_1_0 EXIST::FUNCTION: +PKCS7_ENC_CONTENT_it 3042 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ENC_CONTENT_it 3042 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS12_item_pack_safebag 3043 1_1_0 EXIST::FUNCTION: +i2d_OCSP_RESPDATA 3044 1_1_0 EXIST::FUNCTION:OCSP +i2d_X509_PUBKEY 3045 1_1_0 EXIST::FUNCTION: +EVP_DecryptUpdate 3046 1_1_0 EXIST::FUNCTION: +CAST_cbc_encrypt 3047 1_1_0 EXIST::FUNCTION:CAST +BN_BLINDING_invert 3048 1_1_0 EXIST::FUNCTION: +SHA512_Update 3049 1_1_0 EXIST::FUNCTION: +ESS_ISSUER_SERIAL_new 3050 1_1_0 EXIST::FUNCTION:TS +PKCS12_SAFEBAG_get0_pkcs8 3051 1_1_0 EXIST::FUNCTION: +X509_get_ext_by_NID 3052 1_1_0 EXIST::FUNCTION: +d2i_IPAddressFamily 3053 1_1_0 EXIST::FUNCTION:RFC3779 +X509_check_private_key 3054 1_1_0 EXIST::FUNCTION: +GENERAL_NAME_get0_value 3055 1_1_0 EXIST::FUNCTION: +X509_check_akid 3056 1_1_0 EXIST::FUNCTION: +PKCS12_key_gen_asc 3057 1_1_0 EXIST::FUNCTION: +EVP_bf_ofb 3058 1_1_0 EXIST::FUNCTION:BF +AUTHORITY_KEYID_free 3059 1_1_0 EXIST::FUNCTION: +EVP_seed_ofb 3060 1_1_0 EXIST::FUNCTION:SEED +OBJ_NAME_get 3061 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_set 3062 1_1_0 EXIST::FUNCTION: +X509_NAME_ENTRY_set_data 3063 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_set_str_flags 3064 1_1_0 EXIST::FUNCTION: +i2a_ASN1_INTEGER 3065 1_1_0 EXIST::FUNCTION: +d2i_TS_RESP 3066 1_1_0 EXIST::FUNCTION:TS +EVP_des_ede_cfb64 3067 1_1_0 EXIST::FUNCTION:DES +d2i_RSAPrivateKey 3068 1_1_0 EXIST::FUNCTION:RSA +ERR_load_BN_strings 3069 1_1_0 EXIST::FUNCTION: +BF_encrypt 3070 1_1_0 EXIST::FUNCTION:BF +MD5 3071 1_1_0 EXIST::FUNCTION:MD5 +BN_GF2m_arr2poly 3072 1_1_0 EXIST::FUNCTION:EC2M +EVP_PKEY_meth_get_ctrl 3073 1_1_0 EXIST::FUNCTION: +i2d_X509_REQ_bio 3074 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set1_name 3075 1_1_0 EXIST::FUNCTION: +d2i_RSAPublicKey_bio 3076 1_1_0 EXIST::FUNCTION:RSA +X509_REQ_get_X509_PUBKEY 3077 1_1_0 EXIST::FUNCTION: +ENGINE_load_private_key 3078 1_1_0 EXIST::FUNCTION:ENGINE +GENERAL_NAMES_new 3079 1_1_0 EXIST::FUNCTION: +i2d_POLICYQUALINFO 3080 1_1_0 EXIST::FUNCTION: +EC_GF2m_simple_method 3081 1_1_0 EXIST::FUNCTION:EC,EC2M +RSA_get_method 3082 1_1_0 EXIST::FUNCTION:RSA +d2i_ASRange 3083 1_1_0 EXIST::FUNCTION:RFC3779 +CMS_ContentInfo_new 3084 1_1_0 EXIST::FUNCTION:CMS +OPENSSL_init_crypto 3085 1_1_0 EXIST::FUNCTION: +X509_TRUST_set 3086 1_1_0 EXIST::FUNCTION: +EVP_camellia_192_ecb 3087 1_1_0 EXIST::FUNCTION:CAMELLIA +d2i_X509_REVOKED 3088 1_1_0 EXIST::FUNCTION: +d2i_IPAddressOrRange 3089 1_1_0 EXIST::FUNCTION:RFC3779 +TS_TST_INFO_set_version 3090 1_1_0 EXIST::FUNCTION:TS +PKCS12_get0_mac 3091 1_1_0 EXIST::FUNCTION: +EVP_EncodeInit 3092 1_1_0 EXIST::FUNCTION: +X509_get0_trust_objects 3093 1_1_0 EXIST::FUNCTION: +d2i_ECPrivateKey_bio 3094 1_1_0 EXIST::FUNCTION:EC +BIO_s_secmem 3095 1_1_0 EXIST::FUNCTION: +ENGINE_get_default_EC 3096 1_1_0 EXIST::FUNCTION:ENGINE +TS_RESP_create_response 3097 1_1_0 EXIST::FUNCTION:TS +BIO_ADDR_rawaddress 3098 1_1_0 EXIST::FUNCTION:SOCK +PKCS7_ENCRYPT_new 3099 1_1_0 EXIST::FUNCTION: +i2d_PKCS8PrivateKey_fp 3100 1_1_0 EXIST::FUNCTION:STDIO +SRP_user_pwd_free 3101 1_1_0 EXIST::FUNCTION:SRP +Camellia_encrypt 3102 1_1_0 EXIST::FUNCTION:CAMELLIA +BIO_ADDR_hostname_string 3103 1_1_0 EXIST::FUNCTION:SOCK +USERNOTICE_new 3104 1_1_0 EXIST::FUNCTION: +POLICY_MAPPING_new 3105 1_1_0 EXIST::FUNCTION: +CRYPTO_gcm128_release 3106 1_1_0 EXIST::FUNCTION: +BIO_new 3107 1_1_0 EXIST::FUNCTION: +d2i_GENERAL_NAMES 3108 1_1_0 EXIST::FUNCTION: +PKCS7_SIGNER_INFO_new 3109 1_1_0 EXIST::FUNCTION: +PEM_read_DSA_PUBKEY 3110 1_1_0 EXIST::FUNCTION:DSA,STDIO +X509_get0_subject_key_id 3111 1_1_0 EXIST::FUNCTION: +i2s_ASN1_ENUMERATED 3112 1_1_0 EXIST::FUNCTION: +X509v3_get_ext_by_OBJ 3113 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_free 3114 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_ocb128_aad 3115 1_1_0 EXIST::FUNCTION:OCB +OPENSSL_sk_deep_copy 3116 1_1_0 EXIST::FUNCTION: +i2d_RSA_PSS_PARAMS 3117 1_1_0 EXIST::FUNCTION:RSA +EVP_aes_128_wrap_pad 3118 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_set 3119 1_1_0 EXIST::FUNCTION: +PKCS5_PBKDF2_HMAC_SHA1 3120 1_1_0 EXIST::FUNCTION: +RSA_padding_check_PKCS1_type_2 3121 1_1_0 EXIST::FUNCTION:RSA +EVP_des_ede3_ecb 3122 1_1_0 EXIST::FUNCTION:DES +CBIGNUM_it 3123 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +CBIGNUM_it 3123 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BIO_new_NDEF 3124 1_1_0 EXIST::FUNCTION: +EVP_aes_256_wrap 3125 1_1_0 EXIST::FUNCTION: +ASN1_STRING_print 3126 1_1_0 EXIST::FUNCTION: +CRYPTO_THREAD_lock_free 3127 1_1_0 EXIST::FUNCTION: +TS_ACCURACY_get_seconds 3128 1_1_0 EXIST::FUNCTION:TS +BN_options 3129 1_1_0 EXIST::FUNCTION: +BIO_debug_callback 3130 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_get_update 3131 1_1_0 EXIST::FUNCTION: +GENERAL_NAME_set0_othername 3132 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_set_bit 3133 1_1_0 EXIST::FUNCTION: +EVP_aes_256_ccm 3134 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_get0_pkey 3135 1_1_0 EXIST::FUNCTION: +CONF_load_fp 3136 1_1_0 EXIST::FUNCTION:STDIO +BN_to_ASN1_ENUMERATED 3137 1_1_0 EXIST::FUNCTION: +i2d_ISSUING_DIST_POINT 3138 1_1_0 EXIST::FUNCTION: +TXT_DB_free 3139 1_1_0 EXIST::FUNCTION: +ASN1_STRING_set 3140 1_1_0 EXIST::FUNCTION: +d2i_ESS_CERT_ID 3141 1_1_0 EXIST::FUNCTION:TS +EVP_PKEY_meth_set_derive 3142 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_stats 3143 1_1_0 EXIST::FUNCTION:STDIO +NCONF_dump_fp 3144 1_1_0 EXIST::FUNCTION:STDIO +TS_STATUS_INFO_print_bio 3145 1_1_0 EXIST::FUNCTION:TS +OPENSSL_sk_dup 3146 1_1_0 EXIST::FUNCTION: +BF_cfb64_encrypt 3147 1_1_0 EXIST::FUNCTION:BF +ASN1_GENERALIZEDTIME_adj 3148 1_1_0 EXIST::FUNCTION: +ECDSA_verify 3149 1_1_0 EXIST::FUNCTION:EC +EVP_camellia_256_cfb128 3150 1_1_0 EXIST::FUNCTION:CAMELLIA +CMAC_Init 3151 1_1_0 EXIST::FUNCTION:CMAC +OCSP_basic_add1_status 3152 1_1_0 EXIST::FUNCTION:OCSP +X509_CRL_get0_by_cert 3153 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_set_tsa 3154 1_1_0 EXIST::FUNCTION:TS +i2d_ASN1_GENERALIZEDTIME 3155 1_1_0 EXIST::FUNCTION: +EVP_PKEY_derive_set_peer 3156 1_1_0 EXIST::FUNCTION: +X509V3_EXT_CRL_add_conf 3157 1_1_0 EXIST::FUNCTION: +CRYPTO_ccm128_init 3158 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set_time 3159 1_1_0 EXIST::FUNCTION: +BN_reciprocal 3160 1_1_0 EXIST::FUNCTION: +d2i_PKCS7_SIGN_ENVELOPE 3161 1_1_0 EXIST::FUNCTION: +X509_NAME_digest 3162 1_1_0 EXIST::FUNCTION: +d2i_OCSP_SERVICELOC 3163 1_1_0 EXIST::FUNCTION:OCSP +GENERAL_NAME_print 3164 1_1_0 EXIST::FUNCTION: +CMS_ReceiptRequest_get0_values 3165 1_1_0 EXIST::FUNCTION:CMS +a2i_ASN1_INTEGER 3166 1_1_0 EXIST::FUNCTION: +OCSP_sendreq_bio 3167 1_1_0 EXIST::FUNCTION:OCSP +PKCS12_SAFEBAG_create_crl 3168 1_1_0 EXIST::FUNCTION: +d2i_X509_NAME 3169 1_1_0 EXIST::FUNCTION: +IDEA_cfb64_encrypt 3170 1_1_0 EXIST::FUNCTION:IDEA +BN_mod_sub 3171 1_1_0 EXIST::FUNCTION: +ASN1_NULL_new 3172 1_1_0 EXIST::FUNCTION: +HMAC_Init 3173 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +EVP_MD_CTX_update_fn 3174 1_1_0 EXIST::FUNCTION: +EVP_aes_128_ecb 3175 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_bio_stream 3176 1_1_0 EXIST::FUNCTION: +i2a_ACCESS_DESCRIPTION 3178 1_1_0 EXIST::FUNCTION: +EC_KEY_set_enc_flags 3179 1_1_0 EXIST::FUNCTION:EC +i2d_PUBKEY_fp 3180 1_1_0 EXIST::FUNCTION:STDIO +b2i_PrivateKey_bio 3181 1_1_0 EXIST::FUNCTION:DSA +OCSP_REQUEST_add_ext 3182 1_1_0 EXIST::FUNCTION:OCSP +SXNET_add_id_INTEGER 3183 1_1_0 EXIST::FUNCTION: +CTLOG_get0_public_key 3184 1_1_0 EXIST::FUNCTION:CT +OCSP_REQUEST_get_ext_by_OBJ 3185 1_1_0 EXIST::FUNCTION:OCSP +X509_NAME_oneline 3186 1_1_0 EXIST::FUNCTION: +X509V3_set_nconf 3187 1_1_0 EXIST::FUNCTION: +RSAPrivateKey_dup 3188 1_1_0 EXIST::FUNCTION:RSA +BN_mod_add 3189 1_1_0 EXIST::FUNCTION: +EC_POINT_set_affine_coordinates_GFp 3190 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC +X509_get_default_cert_file 3191 1_1_0 EXIST::FUNCTION: +UI_method_set_flusher 3192 1_1_0 EXIST::FUNCTION: +RSA_new_method 3193 1_1_0 EXIST::FUNCTION:RSA +OCSP_request_verify 3194 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_THREAD_run_once 3195 1_1_0 EXIST::FUNCTION: +TS_REQ_print_bio 3196 1_1_0 EXIST::FUNCTION:TS +SCT_get_version 3197 1_1_0 EXIST::FUNCTION:CT +IDEA_set_encrypt_key 3198 1_1_0 EXIST::FUNCTION:IDEA +ENGINE_get_DH 3199 1_1_0 EXIST::FUNCTION:ENGINE +i2d_ASIdentifierChoice 3200 1_1_0 EXIST::FUNCTION:RFC3779 +SRP_Calc_A 3201 1_1_0 EXIST::FUNCTION:SRP +OCSP_BASICRESP_add_ext 3202 1_1_0 EXIST::FUNCTION:OCSP +EVP_idea_cfb64 3203 1_1_0 EXIST::FUNCTION:IDEA +PKCS12_newpass 3204 1_1_0 EXIST::FUNCTION: +EVP_aes_256_cbc_hmac_sha256 3205 1_1_0 EXIST::FUNCTION: +TS_ACCURACY_get_millis 3206 1_1_0 EXIST::FUNCTION:TS +X509_CRL_get_REVOKED 3207 1_1_0 EXIST::FUNCTION: +X509_issuer_name_hash_old 3208 1_1_0 EXIST::FUNCTION:MD5 +i2d_PKCS12_SAFEBAG 3209 1_1_0 EXIST::FUNCTION: +BN_rand_range 3210 1_1_0 EXIST::FUNCTION: +SMIME_write_ASN1 3211 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_new 3212 1_1_0 EXIST::FUNCTION: +MD4_Final 3213 1_1_0 EXIST::FUNCTION:MD4 +EVP_PKEY_id 3214 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_get0_pkey_ctx 3215 1_1_0 EXIST::FUNCTION:CMS +OCSP_REQINFO_free 3216 1_1_0 EXIST::FUNCTION:OCSP +AUTHORITY_KEYID_new 3217 1_1_0 EXIST::FUNCTION: +i2d_DIST_POINT_NAME 3218 1_1_0 EXIST::FUNCTION: +OpenSSL_version_num 3219 1_1_0 EXIST::FUNCTION: +OCSP_CERTID_free 3220 1_1_0 EXIST::FUNCTION:OCSP +BIO_hex_string 3221 1_1_0 EXIST::FUNCTION: +X509_REQ_sign_ctx 3222 1_1_0 EXIST::FUNCTION: +CRYPTO_ocb128_init 3223 1_1_0 EXIST::FUNCTION:OCB +EVP_PKEY_get1_EC_KEY 3224 1_1_0 EXIST::FUNCTION:EC +ASN1_PRINTABLESTRING_free 3225 1_1_0 EXIST::FUNCTION: +BIO_get_retry_reason 3226 1_1_0 EXIST::FUNCTION: +X509_NAME_print 3227 1_1_0 EXIST::FUNCTION: +ACCESS_DESCRIPTION_free 3228 1_1_0 EXIST::FUNCTION: +BN_nist_mod_384 3229 1_1_0 EXIST::FUNCTION: +i2d_EC_PUBKEY_fp 3230 1_1_0 EXIST::FUNCTION:EC,STDIO +ENGINE_set_default_pkey_meths 3231 1_1_0 EXIST::FUNCTION:ENGINE +DH_bits 3232 1_1_0 EXIST::FUNCTION:DH +i2d_X509_ALGORS 3233 1_1_0 EXIST::FUNCTION: +EVP_camellia_192_cfb1 3234 1_1_0 EXIST::FUNCTION:CAMELLIA +TS_RESP_CTX_add_failure_info 3235 1_1_0 EXIST::FUNCTION:TS +EVP_PBE_alg_add 3236 1_1_0 EXIST::FUNCTION: +ESS_CERT_ID_dup 3237 1_1_0 EXIST::FUNCTION:TS +CMS_SignerInfo_get0_signature 3238 1_1_0 EXIST::FUNCTION:CMS +EVP_PKEY_verify_recover 3239 1_1_0 EXIST::FUNCTION: +i2d_PUBKEY 3240 1_1_0 EXIST::FUNCTION: +ERR_load_EVP_strings 3241 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_set1_data 3242 1_1_0 EXIST::FUNCTION: +d2i_X509_fp 3243 1_1_0 EXIST::FUNCTION:STDIO +MD2_Init 3244 1_1_0 EXIST::FUNCTION:MD2 +ERR_get_error_line 3245 1_1_0 EXIST::FUNCTION: +X509_CRL_get_ext_by_NID 3246 1_1_0 EXIST::FUNCTION: +OPENSSL_INIT_free 3247 1_1_0 EXIST::FUNCTION: +PBE2PARAM_free 3248 1_1_0 EXIST::FUNCTION: +EVP_aes_192_ecb 3249 1_1_0 EXIST::FUNCTION: +ASN1_OCTET_STRING_new 3250 1_1_0 EXIST::FUNCTION: +CMS_set1_eContentType 3251 1_1_0 EXIST::FUNCTION:CMS +EVP_des_ede3_wrap 3252 1_1_0 EXIST::FUNCTION:DES +GENERAL_SUBTREE_it 3253 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +GENERAL_SUBTREE_it 3253 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_read_pw_string_min 3254 1_1_0 EXIST::FUNCTION: +X509_set1_notBefore 3255 1_1_0 EXIST::FUNCTION: +MD4 3256 1_1_0 EXIST::FUNCTION:MD4 +EVP_PKEY_CTX_dup 3257 1_1_0 EXIST::FUNCTION: +ENGINE_setup_bsd_cryptodev 3258 1_1_0 EXIST:__FreeBSD__:FUNCTION:DEPRECATEDIN_1_1_0,ENGINE +PEM_read_bio_DHparams 3259 1_1_0 EXIST::FUNCTION:DH +CMS_SharedInfo_encode 3260 1_1_0 EXIST::FUNCTION:CMS +ASN1_OBJECT_create 3261 1_1_0 EXIST::FUNCTION: +i2d_ECParameters 3262 1_1_0 EXIST::FUNCTION:EC +BN_GF2m_mod_arr 3263 1_1_0 EXIST::FUNCTION:EC2M +ENGINE_set_finish_function 3264 1_1_0 EXIST::FUNCTION:ENGINE +d2i_ASN1_OCTET_STRING 3265 1_1_0 EXIST::FUNCTION: +ENGINE_set_load_pubkey_function 3266 1_1_0 EXIST::FUNCTION:ENGINE +BIO_vprintf 3267 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_decrypt 3268 1_1_0 EXIST::FUNCTION:CMS +RSA_generate_key 3269 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8,RSA +PKCS7_set0_type_other 3270 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_new 3271 1_1_0 EXIST::FUNCTION:OCSP +BIO_lookup 3272 1_1_0 EXIST::FUNCTION:SOCK +EC_GROUP_get0_cofactor 3273 1_1_0 EXIST::FUNCTION:EC +SCT_print 3275 1_1_0 EXIST::FUNCTION:CT +X509_PUBKEY_set 3276 1_1_0 EXIST::FUNCTION: +POLICY_CONSTRAINTS_free 3277 1_1_0 EXIST::FUNCTION: +EVP_aes_256_cfb8 3278 1_1_0 EXIST::FUNCTION: +d2i_DSA_PUBKEY_bio 3279 1_1_0 EXIST::FUNCTION:DSA +X509_NAME_get_text_by_OBJ 3280 1_1_0 EXIST::FUNCTION: +RSA_padding_check_none 3281 1_1_0 EXIST::FUNCTION:RSA +CRYPTO_set_mem_debug 3282 1_1_0 EXIST::FUNCTION: +TS_VERIFY_CTX_init 3283 1_1_0 EXIST::FUNCTION:TS +OCSP_cert_id_new 3284 1_1_0 EXIST::FUNCTION:OCSP +GENERAL_SUBTREE_new 3285 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_push 3286 1_1_0 EXIST::FUNCTION: +X509_LOOKUP_ctrl 3287 1_1_0 EXIST::FUNCTION: +SRP_check_known_gN_param 3288 1_1_0 EXIST::FUNCTION:SRP +d2i_DIST_POINT 3289 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_free 3290 1_1_0 EXIST::FUNCTION: +PBEPARAM_free 3291 1_1_0 EXIST::FUNCTION: +NETSCAPE_SPKI_set_pubkey 3292 1_1_0 EXIST::FUNCTION: +EVP_sha512 3293 1_1_0 EXIST::FUNCTION: +X509_CRL_match 3294 1_1_0 EXIST::FUNCTION: +i2s_ASN1_IA5STRING 3295 1_1_0 EXIST::FUNCTION: +EC_KEY_get_default_method 3296 1_1_0 EXIST::FUNCTION:EC +PKCS8_decrypt 3297 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_get_data 3298 1_1_0 EXIST::FUNCTION: +POLICYQUALINFO_it 3299 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +POLICYQUALINFO_it 3299 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS7_ISSUER_AND_SERIAL_free 3300 1_1_0 EXIST::FUNCTION: +DSA_SIG_free 3301 1_1_0 EXIST::FUNCTION:DSA +BIO_asn1_set_suffix 3302 1_1_0 EXIST::FUNCTION: +EVP_PKEY_set_type_str 3303 1_1_0 EXIST::FUNCTION: +i2d_X509_SIG 3304 1_1_0 EXIST::FUNCTION: +OPENSSL_LH_strhash 3305 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_trust 3306 1_1_0 EXIST::FUNCTION: +TS_ACCURACY_set_micros 3307 1_1_0 EXIST::FUNCTION:TS +EVP_DigestFinal_ex 3308 1_1_0 EXIST::FUNCTION: +X509_get0_pubkey 3309 1_1_0 EXIST::FUNCTION: +X509_check_ip 3310 1_1_0 EXIST::FUNCTION: +PKCS7_get_signed_attribute 3311 1_1_0 EXIST::FUNCTION: +ASN1_GENERALIZEDTIME_free 3312 1_1_0 EXIST::FUNCTION: +COMP_compress_block 3313 1_1_0 EXIST::FUNCTION:COMP +ASN1_STRING_dup 3314 1_1_0 EXIST::FUNCTION: +X509_LOOKUP_free 3315 1_1_0 EXIST::FUNCTION: +EC_GROUP_cmp 3316 1_1_0 EXIST::FUNCTION:EC +TS_TST_INFO_get_ext_by_critical 3317 1_1_0 EXIST::FUNCTION:TS +ECParameters_print_fp 3318 1_1_0 EXIST::FUNCTION:EC,STDIO +X509_REQ_sign 3319 1_1_0 EXIST::FUNCTION: +CRYPTO_xts128_encrypt 3320 1_1_0 EXIST::FUNCTION: +PEM_def_callback 3321 1_1_0 EXIST::FUNCTION: +PKCS12_add_friendlyname_uni 3322 1_1_0 EXIST::FUNCTION: +X509_policy_tree_level_count 3323 1_1_0 EXIST::FUNCTION: +OBJ_sn2nid 3324 1_1_0 EXIST::FUNCTION: +CTLOG_free 3325 1_1_0 EXIST::FUNCTION:CT +EVP_CIPHER_meth_dup 3326 1_1_0 EXIST::FUNCTION: +CMS_get1_crls 3327 1_1_0 EXIST::FUNCTION:CMS +X509_aux_print 3328 1_1_0 EXIST::FUNCTION: +OPENSSL_thread_stop 3330 1_1_0 EXIST::FUNCTION: +X509_policy_node_get0_parent 3331 1_1_0 EXIST::FUNCTION: +X509_PKEY_free 3332 1_1_0 EXIST::FUNCTION: +OCSP_CRLID_new 3333 1_1_0 EXIST::FUNCTION:OCSP +CONF_dump_bio 3334 1_1_0 EXIST::FUNCTION: +d2i_PKCS8PrivateKey_fp 3335 1_1_0 EXIST::FUNCTION:STDIO +RSA_setup_blinding 3336 1_1_0 EXIST::FUNCTION:RSA +ERR_peek_error_line 3337 1_1_0 EXIST::FUNCTION: +d2i_PKCS7 3338 1_1_0 EXIST::FUNCTION: +ERR_reason_error_string 3339 1_1_0 EXIST::FUNCTION: +ERR_remove_thread_state 3340 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +PEM_write_PrivateKey 3341 1_1_0 EXIST::FUNCTION:STDIO +EVP_PKEY_CTX_str2ctrl 3342 1_1_0 EXIST::FUNCTION: +CMS_SignerInfo_verify_content 3343 1_1_0 EXIST::FUNCTION:CMS +ASN1_INTEGER_get_int64 3344 1_1_0 EXIST::FUNCTION: +ASN1_item_sign 3345 1_1_0 EXIST::FUNCTION: +OCSP_SERVICELOC_new 3346 1_1_0 EXIST::FUNCTION:OCSP +ASN1_VISIBLESTRING_new 3347 1_1_0 EXIST::FUNCTION: +BN_set_flags 3348 1_1_0 EXIST::FUNCTION: +d2i_PrivateKey_bio 3349 1_1_0 EXIST::FUNCTION: +ASN1_SEQUENCE_ANY_it 3350 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_SEQUENCE_ANY_it 3350 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_UTCTIME_adj 3351 1_1_0 EXIST::FUNCTION: +BN_mod_sqrt 3352 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_is_sorted 3353 1_1_0 EXIST::FUNCTION: +OCSP_SIGNATURE_new 3354 1_1_0 EXIST::FUNCTION:OCSP +EVP_PKEY_meth_get_paramgen 3355 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_create_by_OBJ 3356 1_1_0 EXIST::FUNCTION: +RSA_generate_key_ex 3357 1_1_0 EXIST::FUNCTION:RSA +CMS_SignerInfo_get0_algs 3358 1_1_0 EXIST::FUNCTION:CMS +DIST_POINT_free 3359 1_1_0 EXIST::FUNCTION: +ESS_SIGNING_CERT_free 3360 1_1_0 EXIST::FUNCTION:TS +SCT_new_from_base64 3361 1_1_0 EXIST::FUNCTION:CT +OpenSSL_version 3362 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_get_ext_by_OBJ 3363 1_1_0 EXIST::FUNCTION:OCSP +ECDSA_SIG_get0 3364 1_1_0 EXIST::FUNCTION:EC +BN_set_word 3365 1_1_0 EXIST::FUNCTION: +ENGINE_set_flags 3366 1_1_0 EXIST::FUNCTION:ENGINE +DSA_OpenSSL 3367 1_1_0 EXIST::FUNCTION:DSA +CMS_RecipientInfo_kari_get0_alg 3368 1_1_0 EXIST::FUNCTION:CMS +PKCS7_ENVELOPE_new 3369 1_1_0 EXIST::FUNCTION: +EDIPARTYNAME_new 3370 1_1_0 EXIST::FUNCTION: +CMS_add1_cert 3371 1_1_0 EXIST::FUNCTION:CMS +DSO_convert_filename 3372 1_1_0 EXIST::FUNCTION: +RSA_padding_check_SSLv23 3373 1_1_0 EXIST::FUNCTION:RSA +CRYPTO_gcm128_finish 3374 1_1_0 EXIST::FUNCTION: +PKCS12_SAFEBAGS_it 3375 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_SAFEBAGS_it 3375 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS12_PBE_add 3376 1_1_0 EXIST::FUNCTION: +EC_KEY_set_public_key_affine_coordinates 3377 1_1_0 EXIST::FUNCTION:EC +EVP_EncryptInit_ex 3378 1_1_0 EXIST::FUNCTION: +ENGINE_add 3379 1_1_0 EXIST::FUNCTION:ENGINE +OPENSSL_LH_error 3380 1_1_0 EXIST::FUNCTION: +PKCS7_DIGEST_it 3381 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_DIGEST_it 3381 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_CINF_new 3382 1_1_0 EXIST::FUNCTION: +EVP_PKEY_keygen_init 3383 1_1_0 EXIST::FUNCTION: +EVP_aes_192_ocb 3384 1_1_0 EXIST::FUNCTION:OCB +EVP_camellia_256_cfb1 3385 1_1_0 EXIST::FUNCTION:CAMELLIA +CRYPTO_secure_actual_size 3387 1_1_0 EXIST::FUNCTION: +COMP_CTX_free 3388 1_1_0 EXIST::FUNCTION:COMP +i2d_PBE2PARAM 3389 1_1_0 EXIST::FUNCTION: +EC_POINT_make_affine 3390 1_1_0 EXIST::FUNCTION:EC +DSA_generate_parameters 3391 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8,DSA +ASN1_BIT_STRING_num_asc 3392 1_1_0 EXIST::FUNCTION: +X509_INFO_free 3394 1_1_0 EXIST::FUNCTION: +d2i_PKCS8_PRIV_KEY_INFO_fp 3395 1_1_0 EXIST::FUNCTION:STDIO +X509_OBJECT_retrieve_match 3396 1_1_0 EXIST::FUNCTION: +EVP_aes_128_ctr 3397 1_1_0 EXIST::FUNCTION: +EVP_PBE_find 3398 1_1_0 EXIST::FUNCTION: +SHA512_Transform 3399 1_1_0 EXIST::FUNCTION: +ERR_add_error_vdata 3400 1_1_0 EXIST::FUNCTION: +OCSP_REQUEST_get_ext 3401 1_1_0 EXIST::FUNCTION:OCSP +NETSCAPE_SPKAC_new 3402 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_verify 3403 1_1_0 EXIST::FUNCTION: +CRYPTO_128_wrap 3404 1_1_0 EXIST::FUNCTION: +X509_STORE_set_lookup_crls 3405 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_meth_get_ctrl 3406 1_1_0 EXIST::FUNCTION: +OCSP_REQ_CTX_set1_req 3407 1_1_0 EXIST::FUNCTION:OCSP +CONF_imodule_get_usr_data 3408 1_1_0 EXIST::FUNCTION: +CRYPTO_new_ex_data 3409 1_1_0 EXIST::FUNCTION: +PEM_read_PKCS8_PRIV_KEY_INFO 3410 1_1_0 EXIST::FUNCTION:STDIO +TS_VERIFY_CTX_new 3411 1_1_0 EXIST::FUNCTION:TS +BUF_MEM_new_ex 3412 1_1_0 EXIST::FUNCTION: +RSA_padding_add_X931 3413 1_1_0 EXIST::FUNCTION:RSA +BN_get0_nist_prime_256 3414 1_1_0 EXIST::FUNCTION: +CRYPTO_memcmp 3415 1_1_0 EXIST::FUNCTION: +DH_check_pub_key 3416 1_1_0 EXIST::FUNCTION:DH +ASN1_mbstring_copy 3417 1_1_0 EXIST::FUNCTION: +PKCS7_set_type 3418 1_1_0 EXIST::FUNCTION: +BIO_gets 3419 1_1_0 EXIST::FUNCTION: +RSA_padding_check_PKCS1_type_1 3420 1_1_0 EXIST::FUNCTION:RSA +UI_ctrl 3421 1_1_0 EXIST::FUNCTION: +i2d_X509_REQ_fp 3422 1_1_0 EXIST::FUNCTION:STDIO +BN_BLINDING_convert_ex 3423 1_1_0 EXIST::FUNCTION: +ASN1_GENERALIZEDTIME_print 3424 1_1_0 EXIST::FUNCTION: +BIO_s_null 3425 1_1_0 EXIST::FUNCTION: +PEM_ASN1_read 3426 1_1_0 EXIST::FUNCTION:STDIO +SCT_get_log_entry_type 3427 1_1_0 EXIST::FUNCTION:CT +EVP_CIPHER_meth_get_init 3428 1_1_0 EXIST::FUNCTION: +X509_ALGOR_free 3429 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_get_ext_count 3430 1_1_0 EXIST::FUNCTION:OCSP +EC_POINT_free 3431 1_1_0 EXIST::FUNCTION:EC +EVP_OpenFinal 3432 1_1_0 EXIST::FUNCTION:RSA +RAND_egd_bytes 3433 1_1_0 EXIST::FUNCTION:EGD +UI_method_get_writer 3434 1_1_0 EXIST::FUNCTION: +BN_secure_new 3435 1_1_0 EXIST::FUNCTION: +SHA1_Update 3437 1_1_0 EXIST::FUNCTION: +BIO_s_connect 3438 1_1_0 EXIST::FUNCTION:SOCK +EVP_MD_meth_get_init 3439 1_1_0 EXIST::FUNCTION: +ASN1_BIT_STRING_free 3440 1_1_0 EXIST::FUNCTION: +i2d_PROXY_CERT_INFO_EXTENSION 3441 1_1_0 EXIST::FUNCTION: +ASN1_IA5STRING_new 3442 1_1_0 EXIST::FUNCTION: +X509_CRL_up_ref 3443 1_1_0 EXIST::FUNCTION: +EVP_EncodeFinal 3444 1_1_0 EXIST::FUNCTION: +X509_set_ex_data 3445 1_1_0 EXIST::FUNCTION: +ERR_get_next_error_library 3446 1_1_0 EXIST::FUNCTION: +OCSP_RESPONSE_print 3447 1_1_0 EXIST::FUNCTION:OCSP +BN_get_rfc3526_prime_2048 3448 1_1_0 EXIST::FUNCTION: +BIO_new_bio_pair 3449 1_1_0 EXIST::FUNCTION: +EC_GFp_nistp256_method 3450 1_1_0 EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128 +BIO_method_type 3451 1_1_0 EXIST::FUNCTION: +ECPKParameters_print 3452 1_1_0 EXIST::FUNCTION:EC +EVP_rc4 3453 1_1_0 EXIST::FUNCTION:RC4 +CMS_data_create 3454 1_1_0 EXIST::FUNCTION:CMS +EC_POINT_point2bn 3455 1_1_0 EXIST::FUNCTION:EC +CMS_unsigned_get0_data_by_OBJ 3456 1_1_0 EXIST::FUNCTION:CMS +ASN1_OCTET_STRING_cmp 3457 1_1_0 EXIST::FUNCTION: +X509_NAME_print_ex 3458 1_1_0 EXIST::FUNCTION: +ASN1_parse 3459 1_1_0 EXIST::FUNCTION: +EC_KEY_priv2oct 3460 1_1_0 EXIST::FUNCTION:EC +PKCS7_simple_smimecap 3461 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_set_int_octetstring 3462 1_1_0 EXIST::FUNCTION: +BIO_number_written 3463 1_1_0 EXIST::FUNCTION: +TS_TST_INFO_set_msg_imprint 3464 1_1_0 EXIST::FUNCTION:TS +CRYPTO_get_ex_data 3465 1_1_0 EXIST::FUNCTION: +X509_PURPOSE_get0_sname 3466 1_1_0 EXIST::FUNCTION: +RSA_verify_PKCS1_PSS 3467 1_1_0 EXIST::FUNCTION:RSA +HMAC_CTX_reset 3468 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_set_init 3469 1_1_0 EXIST::FUNCTION: +X509_REQ_extension_nid 3470 1_1_0 EXIST::FUNCTION: +ENGINE_up_ref 3471 1_1_0 EXIST::FUNCTION:ENGINE +BN_BLINDING_invert_ex 3472 1_1_0 EXIST::FUNCTION: +RIPEMD160_Init 3473 1_1_0 EXIST::FUNCTION:RMD160 +ASYNC_WAIT_CTX_get_changed_fds 3474 1_1_0 EXIST::FUNCTION: +EVP_PKEY_save_parameters 3475 1_1_0 EXIST::FUNCTION: +SCT_set_source 3476 1_1_0 EXIST::FUNCTION:CT +DES_set_odd_parity 3477 1_1_0 EXIST::FUNCTION:DES +CMAC_CTX_free 3478 1_1_0 EXIST::FUNCTION:CMAC +d2i_ESS_ISSUER_SERIAL 3479 1_1_0 EXIST::FUNCTION:TS +HMAC_CTX_set_flags 3480 1_1_0 EXIST::FUNCTION: +d2i_PKCS8_bio 3481 1_1_0 EXIST::FUNCTION: +OCSP_ONEREQ_get_ext_count 3482 1_1_0 EXIST::FUNCTION:OCSP +PEM_read_bio_PKCS8_PRIV_KEY_INFO 3483 1_1_0 EXIST::FUNCTION: +i2d_OCSP_BASICRESP 3484 1_1_0 EXIST::FUNCTION:OCSP +CMAC_Final 3485 1_1_0 EXIST::FUNCTION:CMAC +X509V3_EXT_add_alias 3486 1_1_0 EXIST::FUNCTION: +BN_get_params 3487 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8 +PKCS5_pbkdf2_set 3488 1_1_0 EXIST::FUNCTION: +d2i_PKCS8PrivateKey_bio 3489 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_new 3490 1_1_0 EXIST::FUNCTION: +ENGINE_register_digests 3491 1_1_0 EXIST::FUNCTION:ENGINE +X509_NAME_get_text_by_NID 3492 1_1_0 EXIST::FUNCTION: +SMIME_read_ASN1 3493 1_1_0 EXIST::FUNCTION: +X509_REQ_set_subject_name 3494 1_1_0 EXIST::FUNCTION: +BN_sub_word 3495 1_1_0 EXIST::FUNCTION: +DSO_load 3496 1_1_0 EXIST::FUNCTION: +BN_mod_exp 3497 1_1_0 EXIST::FUNCTION: +X509_get_signature_type 3498 1_1_0 EXIST::FUNCTION: +BIO_ptr_ctrl 3499 1_1_0 EXIST::FUNCTION: +EVP_rc4_hmac_md5 3500 1_1_0 EXIST::FUNCTION:MD5,RC4 +OPENSSL_strlcat 3501 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_new 3502 1_1_0 EXIST::FUNCTION: +BIO_ADDR_rawport 3503 1_1_0 EXIST::FUNCTION:SOCK +BUF_MEM_grow_clean 3504 1_1_0 EXIST::FUNCTION: +X509_NAME_print_ex_fp 3505 1_1_0 EXIST::FUNCTION:STDIO +X509_check_host 3506 1_1_0 EXIST::FUNCTION: +PEM_read_ECPKParameters 3507 1_1_0 EXIST::FUNCTION:EC,STDIO +X509_ATTRIBUTE_get0_data 3508 1_1_0 EXIST::FUNCTION: +CMS_add1_signer 3509 1_1_0 EXIST::FUNCTION:CMS +BN_pseudo_rand 3510 1_1_0 EXIST::FUNCTION: +d2i_DIRECTORYSTRING 3511 1_1_0 EXIST::FUNCTION: +d2i_ASN1_PRINTABLE 3512 1_1_0 EXIST::FUNCTION: +EVP_PKEY_add1_attr_by_NID 3513 1_1_0 EXIST::FUNCTION: +i2d_PKCS8_PRIV_KEY_INFO_bio 3514 1_1_0 EXIST::FUNCTION: +X509_NAME_get_index_by_NID 3515 1_1_0 EXIST::FUNCTION: +ENGINE_get_first 3516 1_1_0 EXIST::FUNCTION:ENGINE +CERTIFICATEPOLICIES_it 3517 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +CERTIFICATEPOLICIES_it 3517 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_MD_CTX_ctrl 3518 1_1_0 EXIST::FUNCTION: +PKCS7_final 3519 1_1_0 EXIST::FUNCTION: +EVP_PKEY_size 3520 1_1_0 EXIST::FUNCTION: +EVP_DecryptFinal_ex 3521 1_1_0 EXIST::FUNCTION: +SCT_get_signature_nid 3522 1_1_0 EXIST::FUNCTION:CT +PROXY_CERT_INFO_EXTENSION_new 3523 1_1_0 EXIST::FUNCTION: +EVP_bf_cbc 3524 1_1_0 EXIST::FUNCTION:BF +DSA_do_verify 3525 1_1_0 EXIST::FUNCTION:DSA +EC_GROUP_get_seed_len 3526 1_1_0 EXIST::FUNCTION:EC +EC_POINT_set_affine_coordinates_GF2m 3527 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M +TS_REQ_set_policy_id 3528 1_1_0 EXIST::FUNCTION:TS +BIO_callback_ctrl 3529 1_1_0 EXIST::FUNCTION: +v2i_GENERAL_NAME 3530 1_1_0 EXIST::FUNCTION: +ERR_print_errors_cb 3531 1_1_0 EXIST::FUNCTION: +ENGINE_set_default_string 3532 1_1_0 EXIST::FUNCTION:ENGINE +BIO_number_read 3533 1_1_0 EXIST::FUNCTION: +CRYPTO_zalloc 3534 1_1_0 EXIST::FUNCTION: +EVP_PKEY_cmp_parameters 3535 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_new_id 3537 1_1_0 EXIST::FUNCTION: +TLS_FEATURE_free 3538 1_1_0 EXIST::FUNCTION: +d2i_BASIC_CONSTRAINTS 3539 1_1_0 EXIST::FUNCTION: +X509_CERT_AUX_new 3540 1_1_0 EXIST::FUNCTION: +ENGINE_register_pkey_asn1_meths 3541 1_1_0 EXIST::FUNCTION:ENGINE +CRYPTO_ocb128_tag 3542 1_1_0 EXIST::FUNCTION:OCB +ERR_load_OBJ_strings 3544 1_1_0 EXIST::FUNCTION: +BIO_ctrl_get_read_request 3545 1_1_0 EXIST::FUNCTION: +BN_from_montgomery 3546 1_1_0 EXIST::FUNCTION: +DSO_new 3547 1_1_0 EXIST::FUNCTION: +AES_ecb_encrypt 3548 1_1_0 EXIST::FUNCTION: +BN_dec2bn 3549 1_1_0 EXIST::FUNCTION: +CMS_decrypt 3550 1_1_0 EXIST::FUNCTION:CMS +BN_mpi2bn 3551 1_1_0 EXIST::FUNCTION: +EVP_aes_128_cfb128 3552 1_1_0 EXIST::FUNCTION: +RC5_32_ecb_encrypt 3554 1_1_0 EXIST::FUNCTION:RC5 +EVP_CIPHER_meth_new 3555 1_1_0 EXIST::FUNCTION: +i2d_RSA_OAEP_PARAMS 3556 1_1_0 EXIST::FUNCTION:RSA +SXNET_get_id_ulong 3557 1_1_0 EXIST::FUNCTION: +BIO_get_callback_arg 3558 1_1_0 EXIST::FUNCTION: +ENGINE_register_RSA 3559 1_1_0 EXIST::FUNCTION:ENGINE +i2v_GENERAL_NAMES 3560 1_1_0 EXIST::FUNCTION: +PKCS7_decrypt 3562 1_1_0 EXIST::FUNCTION: +X509_STORE_set1_param 3563 1_1_0 EXIST::FUNCTION: +RAND_file_name 3564 1_1_0 EXIST::FUNCTION: +EVP_CipherInit_ex 3566 1_1_0 EXIST::FUNCTION: +BIO_dgram_sctp_notification_cb 3567 1_1_0 EXIST::FUNCTION:DGRAM,SCTP +ERR_load_RAND_strings 3568 1_1_0 EXIST::FUNCTION: +X509_ATTRIBUTE_it 3569 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_ATTRIBUTE_it 3569 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_ALGOR_it 3570 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_ALGOR_it 3570 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OCSP_CRLID_free 3571 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_ccm128_aad 3572 1_1_0 EXIST::FUNCTION: +IPAddressFamily_new 3573 1_1_0 EXIST::FUNCTION:RFC3779 +d2i_TS_ACCURACY 3574 1_1_0 EXIST::FUNCTION:TS +X509_load_crl_file 3575 1_1_0 EXIST::FUNCTION: +SXNET_add_id_ulong 3576 1_1_0 EXIST::FUNCTION: +EVP_camellia_256_cbc 3577 1_1_0 EXIST::FUNCTION:CAMELLIA +i2d_PROXY_POLICY 3578 1_1_0 EXIST::FUNCTION: +X509_subject_name_hash_old 3579 1_1_0 EXIST::FUNCTION:MD5 +PEM_read_bio_DSA_PUBKEY 3580 1_1_0 EXIST::FUNCTION:DSA +OCSP_cert_to_id 3581 1_1_0 EXIST::FUNCTION:OCSP +PEM_write_DSAparams 3582 1_1_0 EXIST::FUNCTION:DSA,STDIO +ASN1_TIME_to_generalizedtime 3583 1_1_0 EXIST::FUNCTION: +X509_CRL_get_ext_by_critical 3584 1_1_0 EXIST::FUNCTION: +ASN1_STRING_type 3585 1_1_0 EXIST::FUNCTION: +X509_REQ_add1_attr_by_txt 3586 1_1_0 EXIST::FUNCTION: +PEM_write_RSAPublicKey 3587 1_1_0 EXIST::FUNCTION:RSA,STDIO +EVP_MD_meth_dup 3588 1_1_0 EXIST::FUNCTION: +ENGINE_unregister_ciphers 3589 1_1_0 EXIST::FUNCTION:ENGINE +X509_issuer_and_serial_cmp 3590 1_1_0 EXIST::FUNCTION: +OCSP_response_create 3591 1_1_0 EXIST::FUNCTION:OCSP +SHA224 3592 1_1_0 EXIST::FUNCTION: +MD2_options 3593 1_1_0 EXIST::FUNCTION:MD2 +X509_REQ_it 3595 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_REQ_it 3595 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +RAND_bytes 3596 1_1_0 EXIST::FUNCTION: +PKCS7_free 3597 1_1_0 EXIST::FUNCTION: +X509_NAME_ENTRY_create_by_txt 3598 1_1_0 EXIST::FUNCTION: +DES_cbc_cksum 3599 1_1_0 EXIST::FUNCTION:DES +UI_free 3600 1_1_0 EXIST::FUNCTION: +BN_is_prime 3601 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8 +CMS_get0_signers 3602 1_1_0 EXIST::FUNCTION:CMS +i2d_PrivateKey_fp 3603 1_1_0 EXIST::FUNCTION:STDIO +OTHERNAME_cmp 3604 1_1_0 EXIST::FUNCTION: +SMIME_write_PKCS7 3605 1_1_0 EXIST::FUNCTION: +EC_KEY_set_public_key 3606 1_1_0 EXIST::FUNCTION:EC +d2i_X509_EXTENSION 3607 1_1_0 EXIST::FUNCTION: +CMS_add1_recipient_cert 3608 1_1_0 EXIST::FUNCTION:CMS +CMS_RecipientInfo_kekri_get0_id 3609 1_1_0 EXIST::FUNCTION:CMS +BN_mod_word 3610 1_1_0 EXIST::FUNCTION: +ASN1_PCTX_new 3611 1_1_0 EXIST::FUNCTION: +BN_is_prime_ex 3612 1_1_0 EXIST::FUNCTION: +PKCS5_v2_PBE_keyivgen 3613 1_1_0 EXIST::FUNCTION: +CRYPTO_ctr128_encrypt 3614 1_1_0 EXIST::FUNCTION: +CMS_unsigned_add1_attr_by_OBJ 3615 1_1_0 EXIST::FUNCTION:CMS +PEM_write_EC_PUBKEY 3616 1_1_0 EXIST::FUNCTION:EC,STDIO +X509v3_asid_add_inherit 3617 1_1_0 EXIST::FUNCTION:RFC3779 +ERR_get_error 3618 1_1_0 EXIST::FUNCTION: +TS_CONF_set_signer_digest 3619 1_1_0 EXIST::FUNCTION:TS +OBJ_new_nid 3620 1_1_0 EXIST::FUNCTION: +CMS_ReceiptRequest_new 3621 1_1_0 EXIST::FUNCTION:CMS +SRP_VBASE_get1_by_user 3622 1_1_0 EXIST::FUNCTION:SRP +UI_method_get_closer 3623 1_1_0 EXIST::FUNCTION: +ENGINE_get_ex_data 3624 1_1_0 EXIST::FUNCTION:ENGINE +BN_print_fp 3625 1_1_0 EXIST::FUNCTION:STDIO +MD2_Update 3626 1_1_0 EXIST::FUNCTION:MD2 +ENGINE_free 3628 1_1_0 EXIST::FUNCTION:ENGINE +d2i_X509_ATTRIBUTE 3629 1_1_0 EXIST::FUNCTION: +TS_RESP_free 3630 1_1_0 EXIST::FUNCTION:TS +PKCS5_pbe_set 3631 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_free 3632 1_1_0 EXIST::FUNCTION:TS +d2i_PUBKEY 3633 1_1_0 EXIST::FUNCTION: +ASYNC_cleanup_thread 3634 1_1_0 EXIST::FUNCTION: +SHA384_Update 3635 1_1_0 EXIST::FUNCTION: +CRYPTO_cfb128_1_encrypt 3636 1_1_0 EXIST::FUNCTION: +BIO_set_cipher 3637 1_1_0 EXIST::FUNCTION: +PEM_read_PUBKEY 3638 1_1_0 EXIST::FUNCTION:STDIO +RSA_PKCS1_OpenSSL 3639 1_1_0 EXIST::FUNCTION:RSA +AUTHORITY_INFO_ACCESS_free 3640 1_1_0 EXIST::FUNCTION: +SCT_get0_signature 3641 1_1_0 EXIST::FUNCTION:CT +DISPLAYTEXT_it 3643 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +DISPLAYTEXT_it 3643 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OPENSSL_gmtime_adj 3644 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_dup 3645 1_1_0 EXIST::FUNCTION: +DSA_print 3646 1_1_0 EXIST::FUNCTION:DSA +X509_REQ_set_extension_nids 3647 1_1_0 EXIST::FUNCTION: +X509_free 3648 1_1_0 EXIST::FUNCTION: +ERR_load_ERR_strings 3649 1_1_0 EXIST::FUNCTION: +ASN1_const_check_infinite_end 3650 1_1_0 EXIST::FUNCTION: +RSA_null_method 3651 1_1_0 EXIST::FUNCTION:RSA +TS_REQ_ext_free 3652 1_1_0 EXIST::FUNCTION:TS +EVP_PKEY_meth_get_encrypt 3653 1_1_0 EXIST::FUNCTION: +Camellia_ecb_encrypt 3654 1_1_0 EXIST::FUNCTION:CAMELLIA +ENGINE_set_default_RSA 3655 1_1_0 EXIST::FUNCTION:ENGINE +EVP_EncodeBlock 3656 1_1_0 EXIST::FUNCTION: +SXNETID_free 3657 1_1_0 EXIST::FUNCTION: +SHA1_Init 3658 1_1_0 EXIST::FUNCTION: +CRYPTO_atomic_add 3659 1_1_0 EXIST::FUNCTION: +TS_CONF_load_certs 3660 1_1_0 EXIST::FUNCTION:TS +PEM_write_bio_DSAPrivateKey 3661 1_1_0 EXIST::FUNCTION:DSA +CMS_encrypt 3662 1_1_0 EXIST::FUNCTION:CMS +CRYPTO_nistcts128_decrypt 3663 1_1_0 EXIST::FUNCTION: +ERR_load_DH_strings 3664 1_1_0 EXIST::FUNCTION:DH +EVP_MD_block_size 3665 1_1_0 EXIST::FUNCTION: +TS_X509_ALGOR_print_bio 3666 1_1_0 EXIST::FUNCTION:TS +d2i_PKCS7_ENVELOPE 3667 1_1_0 EXIST::FUNCTION: +ESS_CERT_ID_new 3669 1_1_0 EXIST::FUNCTION:TS +EC_POINT_invert 3670 1_1_0 EXIST::FUNCTION:EC +CAST_set_key 3671 1_1_0 EXIST::FUNCTION:CAST +ENGINE_get_pkey_meth 3672 1_1_0 EXIST::FUNCTION:ENGINE +BIO_ADDRINFO_free 3673 1_1_0 EXIST::FUNCTION:SOCK +DES_ede3_cbc_encrypt 3674 1_1_0 EXIST::FUNCTION:DES +X509v3_asid_canonize 3675 1_1_0 EXIST::FUNCTION:RFC3779 +i2d_ASIdOrRange 3676 1_1_0 EXIST::FUNCTION:RFC3779 +OCSP_url_svcloc_new 3677 1_1_0 EXIST::FUNCTION:OCSP +CRYPTO_mem_ctrl 3678 1_1_0 EXIST::FUNCTION: +ASN1_verify 3679 1_1_0 EXIST::FUNCTION: +DSA_generate_parameters_ex 3680 1_1_0 EXIST::FUNCTION:DSA +X509_sign 3681 1_1_0 EXIST::FUNCTION: +SHA256_Transform 3682 1_1_0 EXIST::FUNCTION: +BIO_ADDR_free 3683 1_1_0 EXIST::FUNCTION:SOCK +ASN1_STRING_free 3684 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_inherit 3685 1_1_0 EXIST::FUNCTION: +EC_GROUP_get_curve_name 3686 1_1_0 EXIST::FUNCTION:EC +RSA_print 3687 1_1_0 EXIST::FUNCTION:RSA +i2d_ASN1_BMPSTRING 3688 1_1_0 EXIST::FUNCTION: +EVP_PKEY_decrypt_old 3689 1_1_0 EXIST::FUNCTION: +ASN1_UTCTIME_cmp_time_t 3690 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_set1_ip 3691 1_1_0 EXIST::FUNCTION: +OTHERNAME_free 3692 1_1_0 EXIST::FUNCTION: +OCSP_REVOKEDINFO_free 3693 1_1_0 EXIST::FUNCTION:OCSP +EVP_CIPHER_CTX_encrypting 3694 1_1_0 EXIST::FUNCTION: +EC_KEY_can_sign 3695 1_1_0 EXIST::FUNCTION:EC +PEM_write_bio_RSAPublicKey 3696 1_1_0 EXIST::FUNCTION:RSA +X509_CRL_set1_lastUpdate 3697 1_1_0 EXIST::FUNCTION: +OCSP_sendreq_nbio 3698 1_1_0 EXIST::FUNCTION:OCSP +PKCS8_encrypt 3699 1_1_0 EXIST::FUNCTION: +i2d_PKCS7_fp 3700 1_1_0 EXIST::FUNCTION:STDIO +i2d_X509_REQ 3701 1_1_0 EXIST::FUNCTION: +OCSP_CRLID_it 3702 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_CRLID_it 3702 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +PEM_ASN1_write_bio 3703 1_1_0 EXIST::FUNCTION: +X509_get0_reject_objects 3704 1_1_0 EXIST::FUNCTION: +BIO_set_tcp_ndelay 3705 1_1_0 EXIST::FUNCTION:SOCK +CMS_add0_CertificateChoices 3706 1_1_0 EXIST::FUNCTION:CMS +POLICYINFO_new 3707 1_1_0 EXIST::FUNCTION: +X509_CRL_get0_by_serial 3708 1_1_0 EXIST::FUNCTION: +PKCS12_add_friendlyname_asc 3709 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get1_chain 3710 1_1_0 EXIST::FUNCTION: +ASN1_mbstring_ncopy 3711 1_1_0 EXIST::FUNCTION: +PKCS7_RECIP_INFO_it 3712 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_RECIP_INFO_it 3712 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ENGINE_register_all_digests 3713 1_1_0 EXIST::FUNCTION:ENGINE +X509_REQ_get_version 3714 1_1_0 EXIST::FUNCTION: +i2d_ASN1_UTCTIME 3715 1_1_0 EXIST::FUNCTION: +TS_STATUS_INFO_new 3716 1_1_0 EXIST::FUNCTION:TS +UI_set_ex_data 3717 1_1_0 EXIST::FUNCTION: +ASN1_TIME_set 3718 1_1_0 EXIST::FUNCTION: +TS_RESP_verify_response 3719 1_1_0 EXIST::FUNCTION:TS +X509_REVOKED_get0_serialNumber 3720 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_free 3721 1_1_0 EXIST::FUNCTION: +ASN1_TYPE_new 3722 1_1_0 EXIST::FUNCTION: +CMAC_CTX_cleanup 3723 1_1_0 EXIST::FUNCTION:CMAC +i2d_PKCS7_NDEF 3724 1_1_0 EXIST::FUNCTION: +OPENSSL_sk_pop_free 3725 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_policy_tree 3726 1_1_0 EXIST::FUNCTION: +DES_set_key_checked 3727 1_1_0 EXIST::FUNCTION:DES +EVP_PKEY_meth_free 3728 1_1_0 EXIST::FUNCTION: +EVP_sha224 3729 1_1_0 EXIST::FUNCTION: +ENGINE_set_id 3730 1_1_0 EXIST::FUNCTION:ENGINE +d2i_ECPrivateKey 3731 1_1_0 EXIST::FUNCTION:EC +CMS_signed_add1_attr_by_NID 3732 1_1_0 EXIST::FUNCTION:CMS +i2d_DSAPrivateKey_fp 3733 1_1_0 EXIST::FUNCTION:DSA,STDIO +EVP_CIPHER_meth_get_set_asn1_params 3734 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_ex_data 3735 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_kari_set0_pkey 3736 1_1_0 EXIST::FUNCTION:CMS +X509v3_addr_add_inherit 3737 1_1_0 EXIST::FUNCTION:RFC3779 +SRP_Calc_u 3738 1_1_0 EXIST::FUNCTION:SRP +i2d_PKCS8PrivateKey_bio 3739 1_1_0 EXIST::FUNCTION: +X509_get_extension_flags 3740 1_1_0 EXIST::FUNCTION: +X509V3_EXT_val_prn 3741 1_1_0 EXIST::FUNCTION: +SCT_get_validation_status 3742 1_1_0 EXIST::FUNCTION:CT +NETSCAPE_CERT_SEQUENCE_free 3743 1_1_0 EXIST::FUNCTION: +EVP_PBE_scrypt 3744 1_1_0 EXIST::FUNCTION:SCRYPT +d2i_TS_REQ_bio 3745 1_1_0 EXIST::FUNCTION:TS +ENGINE_set_default_ciphers 3746 1_1_0 EXIST::FUNCTION:ENGINE +X509_get_signature_nid 3747 1_1_0 EXIST::FUNCTION: +DES_fcrypt 3748 1_1_0 EXIST::FUNCTION:DES +PEM_write_bio_X509_REQ 3749 1_1_0 EXIST::FUNCTION: +EVP_PKEY_meth_get_sign 3750 1_1_0 EXIST::FUNCTION: +TS_REQ_get_nonce 3751 1_1_0 EXIST::FUNCTION:TS +ENGINE_unregister_EC 3752 1_1_0 EXIST::FUNCTION:ENGINE +X509v3_get_ext_count 3753 1_1_0 EXIST::FUNCTION: +UI_OpenSSL 3754 1_1_0 EXIST::FUNCTION:UI_CONSOLE +CRYPTO_ccm128_decrypt 3755 1_1_0 EXIST::FUNCTION: +d2i_OCSP_RESPDATA 3756 1_1_0 EXIST::FUNCTION:OCSP +BIO_set_callback 3757 1_1_0 EXIST::FUNCTION: +BN_GF2m_poly2arr 3758 1_1_0 EXIST::FUNCTION:EC2M +CMS_unsigned_get_attr_count 3759 1_1_0 EXIST::FUNCTION:CMS +EVP_aes_256_gcm 3760 1_1_0 EXIST::FUNCTION: +RSA_padding_check_X931 3761 1_1_0 EXIST::FUNCTION:RSA +ECDH_compute_key 3762 1_1_0 EXIST::FUNCTION:EC +ASN1_TIME_print 3763 1_1_0 EXIST::FUNCTION: +EVP_PKEY_CTX_get0_peerkey 3764 1_1_0 EXIST::FUNCTION: +BN_mod_lshift1 3765 1_1_0 EXIST::FUNCTION: +BIO_ADDRINFO_family 3766 1_1_0 EXIST::FUNCTION:SOCK +PEM_write_DHxparams 3767 1_1_0 EXIST::FUNCTION:DH,STDIO +BN_mod_exp2_mont 3768 1_1_0 EXIST::FUNCTION: +ASN1_PRINTABLE_free 3769 1_1_0 EXIST::FUNCTION: +PKCS7_ATTR_SIGN_it 3771 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ATTR_SIGN_it 3771 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +EVP_MD_CTX_copy 3772 1_1_0 EXIST::FUNCTION: +ENGINE_set_ctrl_function 3773 1_1_0 EXIST::FUNCTION:ENGINE +OCSP_id_get0_info 3774 1_1_0 EXIST::FUNCTION:OCSP +BIO_ADDRINFO_next 3775 1_1_0 EXIST::FUNCTION:SOCK +OCSP_RESPBYTES_free 3776 1_1_0 EXIST::FUNCTION:OCSP +EC_KEY_METHOD_set_init 3777 1_1_0 EXIST::FUNCTION:EC +EVP_PKEY_asn1_copy 3778 1_1_0 EXIST::FUNCTION: +RSA_PSS_PARAMS_it 3779 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA +RSA_PSS_PARAMS_it 3779 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA +X509_STORE_CTX_get_error_depth 3780 1_1_0 EXIST::FUNCTION: +ASN1_GENERALIZEDTIME_set_string 3781 1_1_0 EXIST::FUNCTION: +EC_GROUP_new_curve_GFp 3782 1_1_0 EXIST::FUNCTION:EC +UI_new_method 3783 1_1_0 EXIST::FUNCTION: +Camellia_ofb128_encrypt 3784 1_1_0 EXIST::FUNCTION:CAMELLIA +X509_new 3785 1_1_0 EXIST::FUNCTION: +EC_KEY_get_conv_form 3786 1_1_0 EXIST::FUNCTION:EC +CTLOG_STORE_get0_log_by_id 3787 1_1_0 EXIST::FUNCTION:CT +CMS_signed_add1_attr 3788 1_1_0 EXIST::FUNCTION:CMS +EVP_CIPHER_meth_set_iv_length 3789 1_1_0 EXIST::FUNCTION: +X509v3_asid_validate_path 3790 1_1_0 EXIST::FUNCTION:RFC3779 +CMS_RecipientInfo_set0_password 3791 1_1_0 EXIST::FUNCTION:CMS +TS_CONF_load_cert 3792 1_1_0 EXIST::FUNCTION:TS +i2d_ECPKParameters 3793 1_1_0 EXIST::FUNCTION:EC +X509_TRUST_get0 3794 1_1_0 EXIST::FUNCTION: +CMS_get0_RecipientInfos 3795 1_1_0 EXIST::FUNCTION:CMS +EVP_PKEY_CTX_new 3796 1_1_0 EXIST::FUNCTION: +i2d_DSA_PUBKEY_bio 3797 1_1_0 EXIST::FUNCTION:DSA +X509_REQ_get_subject_name 3798 1_1_0 EXIST::FUNCTION: +BN_div_word 3799 1_1_0 EXIST::FUNCTION: +TS_CONF_set_signer_key 3800 1_1_0 EXIST::FUNCTION:TS +BN_GF2m_mod_sqrt 3801 1_1_0 EXIST::FUNCTION:EC2M +EVP_CIPHER_nid 3802 1_1_0 EXIST::FUNCTION: +OBJ_txt2obj 3803 1_1_0 EXIST::FUNCTION: +CMS_RecipientInfo_kari_get0_orig_id 3804 1_1_0 EXIST::FUNCTION:CMS +EVP_bf_ecb 3805 1_1_0 EXIST::FUNCTION:BF +v2i_GENERAL_NAME_ex 3806 1_1_0 EXIST::FUNCTION: +CMS_signed_delete_attr 3807 1_1_0 EXIST::FUNCTION:CMS +ASN1_TYPE_pack_sequence 3808 1_1_0 EXIST::FUNCTION: +USERNOTICE_it 3809 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +USERNOTICE_it 3809 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKEY_USAGE_PERIOD_it 3810 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKEY_USAGE_PERIOD_it 3810 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +BN_mul_word 3811 1_1_0 EXIST::FUNCTION: +i2d_IPAddressRange 3813 1_1_0 EXIST::FUNCTION:RFC3779 +CMS_unsigned_add1_attr_by_txt 3814 1_1_0 EXIST::FUNCTION:CMS +d2i_RSA_PUBKEY 3815 1_1_0 EXIST::FUNCTION:RSA +PKCS12_gen_mac 3816 1_1_0 EXIST::FUNCTION: +ERR_load_ENGINE_strings 3817 1_1_0 EXIST::FUNCTION:ENGINE +ERR_load_CT_strings 3818 1_1_0 EXIST::FUNCTION:CT +OCSP_ONEREQ_it 3819 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_ONEREQ_it 3819 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +X509_PURPOSE_get_by_sname 3820 1_1_0 EXIST::FUNCTION: +X509_PURPOSE_set 3821 1_1_0 EXIST::FUNCTION: +BN_mod_inverse 3822 1_1_0 EXIST::FUNCTION: +ASN1_STRING_TABLE_get 3823 1_1_0 EXIST::FUNCTION: +BN_bn2binpad 3824 1_1_0 EXIST::FUNCTION: +X509_supported_extension 3825 1_1_0 EXIST::FUNCTION: +ECDSA_sign_setup 3826 1_1_0 EXIST::FUNCTION:EC +EVP_camellia_192_cfb128 3827 1_1_0 EXIST::FUNCTION:CAMELLIA +d2i_AUTHORITY_KEYID 3828 1_1_0 EXIST::FUNCTION: +RIPEMD160_Transform 3829 1_1_0 EXIST::FUNCTION:RMD160 +DES_random_key 3830 1_1_0 EXIST::FUNCTION:DES +i2d_PKCS12_MAC_DATA 3831 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get0_EC_KEY 3832 1_1_0 EXIST::FUNCTION:EC +ASN1_SCTX_get_item 3833 1_1_0 EXIST::FUNCTION: +NOTICEREF_new 3834 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod_inv 3835 1_1_0 EXIST::FUNCTION:EC2M +X509_CERT_AUX_free 3836 1_1_0 EXIST::FUNCTION: +BN_GF2m_mod_inv_arr 3837 1_1_0 EXIST::FUNCTION:EC2M +X509_REQ_get1_email 3838 1_1_0 EXIST::FUNCTION: +EC_KEY_print 3839 1_1_0 EXIST::FUNCTION:EC +i2d_ASN1_INTEGER 3840 1_1_0 EXIST::FUNCTION: +OCSP_SINGLERESP_add1_ext_i2d 3841 1_1_0 EXIST::FUNCTION:OCSP +PKCS7_add_signed_attribute 3842 1_1_0 EXIST::FUNCTION: +i2d_PrivateKey_bio 3843 1_1_0 EXIST::FUNCTION: +RSA_padding_add_PKCS1_type_1 3844 1_1_0 EXIST::FUNCTION:RSA +i2d_re_X509_tbs 3845 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_iv_length 3846 1_1_0 EXIST::FUNCTION: +OCSP_REQ_CTX_get0_mem_bio 3847 1_1_0 EXIST::FUNCTION:OCSP +i2d_PKCS8PrivateKeyInfo_bio 3848 1_1_0 EXIST::FUNCTION: +d2i_OCSP_CERTID 3849 1_1_0 EXIST::FUNCTION:OCSP +EVP_CIPHER_meth_set_init 3850 1_1_0 EXIST::FUNCTION: +RIPEMD160_Final 3851 1_1_0 EXIST::FUNCTION:RMD160 +NETSCAPE_SPKI_free 3852 1_1_0 EXIST::FUNCTION: +BIO_asn1_get_prefix 3853 1_1_0 EXIST::FUNCTION: +d2i_OCSP_ONEREQ 3854 1_1_0 EXIST::FUNCTION:OCSP +EVP_PKEY_asn1_set_security_bits 3855 1_1_0 EXIST::FUNCTION: +i2d_CERTIFICATEPOLICIES 3856 1_1_0 EXIST::FUNCTION: +i2d_X509_CERT_AUX 3857 1_1_0 EXIST::FUNCTION: +i2o_ECPublicKey 3858 1_1_0 EXIST::FUNCTION:EC +PKCS12_SAFEBAG_create0_pkcs8 3859 1_1_0 EXIST::FUNCTION: +OBJ_get0_data 3860 1_1_0 EXIST::FUNCTION: +EC_GROUP_get0_seed 3861 1_1_0 EXIST::FUNCTION:EC +OCSP_REQUEST_it 3862 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_REQUEST_it 3862 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +ASRange_it 3863 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 +ASRange_it 3863 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 +i2d_TS_RESP 3864 1_1_0 EXIST::FUNCTION:TS +TS_TST_INFO_get_ext_by_OBJ 3865 1_1_0 EXIST::FUNCTION:TS +d2i_PKCS7_RECIP_INFO 3866 1_1_0 EXIST::FUNCTION: +d2i_X509_CRL 3867 1_1_0 EXIST::FUNCTION: +ASN1_OCTET_STRING_dup 3868 1_1_0 EXIST::FUNCTION: +CRYPTO_nistcts128_decrypt_block 3869 1_1_0 EXIST::FUNCTION: +CMS_stream 3870 1_1_0 EXIST::FUNCTION:CMS +RSA_OAEP_PARAMS_it 3871 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA +RSA_OAEP_PARAMS_it 3871 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA +BN_bn2mpi 3872 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_cleanup 3873 1_1_0 EXIST::FUNCTION: +OCSP_onereq_get0_id 3874 1_1_0 EXIST::FUNCTION:OCSP +X509_get_default_cert_dir 3875 1_1_0 EXIST::FUNCTION: +PROXY_POLICY_free 3877 1_1_0 EXIST::FUNCTION: +PEM_write_DSAPrivateKey 3878 1_1_0 EXIST::FUNCTION:DSA,STDIO +OPENSSL_sk_delete_ptr 3879 1_1_0 EXIST::FUNCTION: +CMS_add0_RevocationInfoChoice 3880 1_1_0 EXIST::FUNCTION:CMS +ASN1_PCTX_get_flags 3881 1_1_0 EXIST::FUNCTION: +EVP_MD_meth_set_result_size 3882 1_1_0 EXIST::FUNCTION: +i2d_X509_CRL 3883 1_1_0 EXIST::FUNCTION: +ASN1_INTEGER_it 3885 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_INTEGER_it 3885 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +TS_ACCURACY_new 3886 1_1_0 EXIST::FUNCTION:TS +i2d_SXNETID 3887 1_1_0 EXIST::FUNCTION: +BN_mod_mul_montgomery 3888 1_1_0 EXIST::FUNCTION: +BN_nnmod 3889 1_1_0 EXIST::FUNCTION: +TS_RESP_CTX_set_status_info_cond 3890 1_1_0 EXIST::FUNCTION:TS +PBKDF2PARAM_new 3891 1_1_0 EXIST::FUNCTION: +ENGINE_set_RSA 3892 1_1_0 EXIST::FUNCTION:ENGINE +i2d_X509_ATTRIBUTE 3893 1_1_0 EXIST::FUNCTION: +PKCS7_ctrl 3894 1_1_0 EXIST::FUNCTION: +OCSP_REVOKEDINFO_it 3895 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP +OCSP_REVOKEDINFO_it 3895 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP +X509V3_set_ctx 3896 1_1_0 EXIST::FUNCTION: +ASN1_ENUMERATED_set_int64 3897 1_1_0 EXIST::FUNCTION: +o2i_SCT 3898 1_1_0 EXIST::FUNCTION:CT +CRL_DIST_POINTS_free 3899 1_1_0 EXIST::FUNCTION: +d2i_OCSP_SINGLERESP 3900 1_1_0 EXIST::FUNCTION:OCSP +EVP_CIPHER_CTX_num 3901 1_1_0 EXIST::FUNCTION: +EVP_PKEY_verify_recover_init 3902 1_1_0 EXIST::FUNCTION: +SHA512_Init 3903 1_1_0 EXIST::FUNCTION: +TS_MSG_IMPRINT_set_msg 3904 1_1_0 EXIST::FUNCTION:TS +CMS_unsigned_add1_attr 3905 1_1_0 EXIST::FUNCTION:CMS +OPENSSL_LH_doall 3906 1_1_0 EXIST::FUNCTION: +PKCS8_pkey_get0_attrs 3907 1_1_0 EXIST::FUNCTION: +PKCS8_pkey_add1_attr_by_NID 3908 1_1_0 EXIST::FUNCTION: +ASYNC_is_capable 3909 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_set_cipher_data 3910 1_1_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_get_cipher_data 3911 1_1_0 EXIST::FUNCTION: +BIO_up_ref 3912 1_1_0 EXIST::FUNCTION: +X509_STORE_up_ref 3913 1_1_0 EXIST::FUNCTION: +DSA_SIG_get0 3914 1_1_0 EXIST::FUNCTION:DSA +BN_BLINDING_is_current_thread 3915 1_1_0 EXIST::FUNCTION: +BN_BLINDING_set_current_thread 3916 1_1_0 EXIST::FUNCTION: +BN_BLINDING_lock 3917 1_1_0 EXIST::FUNCTION: +BN_BLINDING_unlock 3918 1_1_0 EXIST::FUNCTION: +EC_GROUP_new_from_ecpkparameters 3919 1_1_0 EXIST::FUNCTION:EC +EC_GROUP_get_ecpkparameters 3920 1_1_0 EXIST::FUNCTION:EC +EC_GROUP_new_from_ecparameters 3921 1_1_0 EXIST::FUNCTION:EC +ECPARAMETERS_it 3922 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:EC +ECPARAMETERS_it 3922 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:EC +ECPKPARAMETERS_it 3923 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:EC +ECPKPARAMETERS_it 3923 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:EC +EC_GROUP_get_ecparameters 3924 1_1_0 EXIST::FUNCTION:EC +DHparams_it 3925 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DH +DHparams_it 3925 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DH +EVP_blake2s256 3926 1_1_0 EXIST::FUNCTION:BLAKE2 +EVP_blake2b512 3927 1_1_0 EXIST::FUNCTION:BLAKE2 +X509_SIG_get0 3928 1_1_0 EXIST::FUNCTION: +BIO_meth_new 3929 1_1_0 EXIST::FUNCTION: +BIO_meth_get_puts 3930 1_1_0 EXIST::FUNCTION: +BIO_meth_get_ctrl 3931 1_1_0 EXIST::FUNCTION: +BIO_meth_get_gets 3932 1_1_0 EXIST::FUNCTION: +BIO_get_data 3933 1_1_0 EXIST::FUNCTION: +BIO_set_init 3934 1_1_0 EXIST::FUNCTION: +BIO_meth_set_puts 3935 1_1_0 EXIST::FUNCTION: +BIO_get_shutdown 3936 1_1_0 EXIST::FUNCTION: +BIO_get_init 3937 1_1_0 EXIST::FUNCTION: +BIO_meth_set_ctrl 3938 1_1_0 EXIST::FUNCTION: +BIO_meth_set_read 3939 1_1_0 EXIST::FUNCTION: +BIO_set_shutdown 3940 1_1_0 EXIST::FUNCTION: +BIO_meth_set_create 3941 1_1_0 EXIST::FUNCTION: +BIO_meth_get_write 3942 1_1_0 EXIST::FUNCTION: +BIO_meth_set_callback_ctrl 3943 1_1_0 EXIST::FUNCTION: +BIO_meth_get_create 3944 1_1_0 EXIST::FUNCTION: +BIO_set_next 3945 1_1_0 EXIST::FUNCTION: +BIO_set_data 3946 1_1_0 EXIST::FUNCTION: +BIO_meth_set_write 3947 1_1_0 EXIST::FUNCTION: +BIO_meth_set_destroy 3948 1_1_0 EXIST::FUNCTION: +BIO_meth_set_gets 3949 1_1_0 EXIST::FUNCTION: +BIO_meth_get_callback_ctrl 3950 1_1_0 EXIST::FUNCTION: +BIO_meth_get_destroy 3951 1_1_0 EXIST::FUNCTION: +BIO_meth_get_read 3952 1_1_0 EXIST::FUNCTION: +BIO_set_retry_reason 3953 1_1_0 EXIST::FUNCTION: +BIO_meth_free 3954 1_1_0 EXIST::FUNCTION: +DSA_meth_set_bn_mod_exp 3955 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_init 3956 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_free 3957 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_mod_exp 3958 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_sign 3959 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_finish 3960 1_1_0 EXIST::FUNCTION:DSA +DSA_set_flags 3961 1_1_0 EXIST::FUNCTION:DSA +DSA_get0_pqg 3962 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get0_app_data 3963 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_keygen 3964 1_1_0 EXIST::FUNCTION:DSA +DSA_clear_flags 3965 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get0_name 3966 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_paramgen 3967 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_sign 3968 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_paramgen 3969 1_1_0 EXIST::FUNCTION:DSA +DSA_test_flags 3970 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set0_app_data 3971 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set1_name 3972 1_1_0 EXIST::FUNCTION:DSA +DSA_get0_key 3973 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_mod_exp 3974 1_1_0 EXIST::FUNCTION:DSA +DSA_set0_pqg 3975 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_flags 3976 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_verify 3977 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_verify 3978 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_finish 3979 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_keygen 3980 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_dup 3981 1_1_0 EXIST::FUNCTION:DSA +DSA_set0_key 3982 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_init 3983 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_sign_setup 3984 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_bn_mod_exp 3985 1_1_0 EXIST::FUNCTION:DSA +DSA_get_method 3986 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_new 3987 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_set_flags 3988 1_1_0 EXIST::FUNCTION:DSA +DSA_meth_get_sign_setup 3989 1_1_0 EXIST::FUNCTION:DSA +DSA_get0_engine 3990 1_1_0 EXIST::FUNCTION:DSA +X509_VERIFY_PARAM_set_auth_level 3991 1_1_0 EXIST::FUNCTION: +X509_VERIFY_PARAM_get_auth_level 3992 1_1_0 EXIST::FUNCTION: +X509_REQ_get0_pubkey 3993 1_1_0 EXIST::FUNCTION: +RSA_set0_key 3994 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_flags 3995 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_finish 3996 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_priv_dec 3997 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_sign 3998 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_bn_mod_exp 3999 1_1_0 EXIST::FUNCTION:RSA +RSA_test_flags 4000 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_new 4001 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get0_app_data 4002 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_dup 4003 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set1_name 4004 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set0_app_data 4005 1_1_0 EXIST::FUNCTION:RSA +RSA_set_flags 4006 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_sign 4007 1_1_0 EXIST::FUNCTION:RSA +RSA_clear_flags 4008 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_keygen 4009 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_keygen 4010 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_pub_dec 4011 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_finish 4012 1_1_0 EXIST::FUNCTION:RSA +RSA_get0_key 4013 1_1_0 EXIST::FUNCTION:RSA +RSA_get0_engine 4014 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_priv_enc 4015 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_verify 4016 1_1_0 EXIST::FUNCTION:RSA +RSA_get0_factors 4017 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get0_name 4018 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_mod_exp 4019 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_flags 4020 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_pub_dec 4021 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_bn_mod_exp 4022 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_init 4023 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_free 4024 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_pub_enc 4025 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_mod_exp 4026 1_1_0 EXIST::FUNCTION:RSA +RSA_set0_factors 4027 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_pub_enc 4028 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_priv_dec 4029 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_verify 4030 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_set_init 4031 1_1_0 EXIST::FUNCTION:RSA +RSA_meth_get_priv_enc 4032 1_1_0 EXIST::FUNCTION:RSA +RSA_set0_crt_params 4037 1_1_0 EXIST::FUNCTION:RSA +RSA_get0_crt_params 4038 1_1_0 EXIST::FUNCTION:RSA +DH_set0_pqg 4039 1_1_0 EXIST::FUNCTION:DH +DH_clear_flags 4041 1_1_0 EXIST::FUNCTION:DH +DH_get0_key 4042 1_1_0 EXIST::FUNCTION:DH +DH_get0_engine 4043 1_1_0 EXIST::FUNCTION:DH +DH_set0_key 4044 1_1_0 EXIST::FUNCTION:DH +DH_set_length 4045 1_1_0 EXIST::FUNCTION:DH +DH_test_flags 4046 1_1_0 EXIST::FUNCTION:DH +DH_get_length 4047 1_1_0 EXIST::FUNCTION:DH +DH_get0_pqg 4048 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_compute_key 4049 1_1_0 EXIST::FUNCTION:DH +DH_meth_set1_name 4050 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_init 4051 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_finish 4052 1_1_0 EXIST::FUNCTION:DH +DH_meth_get0_name 4053 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_generate_params 4054 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_compute_key 4055 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_flags 4056 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_generate_params 4057 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_flags 4058 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_finish 4059 1_1_0 EXIST::FUNCTION:DH +DH_meth_get0_app_data 4060 1_1_0 EXIST::FUNCTION:DH +DH_meth_set0_app_data 4061 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_init 4062 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_bn_mod_exp 4063 1_1_0 EXIST::FUNCTION:DH +DH_meth_new 4064 1_1_0 EXIST::FUNCTION:DH +DH_meth_dup 4065 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_bn_mod_exp 4066 1_1_0 EXIST::FUNCTION:DH +DH_meth_set_generate_key 4067 1_1_0 EXIST::FUNCTION:DH +DH_meth_free 4068 1_1_0 EXIST::FUNCTION:DH +DH_meth_get_generate_key 4069 1_1_0 EXIST::FUNCTION:DH +DH_set_flags 4070 1_1_0 EXIST::FUNCTION:DH +X509_STORE_CTX_get_obj_by_subject 4071 1_1_0 EXIST::FUNCTION: +X509_OBJECT_free 4072 1_1_0 EXIST::FUNCTION: +X509_OBJECT_get0_X509 4073 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_untrusted 4074 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_error_depth 4075 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get0_cert 4076 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_verify 4077 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set_current_cert 4078 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_verify 4079 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_verify_cb 4080 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set0_verified_chain 4081 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_set0_untrusted 4082 1_1_0 EXIST::FUNCTION: +OPENSSL_hexchar2int 4083 1_1_0 EXIST::FUNCTION: +X509_STORE_set_ex_data 4084 1_1_0 EXIST::FUNCTION: +X509_STORE_get_ex_data 4085 1_1_0 EXIST::FUNCTION: +X509_STORE_get0_objects 4086 1_1_0 EXIST::FUNCTION: +X509_OBJECT_get_type 4087 1_1_0 EXIST::FUNCTION: +X509_STORE_set_verify 4088 1_1_0 EXIST::FUNCTION: +X509_OBJECT_new 4089 1_1_0 EXIST::FUNCTION: +X509_STORE_get0_param 4090 1_1_0 EXIST::FUNCTION: +PEM_write_bio_PrivateKey_traditional 4091 1_1_0 EXIST::FUNCTION: +X509_get_pathlen 4092 1_1_0 EXIST::FUNCTION: +ECDSA_SIG_set0 4093 1_1_0 EXIST::FUNCTION:EC +DSA_SIG_set0 4094 1_1_0 EXIST::FUNCTION:DSA +EVP_PKEY_get0_hmac 4095 1_1_0 EXIST::FUNCTION: +HMAC_CTX_get_md 4096 1_1_0 EXIST::FUNCTION: +NAME_CONSTRAINTS_check_CN 4097 1_1_0 EXIST::FUNCTION: +OCSP_resp_get0_id 4098 1_1_0 EXIST::FUNCTION:OCSP +OCSP_resp_get0_certs 4099 1_1_0 EXIST::FUNCTION:OCSP +X509_set_proxy_flag 4100 1_1_0 EXIST::FUNCTION: +EVP_ENCODE_CTX_copy 4101 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_check_issued 4102 1_1_0 EXIST::FUNCTION: +X509_STORE_set_lookup_certs 4103 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_check_crl 4104 1_1_0 EXIST::FUNCTION: +X509_STORE_get_cleanup 4105 1_1_0 EXIST::FUNCTION: +X509_STORE_get_lookup_crls 4106 1_1_0 EXIST::FUNCTION: +X509_STORE_get_cert_crl 4107 1_1_0 EXIST::FUNCTION: +X509_STORE_get_lookup_certs 4108 1_1_0 EXIST::FUNCTION: +X509_STORE_get_check_revocation 4109 1_1_0 EXIST::FUNCTION: +X509_STORE_set_get_crl 4110 1_1_0 EXIST::FUNCTION: +X509_STORE_set_check_issued 4111 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_check_policy 4112 1_1_0 EXIST::FUNCTION: +X509_STORE_get_check_crl 4113 1_1_0 EXIST::FUNCTION: +X509_STORE_set_check_crl 4114 1_1_0 EXIST::FUNCTION: +X509_STORE_get_check_issued 4115 1_1_0 EXIST::FUNCTION: +X509_STORE_get_get_issuer 4116 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_get_crl 4117 1_1_0 EXIST::FUNCTION: +X509_STORE_set_get_issuer 4118 1_1_0 EXIST::FUNCTION: +X509_STORE_set_cleanup 4119 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_cleanup 4120 1_1_0 EXIST::FUNCTION: +X509_STORE_get_get_crl 4121 1_1_0 EXIST::FUNCTION: +X509_STORE_set_check_revocation 4122 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_cert_crl 4123 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_lookup_certs 4124 1_1_0 EXIST::FUNCTION: +X509_STORE_set_check_policy 4125 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_get_issuer 4126 1_1_0 EXIST::FUNCTION: +X509_STORE_get_check_policy 4127 1_1_0 EXIST::FUNCTION: +X509_STORE_set_cert_crl 4128 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_check_revocation 4129 1_1_0 EXIST::FUNCTION: +X509_STORE_get_verify_cb 4130 1_1_0 EXIST::FUNCTION: +X509_STORE_CTX_get_lookup_crls 4131 1_1_0 EXIST::FUNCTION: +X509_STORE_get_verify 4132 1_1_0 EXIST::FUNCTION: +X509_STORE_unlock 4133 1_1_0 EXIST::FUNCTION: +X509_STORE_lock 4134 1_1_0 EXIST::FUNCTION: +X509_set_proxy_pathlen 4135 1_1_0 EXIST::FUNCTION: +X509_get_proxy_pathlen 4136 1_1_0 EXIST::FUNCTION: +DSA_bits 4137 1_1_0 EXIST::FUNCTION:DSA +EVP_PKEY_set1_tls_encodedpoint 4138 1_1_0 EXIST::FUNCTION: +EVP_PKEY_get1_tls_encodedpoint 4139 1_1_0 EXIST::FUNCTION: +ASN1_STRING_get0_data 4140 1_1_0 EXIST::FUNCTION: +X509_SIG_getm 4141 1_1_0 EXIST::FUNCTION: +X509_get0_serialNumber 4142 1_1_0 EXIST::FUNCTION: +PKCS12_get_attr 4143 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +X509_CRL_get0_lastUpdate 4144 1_1_0 EXIST::FUNCTION: +X509_get0_notBefore 4145 1_1_0 EXIST::FUNCTION: +X509_get0_notAfter 4146 1_1_0 EXIST::FUNCTION: +X509_CRL_get0_nextUpdate 4147 1_1_0 EXIST::FUNCTION: +BIO_get_new_index 4148 1_1_0 EXIST::FUNCTION: +OPENSSL_utf82uni 4149 1_1_0 EXIST::FUNCTION: +PKCS12_add_friendlyname_utf8 4150 1_1_0 EXIST::FUNCTION: +OPENSSL_uni2utf8 4151 1_1_0 EXIST::FUNCTION: +PKCS12_key_gen_utf8 4152 1_1_0 EXIST::FUNCTION: +ECPKPARAMETERS_free 4153 1_1_0 EXIST::FUNCTION:EC +ECPARAMETERS_free 4154 1_1_0 EXIST::FUNCTION:EC +ECPKPARAMETERS_new 4155 1_1_0 EXIST::FUNCTION:EC +ECPARAMETERS_new 4156 1_1_0 EXIST::FUNCTION:EC +OCSP_RESPID_set_by_name 4157 1_1_0a EXIST::FUNCTION:OCSP +OCSP_RESPID_set_by_key 4158 1_1_0a EXIST::FUNCTION:OCSP +OCSP_RESPID_match 4159 1_1_0a EXIST::FUNCTION:OCSP +ASN1_ITEM_lookup 4160 1_1_1 EXIST::FUNCTION: +ASN1_ITEM_get 4161 1_1_1 EXIST::FUNCTION: +BIO_read_ex 4162 1_1_1 EXIST::FUNCTION: +BIO_set_callback_ex 4163 1_1_1 EXIST::FUNCTION: +BIO_get_callback_ex 4164 1_1_1 EXIST::FUNCTION: +BIO_meth_set_read_ex 4165 1_1_1 EXIST::FUNCTION: +BIO_meth_get_read_ex 4166 1_1_1 EXIST::FUNCTION: +BIO_write_ex 4167 1_1_1 EXIST::FUNCTION: +BIO_meth_get_write_ex 4168 1_1_1 EXIST::FUNCTION: +BIO_meth_set_write_ex 4169 1_1_1 EXIST::FUNCTION: +DSO_pathbyaddr 4170 1_1_0c EXIST::FUNCTION: +DSO_dsobyaddr 4171 1_1_0c EXIST::FUNCTION: +CT_POLICY_EVAL_CTX_get_time 4172 1_1_0d EXIST::FUNCTION:CT +CT_POLICY_EVAL_CTX_set_time 4173 1_1_0d EXIST::FUNCTION:CT +X509_VERIFY_PARAM_set_inh_flags 4174 1_1_0d EXIST::FUNCTION: +X509_VERIFY_PARAM_get_inh_flags 4175 1_1_0d EXIST::FUNCTION: +EVP_PKEY_CTX_md 4176 1_1_1 EXIST::FUNCTION: +RSA_pkey_ctx_ctrl 4177 1_1_1 EXIST::FUNCTION:RSA +UI_method_set_ex_data 4178 1_1_1 EXIST::FUNCTION: +UI_method_get_ex_data 4179 1_1_1 EXIST::FUNCTION: +UI_UTIL_wrap_read_pem_callback 4180 1_1_1 EXIST::FUNCTION: +X509_VERIFY_PARAM_get_time 4181 1_1_0d EXIST::FUNCTION: +EVP_PKEY_get0_poly1305 4182 1_1_1 EXIST::FUNCTION:POLY1305 +DH_check_params 4183 1_1_0d EXIST::FUNCTION:DH +EVP_PKEY_get0_siphash 4184 1_1_1 EXIST::FUNCTION:SIPHASH +EVP_aria_256_ofb 4185 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_cfb128 4186 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_cfb1 4187 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_ecb 4188 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_cfb128 4189 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_ecb 4190 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_cbc 4191 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_ofb 4192 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_cbc 4193 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_cfb1 4194 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_cfb8 4195 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_cfb1 4196 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_cfb8 4197 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_cfb8 4198 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_cbc 4199 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_ofb 4200 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_cfb128 4201 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_ecb 4202 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_ctr 4203 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_ctr 4204 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_ctr 4205 1_1_1 EXIST::FUNCTION:ARIA +UI_null 4206 1_1_1 EXIST::FUNCTION: +EC_KEY_get0_engine 4207 1_1_1 EXIST::FUNCTION:EC +INT32_it 4208 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +INT32_it 4208 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +UINT64_it 4209 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +UINT64_it 4209 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ZINT32_it 4210 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ZINT32_it 4210 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ZUINT64_it 4211 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ZUINT64_it 4211 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +INT64_it 4212 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +INT64_it 4212 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ZUINT32_it 4213 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ZUINT32_it 4213 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +UINT32_it 4214 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +UINT32_it 4214 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ZINT64_it 4215 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ZINT64_it 4215 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CRYPTO_mem_leaks_cb 4216 1_1_1 EXIST::FUNCTION:CRYPTO_MDEBUG +BIO_lookup_ex 4217 1_1_1 EXIST::FUNCTION:SOCK +X509_CRL_print_ex 4218 1_1_1 EXIST::FUNCTION: +X509_SIG_INFO_get 4219 1_1_1 EXIST::FUNCTION: +X509_get_signature_info 4220 1_1_1 EXIST::FUNCTION: +X509_SIG_INFO_set 4221 1_1_1 EXIST::FUNCTION: +ESS_CERT_ID_V2_free 4222 1_1_1 EXIST::FUNCTION:TS +ESS_SIGNING_CERT_V2_new 4223 1_1_1 EXIST::FUNCTION:TS +d2i_ESS_SIGNING_CERT_V2 4224 1_1_1 EXIST::FUNCTION:TS +i2d_ESS_CERT_ID_V2 4225 1_1_1 EXIST::FUNCTION:TS +ESS_CERT_ID_V2_dup 4226 1_1_1 EXIST::FUNCTION:TS +TS_RESP_CTX_set_ess_cert_id_digest 4227 1_1_1 EXIST::FUNCTION:TS +d2i_ESS_CERT_ID_V2 4228 1_1_1 EXIST::FUNCTION:TS +i2d_ESS_SIGNING_CERT_V2 4229 1_1_1 EXIST::FUNCTION:TS +TS_CONF_set_ess_cert_id_digest 4230 1_1_1 EXIST::FUNCTION:TS +ESS_SIGNING_CERT_V2_free 4231 1_1_1 EXIST::FUNCTION:TS +ESS_SIGNING_CERT_V2_dup 4232 1_1_1 EXIST::FUNCTION:TS +ESS_CERT_ID_V2_new 4233 1_1_1 EXIST::FUNCTION:TS +PEM_read_bio_ex 4234 1_1_1 EXIST::FUNCTION: +PEM_bytes_read_bio_secmem 4235 1_1_1 EXIST::FUNCTION: +EVP_DigestSign 4236 1_1_1 EXIST::FUNCTION: +EVP_DigestVerify 4237 1_1_1 EXIST::FUNCTION: +UI_method_get_data_duplicator 4238 1_1_1 EXIST::FUNCTION: +UI_method_set_data_duplicator 4239 1_1_1 EXIST::FUNCTION: +UI_dup_user_data 4240 1_1_1 EXIST::FUNCTION: +UI_method_get_data_destructor 4241 1_1_1 EXIST::FUNCTION: +ERR_load_strings_const 4242 1_1_1 EXIST::FUNCTION: +ASN1_TIME_to_tm 4243 1_1_1 EXIST::FUNCTION: +ASN1_TIME_set_string_X509 4244 1_1_1 EXIST::FUNCTION: +OCSP_resp_get1_id 4245 1_1_1 EXIST::FUNCTION:OCSP +OSSL_STORE_register_loader 4246 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_set_error 4247 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get0_PKEY 4248 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get_type 4249 1_1_1 EXIST::FUNCTION: +ERR_load_OSSL_STORE_strings 4250 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_free 4251 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get1_PKEY 4252 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_free 4253 1_1_1 EXIST::FUNCTION: +OSSL_STORE_open_file 4254 1_1_1 NOEXIST::FUNCTION: +OSSL_STORE_LOADER_set_eof 4255 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_new 4256 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get0_CERT 4257 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_set_close 4258 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_new_PARAMS 4259 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_new_PKEY 4260 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get1_PARAMS 4261 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get1_CRL 4262 1_1_1 EXIST::FUNCTION: +OSSL_STORE_error 4263 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get1_CERT 4264 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get0_PARAMS 4265 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_type_string 4266 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get1_NAME 4267 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_set_load 4268 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_get0_scheme 4269 1_1_1 EXIST::FUNCTION: +OSSL_STORE_open 4270 1_1_1 EXIST::FUNCTION: +OSSL_STORE_close 4271 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_new_CERT 4272 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get0_CRL 4273 1_1_1 EXIST::FUNCTION: +OSSL_STORE_load 4274 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get0_NAME 4275 1_1_1 EXIST::FUNCTION: +OSSL_STORE_unregister_loader 4276 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_new_CRL 4277 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_new_NAME 4278 1_1_1 EXIST::FUNCTION: +OSSL_STORE_eof 4279 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_set_open 4280 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_set_ctrl 4281 1_1_1 EXIST::FUNCTION: +OSSL_STORE_ctrl 4282 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get0_NAME_description 4283 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_set0_NAME_description 4284 1_1_1 EXIST::FUNCTION: +OSSL_STORE_INFO_get1_NAME_description 4285 1_1_1 EXIST::FUNCTION: +OSSL_STORE_do_all_loaders 4286 1_1_1 EXIST::FUNCTION: +OSSL_STORE_LOADER_get0_engine 4287 1_1_1 EXIST::FUNCTION: +OPENSSL_fork_prepare 4288 1_1_1 EXIST:UNIX:FUNCTION: +OPENSSL_fork_parent 4289 1_1_1 EXIST:UNIX:FUNCTION: +OPENSSL_fork_child 4290 1_1_1 EXIST:UNIX:FUNCTION: +RAND_DRBG_instantiate 4292 1_1_1 EXIST::FUNCTION: +RAND_DRBG_uninstantiate 4293 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set 4295 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set_callbacks 4296 1_1_1 EXIST::FUNCTION: +RAND_DRBG_new 4297 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set_reseed_interval 4298 1_1_1 EXIST::FUNCTION: +RAND_DRBG_free 4299 1_1_1 EXIST::FUNCTION: +RAND_DRBG_generate 4300 1_1_1 EXIST::FUNCTION: +RAND_DRBG_reseed 4301 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set_ex_data 4302 1_1_1 EXIST::FUNCTION: +RAND_DRBG_get_ex_data 4303 1_1_1 EXIST::FUNCTION: +EVP_sha3_224 4304 1_1_1 EXIST::FUNCTION: +EVP_sha3_256 4305 1_1_1 EXIST::FUNCTION: +EVP_sha3_384 4306 1_1_1 EXIST::FUNCTION: +EVP_sha3_512 4307 1_1_1 EXIST::FUNCTION: +EVP_shake128 4308 1_1_1 EXIST::FUNCTION: +EVP_shake256 4309 1_1_1 EXIST::FUNCTION: +SCRYPT_PARAMS_new 4310 1_1_1 EXIST::FUNCTION:SCRYPT +SCRYPT_PARAMS_free 4311 1_1_1 EXIST::FUNCTION:SCRYPT +i2d_SCRYPT_PARAMS 4312 1_1_1 EXIST::FUNCTION:SCRYPT +d2i_SCRYPT_PARAMS 4313 1_1_1 EXIST::FUNCTION:SCRYPT +SCRYPT_PARAMS_it 4314 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:SCRYPT +SCRYPT_PARAMS_it 4314 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:SCRYPT +CRYPTO_secure_clear_free 4315 1_1_0g EXIST::FUNCTION: +EVP_PKEY_meth_get0 4316 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_get_count 4317 1_1_1 EXIST::FUNCTION: +RAND_DRBG_get0_public 4319 1_1_1 EXIST::FUNCTION: +RAND_priv_bytes 4320 1_1_1 EXIST::FUNCTION: +BN_priv_rand 4321 1_1_1 EXIST::FUNCTION: +BN_priv_rand_range 4322 1_1_1 EXIST::FUNCTION: +ASN1_TIME_normalize 4323 1_1_1 EXIST::FUNCTION: +ASN1_TIME_cmp_time_t 4324 1_1_1 EXIST::FUNCTION: +ASN1_TIME_compare 4325 1_1_1 EXIST::FUNCTION: +EVP_PKEY_CTX_ctrl_uint64 4326 1_1_1 EXIST::FUNCTION: +EVP_DigestFinalXOF 4327 1_1_1 EXIST::FUNCTION: +ERR_clear_last_mark 4328 1_1_1 EXIST::FUNCTION: +RAND_DRBG_get0_private 4329 1_1_1 EXIST::FUNCTION: +EVP_aria_192_ccm 4330 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_gcm 4331 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_256_ccm 4332 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_gcm 4333 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_128_ccm 4334 1_1_1 EXIST::FUNCTION:ARIA +EVP_aria_192_gcm 4335 1_1_1 EXIST::FUNCTION:ARIA +UI_get_result_length 4337 1_1_1 EXIST::FUNCTION: +UI_set_result_ex 4338 1_1_1 EXIST::FUNCTION: +UI_get_result_string_length 4339 1_1_1 EXIST::FUNCTION: +EVP_PKEY_check 4340 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_set_check 4341 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_get_check 4342 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_remove 4343 1_1_1 EXIST::FUNCTION: +OPENSSL_sk_reserve 4344 1_1_1 EXIST::FUNCTION: +EVP_PKEY_set1_engine 4347 1_1_0g EXIST::FUNCTION:ENGINE +DH_new_by_nid 4348 1_1_1 EXIST::FUNCTION:DH +DH_get_nid 4349 1_1_1 EXIST::FUNCTION:DH +CRYPTO_get_alloc_counts 4350 1_1_1 EXIST::FUNCTION:CRYPTO_MDEBUG +OPENSSL_sk_new_reserve 4351 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_check 4352 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_siginf 4353 1_1_1 EXIST::FUNCTION: +EVP_sm4_ctr 4354 1_1_1 EXIST::FUNCTION:SM4 +EVP_sm4_cbc 4355 1_1_1 EXIST::FUNCTION:SM4 +EVP_sm4_ofb 4356 1_1_1 EXIST::FUNCTION:SM4 +EVP_sm4_ecb 4357 1_1_1 EXIST::FUNCTION:SM4 +EVP_sm4_cfb128 4358 1_1_1 EXIST::FUNCTION:SM4 +EVP_sm3 4359 1_1_1 EXIST::FUNCTION:SM3 +RSA_get0_multi_prime_factors 4360 1_1_1 EXIST::FUNCTION:RSA +EVP_PKEY_public_check 4361 1_1_1 EXIST::FUNCTION: +EVP_PKEY_param_check 4362 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_set_public_check 4363 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_set_param_check 4364 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_get_public_check 4365 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_get_param_check 4366 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_public_check 4367 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_param_check 4368 1_1_1 EXIST::FUNCTION: +DH_check_ex 4369 1_1_1 EXIST::FUNCTION:DH +DH_check_pub_key_ex 4370 1_1_1 EXIST::FUNCTION:DH +DH_check_params_ex 4371 1_1_1 EXIST::FUNCTION:DH +RSA_generate_multi_prime_key 4372 1_1_1 EXIST::FUNCTION:RSA +RSA_get_multi_prime_extra_count 4373 1_1_1 EXIST::FUNCTION:RSA +OCSP_resp_get0_signer 4374 1_1_0h EXIST::FUNCTION:OCSP +RSA_get0_multi_prime_crt_params 4375 1_1_1 EXIST::FUNCTION:RSA +RSA_set0_multi_prime_params 4376 1_1_1 EXIST::FUNCTION:RSA +RSA_get_version 4377 1_1_1 EXIST::FUNCTION:RSA +RSA_meth_get_multi_prime_keygen 4378 1_1_1 EXIST::FUNCTION:RSA +RSA_meth_set_multi_prime_keygen 4379 1_1_1 EXIST::FUNCTION:RSA +RAND_DRBG_get0_master 4380 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set_reseed_time_interval 4381 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_addProfessionInfo 4382 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_free 4383 1_1_1 EXIST::FUNCTION: +d2i_ADMISSION_SYNTAX 4384 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_set0_authorityId 4385 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_set0_authorityURL 4386 1_1_1 EXIST::FUNCTION: +d2i_PROFESSION_INFO 4387 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_it 4388 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NAMING_AUTHORITY_it 4388 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ADMISSION_SYNTAX_get0_contentsOfAdmissions 4389 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_professionItems 4390 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_new 4391 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_get0_authorityURL 4392 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_get0_admissionAuthority 4393 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_new 4394 1_1_1 EXIST::FUNCTION: +ADMISSIONS_new 4395 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_set0_admissionAuthority 4396 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_professionOIDs 4397 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_it 4398 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PROFESSION_INFO_it 4398 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_PROFESSION_INFO 4399 1_1_1 EXIST::FUNCTION: +ADMISSIONS_set0_professionInfos 4400 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_namingAuthority 4401 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_free 4402 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_addProfessionInfo 4403 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_registrationNumber 4404 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_set0_contentsOfAdmissions 4405 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_get0_authorityId 4406 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_it 4407 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ADMISSION_SYNTAX_it 4407 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +i2d_ADMISSION_SYNTAX 4408 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_get0_authorityText 4409 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_namingAuthority 4410 1_1_1 EXIST::FUNCTION: +i2d_NAMING_AUTHORITY 4411 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_free 4412 1_1_1 EXIST::FUNCTION: +ADMISSIONS_set0_admissionAuthority 4413 1_1_1 EXIST::FUNCTION: +ADMISSIONS_free 4414 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_registrationNumber 4415 1_1_1 EXIST::FUNCTION: +d2i_ADMISSIONS 4416 1_1_1 EXIST::FUNCTION: +i2d_ADMISSIONS 4417 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_get0_professionItems 4418 1_1_1 EXIST::FUNCTION: +ADMISSIONS_get0_admissionAuthority 4419 1_1_1 EXIST::FUNCTION: +PROFESSION_INFO_set0_professionOIDs 4420 1_1_1 EXIST::FUNCTION: +d2i_NAMING_AUTHORITY 4421 1_1_1 EXIST::FUNCTION: +ADMISSIONS_it 4422 1_1_1 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ADMISSIONS_it 4422 1_1_1 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ADMISSIONS_get0_namingAuthority 4423 1_1_1 EXIST::FUNCTION: +NAMING_AUTHORITY_set0_authorityText 4424 1_1_1 EXIST::FUNCTION: +ADMISSIONS_set0_namingAuthority 4425 1_1_1 EXIST::FUNCTION: +ADMISSIONS_get0_professionInfos 4426 1_1_1 EXIST::FUNCTION: +ADMISSION_SYNTAX_new 4427 1_1_1 EXIST::FUNCTION: +EVP_sha512_256 4428 1_1_1 EXIST::FUNCTION: +EVP_sha512_224 4429 1_1_1 EXIST::FUNCTION: +OCSP_basic_sign_ctx 4430 1_1_1 EXIST::FUNCTION:OCSP +RAND_DRBG_bytes 4431 1_1_1 EXIST::FUNCTION: +RAND_DRBG_secure_new 4432 1_1_1 EXIST::FUNCTION: +OSSL_STORE_vctrl 4433 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_by_alias 4434 1_1_1 EXIST::FUNCTION: +BIO_bind 4435 1_1_1 EXIST::FUNCTION:SOCK +OSSL_STORE_LOADER_set_expect 4436 1_1_1 EXIST::FUNCTION: +OSSL_STORE_expect 4437 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_by_key_fingerprint 4438 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_get0_serial 4439 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_by_name 4440 1_1_1 EXIST::FUNCTION: +OSSL_STORE_supports_search 4441 1_1_1 EXIST::FUNCTION: +OSSL_STORE_find 4442 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_get_type 4443 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_get0_bytes 4444 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_get0_string 4445 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_by_issuer_serial 4446 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_get0_name 4447 1_1_1 EXIST::FUNCTION: +X509_get0_authority_key_id 4448 1_1_0h EXIST::FUNCTION: +OSSL_STORE_LOADER_set_find 4449 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_free 4450 1_1_1 EXIST::FUNCTION: +OSSL_STORE_SEARCH_get0_digest 4451 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set_reseed_defaults 4452 1_1_1 EXIST::FUNCTION: +EVP_PKEY_new_raw_private_key 4453 1_1_1 EXIST::FUNCTION: +EVP_PKEY_new_raw_public_key 4454 1_1_1 EXIST::FUNCTION: +EVP_PKEY_new_CMAC_key 4455 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_set_priv_key 4456 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_set_pub_key 4457 1_1_1 EXIST::FUNCTION: +RAND_DRBG_set_defaults 4458 1_1_1 EXIST::FUNCTION: +conf_ssl_name_find 4469 1_1_0i EXIST::FUNCTION: +conf_ssl_get_cmd 4470 1_1_0i EXIST::FUNCTION: +conf_ssl_get 4471 1_1_0i EXIST::FUNCTION: +X509_VERIFY_PARAM_get_hostflags 4472 1_1_0i EXIST::FUNCTION: +DH_get0_p 4473 1_1_1 EXIST::FUNCTION:DH +DH_get0_q 4474 1_1_1 EXIST::FUNCTION:DH +DH_get0_g 4475 1_1_1 EXIST::FUNCTION:DH +DH_get0_priv_key 4476 1_1_1 EXIST::FUNCTION:DH +DH_get0_pub_key 4477 1_1_1 EXIST::FUNCTION:DH +DSA_get0_priv_key 4478 1_1_1 EXIST::FUNCTION:DSA +DSA_get0_pub_key 4479 1_1_1 EXIST::FUNCTION:DSA +DSA_get0_q 4480 1_1_1 EXIST::FUNCTION:DSA +DSA_get0_p 4481 1_1_1 EXIST::FUNCTION:DSA +DSA_get0_g 4482 1_1_1 EXIST::FUNCTION:DSA +RSA_get0_dmp1 4483 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_d 4484 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_n 4485 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_dmq1 4486 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_e 4487 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_q 4488 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_p 4489 1_1_1 EXIST::FUNCTION:RSA +RSA_get0_iqmp 4490 1_1_1 EXIST::FUNCTION:RSA +ECDSA_SIG_get0_r 4491 1_1_1 EXIST::FUNCTION:EC +ECDSA_SIG_get0_s 4492 1_1_1 EXIST::FUNCTION:EC +X509_LOOKUP_meth_get_get_by_fingerprint 4493 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_new 4494 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_init 4495 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_alias 4496 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_new_item 4497 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_shutdown 4498 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_new_item 4499 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_ctrl 4500 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_issuer_serial 4501 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_get_store 4502 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_ctrl 4503 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_alias 4504 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_subject 4505 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_free 4506 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_subject 4507 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_free 4508 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_shutdown 4509 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_set_method_data 4510 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_get_method_data 4511 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_fingerprint 4512 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_free 4513 1_1_0i EXIST::FUNCTION: +X509_OBJECT_set1_X509 4514 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_issuer_serial 4515 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_init 4516 1_1_0i EXIST::FUNCTION: +X509_OBJECT_set1_X509_CRL 4517 1_1_0i EXIST::FUNCTION: +EVP_PKEY_get_raw_public_key 4518 1_1_1 EXIST::FUNCTION: +EVP_PKEY_get_raw_private_key 4519 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_get_priv_key 4520 1_1_1 EXIST::FUNCTION: +EVP_PKEY_asn1_set_get_pub_key 4521 1_1_1 EXIST::FUNCTION: +EVP_PKEY_set_alias_type 4522 1_1_1 EXIST::FUNCTION: +RAND_keep_random_devices_open 4523 1_1_1 EXIST::FUNCTION: +EC_POINT_set_compressed_coordinates 4524 1_1_1 EXIST::FUNCTION:EC +EC_POINT_set_affine_coordinates 4525 1_1_1 EXIST::FUNCTION:EC +EC_POINT_get_affine_coordinates 4526 1_1_1 EXIST::FUNCTION:EC +EC_GROUP_set_curve 4527 1_1_1 EXIST::FUNCTION:EC +EC_GROUP_get_curve 4528 1_1_1 EXIST::FUNCTION:EC +OCSP_resp_get0_tbs_sigalg 4529 1_1_0j EXIST::FUNCTION:OCSP +OCSP_resp_get0_respdata 4530 1_1_0j EXIST::FUNCTION:OCSP +EVP_MD_CTX_set_pkey_ctx 4531 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_set_digest_custom 4532 1_1_1 EXIST::FUNCTION: +EVP_PKEY_meth_get_digest_custom 4533 1_1_1 EXIST::FUNCTION: +OPENSSL_INIT_set_config_filename 4534 1_1_1b EXIST::FUNCTION:STDIO +OPENSSL_INIT_set_config_file_flags 4535 1_1_1b EXIST::FUNCTION:STDIO +EVP_PKEY_get0_engine 4536 1_1_1c EXIST::FUNCTION:ENGINE +X509_get0_authority_serial 4537 1_1_1d EXIST::FUNCTION: +X509_get0_authority_issuer 4538 1_1_1d EXIST::FUNCTION: +EVP_PKEY_meth_set_digestsign 4539 1_1_1e EXIST::FUNCTION: +EVP_PKEY_meth_set_digestverify 4540 1_1_1e EXIST::FUNCTION: +EVP_PKEY_meth_get_digestverify 4541 1_1_1e EXIST::FUNCTION: +EVP_PKEY_meth_get_digestsign 4542 1_1_1e EXIST::FUNCTION: +RSA_get0_pss_params 4543 1_1_1e EXIST::FUNCTION:RSA diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/libssl.num b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/libssl.num new file mode 100644 index 000000000..297522c36 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/libssl.num @@ -0,0 +1,500 @@ +SSL_get_selected_srtp_profile 1 1_1_0 EXIST::FUNCTION:SRTP +SSL_set_read_ahead 2 1_1_0 EXIST::FUNCTION: +SSL_set_accept_state 3 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cipher_list 4 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_client_pwd_callback 5 1_1_0 EXIST::FUNCTION:SRP +SSL_copy_session_id 6 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_password 7 1_1_0 EXIST::FUNCTION:SRP +SSL_shutdown 8 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_msg_callback 9 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get0_ticket 11 1_1_0 EXIST::FUNCTION: +SSL_get1_supported_ciphers 12 1_1_0 EXIST::FUNCTION: +SSL_state_string_long 13 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_certificate 14 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set_ex_data 15 1_1_0 EXIST::FUNCTION: +SSL_get_verify_depth 16 1_1_0 EXIST::FUNCTION: +SSL_get0_dane 17 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_get_get_cb 18 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_default_passwd_cb_userdata 19 1_1_0 EXIST::FUNCTION: +SSL_set_tmp_dh_callback 20 1_1_0 EXIST::FUNCTION:DH +SSL_CTX_get_verify_depth 21 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_RSAPrivateKey_file 22 1_1_0 EXIST::FUNCTION:RSA +SSL_use_PrivateKey_file 23 1_1_0 EXIST::FUNCTION: +SSL_set_generate_session_id 24 1_1_0 EXIST::FUNCTION: +SSL_get_ex_data_X509_STORE_CTX_idx 25 1_1_0 EXIST::FUNCTION: +SSL_get_quiet_shutdown 26 1_1_0 EXIST::FUNCTION: +SSL_dane_enable 27 1_1_0 EXIST::FUNCTION: +SSL_COMP_add_compression_method 28 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_RSAPrivateKey 29 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_sess_get_new_cb 30 1_1_0 EXIST::FUNCTION: +d2i_SSL_SESSION 31 1_1_0 EXIST::FUNCTION: +SSL_use_PrivateKey_ASN1 32 1_1_0 EXIST::FUNCTION: +PEM_write_SSL_SESSION 33 1_1_0 EXIST::FUNCTION:STDIO +SSL_CTX_set_session_id_context 34 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_cipher_nid 35 1_1_0 EXIST::FUNCTION: +SSL_get_srp_g 36 1_1_0 EXIST::FUNCTION:SRP +SSL_want 37 1_1_0 EXIST::FUNCTION: +SSL_get_cipher_list 38 1_1_0 EXIST::FUNCTION: +SSL_get_verify_result 39 1_1_0 EXIST::FUNCTION: +SSL_renegotiate 40 1_1_0 EXIST::FUNCTION: +SSL_get_privatekey 41 1_1_0 EXIST::FUNCTION: +SSL_peek 42 1_1_0 EXIST::FUNCTION: +SRP_Calc_A_param 43 1_1_0 EXIST::FUNCTION:SRP +SSL_SESSION_get_ticket_lifetime_hint 44 1_1_0 EXIST::FUNCTION: +SSL_SRP_CTX_free 45 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_client_CA_list 46 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_next_proto_select_cb 47 1_1_0 EXIST::FUNCTION:NEXTPROTONEG +BIO_ssl_copy_session_id 48 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_security_callback 49 1_1_0 EXIST::FUNCTION: +SSL_CONF_cmd_value_type 50 1_1_0 EXIST::FUNCTION: +SSL_CTX_remove_session 51 1_1_0 EXIST::FUNCTION: +SSL_SESSION_new 52 1_1_0 EXIST::FUNCTION: +TLSv1_2_server_method 53 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD +BIO_new_buffer_ssl_connect 54 1_1_0 EXIST::FUNCTION: +SSL_CTX_set0_security_ex_data 55 1_1_0 EXIST::FUNCTION: +SSL_alert_desc_string 56 1_1_0 EXIST::FUNCTION: +SSL_get0_dane_authority 57 1_1_0 EXIST::FUNCTION: +SSL_set_purpose 58 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_PrivateKey_file 59 1_1_0 EXIST::FUNCTION: +SSL_get_rfd 60 1_1_0 EXIST::FUNCTION: +DTLSv1_listen 61 1_1_0 EXIST::FUNCTION:SOCK +SSL_set_ssl_method 62 1_1_0 EXIST::FUNCTION: +SSL_get0_security_ex_data 63 1_1_0 EXIST::FUNCTION: +SSLv3_client_method 64 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD +SSL_set_security_level 65 1_1_0 EXIST::FUNCTION: +DTLSv1_2_method 66 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD +SSL_get_fd 67 1_1_0 EXIST::FUNCTION: +SSL_get1_session 68 1_1_0 EXIST::FUNCTION: +SSL_use_RSAPrivateKey 69 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_set_srp_cb_arg 70 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_add_session 71 1_1_0 EXIST::FUNCTION: +SSL_get_srp_N 72 1_1_0 EXIST::FUNCTION:SRP +SSL_has_matching_session_id 73 1_1_0 EXIST::FUNCTION: +PEM_read_SSL_SESSION 74 1_1_0 EXIST::FUNCTION:STDIO +SSL_get_shared_ciphers 75 1_1_0 EXIST::FUNCTION: +SSL_add1_host 76 1_1_0 EXIST::FUNCTION: +SSL_CONF_cmd_argv 77 1_1_0 EXIST::FUNCTION: +SSL_version 78 1_1_0 EXIST::FUNCTION: +SSL_SESSION_print 79 1_1_0 EXIST::FUNCTION: +SSL_get_client_ciphers 80 1_1_0 EXIST::FUNCTION: +SSL_get_srtp_profiles 81 1_1_0 EXIST::FUNCTION:SRTP +SSL_use_certificate_ASN1 82 1_1_0 EXIST::FUNCTION: +SSL_get_peer_certificate 83 1_1_0 EXIST::FUNCTION: +DTLSv1_2_server_method 84 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD +SSL_set_cert_cb 85 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cookie_verify_cb 86 1_1_0 EXIST::FUNCTION: +SSL_get_shared_sigalgs 87 1_1_0 EXIST::FUNCTION: +SSL_config 88 1_1_0 EXIST::FUNCTION: +TLSv1_1_client_method 89 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD +SSL_CIPHER_standard_name 90 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_verify_mode 91 1_1_0 EXIST::FUNCTION: +SSL_get_all_async_fds 92 1_1_0 EXIST::FUNCTION: +SSL_CTX_check_private_key 93 1_1_0 EXIST::FUNCTION: +SSL_set_wfd 94 1_1_0 EXIST::FUNCTION:SOCK +SSL_get_client_CA_list 95 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set_flags 96 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_username_callback 97 1_1_0 EXIST::FUNCTION:SRP +SSL_connect 98 1_1_0 EXIST::FUNCTION: +SSL_get_psk_identity 99 1_1_0 EXIST::FUNCTION:PSK +SSL_CTX_use_certificate_file 100 1_1_0 EXIST::FUNCTION: +SSL_set_session_ticket_ext 101 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_psk_server_callback 102 1_1_0 EXIST::FUNCTION:PSK +SSL_get_sigalgs 103 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_next_protos_advertised_cb 104 1_1_0 EXIST::FUNCTION:NEXTPROTONEG +SSL_CTX_set_trust 105 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_verify 106 1_1_0 EXIST::FUNCTION: +SSL_set_rfd 107 1_1_0 EXIST::FUNCTION:SOCK +SSL_SESSION_set_timeout 108 1_1_0 EXIST::FUNCTION: +SSL_set_psk_client_callback 109 1_1_0 EXIST::FUNCTION:PSK +SSL_get_client_random 110 1_1_0 EXIST::FUNCTION: +TLS_method 111 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_clear_flags 112 1_1_0 EXIST::FUNCTION: +TLSv1_client_method 113 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD +SSL_CIPHER_get_bits 114 1_1_0 EXIST::FUNCTION: +SSL_test_functions 115 1_1_0 EXIST::FUNCTION:UNIT_TEST +SSL_get_SSL_CTX 116 1_1_0 EXIST::FUNCTION: +SSL_get_session 117 1_1_0 EXIST::FUNCTION: +SSL_CTX_callback_ctrl 118 1_1_0 EXIST::FUNCTION: +SSL_get_finished 119 1_1_0 EXIST::FUNCTION: +SSL_add_dir_cert_subjects_to_stack 120 1_1_0 EXIST::FUNCTION: +SSL_get_state 121 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_finish 122 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_server_custom_ext 123 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_ex_data 124 1_1_0 EXIST::FUNCTION: +SSL_get_srp_username 125 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_purpose 126 1_1_0 EXIST::FUNCTION: +SSL_clear 127 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cert_store 128 1_1_0 EXIST::FUNCTION: +TLSv1_2_method 129 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD +SSL_session_reused 130 1_1_0 EXIST::FUNCTION: +SSL_free 131 1_1_0 EXIST::FUNCTION: +BIO_ssl_shutdown 132 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_client_CA_list 133 1_1_0 EXIST::FUNCTION: +SSL_CTX_sessions 134 1_1_0 EXIST::FUNCTION: +SSL_get_options 135 1_1_0 EXIST::FUNCTION: +SSL_set_verify_depth 136 1_1_0 EXIST::FUNCTION: +SSL_get_error 137 1_1_0 EXIST::FUNCTION: +SSL_get_servername 138 1_1_0 EXIST::FUNCTION: +SSL_get_version 139 1_1_0 EXIST::FUNCTION: +SSL_state_string 140 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_timeout 141 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_get_remove_cb 142 1_1_0 EXIST::FUNCTION: +SSL_get_current_cipher 143 1_1_0 EXIST::FUNCTION: +SSL_up_ref 144 1_1_0 EXIST::FUNCTION: +SSL_export_keying_material 145 1_1_0 EXIST::FUNCTION: +SSL_callback_ctrl 146 1_1_0 EXIST::FUNCTION: +SSL_set_security_callback 147 1_1_0 EXIST::FUNCTION: +SSL_SRP_CTX_init 148 1_1_0 EXIST::FUNCTION:SRP +ERR_load_SSL_strings 149 1_1_0 EXIST::FUNCTION: +SSL_CTX_SRP_CTX_init 150 1_1_0 EXIST::FUNCTION:SRP +SSL_SESSION_set_time 151 1_1_0 EXIST::FUNCTION: +i2d_SSL_SESSION 152 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_master_key 153 1_1_0 EXIST::FUNCTION: +SSL_COMP_get_compression_methods 154 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_alpn_select_cb 155 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_tmp_dh_callback 156 1_1_0 EXIST::FUNCTION:DH +SSL_CTX_get_default_passwd_cb 157 1_1_0 EXIST::FUNCTION: +TLSv1_server_method 158 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD +DTLS_server_method 159 1_1_0 EXIST::FUNCTION: +SSL_set0_rbio 160 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_options 161 1_1_0 EXIST::FUNCTION: +SSL_set_msg_callback 162 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_free 163 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_ssl_method 164 1_1_0 EXIST::FUNCTION: +SSL_get_server_random 165 1_1_0 EXIST::FUNCTION: +SSL_set_shutdown 166 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_client_CA 167 1_1_0 EXIST::FUNCTION: +TLSv1_1_server_method 168 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD +PEM_write_bio_SSL_SESSION 169 1_1_0 EXIST::FUNCTION: +SSL_write 170 1_1_0 EXIST::FUNCTION: +SSL_set1_host 171 1_1_0 EXIST::FUNCTION: +SSL_use_RSAPrivateKey_file 172 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_get_info_callback 173 1_1_0 EXIST::FUNCTION: +SSL_get0_peername 174 1_1_0 EXIST::FUNCTION: +SSL_set_srp_server_param 175 1_1_0 EXIST::FUNCTION:SRP +TLS_server_method 176 1_1_0 EXIST::FUNCTION: +SSL_get_psk_identity_hint 177 1_1_0 EXIST::FUNCTION:PSK +SSL_set_session 178 1_1_0 EXIST::FUNCTION: +SSL_get0_param 179 1_1_0 EXIST::FUNCTION: +SSL_set_default_passwd_cb 180 1_1_0 EXIST::FUNCTION: +SSL_get_read_ahead 181 1_1_0 EXIST::FUNCTION: +SSL_dup_CA_list 182 1_1_0 EXIST::FUNCTION: +SSL_get_verify_callback 183 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_passwd_cb 184 1_1_0 EXIST::FUNCTION: +SSL_get_servername_type 185 1_1_0 EXIST::FUNCTION: +TLSv1_2_client_method 186 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD +SSL_add_client_CA 187 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_security_ex_data 188 1_1_0 EXIST::FUNCTION: +SSL_get_ex_data 189 1_1_0 EXIST::FUNCTION: +SSL_CTX_flush_sessions 190 1_1_0 EXIST::FUNCTION: +SSL_use_PrivateKey 191 1_1_0 EXIST::FUNCTION: +DTLSv1_client_method 192 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD +SSL_CTX_dane_mtype_set 193 1_1_0 EXIST::FUNCTION: +SSL_get_wfd 194 1_1_0 EXIST::FUNCTION: +SSL_get_ssl_method 195 1_1_0 EXIST::FUNCTION: +SSL_set_verify_result 196 1_1_0 EXIST::FUNCTION: +SSL_use_RSAPrivateKey_ASN1 197 1_1_0 EXIST::FUNCTION:RSA +SSL_CIPHER_get_name 198 1_1_0 EXIST::FUNCTION: +OPENSSL_init_ssl 199 1_1_0 EXIST::FUNCTION: +SSL_dup 200 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_serverinfo 201 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_serverinfo_file 202 1_1_0 EXIST::FUNCTION: +SSL_set_options 203 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_verify_dir 204 1_1_0 EXIST::FUNCTION: +SSL_do_handshake 205 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_ex_data 206 1_1_0 EXIST::FUNCTION: +SSL_is_init_finished 207 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_verify_file 208 1_1_0 EXIST::FUNCTION: +SSLv3_method 209 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD +SSL_CTX_set_cookie_generate_cb 210 1_1_0 EXIST::FUNCTION: +SSL_certs_clear 211 1_1_0 EXIST::FUNCTION: +SSL_set_connect_state 212 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_ex_data 213 1_1_0 EXIST::FUNCTION: +SSL_rstate_string 214 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get0_peer 215 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_compress_id 216 1_1_0 EXIST::FUNCTION: +SSL_get_peer_cert_chain 217 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cert_cb 218 1_1_0 EXIST::FUNCTION: +PEM_read_bio_SSL_SESSION 219 1_1_0 EXIST::FUNCTION: +SSL_set_info_callback 220 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_set_new_cb 221 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_security_level 222 1_1_0 EXIST::FUNCTION: +SSL_CTX_ctrl 223 1_1_0 EXIST::FUNCTION: +SSL_set_alpn_protos 224 1_1_0 EXIST::FUNCTION: +SSL_set_ex_data 225 1_1_0 EXIST::FUNCTION: +SSL_rstate_string_long 226 1_1_0 EXIST::FUNCTION: +SSL_ctrl 227 1_1_0 EXIST::FUNCTION: +SSL_get_current_compression 228 1_1_0 EXIST::FUNCTION: +SSL_SESSION_has_ticket 229 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_cert_verify_callback 230 1_1_0 EXIST::FUNCTION: +SSL_set_session_secret_cb 231 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_client_cert_engine 232 1_1_0 EXIST::FUNCTION:ENGINE +SSL_CTX_get0_param 233 1_1_0 EXIST::FUNCTION: +SSL_CTX_set1_param 234 1_1_0 EXIST::FUNCTION: +SSL_get_certificate 235 1_1_0 EXIST::FUNCTION: +DTLSv1_server_method 236 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD +SSL_set_fd 237 1_1_0 EXIST::FUNCTION:SOCK +SSL_use_certificate 238 1_1_0 EXIST::FUNCTION: +DTLSv1_method 239 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD +SSL_set0_wbio 240 1_1_0 EXIST::FUNCTION: +SSL_read 241 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_options 242 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_ssl_version 243 1_1_0 EXIST::FUNCTION: +SSL_set_SSL_CTX 244 1_1_0 EXIST::FUNCTION: +SSL_renegotiate_abbreviated 245 1_1_0 EXIST::FUNCTION: +SSL_get_verify_mode 246 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_id 247 1_1_0 EXIST::FUNCTION: +SSL_SESSION_print_keylog 248 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_psk_client_callback 249 1_1_0 EXIST::FUNCTION:PSK +SSL_SESSION_get_time 250 1_1_0 EXIST::FUNCTION: +SSL_set_debug 251 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0 +SSL_get_security_level 252 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_description 253 1_1_0 EXIST::FUNCTION: +SSL_set_default_passwd_cb_userdata 254 1_1_0 EXIST::FUNCTION: +SSL_get_srp_userinfo 255 1_1_0 EXIST::FUNCTION:SRP +SSL_extension_supported 256 1_1_0 EXIST::FUNCTION: +SSL_dane_tlsa_add 257 1_1_0 EXIST::FUNCTION: +SSL_srp_server_param_with_username 258 1_1_0 EXIST::FUNCTION:SRP +SSL_CIPHER_get_version 259 1_1_0 EXIST::FUNCTION: +SSL_get0_verified_chain 260 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_find 261 1_1_0 EXIST::FUNCTION: +SSL_get_rbio 262 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set_ssl 263 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_verify_depth 264 1_1_0 EXIST::FUNCTION: +SSL_get_ciphers 265 1_1_0 EXIST::FUNCTION: +SSL_CTX_config 266 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set_ssl_ctx 267 1_1_0 EXIST::FUNCTION: +SSL_CONF_cmd 268 1_1_0 EXIST::FUNCTION: +SSL_add_ssl_module 269 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_verify_callback 270 1_1_0 EXIST::FUNCTION: +SSL_set1_param 271 1_1_0 EXIST::FUNCTION: +SSL_use_certificate_file 272 1_1_0 EXIST::FUNCTION: +SSL_get_changed_async_fds 273 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_client_cert_cb 274 1_1_0 EXIST::FUNCTION: +DTLS_client_method 275 1_1_0 EXIST::FUNCTION: +SSL_set_trust 276 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_security_callback 277 1_1_0 EXIST::FUNCTION: +SSL_CTX_clear_options 278 1_1_0 EXIST::FUNCTION: +SSL_check_chain 279 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_set_remove_cb 280 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_info_callback 281 1_1_0 EXIST::FUNCTION: +SSL_pending 282 1_1_0 EXIST::FUNCTION: +SSL_set_bio 283 1_1_0 EXIST::FUNCTION: +BIO_new_ssl_connect 284 1_1_0 EXIST::FUNCTION: +SSL_waiting_for_async 285 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_strength 286 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_get_quiet_shutdown 287 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_certificate_chain_file 288 1_1_0 EXIST::FUNCTION: +SSL_CTX_dane_enable 289 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_new 290 1_1_0 EXIST::FUNCTION: +SSL_get0_alpn_selected 291 1_1_0 EXIST::FUNCTION: +SSL_get0_next_proto_negotiated 292 1_1_0 EXIST::FUNCTION:NEXTPROTONEG +SSL_set0_security_ex_data 293 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_tlsext_use_srtp 294 1_1_0 EXIST::FUNCTION:SRTP +SSL_COMP_set0_compression_methods 295 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_not_resumable_session_callback 296 1_1_0 EXIST::FUNCTION: +SSL_accept 297 1_1_0 EXIST::FUNCTION: +SSL_use_psk_identity_hint 298 1_1_0 EXIST::FUNCTION:PSK +SSL_trace 299 1_1_0 EXIST::FUNCTION:SSL_TRACE +DTLS_method 300 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_verify_param_callback 301 1_1_0 EXIST::FUNCTION:SRP +SSL_CTX_set_timeout 302 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_security_level 303 1_1_0 EXIST::FUNCTION: +TLS_client_method 304 1_1_0 EXIST::FUNCTION: +SSL_set_quiet_shutdown 305 1_1_0 EXIST::FUNCTION: +SSL_CTX_up_ref 306 1_1_0 EXIST::FUNCTION: +SSL_check_private_key 307 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_quiet_shutdown 308 1_1_0 EXIST::FUNCTION: +SSL_select_next_proto 309 1_1_0 EXIST::FUNCTION: +SSL_load_client_CA_file 310 1_1_0 EXIST::FUNCTION: +SSL_set_srp_server_param_pw 311 1_1_0 EXIST::FUNCTION:SRP +SSL_renegotiate_pending 312 1_1_0 EXIST::FUNCTION: +SSL_CTX_new 313 1_1_0 EXIST::FUNCTION: +SSL_set_session_ticket_ext_cb 314 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_timeout 315 1_1_0 EXIST::FUNCTION: +SSL_use_certificate_chain_file 316 1_1_0 EXIST::FUNCTION: +SSL_set_not_resumable_session_callback 317 1_1_0 EXIST::FUNCTION: +SSL_CTX_SRP_CTX_free 318 1_1_0 EXIST::FUNCTION:SRP +SSL_get_current_expansion 319 1_1_0 EXIST::FUNCTION: +SSL_clear_options 320 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_PrivateKey 321 1_1_0 EXIST::FUNCTION: +SSL_get_info_callback 322 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_psk_identity_hint 323 1_1_0 EXIST::FUNCTION:PSK +SSL_CTX_use_RSAPrivateKey_ASN1 324 1_1_0 EXIST::FUNCTION:RSA +SSL_CTX_use_PrivateKey_ASN1 325 1_1_0 EXIST::FUNCTION: +SSL_CTX_get0_privatekey 326 1_1_0 EXIST::FUNCTION: +BIO_f_ssl 327 1_1_0 EXIST::FUNCTION: +SSLv3_server_method 328 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD +SSL_SESSION_free 329 1_1_0 EXIST::FUNCTION: +SSL_get_shutdown 330 1_1_0 EXIST::FUNCTION: +SSL_get_peer_finished 331 1_1_0 EXIST::FUNCTION: +SSL_set_tlsext_use_srtp 332 1_1_0 EXIST::FUNCTION:SRTP +TLSv1_method 333 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD +SSL_set_psk_server_callback 334 1_1_0 EXIST::FUNCTION:PSK +SSL_CTX_set_alpn_protos 335 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_verify_paths 336 1_1_0 EXIST::FUNCTION: +SSL_CTX_sess_set_get_cb 337 1_1_0 EXIST::FUNCTION: +SSL_add_file_cert_subjects_to_stack 338 1_1_0 EXIST::FUNCTION: +SSL_get_default_passwd_cb_userdata 339 1_1_0 EXIST::FUNCTION: +SSL_get_security_callback 340 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_srp_username 341 1_1_0 EXIST::FUNCTION:SRP +SSL_COMP_get_name 342 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_passwd_cb_userdata 343 1_1_0 EXIST::FUNCTION: +SSL_set_verify 344 1_1_0 EXIST::FUNCTION: +SSL_in_before 345 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_digest_nid 346 1_1_0 EXIST::FUNCTION: +SSL_CTX_add_client_custom_ext 347 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_certificate 348 1_1_0 EXIST::FUNCTION: +SSL_set_cipher_list 349 1_1_0 EXIST::FUNCTION: +SSL_get_wbio 350 1_1_0 EXIST::FUNCTION: +SSL_set_hostflags 351 1_1_0 EXIST::FUNCTION: +SSL_alert_desc_string_long 352 1_1_0 EXIST::FUNCTION: +SSL_get_default_timeout 353 1_1_0 EXIST::FUNCTION: +SSL_set_session_id_context 354 1_1_0 EXIST::FUNCTION: +SSL_new 355 1_1_0 EXIST::FUNCTION: +TLSv1_1_method 356 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD +SSL_CTX_get_cert_store 357 1_1_0 EXIST::FUNCTION: +SSL_CTX_load_verify_locations 358 1_1_0 EXIST::FUNCTION: +SSL_SESSION_print_fp 359 1_1_0 EXIST::FUNCTION:STDIO +SSL_get0_dane_tlsa 360 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_generate_session_id 361 1_1_0 EXIST::FUNCTION: +SSL_alert_type_string_long 362 1_1_0 EXIST::FUNCTION: +SSL_CONF_CTX_set1_prefix 363 1_1_0 EXIST::FUNCTION: +SSL_in_init 364 1_1_0 EXIST::FUNCTION: +BIO_new_ssl 365 1_1_0 EXIST::FUNCTION: +SSL_CTX_get_client_cert_cb 366 1_1_0 EXIST::FUNCTION: +SSL_CTX_use_certificate_ASN1 367 1_1_0 EXIST::FUNCTION: +SSL_set_client_CA_list 368 1_1_0 EXIST::FUNCTION: +SSL_CTX_free 369 1_1_0 EXIST::FUNCTION: +SSL_get_default_passwd_cb 370 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_id 371 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set1_id_context 372 1_1_0 EXIST::FUNCTION: +SSL_is_server 373 1_1_0 EXIST::FUNCTION: +SSL_alert_type_string 374 1_1_0 EXIST::FUNCTION: +DTLSv1_2_client_method 375 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD +SSL_CTX_set_ctlog_list_file 376 1_1_0 EXIST::FUNCTION:CT +SSL_set_ct_validation_callback 377 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_set_default_ctlog_list_file 378 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_has_client_custom_ext 379 1_1_0 EXIST::FUNCTION: +SSL_ct_is_enabled 380 1_1_0 EXIST::FUNCTION:CT +SSL_get0_peer_scts 381 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_set_ct_validation_callback 382 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_ct_is_enabled 383 1_1_0 EXIST::FUNCTION:CT +SSL_set_default_read_buffer_len 384 1_1_0 EXIST::FUNCTION: +SSL_CTX_set_default_read_buffer_len 385 1_1_0 EXIST::FUNCTION: +SSL_has_pending 386 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_auth_nid 387 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_get_kx_nid 388 1_1_0 EXIST::FUNCTION: +SSL_CIPHER_is_aead 389 1_1_0 EXIST::FUNCTION: +SSL_SESSION_up_ref 390 1_1_0 EXIST::FUNCTION: +SSL_CTX_set0_ctlog_store 391 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_get0_ctlog_store 392 1_1_0 EXIST::FUNCTION:CT +SSL_enable_ct 393 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_enable_ct 394 1_1_0 EXIST::FUNCTION:CT +SSL_CTX_get_ciphers 395 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get0_hostname 396 1_1_0 EXIST::FUNCTION: +SSL_client_version 397 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get_protocol_version 398 1_1_0 EXIST::FUNCTION: +SSL_is_dtls 399 1_1_0 EXIST::FUNCTION: +SSL_CTX_dane_set_flags 400 1_1_0 EXIST::FUNCTION: +SSL_dane_set_flags 401 1_1_0 EXIST::FUNCTION: +SSL_CTX_dane_clear_flags 402 1_1_0 EXIST::FUNCTION: +SSL_dane_clear_flags 403 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get0_cipher 404 1_1_0 EXIST::FUNCTION: +SSL_SESSION_get0_id_context 405 1_1_0 EXIST::FUNCTION: +SSL_SESSION_set1_id 406 1_1_0 EXIST::FUNCTION: +SSL_CTX_set1_cert_store 407 1_1_1 EXIST::FUNCTION: +DTLS_get_data_mtu 408 1_1_1 EXIST::FUNCTION: +SSL_read_ex 409 1_1_1 EXIST::FUNCTION: +SSL_peek_ex 410 1_1_1 EXIST::FUNCTION: +SSL_write_ex 411 1_1_1 EXIST::FUNCTION: +SSL_COMP_get_id 412 1_1_0d EXIST::FUNCTION: +SSL_COMP_get0_name 413 1_1_0d EXIST::FUNCTION: +SSL_CTX_set_keylog_callback 414 1_1_1 EXIST::FUNCTION: +SSL_CTX_get_keylog_callback 415 1_1_1 EXIST::FUNCTION: +SSL_get_peer_signature_type_nid 416 1_1_1 EXIST::FUNCTION: +SSL_key_update 417 1_1_1 EXIST::FUNCTION: +SSL_get_key_update_type 418 1_1_1 EXIST::FUNCTION: +SSL_bytes_to_cipher_list 419 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get0_compression_methods 420 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get0_ciphers 421 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get0_ext 422 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get0_session_id 423 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get0_random 424 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_client_hello_cb 425 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get0_legacy_version 426 1_1_1 EXIST::FUNCTION: +SSL_client_hello_isv2 427 1_1_1 EXIST::FUNCTION: +SSL_set_max_early_data 428 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_max_early_data 429 1_1_1 EXIST::FUNCTION: +SSL_get_max_early_data 430 1_1_1 EXIST::FUNCTION: +SSL_CTX_get_max_early_data 431 1_1_1 EXIST::FUNCTION: +SSL_write_early_data 432 1_1_1 EXIST::FUNCTION: +SSL_read_early_data 433 1_1_1 EXIST::FUNCTION: +SSL_get_early_data_status 434 1_1_1 EXIST::FUNCTION: +SSL_SESSION_get_max_early_data 435 1_1_1 EXIST::FUNCTION: +SSL_add1_to_CA_list 436 1_1_1 EXIST::FUNCTION: +SSL_set0_CA_list 437 1_1_1 EXIST::FUNCTION: +SSL_CTX_set0_CA_list 438 1_1_1 EXIST::FUNCTION: +SSL_get0_CA_list 439 1_1_1 EXIST::FUNCTION: +SSL_get0_peer_CA_list 440 1_1_1 EXIST::FUNCTION: +SSL_CTX_add1_to_CA_list 441 1_1_1 EXIST::FUNCTION: +SSL_CTX_get0_CA_list 442 1_1_1 EXIST::FUNCTION: +SSL_CTX_add_custom_ext 443 1_1_1 EXIST::FUNCTION: +SSL_SESSION_is_resumable 444 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_record_padding_callback 445 1_1_1 EXIST::FUNCTION: +SSL_set_record_padding_callback 446 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_block_padding 447 1_1_1 EXIST::FUNCTION: +SSL_CTX_get_record_padding_callback_arg 448 1_1_1 EXIST::FUNCTION: +SSL_get_record_padding_callback_arg 449 1_1_1 EXIST::FUNCTION: +SSL_set_block_padding 450 1_1_1 EXIST::FUNCTION: +SSL_set_record_padding_callback_arg 451 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_record_padding_callback_arg 452 1_1_1 EXIST::FUNCTION: +SSL_CTX_use_serverinfo_ex 453 1_1_1 EXIST::FUNCTION: +SSL_client_hello_get1_extensions_present 454 1_1_1 EXIST::FUNCTION: +SSL_set_psk_find_session_callback 455 1_1_1 EXIST::FUNCTION: +SSL_set_psk_use_session_callback 456 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_psk_use_session_callback 457 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_psk_find_session_callback 458 1_1_1 EXIST::FUNCTION: +SSL_CIPHER_get_handshake_digest 459 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set1_master_key 460 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set_cipher 461 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set_protocol_version 462 1_1_1 EXIST::FUNCTION: +OPENSSL_cipher_name 463 1_1_1 EXIST::FUNCTION: +SSL_alloc_buffers 464 1_1_1 EXIST::FUNCTION: +SSL_free_buffers 465 1_1_1 EXIST::FUNCTION: +SSL_SESSION_dup 466 1_1_1 EXIST::FUNCTION: +SSL_get_pending_cipher 467 1_1_1 EXIST::FUNCTION: +SSL_CIPHER_get_protocol_id 468 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set_max_early_data 469 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set1_alpn_selected 470 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set1_hostname 471 1_1_1 EXIST::FUNCTION: +SSL_SESSION_get0_alpn_selected 472 1_1_1 EXIST::FUNCTION: +DTLS_set_timer_cb 473 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_tlsext_max_fragment_length 474 1_1_1 EXIST::FUNCTION: +SSL_set_tlsext_max_fragment_length 475 1_1_1 EXIST::FUNCTION: +SSL_SESSION_get_max_fragment_length 476 1_1_1 EXIST::FUNCTION: +SSL_stateless 477 1_1_1 EXIST::FUNCTION: +SSL_verify_client_post_handshake 478 1_1_1 EXIST::FUNCTION: +SSL_set_post_handshake_auth 479 1_1_1 EXIST::FUNCTION: +SSL_export_keying_material_early 480 1_1_1 EXIST::FUNCTION: +SSL_CTX_use_cert_and_key 481 1_1_1 EXIST::FUNCTION: +SSL_use_cert_and_key 482 1_1_1 EXIST::FUNCTION: +SSL_SESSION_get0_ticket_appdata 483 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set1_ticket_appdata 484 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_session_ticket_cb 485 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_stateless_cookie_generate_cb 486 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_stateless_cookie_verify_cb 487 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_ciphersuites 488 1_1_1 EXIST::FUNCTION: +SSL_set_ciphersuites 489 1_1_1 EXIST::FUNCTION: +SSL_set_num_tickets 490 1_1_1 EXIST::FUNCTION: +SSL_CTX_get_num_tickets 491 1_1_1 EXIST::FUNCTION: +SSL_get_num_tickets 492 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_num_tickets 493 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_allow_early_data_cb 494 1_1_1 EXIST::FUNCTION: +SSL_set_allow_early_data_cb 495 1_1_1 EXIST::FUNCTION: +SSL_set_recv_max_early_data 496 1_1_1 EXIST::FUNCTION: +SSL_get_recv_max_early_data 497 1_1_1 EXIST::FUNCTION: +SSL_CTX_get_recv_max_early_data 498 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_recv_max_early_data 499 1_1_1 EXIST::FUNCTION: +SSL_CTX_set_post_handshake_auth 500 1_1_1 EXIST::FUNCTION: +SSL_get_signature_type_nid 501 1_1_1a EXIST::FUNCTION: diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/local_shlib.com.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/local_shlib.com.in new file mode 100644 index 000000000..a38187253 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/local_shlib.com.in @@ -0,0 +1,30 @@ +${- + use File::Spec::Functions qw(rel2abs); + + my $bldtop = rel2abs($config{builddir}); + our %names = ( map { $_ => $bldtop.$_.".EXE" } + map { $unified_info{sharednames}->{$_} || () } + @{$unified_info{libraries}} ); + "" -} +$ ! Create a local environment with the shared library logical names +$ ! properly set. Undo this with unlocal_shlib.com +$ +$ OPENSSL_NAMES := OPENSSL_NAMES_'F$GETJPI("","PID")' +$ CREATE/NAME_TABLE/PARENT_TABLE=LNM$PROCESS_DIRECTORY 'OPENSSL_NAMES' +$ DEFINE/TABLE='OPENSSL_NAMES' OSSL_FLAG YES +$ +$ NAMES := {- join(",", keys %names); -} +{- + join("\n", map { "\$ __$_ = \"".$names{$_}."\"" } keys %names); +-} +$ I = 0 +$ LOOP: +$ E = F$ELEMENT(I,",",NAMES) +$ I = I + 1 +$ IF E .EQS. "," THEN GOTO ENDLOOP +$ EV = __'E' +$ OLDV = F$TRNLNM(E,"LNM$PROCESS") +$ IF OLDV .NES. "" THEN DEFINE/TABLE='OPENSSL_NAMES' 'E' 'OLDV' +$ DEFINE 'E' 'EV' +$ GOTO LOOP +$ ENDLOOP: diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkbuildinf.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkbuildinf.pl new file mode 100755 index 000000000..c9324a9de --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkbuildinf.pl @@ -0,0 +1,56 @@ +#! /usr/bin/env perl +# Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +my ($cflags, $platform) = @ARGV; +$cflags = "compiler: $cflags"; + +my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC"; + +print <<"END_OUTPUT"; +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: $platform" +#define DATE "built on: $date" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { +END_OUTPUT + +my $ctr = 0; +foreach my $c (split //, $cflags) { + $c =~ s|([\\'])|\\$1|; + # Max 16 characters per line + if (($ctr++ % 16) == 0) { + if ($ctr != 1) { + print "\n"; + } + print " "; + } + print "'$c',"; +} +print <<"END_OUTPUT"; +'\\0' +}; +END_OUTPUT diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkdef.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkdef.pl new file mode 100755 index 000000000..3ac79821b --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkdef.pl @@ -0,0 +1,1633 @@ +#! /usr/bin/env perl +# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# +# generate a .def file +# +# It does this by parsing the header files and looking for the +# prototyped functions: it then prunes the output. +# +# Intermediary files are created, call libcrypto.num and libssl.num, +# The format of these files is: +# +# routine-name nnnn vers info +# +# The "nnnn" and "vers" fields are the numeric id and version for the symbol +# respectively. The "info" part is actually a colon-separated string of fields +# with the following meaning: +# +# existence:platform:kind:algorithms +# +# - "existence" can be "EXIST" or "NOEXIST" depending on if the symbol is +# found somewhere in the source, +# - "platforms" is empty if it exists on all platforms, otherwise it contains +# comma-separated list of the platform, just as they are if the symbol exists +# for those platforms, or prepended with a "!" if not. This helps resolve +# symbol name variants for platforms where the names are too long for the +# compiler or linker, or if the systems is case insensitive and there is a +# clash, or the symbol is implemented differently (see +# EXPORT_VAR_AS_FUNCTION). This script assumes renaming of symbols is found +# in the file crypto/symhacks.h. +# The semantics for the platforms is that every item is checked against the +# environment. For the negative items ("!FOO"), if any of them is false +# (i.e. "FOO" is true) in the environment, the corresponding symbol can't be +# used. For the positive items, if all of them are false in the environment, +# the corresponding symbol can't be used. Any combination of positive and +# negative items are possible, and of course leave room for some redundancy. +# - "kind" is "FUNCTION" or "VARIABLE". The meaning of that is obvious. +# - "algorithms" is a comma-separated list of algorithm names. This helps +# exclude symbols that are part of an algorithm that some user wants to +# exclude. +# + +use lib "."; +use configdata; +use File::Spec::Functions; +use File::Basename; +use FindBin; +use lib "$FindBin::Bin/perl"; +use OpenSSL::Glob; + +# When building a "variant" shared library, with a custom SONAME, also customize +# all the symbol versions. This produces a shared object that can coexist +# without conflict in the same address space as a default build, or an object +# with a different variant tag. +# +# For example, with a target definition that includes: +# +# shlib_variant => "-opt", +# +# we build the following objects: +# +# $ perl -le ' +# for (@ARGV) { +# if ($l = readlink) { +# printf "%s -> %s\n", $_, $l +# } else { +# print +# } +# }' *.so* +# libcrypto-opt.so.1.1 +# libcrypto.so -> libcrypto-opt.so.1.1 +# libssl-opt.so.1.1 +# libssl.so -> libssl-opt.so.1.1 +# +# whose SONAMEs and dependencies are: +# +# $ for l in *.so; do +# echo $l +# readelf -d $l | egrep 'SONAME|NEEDED.*(ssl|crypto)' +# done +# libcrypto.so +# 0x000000000000000e (SONAME) Library soname: [libcrypto-opt.so.1.1] +# libssl.so +# 0x0000000000000001 (NEEDED) Shared library: [libcrypto-opt.so.1.1] +# 0x000000000000000e (SONAME) Library soname: [libssl-opt.so.1.1] +# +# We case-fold the variant tag to upper case and replace all non-alnum +# characters with "_". This yields the following symbol versions: +# +# $ nm libcrypto.so | grep -w A +# 0000000000000000 A OPENSSL_OPT_1_1_0 +# 0000000000000000 A OPENSSL_OPT_1_1_0a +# 0000000000000000 A OPENSSL_OPT_1_1_0c +# 0000000000000000 A OPENSSL_OPT_1_1_0d +# 0000000000000000 A OPENSSL_OPT_1_1_0f +# 0000000000000000 A OPENSSL_OPT_1_1_0g +# $ nm libssl.so | grep -w A +# 0000000000000000 A OPENSSL_OPT_1_1_0 +# 0000000000000000 A OPENSSL_OPT_1_1_0d +# +(my $SO_VARIANT = qq{\U$target{"shlib_variant"}}) =~ s/\W/_/g; + +my $debug=0; +my $trace=0; +my $verbose=0; + +my $crypto_num= catfile($config{sourcedir},"util","libcrypto.num"); +my $ssl_num= catfile($config{sourcedir},"util","libssl.num"); +my $libname; + +my $do_update = 0; +my $do_rewrite = 1; +my $do_crypto = 0; +my $do_ssl = 0; +my $do_ctest = 0; +my $do_ctestall = 0; +my $do_checkexist = 0; + +my $VMS=0; +my $W32=0; +my $NT=0; +my $UNIX=0; +my $linux=0; +my $aix=0; +# Set this to make typesafe STACK definitions appear in DEF +my $safe_stack_def = 0; + +my @known_platforms = ( "__FreeBSD__", "PERL5", + "EXPORT_VAR_AS_FUNCTION", "ZLIB", "_WIN32" + ); +my @known_ossl_platforms = ( "UNIX", "VMS", "WIN32", "WINNT", "OS2" ); +my @known_algorithms = ( # These are algorithms we know are guarded in relevant + # header files, but aren't actually disablable. + # Without these, this script will warn a lot. + "RSA", "MD5", + # @disablables comes from configdata.pm + map { (my $x = uc $_) =~ s|-|_|g; $x; } @disablables, + # Deprecated functions. Not really algorithmss, but + # treated as such here for the sake of simplicity + "DEPRECATEDIN_0_9_8", + "DEPRECATEDIN_1_0_0", + "DEPRECATEDIN_1_1_0", + "DEPRECATEDIN_1_2_0", + ); + +# %disabled comes from configdata.pm +my %disabled_algorithms = + map { (my $x = uc $_) =~ s|-|_|g; $x => 1; } keys %disabled; + +my $apiv = sprintf "%x%02x%02x", split(/\./, $config{api}); +foreach (@known_algorithms) { + if (/^DEPRECATEDIN_(\d+)_(\d+)_(\d+)$/) { + my $depv = sprintf "%x%02x%02x", $1, $2, $3; + $disabled_algorithms{$_} = 1 if $apiv ge $depv; + } +} + +my $zlib; + +foreach (@ARGV, split(/ /, $config{options})) + { + $debug=1 if $_ eq "debug"; + $trace=1 if $_ eq "trace"; + $verbose=1 if $_ eq "verbose"; + $W32=1 if $_ eq "32"; + die "win16 not supported" if $_ eq "16"; + if($_ eq "NT") { + $W32 = 1; + $NT = 1; + } elsif ($_ eq "linux") { + $linux=1; + $UNIX=1; + } elsif ($_ eq "aix") { + $aix=1; + $UNIX=1; + } elsif ($_ eq "VMS") { + $VMS=1; + } + if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic" + || $_ eq "enable-zlib-dynamic") { + $zlib = 1; + } + + $do_crypto=1 if $_ eq "libcrypto" || $_ eq "crypto"; + $do_ssl=1 if $_ eq "libssl" || $_ eq "ssl"; + + $do_update=1 if $_ eq "update"; + $do_rewrite=1 if $_ eq "rewrite"; + $do_ctest=1 if $_ eq "ctest"; + $do_ctestall=1 if $_ eq "ctestall"; + $do_checkexist=1 if $_ eq "exist"; + } +$libname = $unified_info{sharednames}->{libcrypto} if $do_crypto; +$libname = $unified_info{sharednames}->{libssl} if $do_ssl; + +if (!$libname) { + if ($do_ssl) { + $libname="LIBSSL"; + } + if ($do_crypto) { + $libname="LIBCRYPTO"; + } +} + +# If no platform is given, assume WIN32 +if ($W32 + $VMS + $linux + $aix == 0) { + $W32 = 1; +} +die "Please, only one platform at a time" + if ($W32 + $VMS + $linux + $aix > 1); + +if (!$do_ssl && !$do_crypto) + { + print STDERR "usage: $0 ( ssl | crypto ) [ 16 | 32 | NT | OS2 | linux | VMS ]\n"; + exit(1); + } + +%ssl_list=&load_numbers($ssl_num); +$max_ssl = $max_num; +%crypto_list=&load_numbers($crypto_num); +$max_crypto = $max_num; + +my $ssl="include/openssl/ssl.h"; +$ssl.=" include/openssl/sslerr.h"; +$ssl.=" include/openssl/tls1.h"; +$ssl.=" include/openssl/srtp.h"; + +# When scanning include/openssl, skip all SSL files and some internal ones. +my %skipthese; +foreach my $f ( split(/\s+/, $ssl) ) { + $skipthese{$f} = 1; +} +$skipthese{'include/openssl/conf_api.h'} = 1; +$skipthese{'include/openssl/ebcdic.h'} = 1; +$skipthese{'include/openssl/opensslconf.h'} = 1; + +# We use headers found in include/openssl and include/internal only. +# The latter is needed so libssl.so/.dll/.exe can link properly. +my $crypto ="include/internal/dso.h"; +$crypto.=" include/internal/o_dir.h"; +$crypto.=" include/internal/o_str.h"; +$crypto.=" include/internal/err.h"; +$crypto.=" include/internal/sslconf.h"; +foreach my $f ( glob(catfile($config{sourcedir},'include/openssl/*.h')) ) { + my $fn = "include/openssl/" . basename($f); + $crypto .= " $fn" if !defined $skipthese{$fn}; +} + +my $symhacks="include/openssl/symhacks.h"; + +my @ssl_symbols = &do_defs("LIBSSL", $ssl, $symhacks); +my @crypto_symbols = &do_defs("LIBCRYPTO", $crypto, $symhacks); + +if ($do_update) { + +if ($do_ssl == 1) { + + &maybe_add_info("LIBSSL",*ssl_list,@ssl_symbols); + if ($do_rewrite == 1) { + open(OUT, ">$ssl_num"); + &rewrite_numbers(*OUT,"LIBSSL",*ssl_list,@ssl_symbols); + } else { + open(OUT, ">>$ssl_num"); + } + &update_numbers(*OUT,"LIBSSL",*ssl_list,$max_ssl,@ssl_symbols); + close OUT; +} + +if($do_crypto == 1) { + + &maybe_add_info("LIBCRYPTO",*crypto_list,@crypto_symbols); + if ($do_rewrite == 1) { + open(OUT, ">$crypto_num"); + &rewrite_numbers(*OUT,"LIBCRYPTO",*crypto_list,@crypto_symbols); + } else { + open(OUT, ">>$crypto_num"); + } + &update_numbers(*OUT,"LIBCRYPTO",*crypto_list,$max_crypto,@crypto_symbols); + close OUT; +} + +} elsif ($do_checkexist) { + &check_existing(*ssl_list, @ssl_symbols) + if $do_ssl == 1; + &check_existing(*crypto_list, @crypto_symbols) + if $do_crypto == 1; +} elsif ($do_ctest || $do_ctestall) { + + print <<"EOF"; + +/* Test file to check all DEF file symbols are present by trying + * to link to all of them. This is *not* intended to be run! + */ + +int main() +{ +EOF + &print_test_file(*STDOUT,"LIBSSL",*ssl_list,$do_ctestall,@ssl_symbols) + if $do_ssl == 1; + + &print_test_file(*STDOUT,"LIBCRYPTO",*crypto_list,$do_ctestall,@crypto_symbols) + if $do_crypto == 1; + + print "}\n"; + +} else { + + &print_def_file(*STDOUT,$libname,*ssl_list,@ssl_symbols) + if $do_ssl == 1; + + &print_def_file(*STDOUT,$libname,*crypto_list,@crypto_symbols) + if $do_crypto == 1; + +} + + +sub do_defs +{ + my($name,$files,$symhacksfile)=@_; + my $file; + my @ret; + my %syms; + my %platform; # For anything undefined, we assume "" + my %kind; # For anything undefined, we assume "FUNCTION" + my %algorithm; # For anything undefined, we assume "" + my %variant; + my %variant_cnt; # To be able to allocate "name{n}" if "name" + # is the same name as the original. + my $cpp; + my %unknown_algorithms = (); + my $parens = 0; + + foreach $file (split(/\s+/,$symhacksfile." ".$files)) + { + my $fn = catfile($config{sourcedir},$file); + print STDERR "DEBUG: starting on $fn:\n" if $debug; + print STDERR "TRACE: start reading $fn\n" if $trace; + open(IN,"<$fn") || die "Can't open $fn, $!,"; + my $line = "", my $def= ""; + my %tag = ( + (map { $_ => 0 } @known_platforms), + (map { "OPENSSL_SYS_".$_ => 0 } @known_ossl_platforms), + (map { "OPENSSL_NO_".$_ => 0 } @known_algorithms), + (map { "OPENSSL_USE_".$_ => 0 } @known_algorithms), + (grep /^DEPRECATED_/, @known_algorithms), + NOPROTO => 0, + PERL5 => 0, + _WINDLL => 0, + CONST_STRICT => 0, + TRUE => 1, + ); + my $symhacking = $file eq $symhacksfile; + my @current_platforms = (); + my @current_algorithms = (); + + # params: symbol, alias, platforms, kind + # The reason to put this subroutine in a variable is that + # it will otherwise create its own, unshared, version of + # %tag and %variant... + my $make_variant = sub + { + my ($s, $a, $p, $k) = @_; + my ($a1, $a2); + + print STDERR "DEBUG: make_variant: Entered with ",$s,", ",$a,", ",(defined($p)?$p:""),", ",(defined($k)?$k:""),"\n" if $debug; + if (defined($p)) + { + $a1 = join(",",$p, + grep(!/^$/, + map { $tag{$_} == 1 ? $_ : "" } + @known_platforms)); + } + else + { + $a1 = join(",", + grep(!/^$/, + map { $tag{$_} == 1 ? $_ : "" } + @known_platforms)); + } + $a2 = join(",", + grep(!/^$/, + map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ : "" } + @known_ossl_platforms)); + print STDERR "DEBUG: make_variant: a1 = $a1; a2 = $a2\n" if $debug; + if ($a1 eq "") { $a1 = $a2; } + elsif ($a1 ne "" && $a2 ne "") { $a1 .= ",".$a2; } + if ($a eq $s) + { + if (!defined($variant_cnt{$s})) + { + $variant_cnt{$s} = 0; + } + $variant_cnt{$s}++; + $a .= "{$variant_cnt{$s}}"; + } + my $toadd = $a.":".$a1.(defined($k)?":".$k:""); + my $togrep = $s.'(\{[0-9]+\})?:'.$a1.(defined($k)?":".$k:""); + if (!grep(/^$togrep$/, + split(/;/, defined($variant{$s})?$variant{$s}:""))) { + if (defined($variant{$s})) { $variant{$s} .= ";"; } + $variant{$s} .= $toadd; + } + print STDERR "DEBUG: make_variant: Exit with variant of ",$s," = ",$variant{$s},"\n" if $debug; + }; + + print STDERR "DEBUG: parsing ----------\n" if $debug; + while(<IN>) { + s|\R$||; # Better chomp + if($parens > 0) { + #Inside a DEPRECATEDIN + $stored_multiline .= $_; + print STDERR "DEBUG: Continuing multiline DEPRECATEDIN: $stored_multiline\n" if $debug; + $parens = count_parens($stored_multiline); + if ($parens == 0) { + $def .= do_deprecated($stored_multiline, + \@current_platforms, + \@current_algorithms); + } + next; + } + if (/\/\* Error codes for the \w+ functions\. \*\//) + { + undef @tag; + last; + } + if ($line ne '') { + $_ = $line . $_; + $line = ''; + } + + if (/\\$/) { + $line = $`; # keep what was before the backslash + next; + } + + if(/\/\*/) { + if (not /\*\//) { # multi-line comment... + $line = $_; # ... just accumulate + next; + } else { + s/\/\*.*?\*\///gs;# wipe it + } + } + + if ($cpp) { + $cpp++ if /^#\s*if/; + $cpp-- if /^#\s*endif/; + next; + } + if (/^#.*ifdef.*cplusplus/) { + $cpp = 1; + next; + } + + s/{[^{}]*}//gs; # ignore {} blocks + print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne ""; + print STDERR "DEBUG: \$_=\"$_\"\n" if $debug; + if (/^\#\s*if\s+OPENSSL_API_COMPAT\s*(\S)\s*(0x[0-9a-fA-F]{8})L\s*$/) { + my $op = $1; + my $v = hex($2); + if ($op ne '<' && $op ne '>=') { + die "$file unacceptable operator $op: $_\n"; + } + my ($one, $major, $minor) = + ( ($v >> 28) & 0xf, + ($v >> 20) & 0xff, + ($v >> 12) & 0xff ); + my $t = "DEPRECATEDIN_${one}_${major}_${minor}"; + push(@tag,"-"); + push(@tag,$t); + $tag{$t}=($op eq '<' ? 1 : -1); + print STDERR "DEBUG: $file: found tag $t = $tag{$t}\n" if $debug; + } elsif (/^\#\s*ifndef\s+(.*)/) { + push(@tag,"-"); + push(@tag,$1); + $tag{$1}=-1; + print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug; + } elsif (/^\#\s*if\s+!defined\s*\(([^\)]+)\)/) { + push(@tag,"-"); + if (/^\#\s*if\s+(!defined\s*\(([^\)]+)\)(\s+\&\&\s+!defined\s*\(([^\)]+)\))*)$/) { + my $tmp_1 = $1; + my $tmp_; + foreach $tmp_ (split '\&\&',$tmp_1) { + $tmp_ =~ /!defined\s*\(([^\)]+)\)/; + print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug; + push(@tag,$1); + $tag{$1}=-1; + } + } else { + print STDERR "Warning: $file: taking only '!defined($1)' of complicated expression: $_" if $verbose; # because it is O... + print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug; + push(@tag,$1); + $tag{$1}=-1; + } + } elsif (/^\#\s*ifdef\s+(\S*)/) { + push(@tag,"-"); + push(@tag,$1); + $tag{$1}=1; + print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug; + } elsif (/^\#\s*if\s+defined\s*\(([^\)]+)\)/) { + push(@tag,"-"); + if (/^\#\s*if\s+(defined\s*\(([^\)]+)\)(\s+\|\|\s+defined\s*\(([^\)]+)\))*)$/) { + my $tmp_1 = $1; + my $tmp_; + foreach $tmp_ (split '\|\|',$tmp_1) { + $tmp_ =~ /defined\s*\(([^\)]+)\)/; + print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug; + push(@tag,$1); + $tag{$1}=1; + } + } else { + print STDERR "Warning: $file: taking only 'defined($1)' of complicated expression: $_\n" if $verbose; # because it is O... + print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug; + push(@tag,$1); + $tag{$1}=1; + } + } elsif (/^\#\s*error\s+(\w+) is disabled\./) { + my $tag_i = $#tag; + while($tag[$tag_i] ne "-") { + if ($tag[$tag_i] eq "OPENSSL_NO_".$1) { + $tag{$tag[$tag_i]}=2; + print STDERR "DEBUG: $file: changed tag $1 = 2\n" if $debug; + } + $tag_i--; + } + } elsif (/^\#\s*endif/) { + my $tag_i = $#tag; + while($tag_i > 0 && $tag[$tag_i] ne "-") { + my $t=$tag[$tag_i]; + print STDERR "DEBUG: \$t=\"$t\"\n" if $debug; + if ($tag{$t}==2) { + $tag{$t}=-1; + } else { + $tag{$t}=0; + } + print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug; + pop(@tag); + if ($t =~ /^OPENSSL_NO_([A-Z0-9_]+)$/) { + $t=$1; + } elsif($t =~ /^OPENSSL_USE_([A-Z0-9_]+)$/) { + $t=$1; + } else { + $t=""; + } + if ($t ne "" + && !grep(/^$t$/, @known_algorithms)) { + $unknown_algorithms{$t} = 1; + #print STDERR "DEBUG: Added as unknown algorithm: $t\n" if $debug; + } + $tag_i--; + } + pop(@tag); + } elsif (/^\#\s*else/) { + my $tag_i = $#tag; + die "$file unmatched else\n" if $tag_i < 0; + while($tag[$tag_i] ne "-") { + my $t=$tag[$tag_i]; + $tag{$t}= -$tag{$t}; + print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug; + $tag_i--; + } + } elsif (/^\#\s*if\s+1/) { + push(@tag,"-"); + # Dummy tag + push(@tag,"TRUE"); + $tag{"TRUE"}=1; + print STDERR "DEBUG: $file: found 1\n" if $debug; + } elsif (/^\#\s*if\s+0/) { + push(@tag,"-"); + # Dummy tag + push(@tag,"TRUE"); + $tag{"TRUE"}=-1; + print STDERR "DEBUG: $file: found 0\n" if $debug; + } elsif (/^\#\s*if\s+/) { + #Some other unrecognized "if" style + push(@tag,"-"); + print STDERR "Warning: $file: ignoring unrecognized expression: $_\n" if $verbose; # because it is O... + } elsif (/^\#\s*define\s+(\w+)\s+(\w+)/ + && $symhacking && $tag{'TRUE'} != -1) { + # This is for aliasing. When we find an alias, + # we have to invert + &$make_variant($1,$2); + print STDERR "DEBUG: $file: defined $1 = $2\n" if $debug; + } + if (/^\#/) { + @current_platforms = + grep(!/^$/, + map { $tag{$_} == 1 ? $_ : + $tag{$_} == -1 ? "!".$_ : "" } + @known_platforms); + push @current_platforms + , grep(!/^$/, + map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ : + $tag{"OPENSSL_SYS_".$_} == -1 ? "!".$_ : "" } + @known_ossl_platforms); + @current_algorithms = (); + @current_algorithms = + grep(!/^$/, + map { $tag{"OPENSSL_NO_".$_} == -1 ? $_ : "" } + @known_algorithms); + push @current_algorithms + , grep(!/^$/, + map { $tag{"OPENSSL_USE_".$_} == 1 ? $_ : "" } + @known_algorithms); + push @current_algorithms, + grep { /^DEPRECATEDIN_/ && $tag{$_} == 1 } + @known_algorithms; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + next; + } + if ($tag{'TRUE'} != -1) { + if (/^\s*DEFINE_STACK_OF\s*\(\s*(\w*)\s*\)/ + || /^\s*DEFINE_STACK_OF_CONST\s*\(\s*(\w*)\s*\)/) { + next; + } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) { + $def .= "int d2i_$3(void);"; + $def .= "int i2d_$3(void);"; + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int $2_it;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("$2_it","$2_it", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + next; + } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_fname\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) { + $def .= "int d2i_$3(void);"; + $def .= "int i2d_$3(void);"; + $def .= "int $3_free(void);"; + $def .= "int $3_new(void);"; + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int $2_it;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("$2_it","$2_it", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + next; + } elsif (/^\s*DECLARE_ASN1_FUNCTIONS\s*\(\s*(\w*)\s*\)/ || + /^\s*DECLARE_ASN1_FUNCTIONS_const\s*\(\s*(\w*)\s*\)/) { + $def .= "int d2i_$1(void);"; + $def .= "int i2d_$1(void);"; + $def .= "int $1_free(void);"; + $def .= "int $1_new(void);"; + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int $1_it;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("$1_it","$1_it", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + next; + } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS_const\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { + $def .= "int d2i_$2(void);"; + $def .= "int i2d_$2(void);"; + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int $2_it;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("$2_it","$2_it", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + next; + } elsif (/^\s*DECLARE_ASN1_ALLOC_FUNCTIONS\s*\(\s*(\w*)\s*\)/) { + $def .= "int $1_free(void);"; + $def .= "int $1_new(void);"; + next; + } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { + $def .= "int d2i_$2(void);"; + $def .= "int i2d_$2(void);"; + $def .= "int $2_free(void);"; + $def .= "int $2_new(void);"; + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int $2_it;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("$2_it","$2_it", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + next; + } elsif (/^\s*DECLARE_ASN1_ITEM\s*\(\s*(\w*)\s*\)/) { + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int $1_it;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("$1_it","$1_it", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + next; + } elsif (/^\s*DECLARE_ASN1_NDEF_FUNCTION\s*\(\s*(\w*)\s*\)/) { + $def .= "int i2d_$1_NDEF(void);"; + } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) { + next; + } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION\s*\(\s*(\w*)\s*\)/) { + $def .= "int $1_print_ctx(void);"; + next; + } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { + $def .= "int $2_print_ctx(void);"; + next; + } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) { + next; + } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ || + /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ || + /^DECLARE_PEM_rw_const\s*\(\s*(\w*)\s*,/ ) { + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',"STDIO",@current_algorithms).";"; + $def .= "int PEM_read_$1(void);"; + $def .= "int PEM_write_$1(void);"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Things that are everywhere + $def .= "int PEM_read_bio_$1(void);"; + $def .= "int PEM_write_bio_$1(void);"; + next; + } elsif (/^DECLARE_PEM_write\s*\(\s*(\w*)\s*,/ || + /^DECLARE_PEM_write_const\s*\(\s*(\w*)\s*,/ || + /^DECLARE_PEM_write_cb\s*\(\s*(\w*)\s*,/ ) { + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',"STDIO",@current_algorithms).";"; + $def .= "int PEM_write_$1(void);"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Things that are everywhere + $def .= "int PEM_write_bio_$1(void);"; + next; + } elsif (/^DECLARE_PEM_read\s*\(\s*(\w*)\s*,/ || + /^DECLARE_PEM_read_cb\s*\(\s*(\w*)\s*,/ ) { + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',"STDIO",@current_algorithms).";"; + $def .= "int PEM_read_$1(void);"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',"STDIO",@current_algorithms).";"; + # Things that are everywhere + $def .= "int PEM_read_bio_$1(void);"; + next; + } elsif (/^OPENSSL_DECLARE_GLOBAL\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { + # Variant for platforms that do not + # have to access global variables + # in shared libraries through functions + $def .= + "#INFO:" + .join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":" + .join(',',@current_algorithms).";"; + $def .= "OPENSSL_EXTERN int _shadow_$2;"; + $def .= + "#INFO:" + .join(',',@current_platforms).":" + .join(',',@current_algorithms).";"; + # Variant for platforms that have to + # access global variables in shared + # libraries through functions + &$make_variant("_shadow_$2","_shadow_$2", + "EXPORT_VAR_AS_FUNCTION", + "FUNCTION"); + } elsif (/^\s*DEPRECATEDIN/) { + $parens = count_parens($_); + if ($parens == 0) { + $def .= do_deprecated($_, + \@current_platforms, + \@current_algorithms); + } else { + $stored_multiline = $_; + print STDERR "DEBUG: Found multiline DEPRECATEDIN starting with: $stored_multiline\n" if $debug; + next; + } + } elsif ($tag{'CONST_STRICT'} != 1) { + if (/\{|\/\*|\([^\)]*$/) { + $line = $_; + } else { + $def .= $_; + } + } + } + } + close(IN); + die "$file: Unmatched tags\n" if $#tag >= 0; + + my $algs; + my $plays; + + print STDERR "DEBUG: postprocessing ----------\n" if $debug; + foreach (split /;/, $def) { + my $s; my $k = "FUNCTION"; my $p; my $a; + s/^[\n\s]*//g; + s/[\n\s]*$//g; + next if(/\#undef/); + next if(/typedef\W/); + next if(/\#define/); + + print STDERR "TRACE: processing $_\n" if $trace && !/^\#INFO:/; + # Reduce argument lists to empty () + # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {} + my $nsubst = 1; # prevent infinite loop, e.g., on int fn() + while($nsubst && /\(.*\)/s) { + $nsubst = s/\([^\(\)]+\)/\{\}/gs; + $nsubst+= s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs; #(*f{}) -> f + } + # pretend as we didn't use curly braces: {} -> () + s/\{\}/\(\)/gs; + + s/STACK_OF\(\)/void/gs; + s/LHASH_OF\(\)/void/gs; + + print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug; + if (/^\#INFO:([^:]*):(.*)$/) { + $plats = $1; + $algs = $2; + print STDERR "DEBUG: found info on platforms ($plats) and algorithms ($algs)\n" if $debug; + next; + } elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0-9]*\])*\s*$/) { + $s = $1; + $k = "VARIABLE"; + print STDERR "DEBUG: found external variable $s\n" if $debug; + } elsif (/TYPEDEF_\w+_OF/s) { + next; + } elsif (/(\w+)\s*\(\).*/s) { # first token prior [first] () is + $s = $1; # a function name! + print STDERR "DEBUG: found function $s\n" if $debug; + } elsif (/\(/ and not (/=/)) { + print STDERR "File $file: cannot parse: $_;\n"; + next; + } else { + next; + } + + $syms{$s} = 1; + $kind{$s} = $k; + + $p = $plats; + $a = $algs; + + $platform{$s} = + &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); + $algorithm{$s} .= ','.$a; + + if (defined($variant{$s})) { + foreach $v (split /;/,$variant{$s}) { + (my $r, my $p, my $k) = split(/:/,$v); + my $ip = join ',',map({ /^!(.*)$/ ? $1 : "!".$_ } split /,/, $p); + $syms{$r} = 1; + if (!defined($k)) { $k = $kind{$s}; } + $kind{$r} = $k."(".$s.")"; + $algorithm{$r} = $algorithm{$s}; + $platform{$r} = &reduce_platforms($platform{$s}.",".$p.",".$p); + $platform{$s} = &reduce_platforms($platform{$s}.','.$ip.','.$ip); + print STDERR "DEBUG: \$variant{\"$s\"} = ",$v,"; \$r = $r; \$p = ",$platform{$r},"; \$a = ",$algorithm{$r},"; \$kind = ",$kind{$r},"\n" if $debug; + } + } + print STDERR "DEBUG: \$s = $s; \$p = ",$platform{$s},"; \$a = ",$algorithm{$s},"; \$kind = ",$kind{$s},"\n" if $debug; + } + } + + # Info we know about + + push @ret, map { $_."\\".&info_string($_,"EXIST", + $platform{$_}, + $kind{$_}, + $algorithm{$_}) } keys %syms; + + if (keys %unknown_algorithms) { + print STDERR "WARNING: mkdef.pl doesn't know the following algorithms:\n"; + print STDERR "\t",join("\n\t",keys %unknown_algorithms),"\n"; + } + return(@ret); +} + +# Param: string of comma-separated platform-specs. +sub reduce_platforms +{ + my ($platforms) = @_; + my $pl = defined($platforms) ? $platforms : ""; + my %p = map { $_ => 0 } split /,/, $pl; + my $ret; + + print STDERR "DEBUG: Entered reduce_platforms with \"$platforms\"\n" + if $debug; + # We do this, because if there's code like the following, it really + # means the function exists in all cases and should therefore be + # everywhere. By increasing and decreasing, we may attain 0: + # + # ifndef WIN16 + # int foo(); + # else + # int _fat foo(); + # endif + foreach $platform (split /,/, $pl) { + if ($platform =~ /^!(.*)$/) { + $p{$1}--; + } else { + $p{$platform}++; + } + } + foreach $platform (keys %p) { + if ($p{$platform} == 0) { delete $p{$platform}; } + } + + delete $p{""}; + + $ret = join(',',sort(map { $p{$_} < 0 ? "!".$_ : $_ } keys %p)); + print STDERR "DEBUG: Exiting reduce_platforms with \"$ret\"\n" + if $debug; + return $ret; +} + +sub info_string +{ + (my $symbol, my $exist, my $platforms, my $kind, my $algorithms) = @_; + + my %a = defined($algorithms) ? + map { $_ => 1 } split /,/, $algorithms : (); + my $k = defined($kind) ? $kind : "FUNCTION"; + my $ret; + my $p = &reduce_platforms($platforms); + + delete $a{""}; + + $ret = $exist; + $ret .= ":".$p; + $ret .= ":".$k; + $ret .= ":".join(',',sort keys %a); + return $ret; +} + +sub maybe_add_info +{ + (my $name, *nums, my @symbols) = @_; + my $sym; + my $new_info = 0; + my %syms=(); + + foreach $sym (@symbols) { + (my $s, my $i) = split /\\/, $sym; + if (defined($nums{$s})) { + $i =~ s/^(.*?:.*?:\w+)(\(\w+\))?/$1/; + (my $n, my $vers, my $dummy) = split /\\/, $nums{$s}; + if (!defined($dummy) || $i ne $dummy) { + $nums{$s} = $n."\\".$vers."\\".$i; + $new_info++; + print STDERR "DEBUG: maybe_add_info for $s: \"$dummy\" => \"$i\"\n" if $debug; + } + } + $syms{$s} = 1; + } + + my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums; + foreach $sym (@s) { + (my $n, my $vers, my $i) = split /\\/, $nums{$sym}; + if (!defined($syms{$sym}) && $i !~ /^NOEXIST:/) { + $new_info++; + print STDERR "DEBUG: maybe_add_info for $sym: -> undefined\n" if $debug; + } + } + if ($new_info) { + print STDERR "$name: $new_info old symbols have updated info\n"; + if (!$do_rewrite) { + print STDERR "You should do a rewrite to fix this.\n"; + } + } else { + } +} + +# Param: string of comma-separated keywords, each possibly prefixed with a "!" +sub is_valid +{ + my ($keywords_txt,$platforms) = @_; + my (@keywords) = split /,/,$keywords_txt; + my ($falsesum, $truesum) = (0, 1); + + # Param: one keyword + sub recognise + { + my ($keyword,$platforms) = @_; + + if ($platforms) { + # platforms + if ($keyword eq "UNIX" && $UNIX) { return 1; } + if ($keyword eq "VMS" && $VMS) { return 1; } + if ($keyword eq "WIN32" && $W32) { return 1; } + if ($keyword eq "_WIN32" && $W32) { return 1; } + if ($keyword eq "WINNT" && $NT) { return 1; } + # Special platforms: + # EXPORT_VAR_AS_FUNCTION means that global variables + # will be represented as functions. + if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && $W32) { + return 1; + } + if ($keyword eq "ZLIB" && $zlib) { return 1; } + return 0; + } else { + # algorithms + if ($disabled_algorithms{$keyword}) { return 0;} + + # Nothing recognise as true + return 1; + } + } + + foreach $k (@keywords) { + if ($k =~ /^!(.*)$/) { + $falsesum += &recognise($1,$platforms); + } else { + $truesum *= &recognise($k,$platforms); + } + } + print STDERR "DEBUG: [",$#keywords,",",$#keywords < 0,"] is_valid($keywords_txt) => (\!$falsesum) && $truesum = ",(!$falsesum) && $truesum,"\n" if $debug; + return (!$falsesum) && $truesum; +} + +sub print_test_file +{ + (*OUT,my $name,*nums,my $testall,my @symbols)=@_; + my $n = 1; my @e; my @r; + my $sym; my $prev = ""; my $prefSSLeay; + + (@e)=grep(/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/,@symbols); + (@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:.*/ && !/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/,@symbols); + @symbols=((sort @e),(sort @r)); + + foreach $sym (@symbols) { + (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; + my $v = 0; + $v = 1 if $i=~ /^.*?:.*?:VARIABLE/; + my $p = ($i =~ /^[^:]*:([^:]*):/,$1); + my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1); + if (!defined($nums{$s})) { + print STDERR "Warning: $s does not have a number assigned\n" + if(!$do_update); + } elsif (is_valid($p,1) && is_valid($a,0)) { + my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1); + if ($prev eq $s2) { + print OUT "\t/* The following has already appeared previously */\n"; + print STDERR "Warning: Symbol '",$s2,"' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1),", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n"; + } + $prev = $s2; # To warn about duplicates... + + (my $nn, my $vers, my $ni) = split /\\/, $nums{$s2}; + if ($v) { + print OUT "\textern int $s2; /* type unknown */ /* $nn $ni */\n"; + } else { + print OUT "\textern int $s2(); /* type unknown */ /* $nn $ni */\n"; + } + } + } +} + +sub get_version +{ + return $config{version}; +} + +sub print_def_file +{ + (*OUT,my $name,*nums,my @symbols)=@_; + my $n = 1; my @e; my @r; my @v; my $prev=""; + my $liboptions=""; + my $libname = $name; + my $http_vendor = 'www.openssl.org/'; + my $version = get_version(); + my $what = "OpenSSL: implementation of Secure Socket Layer"; + my $description = "$what $version, $name - http://$http_vendor"; + my $prevsymversion = "", $prevprevsymversion = ""; + # For VMS + my $prevnum = 0; + my $symvtextcount = 0; + + if ($W32) + { + print OUT <<"EOF"; +; +; Definition file for the DLL version of the $name library from OpenSSL +; + +LIBRARY $libname $liboptions + +EOF + + print "EXPORTS\n"; + } + elsif ($VMS) + { + print OUT <<"EOF"; +IDENTIFICATION=$version +CASE_SENSITIVE=YES +SYMBOL_VECTOR=(- +EOF + $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-" + } + + (@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:FUNCTION/,@symbols); + (@v)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:VARIABLE/,@symbols); + if ($VMS) { + # VMS needs to have the symbols on slot number order + @symbols=(map { $_->[1] } + sort { $a->[0] <=> $b->[0] } + map { (my $s, my $i) = $_ =~ /^(.*?)\\(.*)$/; + die "Error: $s doesn't have a number assigned\n" + if !defined($nums{$s}); + (my $n, my @rest) = split /\\/, $nums{$s}; + [ $n, $_ ] } (@e, @r, @v)); + } else { + @symbols=((sort @e),(sort @r), (sort @v)); + } + + my ($baseversion, $currversion) = get_openssl_version(); + my $thisversion; + do { + if (!defined($thisversion)) { + $thisversion = $baseversion; + } else { + $thisversion = get_next_version($thisversion); + } + foreach $sym (@symbols) { + (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; + my $v = 0; + $v = 1 if $i =~ /^.*?:.*?:VARIABLE/; + if (!defined($nums{$s})) { + die "Error: $s does not have a number assigned\n" + if(!$do_update); + } else { + (my $n, my $symversion, my $dummy) = split /\\/, $nums{$s}; + my %pf = (); + my $p = ($i =~ /^[^:]*:([^:]*):/,$1); + my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1); + if (is_valid($p,1) && is_valid($a,0)) { + my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1); + if ($prev eq $s2) { + print STDERR "Warning: Symbol '",$s2, + "' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1), + ", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n"; + } + $prev = $s2; # To warn about duplicates... + if($linux) { + next if $symversion ne $thisversion; + if ($symversion ne $prevsymversion) { + if ($prevsymversion ne "") { + if ($prevprevsymversion ne "") { + print OUT "} OPENSSL${SO_VARIANT}_" + ."$prevprevsymversion;\n\n"; + } else { + print OUT "};\n\n"; + } + } + print OUT "OPENSSL${SO_VARIANT}_$symversion {\n global:\n"; + $prevprevsymversion = $prevsymversion; + $prevsymversion = $symversion; + } + print OUT " $s2;\n"; + } elsif ($aix) { + print OUT "$s2\n"; + } elsif ($VMS) { + while(++$prevnum < $n) { + my $symline=" ,SPARE -\n ,SPARE -\n"; + if ($symvtextcount + length($symline) - 2 > 1024) { + print OUT ")\nSYMBOL_VECTOR=(-\n"; + $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-" + } + if ($symvtextcount == 16) { + # Take away first comma + $symline =~ s/,//; + } + print OUT $symline; + $symvtextcount += length($symline) - 2; + } + (my $s_uc = $s) =~ tr/a-z/A-Z/; + my $symtype= + $v ? "DATA" : "PROCEDURE"; + my $symline= + ($s_uc ne $s + ? " ,$s_uc/$s=$symtype -\n ,$s=$symtype -\n" + : " ,$s=$symtype -\n ,SPARE -\n"); + if ($symvtextcount + length($symline) - 2 > 1024) { + print OUT ")\nSYMBOL_VECTOR=(-\n"; + $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-" + } + if ($symvtextcount == 16) { + # Take away first comma + $symline =~ s/,//; + } + print OUT $symline; + $symvtextcount += length($symline) - 2; + } elsif($v) { + printf OUT " %s%-39s DATA\n", + ($W32)?"":"_",$s2; + } else { + printf OUT " %s%s\n", + ($W32)?"":"_",$s2; + } + } + } + } + } while ($linux && $thisversion ne $currversion); + if ($linux) { + if ($prevprevsymversion ne "") { + print OUT " local: *;\n} OPENSSL${SO_VARIANT}_$prevprevsymversion;\n\n"; + } else { + print OUT " local: *;\n};\n\n"; + } + } elsif ($VMS) { + print OUT ")\n"; + (my $libvmaj, my $libvmin, my $libvedit) = + $currversion =~ /^(\d+)_(\d+)_(\d+)[a-z]{0,2}$/; + # The reason to multiply the edit number with 100 is to make space + # for the possibility that we want to encode the patch letters + print OUT "GSMATCH=LEQUAL,",($libvmaj * 100 + $libvmin),",",($libvedit * 100),"\n"; + } + printf OUT "\n"; +} + +sub load_numbers +{ + my($name)=@_; + my(@a,%ret); + my $prevversion; + + $max_num = 0; + $num_noinfo = 0; + $prev = ""; + $prev_cnt = 0; + + my ($baseversion, $currversion) = get_openssl_version(); + + open(IN,"<$name") || die "unable to open $name:$!\n"; + while (<IN>) { + s|\R$||; # Better chomp + s/#.*$//; + next if /^\s*$/; + @a=split; + if (defined $ret{$a[0]}) { + # This is actually perfectly OK + #print STDERR "Warning: Symbol '",$a[0],"' redefined. old=",$ret{$a[0]},", new=",$a[1],"\n"; + } + if ($max_num > $a[1]) { + print STDERR "Warning: Number decreased from ",$max_num," to ",$a[1],"\n"; + } + elsif ($max_num == $a[1]) { + # This is actually perfectly OK + #print STDERR "Warning: Symbol ",$a[0]," has same number as previous ",$prev,": ",$a[1],"\n"; + if ($a[0] eq $prev) { + $prev_cnt++; + $a[0] .= "{$prev_cnt}"; + } + } + else { + $prev_cnt = 0; + } + if ($#a < 2) { + # Existence will be proven later, in do_defs + $ret{$a[0]}=$a[1]; + $num_noinfo++; + } else { + #Sanity check the version number + if (defined $prevversion) { + check_version_lte($prevversion, $a[2]); + } + check_version_lte($a[2], $currversion); + $prevversion = $a[2]; + $ret{$a[0]}=$a[1]."\\".$a[2]."\\".$a[3]; # \\ is a special marker + } + $max_num = $a[1] if $a[1] > $max_num; + $prev=$a[0]; + } + if ($num_noinfo) { + print STDERR "Warning: $num_noinfo symbols were without info." if $verbose || !$do_rewrite; + if ($do_rewrite) { + printf STDERR " The rewrite will fix this.\n" if $verbose; + } else { + printf STDERR " You should do a rewrite to fix this.\n"; + } + } + close(IN); + return(%ret); +} + +sub parse_number +{ + (my $str, my $what) = @_; + (my $n, my $v, my $i) = split(/\\/,$str); + if ($what eq "n") { + return $n; + } else { + return $i; + } +} + +sub rewrite_numbers +{ + (*OUT,$name,*nums,@symbols)=@_; + my $thing; + + my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/,@symbols); + my $r; my %r; my %rsyms; + foreach $r (@r) { + (my $s, my $i) = split /\\/, $r; + my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/; + $i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/; + $r{$a} = $s."\\".$i; + $rsyms{$s} = 1; + } + + my %syms = (); + foreach $_ (@symbols) { + (my $n, my $i) = split /\\/; + $syms{$n} = 1; + } + + my @s=sort { + &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") + || $a cmp $b + } keys %nums; + foreach $sym (@s) { + (my $n, my $vers, my $i) = split /\\/, $nums{$sym}; + next if defined($i) && $i =~ /^.*?:.*?:\w+\(\w+\)/; + next if defined($rsyms{$sym}); + print STDERR "DEBUG: rewrite_numbers for sym = ",$sym,": i = ",$i,", n = ",$n,", rsym{sym} = ",$rsyms{$sym},"syms{sym} = ",$syms{$sym},"\n" if $debug; + $i="NOEXIST::FUNCTION:" + if !defined($i) || $i eq "" || !defined($syms{$sym}); + my $s2 = $sym; + $s2 =~ s/\{[0-9]+\}$//; + printf OUT "%s%-39s %d\t%s\t%s\n","",$s2,$n,$vers,$i; + if (exists $r{$sym}) { + (my $s, $i) = split /\\/,$r{$sym}; + my $s2 = $s; + $s2 =~ s/\{[0-9]+\}$//; + printf OUT "%s%-39s %d\t%s\t%s\n","",$s2,$n,$vers,$i; + } + } +} + +sub update_numbers +{ + (*OUT,$name,*nums,my $start_num, my @symbols)=@_; + my $new_syms = 0; + my $basevers; + my $vers; + + ($basevers, $vers) = get_openssl_version(); + + my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/,@symbols); + my $r; my %r; my %rsyms; + foreach $r (@r) { + (my $s, my $i) = split /\\/, $r; + my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/; + $i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/; + $r{$a} = $s."\\".$i; + $rsyms{$s} = 1; + } + + foreach $sym (@symbols) { + (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; + next if $i =~ /^.*?:.*?:\w+\(\w+\)/; + next if defined($rsyms{$sym}); + die "ERROR: Symbol $sym had no info attached to it." + if $i eq ""; + if (!exists $nums{$s}) { + $new_syms++; + my $s2 = $s; + $s2 =~ s/\{[0-9]+\}$//; + printf OUT "%s%-39s %d\t%s\t%s\n","",$s2, ++$start_num,$vers,$i; + if (exists $r{$s}) { + ($s, $i) = split /\\/,$r{$s}; + $s =~ s/\{[0-9]+\}$//; + printf OUT "%s%-39s %d\t%s\t%s\n","",$s, $start_num,$vers,$i; + } + } + } + if($new_syms) { + print STDERR "$name: Added $new_syms new symbols\n"; + } else { + print STDERR "$name: No new symbols added\n"; + } +} + +sub check_existing +{ + (*nums, my @symbols)=@_; + my %existing; my @remaining; + @remaining=(); + foreach $sym (@symbols) { + (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; + $existing{$s}=1; + } + foreach $sym (keys %nums) { + if (!exists $existing{$sym}) { + push @remaining, $sym; + } + } + if(@remaining) { + print STDERR "The following symbols do not seem to exist:\n"; + foreach $sym (@remaining) { + print STDERR "\t",$sym,"\n"; + } + } +} + +sub count_parens +{ + my $line = shift(@_); + + my $open = $line =~ tr/\(//; + my $close = $line =~ tr/\)//; + + return $open - $close; +} + +#Parse opensslv.h to get the current version number. Also work out the base +#version, i.e. the lowest version number that is binary compatible with this +#version +sub get_openssl_version() +{ + my $fn = catfile($config{sourcedir},"include","openssl","opensslv.h"); + open (IN, "$fn") || die "Can't open opensslv.h"; + + while(<IN>) { + if (/OPENSSL_VERSION_TEXT\s+"OpenSSL (\d\.\d\.)(\d[a-z]*)(-| )/) { + my $suffix = $2; + (my $baseversion = $1) =~ s/\./_/g; + close IN; + return ($baseversion."0", $baseversion.$suffix); + } + } + die "Can't find OpenSSL version number\n"; +} + +#Given an OpenSSL version number, calculate the next version number. If the +#version number gets to a.b.czz then we go to a.b.(c+1) +sub get_next_version() +{ + my $thisversion = shift; + + my ($base, $letter) = $thisversion =~ /^(\d_\d_\d)([a-z]{0,2})$/; + + if ($letter eq "zz") { + my $lastnum = substr($base, -1); + return substr($base, 0, length($base)-1).(++$lastnum); + } + return $base.get_next_letter($letter); +} + +#Given the letters off the end of an OpenSSL version string, calculate what +#the letters for the next release would be. +sub get_next_letter() +{ + my $thisletter = shift; + my $baseletter = ""; + my $endletter; + + if ($thisletter eq "") { + return "a"; + } + if ((length $thisletter) > 1) { + ($baseletter, $endletter) = $thisletter =~ /([a-z]+)([a-z])/; + } else { + $endletter = $thisletter; + } + + if ($endletter eq "z") { + return $thisletter."a"; + } else { + return $baseletter.(++$endletter); + } +} + +#Check if a version is less than or equal to the current version. Its a fatal +#error if not. They must also only differ in letters, or the last number (i.e. +#the first two numbers must be the same) +sub check_version_lte() +{ + my ($testversion, $currversion) = @_; + my $lentv; + my $lencv; + my $cvbase; + + my ($cvnums) = $currversion =~ /^(\d_\d_\d)[a-z]*$/; + my ($tvnums) = $testversion =~ /^(\d_\d_\d)[a-z]*$/; + + #Die if we can't parse the version numbers or they don't look sane + die "Invalid version number: $testversion and $currversion\n" + if (!defined($cvnums) || !defined($tvnums) + || length($cvnums) != 5 + || length($tvnums) != 5); + + #If the base versions (without letters) don't match check they only differ + #in the last number + if ($cvnums ne $tvnums) { + die "Invalid version number: $testversion " + ."for current version $currversion\n" + if (substr($cvnums, 0, 4) ne substr($tvnums, 0, 4)); + return; + } + #If we get here then the base version (i.e. the numbers) are the same - they + #only differ in the letters + + $lentv = length $testversion; + $lencv = length $currversion; + + #If the testversion has more letters than the current version then it must + #be later (or malformed) + if ($lentv > $lencv) { + die "Invalid version number: $testversion " + ."is greater than $currversion\n"; + } + + #Get the last letter from the current version + my ($cvletter) = $currversion =~ /([a-z])$/; + if (defined $cvletter) { + ($cvbase) = $currversion =~ /(\d_\d_\d[a-z]*)$cvletter$/; + } else { + $cvbase = $currversion; + } + die "Unable to parse version number $currversion" if (!defined $cvbase); + my $tvbase; + my ($tvletter) = $testversion =~ /([a-z])$/; + if (defined $tvletter) { + ($tvbase) = $testversion =~ /(\d_\d_\d[a-z]*)$tvletter$/; + } else { + $tvbase = $testversion; + } + die "Unable to parse version number $testversion" if (!defined $tvbase); + + if ($lencv > $lentv) { + #If current version has more letters than testversion then testversion + #minus the final letter must be a substring of the current version + die "Invalid version number $testversion " + ."is greater than $currversion or is invalid\n" + if (index($cvbase, $tvbase) != 0); + } else { + #If both versions have the same number of letters then they must be + #equal up to the last letter, and the last letter in testversion must + #be less than or equal to the last letter in current version. + die "Invalid version number $testversion " + ."is greater than $currversion\n" + if (($cvbase ne $tvbase) && ($tvletter gt $cvletter)); + } +} + +sub do_deprecated() +{ + my ($decl, $plats, $algs) = @_; + $decl =~ /^\s*(DEPRECATEDIN_\d+_\d+_\d+)\s*\((.*)\)\s*$/ + or die "Bad DEPRECATEDIN: $decl\n"; + my $info1 .= "#INFO:"; + $info1 .= join(',', @{$plats}) . ":"; + my $info2 = $info1; + $info1 .= join(',',@{$algs}, $1) . ";"; + $info2 .= join(',',@{$algs}) . ";"; + return $info1 . $2 . ";" . $info2; +} diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkdir-p.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkdir-p.pl new file mode 100755 index 000000000..328060243 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkdir-p.pl @@ -0,0 +1,44 @@ +#! /usr/bin/env perl +# Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# On some systems, the -p option to mkdir (= also create any missing parent +# directories) is not available. + +my $arg; + +foreach $arg (@ARGV) { + $arg =~ tr|\\|/|; + &do_mkdir_p($arg); +} + + +sub do_mkdir_p { + local($dir) = @_; + + $dir =~ s|/*\Z(?!\n)||s; + + if (-d $dir) { + return; + } + + if ($dir =~ m|[^/]/|s) { + local($parent) = $dir; + $parent =~ s|[^/]*\Z(?!\n)||s; + + do_mkdir_p($parent); + } + + unless (mkdir($dir, 0777)) { + if (-d $dir) { + # We raced against another instance doing the same thing. + return; + } + die "Cannot create directory $dir: $!\n"; + } + print "created directory `$dir'\n"; +} diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkerr.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkerr.pl new file mode 100755 index 000000000..df085fb3d --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkerr.pl @@ -0,0 +1,753 @@ +#! /usr/bin/env perl +# Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use lib "."; +use configdata; + +my $config = "crypto/err/openssl.ec"; +my $debug = 0; +my $internal = 0; +my $nowrite = 0; +my $rebuild = 0; +my $reindex = 0; +my $static = 0; +my $unref = 0; +my %modules = (); + +my $errors = 0; +my @t = localtime(); +my $YEAR = $t[5] + 1900; + +sub phase +{ + my $text = uc(shift); + print STDERR "\n---\n$text\n" if $debug; +} + +sub help +{ + print STDERR <<"EOF"; +mkerr.pl [options] [files...] + +Options: + + -conf FILE Use the named config file FILE instead of the default. + + -debug Verbose output debugging on stderr. + + -internal Generate code that is to be built as part of OpenSSL itself. + Also scans internal list of files. + + -module M Only useful with -internal! + Only write files for library module M. Whether files are + actually written or not depends on other options, such as + -rebuild. + Note: this option is cumulative. If not given at all, all + internal modules will be considered. + + -nowrite Do not write the header/source files, even if changed. + + -rebuild Rebuild all header and C source files, even if there + were no changes. + + -reindex Ignore previously assigned values (except for R records in + the config file) and renumber everything starting at 100. + + -static Make the load/unload functions static. + + -unref List all unreferenced function and reason codes on stderr; + implies -nowrite. + + -help Show this help text. + + ... Additional arguments are added to the file list to scan, + if '-internal' was NOT specified on the command line. + +EOF +} + +while ( @ARGV ) { + my $arg = $ARGV[0]; + last unless $arg =~ /-.*/; + $arg = $1 if $arg =~ /-(-.*)/; + if ( $arg eq "-conf" ) { + $config = $ARGV[1]; + shift @ARGV; + } elsif ( $arg eq "-debug" ) { + $debug = 1; + $unref = 1; + } elsif ( $arg eq "-internal" ) { + $internal = 1; + } elsif ( $arg eq "-nowrite" ) { + $nowrite = 1; + } elsif ( $arg eq "-rebuild" ) { + $rebuild = 1; + } elsif ( $arg eq "-reindex" ) { + $reindex = 1; + } elsif ( $arg eq "-static" ) { + $static = 1; + } elsif ( $arg eq "-unref" ) { + $unref = 1; + $nowrite = 1; + } elsif ( $arg eq "-module" ) { + shift @ARGV; + $modules{uc $ARGV[0]} = 1; + } elsif ( $arg =~ /-*h(elp)?/ ) { + &help(); + exit; + } elsif ( $arg =~ /-.*/ ) { + die "Unknown option $arg; use -h for help.\n"; + } + shift @ARGV; +} + +my @source; +if ( $internal ) { + die "Cannot mix -internal and -static\n" if $static; + die "Extra parameters given.\n" if @ARGV; + @source = ( glob('crypto/*.c'), glob('crypto/*/*.c'), + glob('ssl/*.c'), glob('ssl/*/*.c') ); +} else { + die "-module isn't useful without -internal\n" if scalar keys %modules > 0; + @source = @ARGV; +} + +# Data parsed out of the config and state files. +my %hinc; # lib -> header +my %libinc; # header -> lib +my %cskip; # error_file -> lib +my %errorfile; # lib -> error file name +my %fmax; # lib -> max assigned function code +my %rmax; # lib -> max assigned reason code +my %fassigned; # lib -> colon-separated list of assigned function codes +my %rassigned; # lib -> colon-separated list of assigned reason codes +my %fnew; # lib -> count of new function codes +my %rnew; # lib -> count of new reason codes +my %rextra; # "extra" reason code -> lib +my %rcodes; # reason-name -> value +my %ftrans; # old name -> #define-friendly name (all caps) +my %fcodes; # function-name -> value +my $statefile; # state file with assigned reason and function codes +my %strings; # define -> text + +# Read and parse the config file +open(IN, "$config") || die "Can't open config file $config, $!,"; +while ( <IN> ) { + next if /^#/ || /^$/; + if ( /^L\s+(\S+)\s+(\S+)\s+(\S+)/ ) { + my $lib = $1; + my $hdr = $2; + my $err = $3; + $hinc{$lib} = $hdr; + $libinc{$hdr} = $lib; + $cskip{$err} = $lib; + next if $err eq 'NONE'; + $errorfile{$lib} = $err; + $fmax{$lib} = 100; + $rmax{$lib} = 100; + $fassigned{$lib} = ":"; + $rassigned{$lib} = ":"; + $fnew{$lib} = 0; + $rnew{$lib} = 0; + } elsif ( /^R\s+(\S+)\s+(\S+)/ ) { + $rextra{$1} = $2; + $rcodes{$1} = $2; + } elsif ( /^S\s+(\S+)/ ) { + $statefile = $1; + } else { + die "Illegal config line $_\n"; + } +} +close IN; + +if ( ! $statefile ) { + $statefile = $config; + $statefile =~ s/.ec/.txt/; +} + +# The statefile has all the previous assignments. +&phase("Reading state"); +my $skippedstate = 0; +if ( ! $reindex && $statefile ) { + open(STATE, "<$statefile") || die "Can't open $statefile, $!"; + + # Scan function and reason codes and store them: keep a note of the + # maximum code used. + while ( <STATE> ) { + next if /^#/ || /^$/; + my $name; + my $code; + if ( /^(.+):(\d+):\\$/ ) { + $name = $1; + $code = $2; + my $next = <STATE>; + $next =~ s/^\s*(.*)\s*$/$1/; + die "Duplicate define $name" if exists $strings{$name}; + $strings{$name} = $next; + } elsif ( /^(\S+):(\d+):(.*)$/ ) { + $name = $1; + $code = $2; + die "Duplicate define $name" if exists $strings{$name}; + $strings{$name} = $3; + } else { + die "Bad line in $statefile:\n$_\n"; + } + my $lib = $name; + $lib =~ s/^((?:OSSL_|OPENSSL_)?[^_]{2,}).*$/$1/; + $lib = "SSL" if $lib =~ /TLS/; + if ( !defined $errorfile{$lib} ) { + print "Skipping $_"; + $skippedstate++; + next; + } + if ( $name =~ /^(?:OSSL_|OPENSSL_)?[A-Z0-9]{2,}_R_/ ) { + die "$lib reason code $code collision at $name\n" + if $rassigned{$lib} =~ /:$code:/; + $rassigned{$lib} .= "$code:"; + if ( !exists $rextra{$name} ) { + $rmax{$lib} = $code if $code > $rmax{$lib}; + } + $rcodes{$name} = $code; + } elsif ( $name =~ /^(?:OSSL_|OPENSSL_)?[A-Z0-9]{2,}_F_/ ) { + die "$lib function code $code collision at $name\n" + if $fassigned{$lib} =~ /:$code:/; + $fassigned{$lib} .= "$code:"; + $fmax{$lib} = $code if $code > $fmax{$lib}; + $fcodes{$name} = $code; + } else { + die "Bad line in $statefile:\n$_\n"; + } + } + close(STATE); + + if ( $debug ) { + foreach my $lib ( sort keys %rmax ) { + print STDERR "Reason codes for ${lib}:\n"; + if ( $rassigned{$lib} =~ m/^:(.*):$/ ) { + my @rassigned = sort { $a <=> $b } split( ":", $1 ); + print STDERR " ", join(' ', @rassigned), "\n"; + } else { + print STDERR " --none--\n"; + } + } + print STDERR "\n"; + foreach my $lib ( sort keys %fmax ) { + print STDERR "Function codes for ${lib}:\n"; + if ( $fassigned{$lib} =~ m/^:(.*):$/ ) { + my @fassigned = sort { $a <=> $b } split( ":", $1 ); + print STDERR " ", join(' ', @fassigned), "\n"; + } else { + print STDERR " --none--\n"; + } + } + } +} + +# Scan each header file and make a list of error codes +# and function names +&phase("Scanning headers"); +while ( ( my $hdr, my $lib ) = each %libinc ) { + next if $hdr eq "NONE"; + print STDERR " ." if $debug; + my $line = ""; + my $def = ""; + my $linenr = 0; + my $cpp = 0; + + open(IN, "<$hdr") || die "Can't open $hdr, $!,"; + while ( <IN> ) { + $linenr++; + + if ( $line ne '' ) { + $_ = $line . $_; + $line = ''; + } + + if ( /\\$/ ) { + $line = $_; + next; + } + + if ( /\/\*/ ) { + if ( not /\*\// ) { # multiline comment... + $line = $_; # ... just accumulate + next; + } else { + s/\/\*.*?\*\///gs; # wipe it + } + } + + if ( $cpp ) { + $cpp++ if /^#\s*if/; + $cpp-- if /^#\s*endif/; + next; + } + $cpp = 1 if /^#.*ifdef.*cplusplus/; # skip "C" declaration + + next if /^\#/; # skip preprocessor directives + + s/{[^{}]*}//gs; # ignore {} blocks + + if ( /\{|\/\*/ ) { # Add a so editor works... + $line = $_; + } else { + $def .= $_; + } + } + + # Delete any DECLARE_ macros + my $defnr = 0; + $def =~ s/DECLARE_\w+\([\w,\s]+\)//gs; + foreach ( split /;/, $def ) { + $defnr++; + # The goal is to collect function names from function declarations. + + s/^[\n\s]*//g; + s/[\n\s]*$//g; + + # Skip over recognized non-function declarations + next if /typedef\W/ or /DECLARE_STACK_OF/ or /TYPEDEF_.*_OF/; + + # Remove STACK_OF(foo) + s/STACK_OF\(\w+\)/void/; + + # Reduce argument lists to empty () + # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {} + while ( /\(.*\)/s ) { + s/\([^\(\)]+\)/\{\}/gs; + s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs; #(*f{}) -> f + } + + # pretend as we didn't use curly braces: {} -> () + s/\{\}/\(\)/gs; + + # Last token just before the first () is a function name. + if ( /(\w+)\s*\(\).*/s ) { + my $name = $1; + $name =~ tr/[a-z]/[A-Z]/; + $ftrans{$name} = $1; + } elsif ( /[\(\)]/ and not(/=/) ) { + print STDERR "Header $hdr: cannot parse: $_;\n"; + } + } + + next if $reindex; + + if ( $lib eq "SSL" && $rmax{$lib} >= 1000 ) { + print STDERR "SSL error codes 1000+ are reserved for alerts.\n"; + print STDERR "Any new alerts must be added to $config.\n"; + $errors++; + } + close IN; +} +print STDERR "\n" if $debug; + +# Scan each C source file and look for function and reason codes +# This is done by looking for strings that "look like" function or +# reason codes: basically anything consisting of all upper case and +# numerics which has _F_ or _R_ in it and which has the name of an +# error library at the start. This seems to work fine except for the +# oddly named structure BIO_F_CTX which needs to be ignored. +# If a code doesn't exist in list compiled from headers then mark it +# with the value "X" as a place holder to give it a value later. +# Store all function and reason codes found in %usedfuncs and %usedreasons +# so all those unreferenced can be printed out. +&phase("Scanning source"); +my %usedfuncs; +my %usedreasons; +foreach my $file ( @source ) { + # Don't parse the error source file. + next if exists $cskip{$file}; + open( IN, "<$file" ) || die "Can't open $file, $!,"; + my $func; + my $linenr = 0; + print STDERR "$file:\n" if $debug; + while ( <IN> ) { + + # skip obsoleted source files entirely! + last if /^#error\s+obsolete/; + $linenr++; + if ( !/;$/ && /^\**([a-zA-Z_].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/ ) { + /^([^()]*(\([^()]*\)[^()]*)*)\(/; + $1 =~ /([A-Za-z_0-9]*)$/; + $func = $1; + } + + if ( /(((?:OSSL_|OPENSSL_)?[A-Z0-9]{2,})_F_([A-Z0-9_]+))/ ) { + next unless exists $errorfile{$2}; + next if $1 eq "BIO_F_BUFFER_CTX"; + $usedfuncs{$1} = 1; + if ( !exists $fcodes{$1} ) { + print STDERR " New function $1\n" if $debug; + $fcodes{$1} = "X"; + $fnew{$2}++; + } + $ftrans{$3} = $func unless exists $ftrans{$3}; + if ( uc($func) ne $3 ) { + print STDERR "ERROR: mismatch $file:$linenr $func:$3\n"; + $errors++; + } + print STDERR " Function $1 = $fcodes{$1}\n" + if $debug; + } + if ( /(((?:OSSL_|OPENSSL_)?[A-Z0-9]{2,})_R_[A-Z0-9_]+)/ ) { + next unless exists $errorfile{$2}; + $usedreasons{$1} = 1; + if ( !exists $rcodes{$1} ) { + print STDERR " New reason $1\n" if $debug; + $rcodes{$1} = "X"; + $rnew{$2}++; + } + print STDERR " Reason $1 = $rcodes{$1}\n" if $debug; + } + } + close IN; +} +print STDERR "\n" if $debug; + +# Now process each library in turn. +&phase("Writing files"); +my $newstate = 0; +foreach my $lib ( keys %errorfile ) { + next if ! $fnew{$lib} && ! $rnew{$lib} && ! $rebuild; + next if scalar keys %modules > 0 && !$modules{$lib}; + next if $nowrite; + print STDERR "$lib: $fnew{$lib} new functions\n" if $fnew{$lib}; + print STDERR "$lib: $rnew{$lib} new reasons\n" if $rnew{$lib}; + $newstate = 1; + + # If we get here then we have some new error codes so we + # need to rebuild the header file and C file. + + # Make a sorted list of error and reason codes for later use. + my @function = sort grep( /^${lib}_/, keys %fcodes ); + my @reasons = sort grep( /^${lib}_/, keys %rcodes ); + + # indent level for innermost preprocessor lines + my $indent = " "; + + # Rewrite the header file + + my $hfile = $hinc{$lib}; + $hfile =~ s/.h$/err.h/ if $internal; + open( OUT, ">$hfile" ) || die "Can't write to $hfile, $!,"; + print OUT <<"EOF"; +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the \"License\"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_${lib}ERR_H +# define HEADER_${lib}ERR_H + +# include <openssl/symhacks.h> + +EOF + if ( $internal ) { + # Declare the load function because the generate C file + # includes "fooerr.h" not "foo.h" + if ($lib ne "SSL" && $lib ne "ASYNC" + && grep { $lib eq uc $_ } @disablables) { + print OUT <<"EOF"; +# include <openssl/opensslconf.h> + +# ifndef OPENSSL_NO_${lib} + +EOF + $indent = " "; + } + print OUT <<"EOF"; +#${indent}ifdef __cplusplus +extern \"C\" +#${indent}endif +int ERR_load_${lib}_strings(void); +EOF + } else { + print OUT <<"EOF"; +# define ${lib}err(f, r) ERR_${lib}_error((f), (r), OPENSSL_FILE, OPENSSL_LINE) + +EOF + if ( ! $static ) { + print OUT <<"EOF"; + +# ifdef __cplusplus +extern \"C\" { +# endif +int ERR_load_${lib}_strings(void); +void ERR_unload_${lib}_strings(void); +void ERR_${lib}_error(int function, int reason, char *file, int line); +# ifdef __cplusplus +} +# endif +EOF + } + } + + print OUT "\n/*\n * $lib function codes.\n */\n"; + foreach my $i ( @function ) { + my $z = 48 - length($i); + $z = 0 if $z < 0; + if ( $fcodes{$i} eq "X" ) { + $fassigned{$lib} =~ m/^:([^:]*):/; + my $findcode = $1; + $findcode = $fmax{$lib} if !defined $findcode; + while ( $fassigned{$lib} =~ m/:$findcode:/ ) { + $findcode++; + } + $fcodes{$i} = $findcode; + $fassigned{$lib} .= "$findcode:"; + print STDERR "New Function code $i\n" if $debug; + } + printf OUT "#${indent}define $i%s $fcodes{$i}\n", " " x $z; + } + + print OUT "\n/*\n * $lib reason codes.\n */\n"; + foreach my $i ( @reasons ) { + my $z = 48 - length($i); + $z = 0 if $z < 0; + if ( $rcodes{$i} eq "X" ) { + $rassigned{$lib} =~ m/^:([^:]*):/; + my $findcode = $1; + $findcode = $rmax{$lib} if !defined $findcode; + while ( $rassigned{$lib} =~ m/:$findcode:/ ) { + $findcode++; + } + $rcodes{$i} = $findcode; + $rassigned{$lib} .= "$findcode:"; + print STDERR "New Reason code $i\n" if $debug; + } + printf OUT "#${indent}define $i%s $rcodes{$i}\n", " " x $z; + } + print OUT "\n"; + + while (length($indent) > 0) { + $indent = substr $indent, 0, -1; + print OUT "#${indent}endif\n"; + } + + # Rewrite the C source file containing the error details. + + # First, read any existing reason string definitions: + my $cfile = $errorfile{$lib}; + my $pack_lib = $internal ? "ERR_LIB_${lib}" : "0"; + my $hincf = $hfile; + $hincf =~ s|.*include/||; + if ( $hincf =~ m|^openssl/| ) { + $hincf = "<${hincf}>"; + } else { + $hincf = "\"${hincf}\""; + } + + open( OUT, ">$cfile" ) + || die "Can't open $cfile for writing, $!, stopped"; + + my $const = $internal ? 'const ' : ''; + + print OUT <<"EOF"; +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include <openssl/err.h> +#include $hincf + +#ifndef OPENSSL_NO_ERR + +static ${const}ERR_STRING_DATA ${lib}_str_functs[] = { +EOF + + # Add each function code: if a function name is found then use it. + foreach my $i ( @function ) { + my $fn; + if ( exists $strings{$i} and $strings{$i} ne '' ) { + $fn = $strings{$i}; + $fn = "" if $fn eq '*'; + } else { + $i =~ /^${lib}_F_(\S+)$/; + $fn = $1; + $fn = $ftrans{$fn} if exists $ftrans{$fn}; + $strings{$i} = $fn; + } + my $short = " {ERR_PACK($pack_lib, $i, 0), \"$fn\"},"; + if ( length($short) <= 80 ) { + print OUT "$short\n"; + } else { + print OUT " {ERR_PACK($pack_lib, $i, 0),\n \"$fn\"},\n"; + } + } + print OUT <<"EOF"; + {0, NULL} +}; + +static ${const}ERR_STRING_DATA ${lib}_str_reasons[] = { +EOF + + # Add each reason code. + foreach my $i ( @reasons ) { + my $rn; + if ( exists $strings{$i} ) { + $rn = $strings{$i}; + $rn = "" if $rn eq '*'; + } else { + $i =~ /^${lib}_R_(\S+)$/; + $rn = $1; + $rn =~ tr/_[A-Z]/ [a-z]/; + $strings{$i} = $rn; + } + my $short = " {ERR_PACK($pack_lib, 0, $i), \"$rn\"},"; + if ( length($short) <= 80 ) { + print OUT "$short\n"; + } else { + print OUT " {ERR_PACK($pack_lib, 0, $i),\n \"$rn\"},\n"; + } + } + print OUT <<"EOF"; + {0, NULL} +}; + +#endif +EOF + if ( $internal ) { + print OUT <<"EOF"; + +int ERR_load_${lib}_strings(void) +{ +#ifndef OPENSSL_NO_ERR + if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL) { + ERR_load_strings_const(${lib}_str_functs); + ERR_load_strings_const(${lib}_str_reasons); + } +#endif + return 1; +} +EOF + } else { + my $st = $static ? "static " : ""; + print OUT <<"EOF"; + +static int lib_code = 0; +static int error_loaded = 0; + +${st}int ERR_load_${lib}_strings(void) +{ + if (lib_code == 0) + lib_code = ERR_get_next_error_library(); + + if (!error_loaded) { +#ifndef OPENSSL_NO_ERR + ERR_load_strings(lib_code, ${lib}_str_functs); + ERR_load_strings(lib_code, ${lib}_str_reasons); +#endif + error_loaded = 1; + } + return 1; +} + +${st}void ERR_unload_${lib}_strings(void) +{ + if (error_loaded) { +#ifndef OPENSSL_NO_ERR + ERR_unload_strings(lib_code, ${lib}_str_functs); + ERR_unload_strings(lib_code, ${lib}_str_reasons); +#endif + error_loaded = 0; + } +} + +${st}void ERR_${lib}_error(int function, int reason, char *file, int line) +{ + if (lib_code == 0) + lib_code = ERR_get_next_error_library(); + ERR_PUT_error(lib_code, function, reason, file, line); +} +EOF + + } + + close OUT; +} + +&phase("Ending"); +# Make a list of unreferenced function and reason codes +if ( $unref ) { + my @funref; + foreach ( keys %fcodes ) { + push( @funref, $_ ) unless exists $usedfuncs{$_}; + } + my @runref; + foreach ( keys %rcodes ) { + push( @runref, $_ ) unless exists $usedreasons{$_}; + } + if ( @funref ) { + print STDERR "The following function codes were not referenced:\n"; + foreach ( sort @funref ) { + print STDERR " $_\n"; + } + } + if ( @runref ) { + print STDERR "The following reason codes were not referenced:\n"; + foreach ( sort @runref ) { + print STDERR " $_\n"; + } + } +} + +die "Found $errors errors, quitting" if $errors; + +# Update the state file +if ( $newstate ) { + open(OUT, ">$statefile.new") + || die "Can't write $statefile.new, $!"; + print OUT <<"EOF"; +# Copyright 1999-$YEAR The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html +EOF + print OUT "\n# Function codes\n"; + foreach my $i ( sort keys %fcodes ) { + my $short = "$i:$fcodes{$i}:"; + my $t = exists $strings{$i} ? $strings{$i} : ""; + $t = "\\\n\t" . $t if length($short) + length($t) > 80; + print OUT "$short$t\n"; + } + print OUT "\n#Reason codes\n"; + foreach my $i ( sort keys %rcodes ) { + my $short = "$i:$rcodes{$i}:"; + my $t = exists $strings{$i} ? "$strings{$i}" : ""; + $t = "\\\n\t" . $t if length($short) + length($t) > 80; + print OUT "$short$t\n" if !exists $rextra{$i}; + } + close(OUT); + if ( $skippedstate ) { + print "Skipped state, leaving update in $statefile.new"; + } else { + rename "$statefile", "$statefile.old" + || die "Can't backup $statefile to $statefile.old, $!"; + rename "$statefile.new", "$statefile" + || die "Can't rename $statefile to $statefile.new, $!"; + } +} + +exit; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkrc.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkrc.pl new file mode 100755 index 000000000..6762bc4a5 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mkrc.pl @@ -0,0 +1,93 @@ +#! /usr/bin/env perl +# Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; +use lib "."; +use configdata; +use File::Spec::Functions; + +my $versionfile = catfile( $config{sourcedir}, "include/openssl/opensslv.h" ); + +my ( $ver, $v1, $v2, $v3, $v4, $beta, $version ); + +open FD, $versionfile or die "Couldn't open include/openssl/opensslv.h: $!\n"; +while (<FD>) { + if (/OPENSSL_VERSION_NUMBER\s+(0x[0-9a-f]+)/i) { + $ver = hex($1); + $v1 = ( $ver >> 28 ); + $v2 = ( $ver >> 20 ) & 0xff; + $v3 = ( $ver >> 12 ) & 0xff; + $v4 = ( $ver >> 4 ) & 0xff; + $beta = $ver & 0xf; + $version = "$v1.$v2.$v3"; + if ( $beta == 0xf ) { + $version .= chr( ord('a') + $v4 - 1 ) if ($v4); + } elsif ( $beta == 0 ) { + $version .= "-dev"; + } else { + $version .= "-beta$beta"; + } + last; + } +} +close(FD); + +my $filename = $ARGV[0]; +my $description = "OpenSSL library"; +my $vft = "VFT_DLL"; +if ( $filename =~ /openssl/i ) { + $description = "OpenSSL application"; + $vft = "VFT_APP"; +} + +my $YEAR = [localtime()]->[5] + 1900; +print <<___; +#include <winver.h> + +LANGUAGE 0x09,0x01 + +1 VERSIONINFO + FILEVERSION $v1,$v2,$v3,$v4 + PRODUCTVERSION $v1,$v2,$v3,$v4 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x01L +#else + FILEFLAGS 0x00L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE $vft + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + // Required: + VALUE "CompanyName", "The OpenSSL Project, https://www.openssl.org/\\0" + VALUE "FileDescription", "$description\\0" + VALUE "FileVersion", "$version\\0" + VALUE "InternalName", "$filename\\0" + VALUE "OriginalFilename", "$filename\\0" + VALUE "ProductName", "The OpenSSL Toolkit\\0" + VALUE "ProductVersion", "$version\\0" + // Optional: + //VALUE "Comments", "\\0" + VALUE "LegalCopyright", "Copyright 1998-$YEAR The OpenSSL Authors. All rights reserved.\\0" + //VALUE "LegalTrademarks", "\\0" + //VALUE "PrivateBuild", "\\0" + //VALUE "SpecialBuild", "\\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x4b0 + END +END +___ diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mktar.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mktar.sh new file mode 100755 index 000000000..17115cf59 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/mktar.sh @@ -0,0 +1,36 @@ +#! /bin/sh +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +HERE=`dirname $0` + +version=`grep 'OPENSSL_VERSION_TEXT *"OpenSSL' $HERE/../include/openssl/opensslv.h | sed -e 's|.*"OpenSSL ||' -e 's| .*||'` +basename=openssl + +NAME="$basename-$version" + +while [ $# -gt 0 ]; do + case "$1" in + --name=* ) NAME=`echo "$1" | sed -e 's|[^=]*=||'` ;; + --name ) shift; NAME="$1" ;; + --tarfile=* ) TARFILE=`echo "$1" | sed -e 's|[^=]*=||'` ;; + --tarfile ) shift; TARFILE="$1" ;; + * ) echo >&2 "Could not parse '$1'"; exit 1 ;; + esac + shift +done + +if [ -z "$TARFILE" ]; then TARFILE="$NAME.tar"; fi + +# This counts on .gitattributes to specify what files should be ignored +git archive --worktree-attributes --format=tar --prefix="$NAME/" -v HEAD \ + | gzip -9 > "$TARFILE.gz" + +# Good old way to ensure we display an absolute path +td=`dirname $TARFILE` +tf=`basename $TARFILE` +ls -l "`cd $td; pwd`/$tf.gz" diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/openssl-format-source b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/openssl-format-source new file mode 100755 index 000000000..e39964420 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/openssl-format-source @@ -0,0 +1,175 @@ +#!/bin/sh +# +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# +# openssl-format-source +# - format source tree according to OpenSSL coding style using indent +# +# usage: +# openssl-format-source [-v] [-n] [file|directory] ... +# +# note: the indent options assume GNU indent v2.2.10 which was released +# Feb-2009 so if you have an older indent the options may not +# match what is expected +# +# any marked block comment blocks have to be moved to align manually after +# the reformatting has been completed as marking a block causes indent to +# not move it at all ... +# + +PATH=/usr/local/bin:/bin:/usr/bin:$PATH +export PATH +HERE="`dirname $0`" + +set -e + +INDENT=indent +uname -s | grep BSD > /dev/null && type gindent > /dev/null 2>&1 && INDENT=gindent + +if [ $# -eq 0 ]; then + echo "usage: $0 [-v] [-n] [-c] [sourcefile|sourcedir] ..." >&2 + exit 1 +fi + +VERBOSE=false +DONT=false +STOPARGS=false +COMMENTS=false +CHANGED=false +DEBUG="" + +# for this exercise, we want to force the openssl style, so we roll +# our own indent profile, which is at a well known location +INDENT_PROFILE="$HERE/indent.pro" +export INDENT_PROFILE +if [ ! -f "$INDENT_PROFILE" ]; then + echo "$0: unable to locate the openssl indent.pro file" >&2 + exit 1 +fi + +# Extra arguments; for adding the comment-formatting +INDENT_ARGS="" +for i +do + if [ "$STOPARGS" != "true" ]; then + case $i in + --) STOPARGS="true"; continue;; + -n) DONT="true"; continue;; + -v) VERBOSE="true"; + echo "INDENT_PROFILE=$INDENT_PROFILE"; + continue;; + -c) COMMENTS="true"; + INDENT_ARGS="-fc1 -fca -cdb -sc"; + continue;; + -nc) COMMENTS="true"; + continue;; + -d) DEBUG='eval tee "$j.pre" |' + continue;; + esac + fi + + if [ -d "$i" ]; then + LIST=`find "$i" -name '*.[ch]' -print` + else + if [ ! -f "$i" ]; then + echo "$0: source file not found: $i" >&2 + exit 1 + fi + LIST="$i" + fi + + for j in $LIST + do + # ignore symlinks - we only ever process the base file - so if we + # expand a directory tree we need to ignore any located symlinks + if [ -d "$i" ]; then + if [ -h "$j" ]; then + continue; + fi + fi + + if [ "$DONT" = "false" ]; then + tmp=$(mktemp /tmp/indent.XXXXXX) + trap 'rm -f "$tmp"' HUP INT TERM EXIT + + case `basename $j` in + # the list of files that indent is unable to handle correctly + # that we simply leave alone for manual formatting now + obj_dat.h|aes_core.c|aes_x86core.c|ecp_nistz256.c) + echo "skipping $j" + ;; + *) + if [ "$COMMENTS" = "true" ]; then + # we have to mark single line comments as /*- ...*/ to stop indent + # messing with them, run expand then indent as usual but with the + # the process-comments options and then undo that marking, and then + # finally re-run indent without process-comments so the marked-to- + # be-ignored comments we did automatically end up getting moved + # into the right position within the code as indent leaves marked + # comments entirely untouched - we appear to have no way to avoid + # the double processing and get the desired output + cat "$j" | \ + expand | \ + perl -0 -np \ + -e 's/(\n#[ \t]*ifdef[ \t]+__cplusplus\n[^\n]*\n#[ \t]*endif\n)/\n\/**INDENT-OFF**\/$1\/**INDENT-ON**\/\n/g;' \ + -e 's/(\n\/\*\!)/\n\/**/g;' \ + -e 's/(STACK_OF|LHASH_OF)\(([^ \t,\)]+)\)( |\n)/$1_$2_$3/g;' \ + | \ + perl -np \ + -e 's/^([ \t]*)\/\*([ \t]+.*)\*\/[ \t]*$/my ($x1,$x2) = ($1, $2); if (length("$x1$x2")<75 && $x2 !~ m#^\s*\*INDENT-(ON|OFF)\*\s*$#) {$c="-"}else{$c=""}; "$x1\/*$c$x2*\/"/e;' \ + -e 's/^\/\* ((Copyright|=|----).*)$/\/*-$1/;' \ + -e 's/^((DECLARE|IMPLEMENT)_.*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \ + -e 's/^([ \t]*(make_dh|make_dh_bn|make_rfc5114_td)\(.*\)[ \t,]*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \ + -e 's/^(ASN1_ADB_TEMPLATE\(.*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \ + -e 's/^((ASN1|ADB)_.*_(end|END)\(.*[\){=,;]+[ \t]*)$/$1\n\/**INDENT-ON**\//;' \ + -e '/ASN1_(ITEM_ref|ITEM_ptr|ITEM_rptr|PCTX)/ || s/^((ASN1|ADB)_[^\*]*[){=,]+[ \t]*)$/\/**INDENT-OFF**\/\n$1/;' \ + -e 's/^(} (ASN1|ADB)_[^\*]*[\){=,;]+)$/$1\n\/**INDENT-ON**\//;' \ + | \ + $DEBUG $INDENT $INDENT_ARGS | \ + perl -np \ + -e 's/^([ \t]*)\/\*-(.*)\*\/[ \t]*$/$1\/*$2*\//;' \ + -e 's/^\/\*-((Copyright|=|----).*)$/\/* $1/;' \ + | $INDENT | \ + perl -0 -np \ + -e 's/\/\*\*INDENT-(ON|OFF)\*\*\/\n//g;' \ + | perl -np \ + -e 's/(STACK_OF|LHASH_OF)_([^ \t,]+)_( |\/)/$1($2)$3/g;' \ + -e 's/(STACK_OF|LHASH_OF)_([^ \t,]+)_$/$1($2)/g;' \ + | perl "$HERE"/su-filter.pl \ + > "$tmp" + else + expand "$j" | $INDENT $INDENT_ARGS > "$tmp" + fi; + if cmp -s "$tmp" "$j"; then + if [ "$VERBOSE" = "true" ]; then + echo "$j unchanged" + fi + rm "$tmp" + else + if [ "$VERBOSE" = "true" ]; then + echo "$j changed" + fi + CHANGED=true + mv "$tmp" "$j" + fi + ;; + esac + fi + done +done + + +if [ "$VERBOSE" = "true" ]; then + echo + if [ "$CHANGED" = "true" ]; then + echo "SOURCE WAS MODIFIED" + else + echo "SOURCE WAS NOT MODIFIED" + fi +fi diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/openssl-update-copyright b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/openssl-update-copyright new file mode 100755 index 000000000..c432f8462 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/openssl-update-copyright @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +# +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +myname="$(basename $0)" + +this_year="$(date '+%Y')" +some_year="[12][0-9][0-9][0-9]" +year_range="(${some_year})(-${some_year})?" + +copyright_owner="The OpenSSL Project" +copyright="Copyright .*${year_range} .*${copyright_owner}" + +# sed_script: +# for all lines that contain ${copyright} : { +# replace years yyyy-zzzz (or year yyyy) by yyyy-${this_year} +# replace repeated years yyyy-yyyy by yyyy +# } +sed_script="/${copyright}/{ s/${year_range}/\1-${this_year}/ ; s/(${some_year})-\1/\1/ }" + +function usage() { + cat >&2 <<EOF +usage: $myname [-h|--help] [file|directory] ... + +Updates the year ranges of all OpenSSL copyright statements in the given +files or directories. (Directories are traversed recursively.) +EOF +} + +if [ $# -eq 0 ]; then + usage + exit 0 +fi + + +for arg in "$@"; do + case $arg in + -h|--help) + usage + exit 0 + ;; + -*) + echo -e "illegal option: $arg\n" >& 2 + usage + exit 1 + ;; + *) + if [ -f "$arg" ]; then + sed -E -i "${sed_script}" "$arg" + elif [ -d "$arg" ]; then + find "$arg" -name '.[a-z]*' -prune -o -type f -exec sed -E -i "${sed_script}" {} + + else + echo "$arg: no such file or directory" >&2 + fi + ;; + esac +done diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/opensslwrap.sh b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/opensslwrap.sh new file mode 100755 index 000000000..b27cbb897 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/opensslwrap.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +HERE="`echo $0 | sed -e 's|[^/]*$||'`" +OPENSSL="${HERE}../apps/openssl" + +if [ -d "${HERE}../engines" -a "x$OPENSSL_ENGINES" = "x" ]; then + OPENSSL_ENGINES="${HERE}../engines"; export OPENSSL_ENGINES +fi + +if [ -x "${OPENSSL}.exe" ]; then + # The original reason for this script existence is to work around + # certain caveats in run-time linker behaviour. On Windows platforms + # adjusting $PATH used to be sufficient, but with introduction of + # SafeDllSearchMode in XP/2003 the only way to get it right in + # *all* possible situations is to copy newly built .DLLs to apps/ + # and test/, which is now done elsewhere... The $PATH is adjusted + # for backward compatibility (and nostagical reasons:-). + if [ "$OSTYPE" != msdosdjgpp ]; then + PATH="${HERE}..:$PATH"; export PATH + fi + exec "${OPENSSL}.exe" "$@" +elif [ -x "${OPENSSL}" -a -x "${HERE}shlib_wrap.sh" ]; then + exec "${HERE}shlib_wrap.sh" "${OPENSSL}" "$@" +else + exec "${OPENSSL}" "$@" # hope for the best... +fi diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Glob.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Glob.pm new file mode 100644 index 000000000..ec87da4ae --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Glob.pm @@ -0,0 +1,21 @@ +package OpenSSL::Glob; + +use strict; +use warnings; + +use File::Glob; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT); + +$VERSION = '0.1'; +@ISA = qw(Exporter); +@EXPORT = qw(glob); + +sub glob { + goto &File::Glob::bsd_glob if $^O ne "VMS"; + goto &CORE::glob; +} + +1; +__END__ diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test.pm new file mode 100644 index 000000000..0df6ad0a5 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test.pm @@ -0,0 +1,1217 @@ +# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package OpenSSL::Test; + +use strict; +use warnings; + +use Test::More 0.96; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +$VERSION = "0.8"; +@ISA = qw(Exporter); +@EXPORT = (@Test::More::EXPORT, qw(setup run indir cmd app fuzz test + perlapp perltest subtest)); +@EXPORT_OK = (@Test::More::EXPORT_OK, qw(bldtop_dir bldtop_file + srctop_dir srctop_file + data_file data_dir + pipe with cmdstr quotify + openssl_versions)); + +=head1 NAME + +OpenSSL::Test - a private extension of Test::More + +=head1 SYNOPSIS + + use OpenSSL::Test; + + setup("my_test_name"); + + ok(run(app(["openssl", "version"])), "check for openssl presence"); + + indir "subdir" => sub { + ok(run(test(["sometest", "arg1"], stdout => "foo.txt")), + "run sometest with output to foo.txt"); + }; + +=head1 DESCRIPTION + +This module is a private extension of L<Test::More> for testing OpenSSL. +In addition to the Test::More functions, it also provides functions that +easily find the diverse programs within a OpenSSL build tree, as well as +some other useful functions. + +This module I<depends> on the environment variables C<$TOP> or C<$SRCTOP> +and C<$BLDTOP>. Without one of the combinations it refuses to work. +See L</ENVIRONMENT> below. + +With each test recipe, a parallel data directory with (almost) the same name +as the recipe is possible in the source directory tree. For example, for a +recipe C<$SRCTOP/test/recipes/99-foo.t>, there could be a directory +C<$SRCTOP/test/recipes/99-foo_data/>. + +=cut + +use File::Copy; +use File::Spec::Functions qw/file_name_is_absolute curdir canonpath splitdir + catdir catfile splitpath catpath devnull abs2rel + rel2abs/; +use File::Path 2.00 qw/rmtree mkpath/; +use File::Basename; +use Cwd qw/getcwd abs_path/; + +my $level = 0; + +# The name of the test. This is set by setup() and is used in the other +# functions to verify that setup() has been used. +my $test_name = undef; + +# Directories we want to keep track of TOP, APPS, TEST and RESULTS are the +# ones we're interested in, corresponding to the environment variables TOP +# (mandatory), BIN_D, TEST_D, UTIL_D and RESULT_D. +my %directories = (); + +# The environment variables that gave us the contents in %directories. These +# get modified whenever we change directories, so that subprocesses can use +# the values of those environment variables as well +my @direnv = (); + +# A bool saying if we shall stop all testing if the current recipe has failing +# tests or not. This is set by setup() if the environment variable STOPTEST +# is defined with a non-empty value. +my $end_with_bailout = 0; + +# A set of hooks that is affected by with() and may be used in diverse places. +# All hooks are expected to be CODE references. +my %hooks = ( + + # exit_checker is used by run() directly after completion of a command. + # it receives the exit code from that command and is expected to return + # 1 (for success) or 0 (for failure). This is the status value that run() + # will give back (through the |statusvar| reference and as returned value + # when capture => 1 doesn't apply). + exit_checker => sub { return shift == 0 ? 1 : 0 }, + + ); + +# Debug flag, to be set manually when needed +my $debug = 0; + +=head2 Main functions + +The following functions are exported by default when using C<OpenSSL::Test>. + +=cut + +=over 4 + +=item B<setup "NAME"> + +C<setup> is used for initial setup, and it is mandatory that it's used. +If it's not used in a OpenSSL test recipe, the rest of the recipe will +most likely refuse to run. + +C<setup> checks for environment variables (see L</ENVIRONMENT> below), +checks that C<$TOP/Configure> or C<$SRCTOP/Configure> exists, C<chdir> +into the results directory (defined by the C<$RESULT_D> environment +variable if defined, otherwise C<$BLDTOP/test> or C<$TOP/test>, whichever +is defined). + +=back + +=cut + +sub setup { + my $old_test_name = $test_name; + $test_name = shift; + + BAIL_OUT("setup() must receive a name") unless $test_name; + warn "setup() detected test name change. Innocuous, so we continue...\n" + if $old_test_name && $old_test_name ne $test_name; + + return if $old_test_name; + + BAIL_OUT("setup() needs \$TOP or \$SRCTOP and \$BLDTOP to be defined") + unless $ENV{TOP} || ($ENV{SRCTOP} && $ENV{BLDTOP}); + BAIL_OUT("setup() found both \$TOP and \$SRCTOP or \$BLDTOP...") + if $ENV{TOP} && ($ENV{SRCTOP} || $ENV{BLDTOP}); + + __env(); + + BAIL_OUT("setup() expects the file Configure in the source top directory") + unless -f srctop_file("Configure"); + + __cwd($directories{RESULTS}); +} + +=over 4 + +=item B<indir "SUBDIR" =E<gt> sub BLOCK, OPTS> + +C<indir> is used to run a part of the recipe in a different directory than +the one C<setup> moved into, usually a subdirectory, given by SUBDIR. +The part of the recipe that's run there is given by the codeblock BLOCK. + +C<indir> takes some additional options OPTS that affect the subdirectory: + +=over 4 + +=item B<create =E<gt> 0|1> + +When set to 1 (or any value that perl perceives as true), the subdirectory +will be created if it doesn't already exist. This happens before BLOCK +is executed. + +=item B<cleanup =E<gt> 0|1> + +When set to 1 (or any value that perl perceives as true), the subdirectory +will be cleaned out and removed. This happens both before and after BLOCK +is executed. + +=back + +An example: + + indir "foo" => sub { + ok(run(app(["openssl", "version"]), stdout => "foo.txt")); + if (ok(open(RESULT, "foo.txt"), "reading foo.txt")) { + my $line = <RESULT>; + close RESULT; + is($line, qr/^OpenSSL 1\./, + "check that we're using OpenSSL 1.x.x"); + } + }, create => 1, cleanup => 1; + +=back + +=cut + +sub indir { + my $subdir = shift; + my $codeblock = shift; + my %opts = @_; + + my $reverse = __cwd($subdir,%opts); + BAIL_OUT("FAILURE: indir, \"$subdir\" wasn't possible to move into") + unless $reverse; + + $codeblock->(); + + __cwd($reverse); + + if ($opts{cleanup}) { + rmtree($subdir, { safe => 0 }); + } +} + +=over 4 + +=item B<cmd ARRAYREF, OPTS> + +This functions build up a platform dependent command based on the +input. It takes a reference to a list that is the executable or +script and its arguments, and some additional options (described +further on). Where necessary, the command will be wrapped in a +suitable environment to make sure the correct shared libraries are +used (currently only on Unix). + +It returns a CODEREF to be used by C<run>, C<pipe> or C<cmdstr>. + +The options that C<cmd> can take are in the form of hash values: + +=over 4 + +=item B<stdin =E<gt> PATH> + +=item B<stdout =E<gt> PATH> + +=item B<stderr =E<gt> PATH> + +In all three cases, the corresponding standard input, output or error is +redirected from (for stdin) or to (for the others) a file given by the +string PATH, I<or>, if the value is C<undef>, C</dev/null> or similar. + +=back + +=item B<app ARRAYREF, OPTS> + +=item B<test ARRAYREF, OPTS> + +Both of these are specific applications of C<cmd>, with just a couple +of small difference: + +C<app> expects to find the given command (the first item in the given list +reference) as an executable in C<$BIN_D> (if defined, otherwise C<$TOP/apps> +or C<$BLDTOP/apps>). + +C<test> expects to find the given command (the first item in the given list +reference) as an executable in C<$TEST_D> (if defined, otherwise C<$TOP/test> +or C<$BLDTOP/test>). + +Also, for both C<app> and C<test>, the command may be prefixed with +the content of the environment variable C<$EXE_SHELL>, which is useful +in case OpenSSL has been cross compiled. + +=item B<perlapp ARRAYREF, OPTS> + +=item B<perltest ARRAYREF, OPTS> + +These are also specific applications of C<cmd>, where the interpreter +is predefined to be C<perl>, and they expect the script to be +interpreted to reside in the same location as C<app> and C<test>. + +C<perlapp> and C<perltest> will also take the following option: + +=over 4 + +=item B<interpreter_args =E<gt> ARRAYref> + +The array reference is a set of arguments for the interpreter rather +than the script. Take care so that none of them can be seen as a +script! Flags and their eventual arguments only! + +=back + +An example: + + ok(run(perlapp(["foo.pl", "arg1"], + interpreter_args => [ "-I", srctop_dir("test") ]))); + +=back + +=begin comment + +One might wonder over the complexity of C<apps>, C<fuzz>, C<test>, ... +with all the lazy evaluations and all that. The reason for this is that +we want to make sure the directory in which those programs are found are +correct at the time these commands are used. Consider the following code +snippet: + + my $cmd = app(["openssl", ...]); + + indir "foo", sub { + ok(run($cmd), "Testing foo") + }; + +If there wasn't this lazy evaluation, the directory where C<openssl> is +found would be incorrect at the time C<run> is called, because it was +calculated before we moved into the directory "foo". + +=end comment + +=cut + +sub cmd { + my $cmd = shift; + my %opts = @_; + return sub { + my $num = shift; + # Make a copy to not destroy the caller's array + my @cmdargs = ( @$cmd ); + my @prog = __wrap_cmd(shift @cmdargs, $opts{exe_shell} // ()); + + return __decorate_cmd($num, [ @prog, quotify(@cmdargs) ], + %opts); + } +} + +sub app { + my $cmd = shift; + my %opts = @_; + return sub { + my @cmdargs = ( @{$cmd} ); + my @prog = __fixup_prg(__apps_file(shift @cmdargs, __exeext())); + return cmd([ @prog, @cmdargs ], + exe_shell => $ENV{EXE_SHELL}, %opts) -> (shift); + } +} + +sub fuzz { + my $cmd = shift; + my %opts = @_; + return sub { + my @cmdargs = ( @{$cmd} ); + my @prog = __fixup_prg(__fuzz_file(shift @cmdargs, __exeext())); + return cmd([ @prog, @cmdargs ], + exe_shell => $ENV{EXE_SHELL}, %opts) -> (shift); + } +} + +sub test { + my $cmd = shift; + my %opts = @_; + return sub { + my @cmdargs = ( @{$cmd} ); + my @prog = __fixup_prg(__test_file(shift @cmdargs, __exeext())); + return cmd([ @prog, @cmdargs ], + exe_shell => $ENV{EXE_SHELL}, %opts) -> (shift); + } +} + +sub perlapp { + my $cmd = shift; + my %opts = @_; + return sub { + my @interpreter_args = defined $opts{interpreter_args} ? + @{$opts{interpreter_args}} : (); + my @interpreter = __fixup_prg($^X); + my @cmdargs = ( @{$cmd} ); + my @prog = __apps_file(shift @cmdargs, undef); + return cmd([ @interpreter, @interpreter_args, + @prog, @cmdargs ], %opts) -> (shift); + } +} + +sub perltest { + my $cmd = shift; + my %opts = @_; + return sub { + my @interpreter_args = defined $opts{interpreter_args} ? + @{$opts{interpreter_args}} : (); + my @interpreter = __fixup_prg($^X); + my @cmdargs = ( @{$cmd} ); + my @prog = __test_file(shift @cmdargs, undef); + return cmd([ @interpreter, @interpreter_args, + @prog, @cmdargs ], %opts) -> (shift); + } +} + +=over 4 + +=item B<run CODEREF, OPTS> + +CODEREF is expected to be the value return by C<cmd> or any of its +derivatives, anything else will most likely cause an error unless you +know what you're doing. + +C<run> executes the command returned by CODEREF and return either the +resulting output (if the option C<capture> is set true) or a boolean +indicating if the command succeeded or not. + +The options that C<run> can take are in the form of hash values: + +=over 4 + +=item B<capture =E<gt> 0|1> + +If true, the command will be executed with a perl backtick, and C<run> will +return the resulting output as an array of lines. If false or not given, +the command will be executed with C<system()>, and C<run> will return 1 if +the command was successful or 0 if it wasn't. + +=item B<prefix =E<gt> EXPR> + +If specified, EXPR will be used as a string to prefix the output from the +command. This is useful if the output contains lines starting with C<ok > +or C<not ok > that can disturb Test::Harness. + +=item B<statusvar =E<gt> VARREF> + +If used, B<VARREF> must be a reference to a scalar variable. It will be +assigned a boolean indicating if the command succeeded or not. This is +particularly useful together with B<capture>. + +=back + +For further discussion on what is considered a successful command or not, see +the function C<with> further down. + +=back + +=cut + +sub run { + my ($cmd, $display_cmd) = shift->(0); + my %opts = @_; + + return () if !$cmd; + + my $prefix = ""; + if ( $^O eq "VMS" ) { # VMS + $prefix = "pipe "; + } + + my @r = (); + my $r = 0; + my $e = 0; + + die "OpenSSL::Test::run(): statusvar value not a scalar reference" + if $opts{statusvar} && ref($opts{statusvar}) ne "SCALAR"; + + # In non-verbose, we want to shut up the command interpreter, in case + # it has something to complain about. On VMS, it might complain both + # on stdout and stderr + my $save_STDOUT; + my $save_STDERR; + if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) { + open $save_STDOUT, '>&', \*STDOUT or die "Can't dup STDOUT: $!"; + open $save_STDERR, '>&', \*STDERR or die "Can't dup STDERR: $!"; + open STDOUT, ">", devnull(); + open STDERR, ">", devnull(); + } + + $ENV{HARNESS_OSSL_LEVEL} = $level + 1; + + # The dance we do with $? is the same dance the Unix shells appear to + # do. For example, a program that gets aborted (and therefore signals + # SIGABRT = 6) will appear to exit with the code 134. We mimic this + # to make it easier to compare with a manual run of the command. + if ($opts{capture} || defined($opts{prefix})) { + my $pipe; + local $_; + + open($pipe, '-|', "$prefix$cmd") or die "Can't start command: $!"; + while(<$pipe>) { + my $l = ($opts{prefix} // "") . $_; + if ($opts{capture}) { + push @r, $l; + } else { + print STDOUT $l; + } + } + close $pipe; + } else { + $ENV{HARNESS_OSSL_PREFIX} = "# "; + system("$prefix$cmd"); + delete $ENV{HARNESS_OSSL_PREFIX}; + } + $e = ($? & 0x7f) ? ($? & 0x7f)|0x80 : ($? >> 8); + $r = $hooks{exit_checker}->($e); + if ($opts{statusvar}) { + ${$opts{statusvar}} = $r; + } + + if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) { + close STDOUT; + close STDERR; + open STDOUT, '>&', $save_STDOUT or die "Can't restore STDOUT: $!"; + open STDERR, '>&', $save_STDERR or die "Can't restore STDERR: $!"; + } + + print STDERR "$prefix$display_cmd => $e\n" + if !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}; + + # At this point, $? stops being interesting, and unfortunately, + # there are Test::More versions that get picky if we leave it + # non-zero. + $? = 0; + + if ($opts{capture}) { + return @r; + } else { + return $r; + } +} + +END { + my $tb = Test::More->builder; + my $failure = scalar(grep { $_ == 0; } $tb->summary); + if ($failure && $end_with_bailout) { + BAIL_OUT("Stoptest!"); + } +} + +=head2 Utility functions + +The following functions are exported on request when using C<OpenSSL::Test>. + + # To only get the bldtop_file and srctop_file functions. + use OpenSSL::Test qw/bldtop_file srctop_file/; + + # To only get the bldtop_file function in addition to the default ones. + use OpenSSL::Test qw/:DEFAULT bldtop_file/; + +=cut + +# Utility functions, exported on request + +=over 4 + +=item B<bldtop_dir LIST> + +LIST is a list of directories that make up a path from the top of the OpenSSL +build directory (as indicated by the environment variable C<$TOP> or +C<$BLDTOP>). +C<bldtop_dir> returns the resulting directory as a string, adapted to the local +operating system. + +=back + +=cut + +sub bldtop_dir { + return __bldtop_dir(@_); # This caters for operating systems that have + # a very distinct syntax for directories. +} + +=over 4 + +=item B<bldtop_file LIST, FILENAME> + +LIST is a list of directories that make up a path from the top of the OpenSSL +build directory (as indicated by the environment variable C<$TOP> or +C<$BLDTOP>) and FILENAME is the name of a file located in that directory path. +C<bldtop_file> returns the resulting file path as a string, adapted to the local +operating system. + +=back + +=cut + +sub bldtop_file { + return __bldtop_file(@_); +} + +=over 4 + +=item B<srctop_dir LIST> + +LIST is a list of directories that make up a path from the top of the OpenSSL +source directory (as indicated by the environment variable C<$TOP> or +C<$SRCTOP>). +C<srctop_dir> returns the resulting directory as a string, adapted to the local +operating system. + +=back + +=cut + +sub srctop_dir { + return __srctop_dir(@_); # This caters for operating systems that have + # a very distinct syntax for directories. +} + +=over 4 + +=item B<srctop_file LIST, FILENAME> + +LIST is a list of directories that make up a path from the top of the OpenSSL +source directory (as indicated by the environment variable C<$TOP> or +C<$SRCTOP>) and FILENAME is the name of a file located in that directory path. +C<srctop_file> returns the resulting file path as a string, adapted to the local +operating system. + +=back + +=cut + +sub srctop_file { + return __srctop_file(@_); +} + +=over 4 + +=item B<data_dir LIST> + +LIST is a list of directories that make up a path from the data directory +associated with the test (see L</DESCRIPTION> above). +C<data_dir> returns the resulting directory as a string, adapted to the local +operating system. + +=back + +=cut + +sub data_dir { + return __data_dir(@_); +} + +=over 4 + +=item B<data_file LIST, FILENAME> + +LIST is a list of directories that make up a path from the data directory +associated with the test (see L</DESCRIPTION> above) and FILENAME is the name +of a file located in that directory path. C<data_file> returns the resulting +file path as a string, adapted to the local operating system. + +=back + +=cut + +sub data_file { + return __data_file(@_); +} + +=over 4 + +=item B<pipe LIST> + +LIST is a list of CODEREFs returned by C<app> or C<test>, from which C<pipe> +creates a new command composed of all the given commands put together in a +pipe. C<pipe> returns a new CODEREF in the same manner as C<app> or C<test>, +to be passed to C<run> for execution. + +=back + +=cut + +sub pipe { + my @cmds = @_; + return + sub { + my @cs = (); + my @dcs = (); + my @els = (); + my $counter = 0; + foreach (@cmds) { + my ($c, $dc, @el) = $_->(++$counter); + + return () if !$c; + + push @cs, $c; + push @dcs, $dc; + push @els, @el; + } + return ( + join(" | ", @cs), + join(" | ", @dcs), + @els + ); + }; +} + +=over 4 + +=item B<with HASHREF, CODEREF> + +C<with> will temporarily install hooks given by the HASHREF and then execute +the given CODEREF. Hooks are usually expected to have a coderef as value. + +The currently available hoosk are: + +=over 4 + +=item B<exit_checker =E<gt> CODEREF> + +This hook is executed after C<run> has performed its given command. The +CODEREF receives the exit code as only argument and is expected to return +1 (if the exit code indicated success) or 0 (if the exit code indicated +failure). + +=back + +=back + +=cut + +sub with { + my $opts = shift; + my %opts = %{$opts}; + my $codeblock = shift; + + my %saved_hooks = (); + + foreach (keys %opts) { + $saved_hooks{$_} = $hooks{$_} if exists($hooks{$_}); + $hooks{$_} = $opts{$_}; + } + + $codeblock->(); + + foreach (keys %saved_hooks) { + $hooks{$_} = $saved_hooks{$_}; + } +} + +=over 4 + +=item B<cmdstr CODEREF, OPTS> + +C<cmdstr> takes a CODEREF from C<app> or C<test> and simply returns the +command as a string. + +C<cmdstr> takes some additional options OPTS that affect the string returned: + +=over 4 + +=item B<display =E<gt> 0|1> + +When set to 0, the returned string will be with all decorations, such as a +possible redirect of stderr to the null device. This is suitable if the +string is to be used directly in a recipe. + +When set to 1, the returned string will be without extra decorations. This +is suitable for display if that is desired (doesn't confuse people with all +internal stuff), or if it's used to pass a command down to a subprocess. + +Default: 0 + +=back + +=back + +=cut + +sub cmdstr { + my ($cmd, $display_cmd) = shift->(0); + my %opts = @_; + + if ($opts{display}) { + return $display_cmd; + } else { + return $cmd; + } +} + +=over 4 + +=item B<quotify LIST> + +LIST is a list of strings that are going to be used as arguments for a +command, and makes sure to inject quotes and escapes as necessary depending +on the content of each string. + +This can also be used to put quotes around the executable of a command. +I<This must never ever be done on VMS.> + +=back + +=cut + +sub quotify { + # Unix setup (default if nothing else is mentioned) + my $arg_formatter = + sub { $_ = shift; + ($_ eq '' || /\s|[\{\}\\\$\[\]\*\?\|\&:;<>]/) ? "'$_'" : $_ }; + + if ( $^O eq "VMS") { # VMS setup + $arg_formatter = sub { + $_ = shift; + if ($_ eq '' || /\s|["[:upper:]]/) { + s/"/""/g; + '"'.$_.'"'; + } else { + $_; + } + }; + } elsif ( $^O eq "MSWin32") { # MSWin setup + $arg_formatter = sub { + $_ = shift; + if ($_ eq '' || /\s|["\|\&\*\;<>]/) { + s/(["\\])/\\$1/g; + '"'.$_.'"'; + } else { + $_; + } + }; + } + + return map { $arg_formatter->($_) } @_; +} + +=over 4 + +=item B<openssl_versions> + +Returns a list of two numbers, the first representing the build version, +the second representing the library version. See opensslv.h for more +information on those numbers. + +=back + +=cut + +my @versions = (); +sub openssl_versions { + unless (@versions) { + my %lines = + map { s/\R$//; + /^(.*): (0x[[:xdigit:]]{8})$/; + die "Weird line: $_" unless defined $1; + $1 => hex($2) } + run(test(['versions']), capture => 1); + @versions = ( $lines{'Build version'}, $lines{'Library version'} ); + } + return @versions; +} + +###################################################################### +# private functions. These are never exported. + +=head1 ENVIRONMENT + +OpenSSL::Test depends on some environment variables. + +=over 4 + +=item B<TOP> + +This environment variable is mandatory. C<setup> will check that it's +defined and that it's a directory that contains the file C<Configure>. +If this isn't so, C<setup> will C<BAIL_OUT>. + +=item B<BIN_D> + +If defined, its value should be the directory where the openssl application +is located. Defaults to C<$TOP/apps> (adapted to the operating system). + +=item B<TEST_D> + +If defined, its value should be the directory where the test applications +are located. Defaults to C<$TOP/test> (adapted to the operating system). + +=item B<STOPTEST> + +If defined, it puts testing in a different mode, where a recipe with +failures will result in a C<BAIL_OUT> at the end of its run. + +=back + +=cut + +sub __env { + (my $recipe_datadir = basename($0)) =~ s/\.t$/_data/i; + + $directories{SRCTOP} = abs_path($ENV{SRCTOP} || $ENV{TOP}); + $directories{BLDTOP} = abs_path($ENV{BLDTOP} || $ENV{TOP}); + $directories{BLDAPPS} = $ENV{BIN_D} || __bldtop_dir("apps"); + $directories{SRCAPPS} = __srctop_dir("apps"); + $directories{BLDFUZZ} = __bldtop_dir("fuzz"); + $directories{SRCFUZZ} = __srctop_dir("fuzz"); + $directories{BLDTEST} = $ENV{TEST_D} || __bldtop_dir("test"); + $directories{SRCTEST} = __srctop_dir("test"); + $directories{SRCDATA} = __srctop_dir("test", "recipes", + $recipe_datadir); + $directories{RESULTS} = $ENV{RESULT_D} || $directories{BLDTEST}; + + push @direnv, "TOP" if $ENV{TOP}; + push @direnv, "SRCTOP" if $ENV{SRCTOP}; + push @direnv, "BLDTOP" if $ENV{BLDTOP}; + push @direnv, "BIN_D" if $ENV{BIN_D}; + push @direnv, "TEST_D" if $ENV{TEST_D}; + push @direnv, "RESULT_D" if $ENV{RESULT_D}; + + $end_with_bailout = $ENV{STOPTEST} ? 1 : 0; +}; + +# __srctop_file and __srctop_dir are helpers to build file and directory +# names on top of the source directory. They depend on $SRCTOP, and +# therefore on the proper use of setup() and when needed, indir(). +# __bldtop_file and __bldtop_dir do the same thing but relative to $BLDTOP. +# __srctop_file and __bldtop_file take the same kind of argument as +# File::Spec::Functions::catfile. +# Similarly, __srctop_dir and __bldtop_dir take the same kind of argument +# as File::Spec::Functions::catdir +sub __srctop_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $f = pop; + return abs2rel(catfile($directories{SRCTOP},@_,$f),getcwd); +} + +sub __srctop_dir { + BAIL_OUT("Must run setup() first") if (! $test_name); + + return abs2rel(catdir($directories{SRCTOP},@_), getcwd); +} + +sub __bldtop_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $f = pop; + return abs2rel(catfile($directories{BLDTOP},@_,$f), getcwd); +} + +sub __bldtop_dir { + BAIL_OUT("Must run setup() first") if (! $test_name); + + return abs2rel(catdir($directories{BLDTOP},@_), getcwd); +} + +# __exeext is a function that returns the platform dependent file extension +# for executable binaries, or the value of the environment variable $EXE_EXT +# if that one is defined. +sub __exeext { + my $ext = ""; + if ($^O eq "VMS" ) { # VMS + $ext = ".exe"; + } elsif ($^O eq "MSWin32") { # Windows + $ext = ".exe"; + } + return $ENV{"EXE_EXT"} || $ext; +} + +# __test_file, __apps_file and __fuzz_file return the full path to a file +# relative to the test/, apps/ or fuzz/ directory in the build tree or the +# source tree, depending on where the file is found. Note that when looking +# in the build tree, the file name with an added extension is looked for, if +# an extension is given. The intent is to look for executable binaries (in +# the build tree) or possibly scripts (in the source tree). +# These functions all take the same arguments as File::Spec::Functions::catfile, +# *plus* a mandatory extension argument. This extension argument can be undef, +# and is ignored in such a case. +sub __test_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $e = pop || ""; + my $f = pop; + my $out = catfile($directories{BLDTEST},@_,$f . $e); + $out = catfile($directories{SRCTEST},@_,$f) unless -f $out; + return $out; +} + +sub __apps_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $e = pop || ""; + my $f = pop; + my $out = catfile($directories{BLDAPPS},@_,$f . $e); + $out = catfile($directories{SRCAPPS},@_,$f) unless -f $out; + return $out; +} + +sub __fuzz_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $e = pop || ""; + my $f = pop; + my $out = catfile($directories{BLDFUZZ},@_,$f . $e); + $out = catfile($directories{SRCFUZZ},@_,$f) unless -f $out; + return $out; +} + +sub __data_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $f = pop; + return catfile($directories{SRCDATA},@_,$f); +} + +sub __data_dir { + BAIL_OUT("Must run setup() first") if (! $test_name); + + return catdir($directories{SRCDATA},@_); +} + +sub __results_file { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $f = pop; + return catfile($directories{RESULTS},@_,$f); +} + +# __cwd DIR +# __cwd DIR, OPTS +# +# __cwd changes directory to DIR (string) and changes all the relative +# entries in %directories accordingly. OPTS is an optional series of +# hash style arguments to alter __cwd's behavior: +# +# create = 0|1 The directory we move to is created if 1, not if 0. +# cleanup = 0|1 The directory we move from is removed if 1, not if 0. + +sub __cwd { + my $dir = catdir(shift); + my %opts = @_; + my $abscurdir = rel2abs(curdir()); + my $absdir = rel2abs($dir); + my $reverse = abs2rel($abscurdir, $absdir); + + # PARANOIA: if we're not moving anywhere, we do nothing more + if ($abscurdir eq $absdir) { + return $reverse; + } + + # Do not support a move to a different volume for now. Maybe later. + BAIL_OUT("FAILURE: \"$dir\" moves to a different volume, not supported") + if $reverse eq $abscurdir; + + # If someone happened to give a directory that leads back to the current, + # it's extremely silly to do anything more, so just simulate that we did + # move. + # In this case, we won't even clean it out, for safety's sake. + return "." if $reverse eq ""; + + $dir = canonpath($dir); + if ($opts{create}) { + mkpath($dir); + } + + # We are recalculating the directories we keep track of, but need to save + # away the result for after having moved into the new directory. + my %tmp_directories = (); + my %tmp_ENV = (); + + # For each of these directory variables, figure out where they are relative + # to the directory we want to move to if they aren't absolute (if they are, + # they don't change!) + my @dirtags = sort keys %directories; + foreach (@dirtags) { + if (!file_name_is_absolute($directories{$_})) { + my $newpath = abs2rel(rel2abs($directories{$_}), rel2abs($dir)); + $tmp_directories{$_} = $newpath; + } + } + + # Treat each environment variable that was used to get us the values in + # %directories the same was as the paths in %directories, so any sub + # process can use their values properly as well + foreach (@direnv) { + if (!file_name_is_absolute($ENV{$_})) { + my $newpath = abs2rel(rel2abs($ENV{$_}), rel2abs($dir)); + $tmp_ENV{$_} = $newpath; + } + } + + # Should we just bail out here as well? I'm unsure. + return undef unless chdir($dir); + + if ($opts{cleanup}) { + rmtree(".", { safe => 0, keep_root => 1 }); + } + + # We put back new values carefully. Doing the obvious + # %directories = ( %tmp_directories ) + # will clear out any value that happens to be an absolute path + foreach (keys %tmp_directories) { + $directories{$_} = $tmp_directories{$_}; + } + foreach (keys %tmp_ENV) { + $ENV{$_} = $tmp_ENV{$_}; + } + + if ($debug) { + print STDERR "DEBUG: __cwd(), directories and files:\n"; + print STDERR " \$directories{BLDTEST} = \"$directories{BLDTEST}\"\n"; + print STDERR " \$directories{SRCTEST} = \"$directories{SRCTEST}\"\n"; + print STDERR " \$directories{SRCDATA} = \"$directories{SRCDATA}\"\n"; + print STDERR " \$directories{RESULTS} = \"$directories{RESULTS}\"\n"; + print STDERR " \$directories{BLDAPPS} = \"$directories{BLDAPPS}\"\n"; + print STDERR " \$directories{SRCAPPS} = \"$directories{SRCAPPS}\"\n"; + print STDERR " \$directories{SRCTOP} = \"$directories{SRCTOP}\"\n"; + print STDERR " \$directories{BLDTOP} = \"$directories{BLDTOP}\"\n"; + print STDERR "\n"; + print STDERR " current directory is \"",curdir(),"\"\n"; + print STDERR " the way back is \"$reverse\"\n"; + } + + return $reverse; +} + +# __wrap_cmd CMD +# __wrap_cmd CMD, EXE_SHELL +# +# __wrap_cmd "wraps" CMD (string) with a beginning command that makes sure +# the command gets executed with an appropriate environment. If EXE_SHELL +# is given, it is used as the beginning command. +# +# __wrap_cmd returns a list that should be used to build up a larger list +# of command tokens, or be joined together like this: +# +# join(" ", __wrap_cmd($cmd)) +sub __wrap_cmd { + my $cmd = shift; + my $exe_shell = shift; + + my @prefix = ( __bldtop_file("util", "shlib_wrap.sh") ); + + if(defined($exe_shell)) { + @prefix = ( $exe_shell ); + } elsif ($^O eq "VMS" || $^O eq "MSWin32") { + # VMS and Windows don't use any wrapper script for the moment + @prefix = (); + } + + return (@prefix, $cmd); +} + +# __fixup_prg PROG +# +# __fixup_prg does whatever fixup is needed to execute an executable binary +# given by PROG (string). +# +# __fixup_prg returns a string with the possibly prefixed program path spec. +sub __fixup_prg { + my $prog = shift; + + my $prefix = ""; + + if ($^O eq "VMS" ) { + $prefix = ($prog =~ /^(?:[\$a-z0-9_]+:)?[<\[]/i ? "mcr " : "mcr []"); + } + + if (defined($prog)) { + # Make sure to quotify the program file on platforms that may + # have spaces or similar in their path name. + # To our knowledge, VMS is the exception where quotifying should + # never happen. + ($prog) = quotify($prog) unless $^O eq "VMS"; + return $prefix.$prog; + } + + print STDERR "$prog not found\n"; + return undef; +} + +# __decorate_cmd NUM, CMDARRAYREF +# +# __decorate_cmd takes a command number NUM and a command token array +# CMDARRAYREF, builds up a command string from them and decorates it +# with necessary redirections. +# __decorate_cmd returns a list of two strings, one with the command +# string to actually be used, the other to be displayed for the user. +# The reason these strings might differ is that we redirect stderr to +# the null device unless we're verbose and unless the user has +# explicitly specified a stderr redirection. +sub __decorate_cmd { + BAIL_OUT("Must run setup() first") if (! $test_name); + + my $num = shift; + my $cmd = shift; + my %opts = @_; + + my $cmdstr = join(" ", @$cmd); + my $null = devnull(); + my $fileornull = sub { $_[0] ? $_[0] : $null; }; + my $stdin = ""; + my $stdout = ""; + my $stderr = ""; + my $saved_stderr = undef; + $stdin = " < ".$fileornull->($opts{stdin}) if exists($opts{stdin}); + $stdout= " > ".$fileornull->($opts{stdout}) if exists($opts{stdout}); + $stderr=" 2> ".$fileornull->($opts{stderr}) if exists($opts{stderr}); + + my $display_cmd = "$cmdstr$stdin$stdout$stderr"; + + $stderr=" 2> ".$null + unless $stderr || !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}; + + $cmdstr .= "$stdin$stdout$stderr"; + + if ($debug) { + print STDERR "DEBUG[__decorate_cmd]: \$cmdstr = \"$cmdstr\"\n"; + print STDERR "DEBUG[__decorate_cmd]: \$display_cmd = \"$display_cmd\"\n"; + } + + return ($cmdstr, $display_cmd); +} + +=head1 SEE ALSO + +L<Test::More>, L<Test::Harness> + +=head1 AUTHORS + +Richard Levitte E<lt>levitte@openssl.orgE<gt> with assistance and +inspiration from Andy Polyakov E<lt>appro@openssl.org<gt>. + +=cut + +no warnings 'redefine'; +sub subtest { + $level++; + + Test::More::subtest @_; + + $level--; +}; + +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test/Simple.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test/Simple.pm new file mode 100644 index 000000000..c5a84d5ca --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test/Simple.pm @@ -0,0 +1,91 @@ +# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package OpenSSL::Test::Simple; + +use strict; +use warnings; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +$VERSION = "0.2"; +@ISA = qw(Exporter); +@EXPORT = qw(simple_test); + +=head1 NAME + +OpenSSL::Test::Simple - a few very simple test functions + +=head1 SYNOPSIS + + use OpenSSL::Test::Simple; + + simple_test("my_test_name", "destest", "des"); + +=head1 DESCRIPTION + +Sometimes, the functions in L<OpenSSL::Test> are quite tedious for some +repetitive tasks. This module provides functions to make life easier. +You could call them hacks if you wish. + +=cut + +use OpenSSL::Test; +use OpenSSL::Test::Utils; + +=over 4 + +=item B<simple_test NAME, PROGRAM, ALGORITHM> + +Runs a test named NAME, running the program PROGRAM with no arguments, +to test the algorithm ALGORITHM. + +A complete recipe looks like this: + + use OpenSSL::Test::Simple; + + simple_test("test_bf", "bftest", "bf"); + +=back + +=cut + +# args: +# name (used with setup()) +# algorithm (used to check if it's at all supported) +# name of binary (the program that does the actual test) +sub simple_test { + my ($name, $prgr, @algos) = @_; + + setup($name); + + if (scalar(disabled(@algos))) { + if (scalar(@algos) == 1) { + plan skip_all => $algos[0]." is not supported by this OpenSSL build"; + } else { + my $last = pop @algos; + plan skip_all => join(", ", @algos)." and $last are not supported by this OpenSSL build"; + } + } + + plan tests => 1; + + ok(run(test([$prgr])), "running $prgr"); +} + +=head1 SEE ALSO + +L<OpenSSL::Test> + +=head1 AUTHORS + +Richard Levitte E<lt>levitte@openssl.orgE<gt> with inspiration +from Rich Salz E<lt>rsalz@openssl.orgE<gt>. + +=cut + +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test/Utils.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test/Utils.pm new file mode 100644 index 000000000..7b0a70563 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Test/Utils.pm @@ -0,0 +1,240 @@ +# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package OpenSSL::Test::Utils; + +use strict; +use warnings; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +$VERSION = "0.1"; +@ISA = qw(Exporter); +@EXPORT = qw(alldisabled anydisabled disabled config available_protocols + have_IPv4 have_IPv6); + +=head1 NAME + +OpenSSL::Test::Utils - test utility functions + +=head1 SYNOPSIS + + use OpenSSL::Test::Utils; + + my @tls = available_protocols("tls"); + my @dtls = available_protocols("dtls"); + alldisabled("dh", "dsa"); + anydisabled("dh", "dsa"); + + config("fips"); + + have_IPv4(); + have_IPv6(); + +=head1 DESCRIPTION + +This module provides utility functions for the testing framework. + +=cut + +use OpenSSL::Test qw/:DEFAULT bldtop_file/; + +=over 4 + +=item B<available_protocols STRING> + +Returns a list of strings for all the available SSL/TLS versions if +STRING is "tls", or for all the available DTLS versions if STRING is +"dtls". Otherwise, it returns the empty list. The strings in the +returned list can be used with B<alldisabled> and B<anydisabled>. + +=item B<alldisabled ARRAY> +=item B<anydisabled ARRAY> + +In an array context returns an array with each element set to 1 if the +corresponding feature is disabled and 0 otherwise. + +In a scalar context, alldisabled returns 1 if all of the features in +ARRAY are disabled, while anydisabled returns 1 if any of them are +disabled. + +=item B<config STRING> + +Returns an item from the %config hash in \$TOP/configdata.pm. + +=item B<have_IPv4> +=item B<have_IPv6> + +Return true if IPv4 / IPv6 is possible to use on the current system. + +=back + +=cut + +our %available_protocols; +our %disabled; +our %config; +my $configdata_loaded = 0; + +sub load_configdata { + # We eval it so it doesn't run at compile time of this file. + # The latter would have bldtop_file() complain that setup() hasn't + # been run yet. + my $configdata = bldtop_file("configdata.pm"); + eval { require $configdata; + %available_protocols = %configdata::available_protocols; + %disabled = %configdata::disabled; + %config = %configdata::config; + }; + $configdata_loaded = 1; +} + +# args +# list of 1s and 0s, coming from check_disabled() +sub anyof { + my $x = 0; + foreach (@_) { $x += $_ } + return $x > 0; +} + +# args +# list of 1s and 0s, coming from check_disabled() +sub allof { + my $x = 1; + foreach (@_) { $x *= $_ } + return $x > 0; +} + +# args +# list of strings, all of them should be names of features +# that can be disabled. +# returns a list of 1s (if the corresponding feature is disabled) +# and 0s (if it isn't) +sub check_disabled { + return map { exists $disabled{lc $_} ? 1 : 0 } @_; +} + +# Exported functions ################################################# + +# args: +# list of features to check +sub anydisabled { + load_configdata() unless $configdata_loaded; + my @ret = check_disabled(@_); + return @ret if wantarray; + return anyof(@ret); +} + +# args: +# list of features to check +sub alldisabled { + load_configdata() unless $configdata_loaded; + my @ret = check_disabled(@_); + return @ret if wantarray; + return allof(@ret); +} + +# !!! Kept for backward compatibility +# args: +# single string +sub disabled { + anydisabled(@_); +} + +sub available_protocols { + load_configdata() unless $configdata_loaded; + my $protocol_class = shift; + if (exists $available_protocols{lc $protocol_class}) { + return @{$available_protocols{lc $protocol_class}} + } + return (); +} + +sub config { + load_configdata() unless $configdata_loaded; + return $config{$_[0]}; +} + +# IPv4 / IPv6 checker +my $have_IPv4 = -1; +my $have_IPv6 = -1; +my $IP_factory; +sub check_IP { + my $listenaddress = shift; + + eval { + require IO::Socket::IP; + my $s = IO::Socket::IP->new( + LocalAddr => $listenaddress, + LocalPort => 0, + Listen=>1, + ); + $s or die "\n"; + $s->close(); + }; + if ($@ eq "") { + return 1; + } + + eval { + require IO::Socket::INET6; + my $s = IO::Socket::INET6->new( + LocalAddr => $listenaddress, + LocalPort => 0, + Listen=>1, + ); + $s or die "\n"; + $s->close(); + }; + if ($@ eq "") { + return 1; + } + + eval { + require IO::Socket::INET; + my $s = IO::Socket::INET->new( + LocalAddr => $listenaddress, + LocalPort => 0, + Listen=>1, + ); + $s or die "\n"; + $s->close(); + }; + if ($@ eq "") { + return 1; + } + + return 0; +} + +sub have_IPv4 { + if ($have_IPv4 < 0) { + $have_IPv4 = check_IP("127.0.0.1"); + } + return $have_IPv4; +} + +sub have_IPv6 { + if ($have_IPv6 < 0) { + $have_IPv6 = check_IP("::1"); + } + return $have_IPv6; +} + + +=head1 SEE ALSO + +L<OpenSSL::Test> + +=head1 AUTHORS + +Stephen Henson E<lt>steve@openssl.orgE<gt> and +Richard Levitte E<lt>levitte@openssl.orgE<gt> + +=cut + +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Util/Pod.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Util/Pod.pm new file mode 100644 index 000000000..9f76fbf1a --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/OpenSSL/Util/Pod.pm @@ -0,0 +1,149 @@ +# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package OpenSSL::Util::Pod; + +use strict; +use warnings; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +$VERSION = "0.1"; +@ISA = qw(Exporter); +@EXPORT = qw(extract_pod_info); +@EXPORT_OK = qw(); + +=head1 NAME + +OpenSSL::Util::Pod - utilities to manipulate .pod files + +=head1 SYNOPSIS + + use OpenSSL::Util::Pod; + + my %podinfo = extract_pod_info("foo.pod"); + + # or if the file is already opened... Note that this consumes the + # remainder of the file. + + my %podinfo = extract_pod_info(\*STDIN); + +=head1 DESCRIPTION + +=over + +=item B<extract_pod_info "FILENAME", HASHREF> + +=item B<extract_pod_info "FILENAME"> + +=item B<extract_pod_info GLOB, HASHREF> + +=item B<extract_pod_info GLOB> + +Extracts information from a .pod file, given a STRING (file name) or a +GLOB (a file handle). The result is given back as a hash table. + +The additional hash is for extra parameters: + +=over + +=item B<section =E<gt> N> + +The value MUST be a number, and will be the man section number +to be used with the given .pod file. + +=item B<debug =E<gt> 0|1> + +If set to 1, extra debug text will be printed on STDERR + +=back + +=back + +=head1 RETURN VALUES + +=over + +=item B<extract_pod_info> returns a hash table with the following +items: + +=over + +=item B<section =E<gt> N> + +The man section number this .pod file belongs to. Often the same as +was given as input. + +=item B<names =E<gt> [ "name", ... ]> + +All the names extracted from the NAME section. + +=back + +=back + +=cut + +sub extract_pod_info { + my $input = shift; + my $defaults_ref = shift || {}; + my %defaults = ( debug => 0, section => 0, %$defaults_ref ); + my $fh = undef; + my $filename = undef; + + # If not a file handle, then it's assume to be a file path (a string) + unless (ref $input eq "GLOB") { + $filename = $input; + open $fh, $input or die "Trying to read $filename: $!\n"; + print STDERR "DEBUG: Reading $input\n" if $defaults{debug}; + $input = $fh; + } + + my %podinfo = ( section => $defaults{section}); + while(<$input>) { + s|\R$||; + # Stop reading when we have reached past the NAME section. + last if (m|^=head1| + && defined $podinfo{lastsect} + && $podinfo{lastsect} eq "NAME"); + + # Collect the section name + if (m|^=head1\s*(.*)|) { + $podinfo{lastsect} = $1; + $podinfo{lastsect} =~ s/\s+$//; + print STDERR "DEBUG: Found new pod section $1\n" + if $defaults{debug}; + print STDERR "DEBUG: Clearing pod section text\n" + if $defaults{debug}; + $podinfo{lastsecttext} = ""; + } + + next if (m|^=| || m|^\s*$|); + + # Collect the section text + print STDERR "DEBUG: accumulating pod section text \"$_\"\n" + if $defaults{debug}; + $podinfo{lastsecttext} .= " " if $podinfo{lastsecttext}; + $podinfo{lastsecttext} .= $_; + } + + + if (defined $fh) { + close $fh; + print STDERR "DEBUG: Done reading $filename\n" if $defaults{debug}; + } + + $podinfo{lastsecttext} =~ s| - .*$||; + + my @names = + map { s|\s+||g; $_ } + split(m|,|, $podinfo{lastsecttext}); + + return ( section => $podinfo{section}, names => [ @names ] ); +} + +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Alert.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Alert.pm new file mode 100644 index 000000000..e27497dbd --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Alert.pm @@ -0,0 +1,51 @@ +# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::Alert; + +sub new +{ + my $class = shift; + my ($server, + $encrypted, + $level, + $description) = @_; + + my $self = { + server => $server, + encrypted => $encrypted, + level => $level, + description => $description + }; + + return bless $self, $class; +} + +#Read only accessors +sub server +{ + my $self = shift; + return $self->{server}; +} +sub encrypted +{ + my $self = shift; + return $self->{encrypted}; +} +sub level +{ + my $self = shift; + return $self->{level}; +} +sub description +{ + my $self = shift; + return $self->{description}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Certificate.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Certificate.pm new file mode 100644 index 000000000..73737137b --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Certificate.pm @@ -0,0 +1,214 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::Certificate; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_CERTIFICATE, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{first_certificate} = ""; + $self->{extension_data} = ""; + $self->{remaining_certdata} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + + if (TLSProxy::Proxy->is_tls13()) { + my $context_len = unpack('C', $self->data); + my $context = substr($self->data, 1, $context_len); + + my $remdata = substr($self->data, 1 + $context_len); + + my ($hicertlistlen, $certlistlen) = unpack('Cn', $remdata); + $certlistlen += ($hicertlistlen << 16); + + $remdata = substr($remdata, 3); + + die "Invalid Certificate List length" + if length($remdata) != $certlistlen; + + my ($hicertlen, $certlen) = unpack('Cn', $remdata); + $certlen += ($hicertlen << 16); + + die "Certificate too long" if ($certlen + 3) > $certlistlen; + + $remdata = substr($remdata, 3); + + my $certdata = substr($remdata, 0, $certlen); + + $remdata = substr($remdata, $certlen); + + my $extensions_len = unpack('n', $remdata); + $remdata = substr($remdata, 2); + + die "Extensions too long" + if ($certlen + 3 + $extensions_len + 2) > $certlistlen; + + my $extension_data = ""; + if ($extensions_len != 0) { + $extension_data = substr($remdata, 0, $extensions_len); + + if (length($extension_data) != $extensions_len) { + die "Invalid extension length\n"; + } + } + my %extensions = (); + while (length($extension_data) >= 4) { + my ($type, $size) = unpack("nn", $extension_data); + my $extdata = substr($extension_data, 4, $size); + $extension_data = substr($extension_data, 4 + $size); + $extensions{$type} = $extdata; + } + $remdata = substr($remdata, $extensions_len); + + $self->context($context); + $self->first_certificate($certdata); + $self->extension_data(\%extensions); + $self->remaining_certdata($remdata); + + print " Context:".$context."\n"; + print " Certificate List Len:".$certlistlen."\n"; + print " Certificate Len:".$certlen."\n"; + print " Extensions Len:".$extensions_len."\n"; + } else { + my ($hicertlistlen, $certlistlen) = unpack('Cn', $self->data); + $certlistlen += ($hicertlistlen << 16); + + my $remdata = substr($self->data, 3); + + die "Invalid Certificate List length" + if length($remdata) != $certlistlen; + + my ($hicertlen, $certlen) = unpack('Cn', $remdata); + $certlen += ($hicertlen << 16); + + die "Certificate too long" if ($certlen + 3) > $certlistlen; + + $remdata = substr($remdata, 3); + + my $certdata = substr($remdata, 0, $certlen); + + $remdata = substr($remdata, $certlen); + + $self->first_certificate($certdata); + $self->remaining_certdata($remdata); + + print " Certificate List Len:".$certlistlen."\n"; + print " Certificate Len:".$certlen."\n"; + } +} + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + my $extensions = ""; + + if (TLSProxy::Proxy->is_tls13()) { + foreach my $key (keys %{$self->extension_data}) { + my $extdata = ${$self->extension_data}{$key}; + $extensions .= pack("n", $key); + $extensions .= pack("n", length($extdata)); + $extensions .= $extdata; + } + $data = pack('C', length($self->context())); + $data .= $self->context; + my $certlen = length($self->first_certificate); + my $certlistlen = $certlen + length($extensions) + + length($self->remaining_certdata); + my $hi = $certlistlen >> 16; + $certlistlen = $certlistlen & 0xffff; + $data .= pack('Cn', $hi, $certlistlen); + $hi = $certlen >> 16; + $certlen = $certlen & 0xffff; + $data .= pack('Cn', $hi, $certlen); + $data .= pack('n', length($extensions)); + $data .= $extensions; + $data .= $self->remaining_certdata(); + $self->data($data); + } else { + my $certlen = length($self->first_certificate); + my $certlistlen = $certlen + length($self->remaining_certdata); + my $hi = $certlistlen >> 16; + $certlistlen = $certlistlen & 0xffff; + $data .= pack('Cn', $hi, $certlistlen); + $hi = $certlen >> 16; + $certlen = $certlen & 0xffff; + $data .= pack('Cn', $hi, $certlen); + $data .= $self->remaining_certdata(); + $self->data($data); + } +} + +#Read/write accessors +sub context +{ + my $self = shift; + if (@_) { + $self->{context} = shift; + } + return $self->{context}; +} +sub first_certificate +{ + my $self = shift; + if (@_) { + $self->{first_certificate} = shift; + } + return $self->{first_certificate}; +} +sub remaining_certdata +{ + my $self = shift; + if (@_) { + $self->{remaining_certdata} = shift; + } + return $self->{remaining_certdata}; +} +sub extension_data +{ + my $self = shift; + if (@_) { + $self->{extension_data} = shift; + } + return $self->{extension_data}; +} +sub set_extension +{ + my ($self, $ext_type, $ext_data) = @_; + $self->{extension_data}{$ext_type} = $ext_data; +} +sub delete_extension +{ + my ($self, $ext_type) = @_; + delete $self->{extension_data}{$ext_type}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/CertificateRequest.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/CertificateRequest.pm new file mode 100644 index 000000000..bc4105335 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/CertificateRequest.pm @@ -0,0 +1,105 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::CertificateRequest; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_CERTIFICATE_REQUEST, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{extension_data} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + my $ptr = 1; + + if (TLSProxy::Proxy->is_tls13()) { + my $request_ctx_len = unpack('C', $self->data); + my $request_ctx = substr($self->data, $ptr, $request_ctx_len); + $ptr += $request_ctx_len; + + my $extensions_len = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + my $extension_data = substr($self->data, $ptr); + if (length($extension_data) != $extensions_len) { + die "Invalid extension length\n"; + } + my %extensions = (); + while (length($extension_data) >= 4) { + my ($type, $size) = unpack("nn", $extension_data); + my $extdata = substr($extension_data, 4, $size); + $extension_data = substr($extension_data, 4 + $size); + $extensions{$type} = $extdata; + } + $self->extension_data(\%extensions); + + print " Extensions Len:".$extensions_len."\n"; + } + # else parse TLSv1.2 version - we don't support that at the moment +} + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + my $extensions = ""; + + foreach my $key (keys %{$self->extension_data}) { + my $extdata = ${$self->extension_data}{$key}; + $extensions .= pack("n", $key); + $extensions .= pack("n", length($extdata)); + $extensions .= $extdata; + } + + $data = pack('n', length($extensions)); + $data .= $extensions; + $self->data($data); +} + +#Read/write accessors +sub extension_data +{ + my $self = shift; + if (@_) { + $self->{extension_data} = shift; + } + return $self->{extension_data}; +} +sub set_extension +{ + my ($self, $ext_type, $ext_data) = @_; + $self->{extension_data}{$ext_type} = $ext_data; +} +sub delete_extension +{ + my ($self, $ext_type) = @_; + delete $self->{extension_data}{$ext_type}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/CertificateVerify.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/CertificateVerify.pm new file mode 100644 index 000000000..8bf969fba --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/CertificateVerify.pm @@ -0,0 +1,96 @@ +# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::CertificateVerify; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_CERTIFICATE_VERIFY, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{sigalg} = -1; + $self->{signature} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + + my $sigalg = -1; + my $remdata = $self->data; + my $record = ${$self->records}[0]; + + if (TLSProxy::Proxy->is_tls13() + || $record->version() == TLSProxy::Record::VERS_TLS_1_2) { + $sigalg = unpack('n', $remdata); + $remdata = substr($remdata, 2); + } + + my $siglen = unpack('n', substr($remdata, 0, 2)); + my $sig = substr($remdata, 2); + + die "Invalid CertificateVerify signature length" if length($sig) != $siglen; + + print " SigAlg:".$sigalg."\n"; + print " Signature Len:".$siglen."\n"; + + $self->sigalg($sigalg); + $self->signature($sig); +} + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data = ""; + my $sig = $self->signature(); + my $olddata = $self->data(); + + $data .= pack("n", $self->sigalg()) if ($self->sigalg() != -1); + $data .= pack("n", length($sig)); + $data .= $sig; + + $self->data($data); +} + +#Read/write accessors +sub sigalg +{ + my $self = shift; + if (@_) { + $self->{sigalg} = shift; + } + return $self->{sigalg}; +} +sub signature +{ + my $self = shift; + if (@_) { + $self->{signature} = shift; + } + return $self->{signature}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ClientHello.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ClientHello.pm new file mode 100644 index 000000000..76dce740a --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ClientHello.pm @@ -0,0 +1,258 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::ClientHello; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + 1, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{client_version} = 0; + $self->{random} = []; + $self->{session_id_len} = 0; + $self->{session} = ""; + $self->{ciphersuite_len} = 0; + $self->{ciphersuites} = []; + $self->{comp_meth_len} = 0; + $self->{comp_meths} = []; + $self->{extensions_len} = 0; + $self->{extension_data} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + my $ptr = 2; + my ($client_version) = unpack('n', $self->data); + my $random = substr($self->data, $ptr, 32); + $ptr += 32; + my $session_id_len = unpack('C', substr($self->data, $ptr)); + $ptr++; + my $session = substr($self->data, $ptr, $session_id_len); + $ptr += $session_id_len; + my $ciphersuite_len = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + my @ciphersuites = unpack('n*', substr($self->data, $ptr, + $ciphersuite_len)); + $ptr += $ciphersuite_len; + my $comp_meth_len = unpack('C', substr($self->data, $ptr)); + $ptr++; + my @comp_meths = unpack('C*', substr($self->data, $ptr, $comp_meth_len)); + $ptr += $comp_meth_len; + my $extensions_len = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + #For now we just deal with this as a block of data. In the future we will + #want to parse this + my $extension_data = substr($self->data, $ptr); + + if (length($extension_data) != $extensions_len) { + die "Invalid extension length\n"; + } + my %extensions = (); + while (length($extension_data) >= 4) { + my ($type, $size) = unpack("nn", $extension_data); + my $extdata = substr($extension_data, 4, $size); + $extension_data = substr($extension_data, 4 + $size); + $extensions{$type} = $extdata; + } + + $self->client_version($client_version); + $self->random($random); + $self->session_id_len($session_id_len); + $self->session($session); + $self->ciphersuite_len($ciphersuite_len); + $self->ciphersuites(\@ciphersuites); + $self->comp_meth_len($comp_meth_len); + $self->comp_meths(\@comp_meths); + $self->extensions_len($extensions_len); + $self->extension_data(\%extensions); + + $self->process_extensions(); + + print " Client Version:".$client_version."\n"; + print " Session ID Len:".$session_id_len."\n"; + print " Ciphersuite len:".$ciphersuite_len."\n"; + print " Compression Method Len:".$comp_meth_len."\n"; + print " Extensions Len:".$extensions_len."\n"; +} + +#Perform any actions necessary based on the extensions we've seen +sub process_extensions +{ + my $self = shift; + my %extensions = %{$self->extension_data}; + + #Clear any state from a previous run + TLSProxy::Record->etm(0); + + if (exists $extensions{TLSProxy::Message::EXT_ENCRYPT_THEN_MAC}) { + TLSProxy::Record->etm(1); + } +} + +sub extension_contents +{ + my $self = shift; + my $key = shift; + my $extension = ""; + + my $extdata = ${$self->extension_data}{$key}; + $extension .= pack("n", $key); + $extension .= pack("n", length($extdata)); + $extension .= $extdata; + return $extension; +} + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + my $extensions = ""; + + $data = pack('n', $self->client_version); + $data .= $self->random; + $data .= pack('C', $self->session_id_len); + $data .= $self->session; + $data .= pack('n', $self->ciphersuite_len); + $data .= pack("n*", @{$self->ciphersuites}); + $data .= pack('C', $self->comp_meth_len); + $data .= pack("C*", @{$self->comp_meths}); + + foreach my $key (keys %{$self->extension_data}) { + next if ($key == TLSProxy::Message::EXT_PSK); + $extensions .= $self->extension_contents($key); + #Add extension twice if we are duplicating that extension + $extensions .= $self->extension_contents($key) if ($key == $self->dupext); + } + #PSK extension always goes last... + if (defined ${$self->extension_data}{TLSProxy::Message::EXT_PSK}) { + $extensions .= $self->extension_contents(TLSProxy::Message::EXT_PSK); + } + #unless we have EXT_FORCE_LAST + if (defined ${$self->extension_data}{TLSProxy::Message::EXT_FORCE_LAST}) { + $extensions .= $self->extension_contents(TLSProxy::Message::EXT_FORCE_LAST); + } + + $data .= pack('n', length($extensions)); + $data .= $extensions; + + $self->data($data); +} + +#Read/write accessors +sub client_version +{ + my $self = shift; + if (@_) { + $self->{client_version} = shift; + } + return $self->{client_version}; +} +sub random +{ + my $self = shift; + if (@_) { + $self->{random} = shift; + } + return $self->{random}; +} +sub session_id_len +{ + my $self = shift; + if (@_) { + $self->{session_id_len} = shift; + } + return $self->{session_id_len}; +} +sub session +{ + my $self = shift; + if (@_) { + $self->{session} = shift; + } + return $self->{session}; +} +sub ciphersuite_len +{ + my $self = shift; + if (@_) { + $self->{ciphersuite_len} = shift; + } + return $self->{ciphersuite_len}; +} +sub ciphersuites +{ + my $self = shift; + if (@_) { + $self->{ciphersuites} = shift; + } + return $self->{ciphersuites}; +} +sub comp_meth_len +{ + my $self = shift; + if (@_) { + $self->{comp_meth_len} = shift; + } + return $self->{comp_meth_len}; +} +sub comp_meths +{ + my $self = shift; + if (@_) { + $self->{comp_meths} = shift; + } + return $self->{comp_meths}; +} +sub extensions_len +{ + my $self = shift; + if (@_) { + $self->{extensions_len} = shift; + } + return $self->{extensions_len}; +} +sub extension_data +{ + my $self = shift; + if (@_) { + $self->{extension_data} = shift; + } + return $self->{extension_data}; +} +sub set_extension +{ + my ($self, $ext_type, $ext_data) = @_; + $self->{extension_data}{$ext_type} = $ext_data; +} +sub delete_extension +{ + my ($self, $ext_type) = @_; + delete $self->{extension_data}{$ext_type}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/EncryptedExtensions.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/EncryptedExtensions.pm new file mode 100644 index 000000000..262b720cf --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/EncryptedExtensions.pm @@ -0,0 +1,110 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::EncryptedExtensions; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{extension_data} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + + my $extensions_len = unpack('n', $self->data); + if (!defined $extensions_len) { + $extensions_len = 0; + } + + my $extension_data; + if ($extensions_len != 0) { + $extension_data = substr($self->data, 2); + + if (length($extension_data) != $extensions_len) { + die "Invalid extension length\n"; + } + } else { + if (length($self->data) != 2) { + die "Invalid extension length\n"; + } + $extension_data = ""; + } + my %extensions = (); + while (length($extension_data) >= 4) { + my ($type, $size) = unpack("nn", $extension_data); + my $extdata = substr($extension_data, 4, $size); + $extension_data = substr($extension_data, 4 + $size); + $extensions{$type} = $extdata; + } + + $self->extension_data(\%extensions); + + print " Extensions Len:".$extensions_len."\n"; +} + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + my $extensions = ""; + + foreach my $key (keys %{$self->extension_data}) { + my $extdata = ${$self->extension_data}{$key}; + $extensions .= pack("n", $key); + $extensions .= pack("n", length($extdata)); + $extensions .= $extdata; + } + + $data = pack('n', length($extensions)); + $data .= $extensions; + $self->data($data); +} + +#Read/write accessors +sub extension_data +{ + my $self = shift; + if (@_) { + $self->{extension_data} = shift; + } + return $self->{extension_data}; +} +sub set_extension +{ + my ($self, $ext_type, $ext_data) = @_; + $self->{extension_data}{$ext_type} = $ext_data; +} +sub delete_extension +{ + my ($self, $ext_type) = @_; + delete $self->{extension_data}{$ext_type}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Message.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Message.pm new file mode 100644 index 000000000..10b615607 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Message.pm @@ -0,0 +1,606 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::Message; + +use TLSProxy::Alert; + +use constant TLS_MESSAGE_HEADER_LENGTH => 4; + +#Message types +use constant { + MT_HELLO_REQUEST => 0, + MT_CLIENT_HELLO => 1, + MT_SERVER_HELLO => 2, + MT_NEW_SESSION_TICKET => 4, + MT_ENCRYPTED_EXTENSIONS => 8, + MT_CERTIFICATE => 11, + MT_SERVER_KEY_EXCHANGE => 12, + MT_CERTIFICATE_REQUEST => 13, + MT_SERVER_HELLO_DONE => 14, + MT_CERTIFICATE_VERIFY => 15, + MT_CLIENT_KEY_EXCHANGE => 16, + MT_FINISHED => 20, + MT_CERTIFICATE_STATUS => 22, + MT_NEXT_PROTO => 67 +}; + +#Alert levels +use constant { + AL_LEVEL_WARN => 1, + AL_LEVEL_FATAL => 2 +}; + +#Alert descriptions +use constant { + AL_DESC_CLOSE_NOTIFY => 0, + AL_DESC_UNEXPECTED_MESSAGE => 10, + AL_DESC_ILLEGAL_PARAMETER => 47, + AL_DESC_NO_RENEGOTIATION => 100 +}; + +my %message_type = ( + MT_HELLO_REQUEST, "HelloRequest", + MT_CLIENT_HELLO, "ClientHello", + MT_SERVER_HELLO, "ServerHello", + MT_NEW_SESSION_TICKET, "NewSessionTicket", + MT_ENCRYPTED_EXTENSIONS, "EncryptedExtensions", + MT_CERTIFICATE, "Certificate", + MT_SERVER_KEY_EXCHANGE, "ServerKeyExchange", + MT_CERTIFICATE_REQUEST, "CertificateRequest", + MT_SERVER_HELLO_DONE, "ServerHelloDone", + MT_CERTIFICATE_VERIFY, "CertificateVerify", + MT_CLIENT_KEY_EXCHANGE, "ClientKeyExchange", + MT_FINISHED, "Finished", + MT_CERTIFICATE_STATUS, "CertificateStatus", + MT_NEXT_PROTO, "NextProto" +); + +use constant { + EXT_SERVER_NAME => 0, + EXT_MAX_FRAGMENT_LENGTH => 1, + EXT_STATUS_REQUEST => 5, + EXT_SUPPORTED_GROUPS => 10, + EXT_EC_POINT_FORMATS => 11, + EXT_SRP => 12, + EXT_SIG_ALGS => 13, + EXT_USE_SRTP => 14, + EXT_ALPN => 16, + EXT_SCT => 18, + EXT_PADDING => 21, + EXT_ENCRYPT_THEN_MAC => 22, + EXT_EXTENDED_MASTER_SECRET => 23, + EXT_SESSION_TICKET => 35, + EXT_KEY_SHARE => 51, + EXT_PSK => 41, + EXT_SUPPORTED_VERSIONS => 43, + EXT_COOKIE => 44, + EXT_PSK_KEX_MODES => 45, + EXT_POST_HANDSHAKE_AUTH => 49, + EXT_SIG_ALGS_CERT => 50, + EXT_RENEGOTIATE => 65281, + EXT_NPN => 13172, + EXT_CRYPTOPRO_BUG_EXTENSION => 0xfde8, + EXT_UNKNOWN => 0xfffe, + #Unknown extension that should appear last + EXT_FORCE_LAST => 0xffff +}; + +# SignatureScheme of TLS 1.3 from: +# https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-signaturescheme +# We have to manually grab the SHA224 equivalents from the old registry +use constant { + SIG_ALG_RSA_PKCS1_SHA256 => 0x0401, + SIG_ALG_RSA_PKCS1_SHA384 => 0x0501, + SIG_ALG_RSA_PKCS1_SHA512 => 0x0601, + SIG_ALG_ECDSA_SECP256R1_SHA256 => 0x0403, + SIG_ALG_ECDSA_SECP384R1_SHA384 => 0x0503, + SIG_ALG_ECDSA_SECP521R1_SHA512 => 0x0603, + SIG_ALG_RSA_PSS_RSAE_SHA256 => 0x0804, + SIG_ALG_RSA_PSS_RSAE_SHA384 => 0x0805, + SIG_ALG_RSA_PSS_RSAE_SHA512 => 0x0806, + SIG_ALG_ED25519 => 0x0807, + SIG_ALG_ED448 => 0x0808, + SIG_ALG_RSA_PSS_PSS_SHA256 => 0x0809, + SIG_ALG_RSA_PSS_PSS_SHA384 => 0x080a, + SIG_ALG_RSA_PSS_PSS_SHA512 => 0x080b, + SIG_ALG_RSA_PKCS1_SHA1 => 0x0201, + SIG_ALG_ECDSA_SHA1 => 0x0203, + SIG_ALG_DSA_SHA1 => 0x0202, + SIG_ALG_DSA_SHA256 => 0x0402, + SIG_ALG_DSA_SHA384 => 0x0502, + SIG_ALG_DSA_SHA512 => 0x0602, + OSSL_SIG_ALG_RSA_PKCS1_SHA224 => 0x0301, + OSSL_SIG_ALG_DSA_SHA224 => 0x0302, + OSSL_SIG_ALG_ECDSA_SHA224 => 0x0303 +}; + +use constant { + CIPHER_RSA_WITH_AES_128_CBC_SHA => 0x002f, + CIPHER_DHE_RSA_AES_128_SHA => 0x0033, + CIPHER_ADH_AES_128_SHA => 0x0034, + CIPHER_TLS13_AES_128_GCM_SHA256 => 0x1301, + CIPHER_TLS13_AES_256_GCM_SHA384 => 0x1302 +}; + +use constant { + CLIENT => 0, + SERVER => 1 +}; + +my $payload = ""; +my $messlen = -1; +my $mt; +my $startoffset = -1; +my $server = 0; +my $success = 0; +my $end = 0; +my @message_rec_list = (); +my @message_frag_lens = (); +my $ciphersuite = 0; +my $successondata = 0; +my $alert; + +sub clear +{ + $payload = ""; + $messlen = -1; + $startoffset = -1; + $server = 0; + $success = 0; + $end = 0; + $successondata = 0; + @message_rec_list = (); + @message_frag_lens = (); + $alert = undef; +} + +#Class method to extract messages from a record +sub get_messages +{ + my $class = shift; + my $serverin = shift; + my $record = shift; + my @messages = (); + my $message; + + @message_frag_lens = (); + + if ($serverin != $server && length($payload) != 0) { + die "Changed peer, but we still have fragment data\n"; + } + $server = $serverin; + + if ($record->content_type == TLSProxy::Record::RT_CCS) { + if ($payload ne "") { + #We can't handle this yet + die "CCS received before message data complete\n"; + } + if (!TLSProxy::Proxy->is_tls13()) { + if ($server) { + TLSProxy::Record->server_encrypting(1); + } else { + TLSProxy::Record->client_encrypting(1); + } + } + } elsif ($record->content_type == TLSProxy::Record::RT_HANDSHAKE) { + if ($record->len == 0 || $record->len_real == 0) { + print " Message truncated\n"; + } else { + my $recoffset = 0; + + if (length $payload > 0) { + #We are continuing processing a message started in a previous + #record. Add this record to the list associated with this + #message + push @message_rec_list, $record; + + if ($messlen <= length($payload)) { + #Shouldn't happen + die "Internal error: invalid messlen: ".$messlen + ." payload length:".length($payload)."\n"; + } + if (length($payload) + $record->decrypt_len >= $messlen) { + #We can complete the message with this record + $recoffset = $messlen - length($payload); + $payload .= substr($record->decrypt_data, 0, $recoffset); + push @message_frag_lens, $recoffset; + $message = create_message($server, $mt, $payload, + $startoffset); + push @messages, $message; + + $payload = ""; + } else { + #This is just part of the total message + $payload .= $record->decrypt_data; + $recoffset = $record->decrypt_len; + push @message_frag_lens, $record->decrypt_len; + } + print " Partial message data read: ".$recoffset." bytes\n"; + } + + while ($record->decrypt_len > $recoffset) { + #We are at the start of a new message + if ($record->decrypt_len - $recoffset < 4) { + #Whilst technically probably valid we can't cope with this + die "End of record in the middle of a message header\n"; + } + @message_rec_list = ($record); + my $lenhi; + my $lenlo; + ($mt, $lenhi, $lenlo) = unpack('CnC', + substr($record->decrypt_data, + $recoffset)); + $messlen = ($lenhi << 8) | $lenlo; + print " Message type: $message_type{$mt}\n"; + print " Message Length: $messlen\n"; + $startoffset = $recoffset; + $recoffset += 4; + $payload = ""; + + if ($recoffset <= $record->decrypt_len) { + #Some payload data is present in this record + if ($record->decrypt_len - $recoffset >= $messlen) { + #We can complete the message with this record + $payload .= substr($record->decrypt_data, $recoffset, + $messlen); + $recoffset += $messlen; + push @message_frag_lens, $messlen; + $message = create_message($server, $mt, $payload, + $startoffset); + push @messages, $message; + + $payload = ""; + } else { + #This is just part of the total message + $payload .= substr($record->decrypt_data, $recoffset, + $record->decrypt_len - $recoffset); + $recoffset = $record->decrypt_len; + push @message_frag_lens, $recoffset; + } + } + } + } + } elsif ($record->content_type == TLSProxy::Record::RT_APPLICATION_DATA) { + print " [ENCRYPTED APPLICATION DATA]\n"; + print " [".$record->decrypt_data."]\n"; + + if ($successondata) { + $success = 1; + $end = 1; + } + } elsif ($record->content_type == TLSProxy::Record::RT_ALERT) { + my ($alertlev, $alertdesc) = unpack('CC', $record->decrypt_data); + print " [$alertlev, $alertdesc]\n"; + #A CloseNotify from the client indicates we have finished successfully + #(we assume) + if (!$end && !$server && $alertlev == AL_LEVEL_WARN + && $alertdesc == AL_DESC_CLOSE_NOTIFY) { + $success = 1; + } + #Fatal or close notify alerts end the test + if ($alertlev == AL_LEVEL_FATAL || $alertdesc == AL_DESC_CLOSE_NOTIFY) { + $end = 1; + } + $alert = TLSProxy::Alert->new( + $server, + $record->encrypted, + $alertlev, + $alertdesc); + } + + return @messages; +} + +#Function to work out which sub-class we need to create and then +#construct it +sub create_message +{ + my ($server, $mt, $data, $startoffset) = @_; + my $message; + + #We only support ClientHello in this version...needs to be extended for + #others + if ($mt == MT_CLIENT_HELLO) { + $message = TLSProxy::ClientHello->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_SERVER_HELLO) { + $message = TLSProxy::ServerHello->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_ENCRYPTED_EXTENSIONS) { + $message = TLSProxy::EncryptedExtensions->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_CERTIFICATE) { + $message = TLSProxy::Certificate->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_CERTIFICATE_REQUEST) { + $message = TLSProxy::CertificateRequest->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_CERTIFICATE_VERIFY) { + $message = TLSProxy::CertificateVerify->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_SERVER_KEY_EXCHANGE) { + $message = TLSProxy::ServerKeyExchange->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } elsif ($mt == MT_NEW_SESSION_TICKET) { + $message = TLSProxy::NewSessionTicket->new( + $server, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + $message->parse(); + } else { + #Unknown message type + $message = TLSProxy::Message->new( + $server, + $mt, + $data, + [@message_rec_list], + $startoffset, + [@message_frag_lens] + ); + } + + return $message; +} + +sub end +{ + my $class = shift; + return $end; +} +sub success +{ + my $class = shift; + return $success; +} +sub fail +{ + my $class = shift; + return !$success && $end; +} + +sub alert +{ + return $alert; +} + +sub new +{ + my $class = shift; + my ($server, + $mt, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = { + server => $server, + data => $data, + records => $records, + mt => $mt, + startoffset => $startoffset, + message_frag_lens => $message_frag_lens, + dupext => -1 + }; + + return bless $self, $class; +} + +sub ciphersuite +{ + my $class = shift; + if (@_) { + $ciphersuite = shift; + } + return $ciphersuite; +} + +#Update all the underlying records with the modified data from this message +#Note: Only supports re-encrypting for TLSv1.3 +sub repack +{ + my $self = shift; + my $msgdata; + + my $numrecs = $#{$self->records}; + + $self->set_message_contents(); + + my $lenhi; + my $lenlo; + + $lenlo = length($self->data) & 0xff; + $lenhi = length($self->data) >> 8; + $msgdata = pack('CnC', $self->mt, $lenhi, $lenlo).$self->data; + + if ($numrecs == 0) { + #The message is fully contained within one record + my ($rec) = @{$self->records}; + my $recdata = $rec->decrypt_data; + + my $old_length; + + # We use empty message_frag_lens to indicates that pre-repacking, + # the message wasn't present. The first fragment length doesn't include + # the TLS header, so we need to check and compute the right length. + if (@{$self->message_frag_lens}) { + $old_length = ${$self->message_frag_lens}[0] + + TLS_MESSAGE_HEADER_LENGTH; + } else { + $old_length = 0; + } + + my $prefix = substr($recdata, 0, $self->startoffset); + my $suffix = substr($recdata, $self->startoffset + $old_length); + + $rec->decrypt_data($prefix.($msgdata).($suffix)); + # TODO(openssl-team): don't keep explicit lengths. + # (If a length override is ever needed to construct invalid packets, + # use an explicit override field instead.) + $rec->decrypt_len(length($rec->decrypt_data)); + $rec->len($rec->len + length($msgdata) - $old_length); + # Only support re-encryption for TLSv1.3. + if (TLSProxy::Proxy->is_tls13() && $rec->encrypted()) { + #Add content type (1 byte) and 16 tag bytes + $rec->data($rec->decrypt_data + .pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16)); + } else { + $rec->data($rec->decrypt_data); + } + + #Update the fragment len in case we changed it above + ${$self->message_frag_lens}[0] = length($msgdata) + - TLS_MESSAGE_HEADER_LENGTH; + return; + } + + #Note we don't currently support changing a fragmented message length + my $recctr = 0; + my $datadone = 0; + foreach my $rec (@{$self->records}) { + my $recdata = $rec->decrypt_data; + if ($recctr == 0) { + #This is the first record + my $remainlen = length($recdata) - $self->startoffset; + $rec->data(substr($recdata, 0, $self->startoffset) + .substr(($msgdata), 0, $remainlen)); + $datadone += $remainlen; + } elsif ($recctr + 1 == $numrecs) { + #This is the last record + $rec->data(substr($msgdata, $datadone)); + } else { + #This is a middle record + $rec->data(substr($msgdata, $datadone, length($rec->data))); + $datadone += length($rec->data); + } + $recctr++; + } +} + +#To be overridden by sub-classes +sub set_message_contents +{ +} + +#Read only accessors +sub server +{ + my $self = shift; + return $self->{server}; +} + +#Read/write accessors +sub mt +{ + my $self = shift; + if (@_) { + $self->{mt} = shift; + } + return $self->{mt}; +} +sub data +{ + my $self = shift; + if (@_) { + $self->{data} = shift; + } + return $self->{data}; +} +sub records +{ + my $self = shift; + if (@_) { + $self->{records} = shift; + } + return $self->{records}; +} +sub startoffset +{ + my $self = shift; + if (@_) { + $self->{startoffset} = shift; + } + return $self->{startoffset}; +} +sub message_frag_lens +{ + my $self = shift; + if (@_) { + $self->{message_frag_lens} = shift; + } + return $self->{message_frag_lens}; +} +sub encoded_length +{ + my $self = shift; + return TLS_MESSAGE_HEADER_LENGTH + length($self->data); +} +sub dupext +{ + my $self = shift; + if (@_) { + $self->{dupext} = shift; + } + return $self->{dupext}; +} +sub successondata +{ + my $class = shift; + if (@_) { + $successondata = shift; + } + return $successondata; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/NewSessionTicket.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/NewSessionTicket.pm new file mode 100644 index 000000000..e5099851d --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/NewSessionTicket.pm @@ -0,0 +1,81 @@ +# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::NewSessionTicket; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_NEW_SESSION_TICKET, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{ticket_lifetime_hint} = 0; + $self->{ticket} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + + my $ticket_lifetime_hint = unpack('N', $self->data); + my $ticket_len = unpack('n', $self->data); + my $ticket = substr($self->data, 6, $ticket_len); + + $self->ticket_lifetime_hint($ticket_lifetime_hint); + $self->ticket($ticket); +} + + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + + $data = pack('N', $self->ticket_lifetime_hint); + $data .= pack('n', length($self->ticket)); + $data .= $self->ticket; + + $self->data($data); +} + +#Read/write accessors +sub ticket_lifetime_hint +{ + my $self = shift; + if (@_) { + $self->{ticket_lifetime_hint} = shift; + } + return $self->{ticket_lifetime_hint}; +} +sub ticket +{ + my $self = shift; + if (@_) { + $self->{ticket} = shift; + } + return $self->{ticket}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Proxy.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Proxy.pm new file mode 100644 index 000000000..6f983b328 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Proxy.pm @@ -0,0 +1,729 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use POSIX ":sys_wait_h"; + +package TLSProxy::Proxy; + +use File::Spec; +use IO::Socket; +use IO::Select; +use TLSProxy::Record; +use TLSProxy::Message; +use TLSProxy::ClientHello; +use TLSProxy::ServerHello; +use TLSProxy::EncryptedExtensions; +use TLSProxy::Certificate; +use TLSProxy::CertificateRequest; +use TLSProxy::CertificateVerify; +use TLSProxy::ServerKeyExchange; +use TLSProxy::NewSessionTicket; + +my $have_IPv6; +my $IP_factory; + +BEGIN +{ + # IO::Socket::IP is on the core module list, IO::Socket::INET6 isn't. + # However, IO::Socket::INET6 is older and is said to be more widely + # deployed for the moment, and may have less bugs, so we try the latter + # first, then fall back on the core modules. Worst case scenario, we + # fall back to IO::Socket::INET, only supports IPv4. + eval { + require IO::Socket::INET6; + my $s = IO::Socket::INET6->new( + LocalAddr => "::1", + LocalPort => 0, + Listen=>1, + ); + $s or die "\n"; + $s->close(); + }; + if ($@ eq "") { + $IP_factory = sub { IO::Socket::INET6->new(Domain => AF_INET6, @_); }; + $have_IPv6 = 1; + } else { + eval { + require IO::Socket::IP; + my $s = IO::Socket::IP->new( + LocalAddr => "::1", + LocalPort => 0, + Listen=>1, + ); + $s or die "\n"; + $s->close(); + }; + if ($@ eq "") { + $IP_factory = sub { IO::Socket::IP->new(@_); }; + $have_IPv6 = 1; + } else { + $IP_factory = sub { IO::Socket::INET->new(@_); }; + $have_IPv6 = 0; + } + } +} + +my $is_tls13 = 0; +my $ciphersuite = undef; + +sub new +{ + my $class = shift; + my ($filter, + $execute, + $cert, + $debug) = @_; + + my $self = { + #Public read/write + proxy_addr => $have_IPv6 ? "[::1]" : "127.0.0.1", + filter => $filter, + serverflags => "", + clientflags => "", + serverconnects => 1, + reneg => 0, + sessionfile => undef, + + #Public read + proxy_port => 0, + server_port => 0, + serverpid => 0, + clientpid => 0, + execute => $execute, + cert => $cert, + debug => $debug, + cipherc => "", + ciphersuitesc => "", + ciphers => "AES128-SHA", + ciphersuitess => "TLS_AES_128_GCM_SHA256", + flight => -1, + direction => -1, + partial => ["", ""], + record_list => [], + message_list => [], + }; + + # Create the Proxy socket + my $proxaddr = $self->{proxy_addr}; + $proxaddr =~ s/[\[\]]//g; # Remove [ and ] + my @proxyargs = ( + LocalHost => $proxaddr, + LocalPort => 0, + Proto => "tcp", + Listen => SOMAXCONN, + ); + + if (my $sock = $IP_factory->(@proxyargs)) { + $self->{proxy_sock} = $sock; + $self->{proxy_port} = $sock->sockport(); + $self->{proxy_addr} = $sock->sockhost(); + $self->{proxy_addr} =~ s/(.*:.*)/[$1]/; + print "Proxy started on port ", + "$self->{proxy_addr}:$self->{proxy_port}\n"; + # use same address for s_server + $self->{server_addr} = $self->{proxy_addr}; + } else { + warn "Failed creating proxy socket (".$proxaddr.",0): $!\n"; + } + + return bless $self, $class; +} + +sub DESTROY +{ + my $self = shift; + + $self->{proxy_sock}->close() if $self->{proxy_sock}; +} + +sub clearClient +{ + my $self = shift; + + $self->{cipherc} = ""; + $self->{ciphersuitec} = ""; + $self->{flight} = -1; + $self->{direction} = -1; + $self->{partial} = ["", ""]; + $self->{record_list} = []; + $self->{message_list} = []; + $self->{clientflags} = ""; + $self->{sessionfile} = undef; + $self->{clientpid} = 0; + $is_tls13 = 0; + $ciphersuite = undef; + + TLSProxy::Message->clear(); + TLSProxy::Record->clear(); +} + +sub clear +{ + my $self = shift; + + $self->clearClient; + $self->{ciphers} = "AES128-SHA"; + $self->{ciphersuitess} = "TLS_AES_128_GCM_SHA256"; + $self->{serverflags} = ""; + $self->{serverconnects} = 1; + $self->{serverpid} = 0; + $self->{reneg} = 0; +} + +sub restart +{ + my $self = shift; + + $self->clear; + $self->start; +} + +sub clientrestart +{ + my $self = shift; + + $self->clear; + $self->clientstart; +} + +sub connect_to_server +{ + my $self = shift; + my $servaddr = $self->{server_addr}; + + $servaddr =~ s/[\[\]]//g; # Remove [ and ] + + my $sock = $IP_factory->(PeerAddr => $servaddr, + PeerPort => $self->{server_port}, + Proto => 'tcp'); + if (!defined($sock)) { + my $err = $!; + kill(3, $self->{real_serverpid}); + die "unable to connect: $err\n"; + } + + $self->{server_sock} = $sock; +} + +sub start +{ + my ($self) = shift; + my $pid; + + if ($self->{proxy_sock} == 0) { + return 0; + } + + my $execcmd = $self->execute + ." s_server -max_protocol TLSv1.3 -no_comp -rev -engine ossltest" + #In TLSv1.3 we issue two session tickets. The default session id + #callback gets confused because the ossltest engine causes the same + #session id to be created twice due to the changed random number + #generation. Using "-ext_cache" replaces the default callback with a + #different one that doesn't get confused. + ." -ext_cache" + ." -accept $self->{server_addr}:0" + ." -cert ".$self->cert." -cert2 ".$self->cert + ." -naccept ".$self->serverconnects; + if ($self->ciphers ne "") { + $execcmd .= " -cipher ".$self->ciphers; + } + if ($self->ciphersuitess ne "") { + $execcmd .= " -ciphersuites ".$self->ciphersuitess; + } + if ($self->serverflags ne "") { + $execcmd .= " ".$self->serverflags; + } + if ($self->debug) { + print STDERR "Server command: $execcmd\n"; + } + + open(my $savedin, "<&STDIN"); + + # Temporarily replace STDIN so that sink process can inherit it... + $pid = open(STDIN, "$execcmd 2>&1 |") or die "Failed to $execcmd: $!\n"; + $self->{real_serverpid} = $pid; + + # Process the output from s_server until we find the ACCEPT line, which + # tells us what the accepting address and port are. + while (<>) { + print; + s/\R$//; # Better chomp + next unless (/^ACCEPT\s.*:(\d+)$/); + $self->{server_port} = $1; + last; + } + + if ($self->{server_port} == 0) { + # This actually means that s_server exited, because otherwise + # we would still searching for ACCEPT... + waitpid($pid, 0); + die "no ACCEPT detected in '$execcmd' output: $?\n"; + } + + # Just make sure everything else is simply printed [as separate lines]. + # The sub process simply inherits our STD* and will keep consuming + # server's output and printing it as long as there is anything there, + # out of our way. + my $error; + $pid = undef; + if (eval { require Win32::Process; 1; }) { + if (Win32::Process::Create(my $h, $^X, "perl -ne print", 0, 0, ".")) { + $pid = $h->GetProcessID(); + $self->{proc_handle} = $h; # hold handle till next round [or exit] + } else { + $error = Win32::FormatMessage(Win32::GetLastError()); + } + } else { + if (defined($pid = fork)) { + $pid or exec("$^X -ne print") or exit($!); + } else { + $error = $!; + } + } + + # Change back to original stdin + open(STDIN, "<&", $savedin); + close($savedin); + + if (!defined($pid)) { + kill(3, $self->{real_serverpid}); + die "Failed to capture s_server's output: $error\n"; + } + + $self->{serverpid} = $pid; + + print STDERR "Server responds on ", + "$self->{server_addr}:$self->{server_port}\n"; + + # Connect right away... + $self->connect_to_server(); + + return $self->clientstart; +} + +sub clientstart +{ + my ($self) = shift; + + if ($self->execute) { + my $pid; + my $execcmd = $self->execute + ." s_client -max_protocol TLSv1.3 -engine ossltest" + ." -connect $self->{proxy_addr}:$self->{proxy_port}"; + if ($self->cipherc ne "") { + $execcmd .= " -cipher ".$self->cipherc; + } + if ($self->ciphersuitesc ne "") { + $execcmd .= " -ciphersuites ".$self->ciphersuitesc; + } + if ($self->clientflags ne "") { + $execcmd .= " ".$self->clientflags; + } + if ($self->clientflags !~ m/-(no)?servername/) { + $execcmd .= " -servername localhost"; + } + if (defined $self->sessionfile) { + $execcmd .= " -ign_eof"; + } + if ($self->debug) { + print STDERR "Client command: $execcmd\n"; + } + + open(my $savedout, ">&STDOUT"); + # If we open pipe with new descriptor, attempt to close it, + # explicitly or implicitly, would incur waitpid and effectively + # dead-lock... + if (!($pid = open(STDOUT, "| $execcmd"))) { + my $err = $!; + kill(3, $self->{real_serverpid}); + die "Failed to $execcmd: $err\n"; + } + $self->{clientpid} = $pid; + + # queue [magic] input + print $self->reneg ? "R" : "test"; + + # this closes client's stdin without waiting for its pid + open(STDOUT, ">&", $savedout); + close($savedout); + } + + # Wait for incoming connection from client + my $fdset = IO::Select->new($self->{proxy_sock}); + if (!$fdset->can_read(60)) { + kill(3, $self->{real_serverpid}); + die "s_client didn't try to connect\n"; + } + + my $client_sock; + if(!($client_sock = $self->{proxy_sock}->accept())) { + warn "Failed accepting incoming connection: $!\n"; + return 0; + } + + print "Connection opened\n"; + + my $server_sock = $self->{server_sock}; + my $indata; + + #Wait for either the server socket or the client socket to become readable + $fdset = IO::Select->new($server_sock, $client_sock); + my @ready; + my $ctr = 0; + local $SIG{PIPE} = "IGNORE"; + $self->{saw_session_ticket} = undef; + while($fdset->count && $ctr < 10) { + if (defined($self->{sessionfile})) { + # s_client got -ign_eof and won't be exiting voluntarily, so we + # look for data *and* session ticket... + last if TLSProxy::Message->success() + && $self->{saw_session_ticket}; + } + if (!(@ready = $fdset->can_read(1))) { + $ctr++; + next; + } + foreach my $hand (@ready) { + if ($hand == $server_sock) { + if ($server_sock->sysread($indata, 16384)) { + if ($indata = $self->process_packet(1, $indata)) { + $client_sock->syswrite($indata) or goto END; + } + $ctr = 0; + } else { + $fdset->remove($server_sock); + $client_sock->shutdown(SHUT_WR); + } + } elsif ($hand == $client_sock) { + if ($client_sock->sysread($indata, 16384)) { + if ($indata = $self->process_packet(0, $indata)) { + $server_sock->syswrite($indata) or goto END; + } + $ctr = 0; + } else { + $fdset->remove($client_sock); + $server_sock->shutdown(SHUT_WR); + } + } else { + kill(3, $self->{real_serverpid}); + die "Unexpected handle"; + } + } + } + + if ($ctr >= 10) { + kill(3, $self->{real_serverpid}); + die "No progress made"; + } + + END: + print "Connection closed\n"; + if($server_sock) { + $server_sock->close(); + $self->{server_sock} = undef; + } + if($client_sock) { + #Closing this also kills the child process + $client_sock->close(); + } + + my $pid; + if (--$self->{serverconnects} == 0) { + $pid = $self->{serverpid}; + print "Waiting for 'perl -ne print' process to close: $pid...\n"; + $pid = waitpid($pid, 0); + if ($pid > 0) { + die "exit code $? from 'perl -ne print' process\n" if $? != 0; + } elsif ($pid == 0) { + kill(3, $self->{real_serverpid}); + die "lost control over $self->{serverpid}?"; + } + $pid = $self->{real_serverpid}; + print "Waiting for s_server process to close: $pid...\n"; + # it's done already, just collect the exit code [and reap]... + waitpid($pid, 0); + die "exit code $? from s_server process\n" if $? != 0; + } else { + # It's a bit counter-intuitive spot to make next connection to + # the s_server. Rationale is that established connection works + # as synchronization point, in sense that this way we know that + # s_server is actually done with current session... + $self->connect_to_server(); + } + $pid = $self->{clientpid}; + print "Waiting for s_client process to close: $pid...\n"; + waitpid($pid, 0); + + return 1; +} + +sub process_packet +{ + my ($self, $server, $packet) = @_; + my $len_real; + my $decrypt_len; + my $data; + my $recnum; + + if ($server) { + print "Received server packet\n"; + } else { + print "Received client packet\n"; + } + + if ($self->{direction} != $server) { + $self->{flight} = $self->{flight} + 1; + $self->{direction} = $server; + } + + print "Packet length = ".length($packet)."\n"; + print "Processing flight ".$self->flight."\n"; + + #Return contains the list of record found in the packet followed by the + #list of messages in those records and any partial message + my @ret = TLSProxy::Record->get_records($server, $self->flight, + $self->{partial}[$server].$packet); + $self->{partial}[$server] = $ret[2]; + push @{$self->{record_list}}, @{$ret[0]}; + push @{$self->{message_list}}, @{$ret[1]}; + + print "\n"; + + if (scalar(@{$ret[0]}) == 0 or length($ret[2]) != 0) { + return ""; + } + + #Finished parsing. Call user provided filter here + if (defined $self->filter) { + $self->filter->($self); + } + + #Take a note on NewSessionTicket + foreach my $message (reverse @{$self->{message_list}}) { + if ($message->{mt} == TLSProxy::Message::MT_NEW_SESSION_TICKET) { + $self->{saw_session_ticket} = 1; + last; + } + } + + #Reconstruct the packet + $packet = ""; + foreach my $record (@{$self->record_list}) { + $packet .= $record->reconstruct_record($server); + } + + print "Forwarded packet length = ".length($packet)."\n\n"; + + return $packet; +} + +#Read accessors +sub execute +{ + my $self = shift; + return $self->{execute}; +} +sub cert +{ + my $self = shift; + return $self->{cert}; +} +sub debug +{ + my $self = shift; + return $self->{debug}; +} +sub flight +{ + my $self = shift; + return $self->{flight}; +} +sub record_list +{ + my $self = shift; + return $self->{record_list}; +} +sub success +{ + my $self = shift; + return $self->{success}; +} +sub end +{ + my $self = shift; + return $self->{end}; +} +sub supports_IPv6 +{ + my $self = shift; + return $have_IPv6; +} +sub proxy_addr +{ + my $self = shift; + return $self->{proxy_addr}; +} +sub proxy_port +{ + my $self = shift; + return $self->{proxy_port}; +} +sub server_addr +{ + my $self = shift; + return $self->{server_addr}; +} +sub server_port +{ + my $self = shift; + return $self->{server_port}; +} +sub serverpid +{ + my $self = shift; + return $self->{serverpid}; +} +sub clientpid +{ + my $self = shift; + return $self->{clientpid}; +} + +#Read/write accessors +sub filter +{ + my $self = shift; + if (@_) { + $self->{filter} = shift; + } + return $self->{filter}; +} +sub cipherc +{ + my $self = shift; + if (@_) { + $self->{cipherc} = shift; + } + return $self->{cipherc}; +} +sub ciphersuitesc +{ + my $self = shift; + if (@_) { + $self->{ciphersuitesc} = shift; + } + return $self->{ciphersuitesc}; +} +sub ciphers +{ + my $self = shift; + if (@_) { + $self->{ciphers} = shift; + } + return $self->{ciphers}; +} +sub ciphersuitess +{ + my $self = shift; + if (@_) { + $self->{ciphersuitess} = shift; + } + return $self->{ciphersuitess}; +} +sub serverflags +{ + my $self = shift; + if (@_) { + $self->{serverflags} = shift; + } + return $self->{serverflags}; +} +sub clientflags +{ + my $self = shift; + if (@_) { + $self->{clientflags} = shift; + } + return $self->{clientflags}; +} +sub serverconnects +{ + my $self = shift; + if (@_) { + $self->{serverconnects} = shift; + } + return $self->{serverconnects}; +} +# This is a bit ugly because the caller is responsible for keeping the records +# in sync with the updated message list; simply updating the message list isn't +# sufficient to get the proxy to forward the new message. +# But it does the trick for the one test (test_sslsessiontick) that needs it. +sub message_list +{ + my $self = shift; + if (@_) { + $self->{message_list} = shift; + } + return $self->{message_list}; +} + +sub fill_known_data +{ + my $length = shift; + my $ret = ""; + for (my $i = 0; $i < $length; $i++) { + $ret .= chr($i); + } + return $ret; +} + +sub is_tls13 +{ + my $class = shift; + if (@_) { + $is_tls13 = shift; + } + return $is_tls13; +} + +sub reneg +{ + my $self = shift; + if (@_) { + $self->{reneg} = shift; + } + return $self->{reneg}; +} + +#Setting a sessionfile means that the client will not close until the given +#file exists. This is useful in TLSv1.3 where otherwise s_client will close +#immediately at the end of the handshake, but before the session has been +#received from the server. A side effect of this is that s_client never sends +#a close_notify, so instead we consider success to be when it sends application +#data over the connection. +sub sessionfile +{ + my $self = shift; + if (@_) { + $self->{sessionfile} = shift; + TLSProxy::Message->successondata(1); + } + return $self->{sessionfile}; +} + +sub ciphersuite +{ + my $class = shift; + if (@_) { + $ciphersuite = shift; + } + return $ciphersuite; +} + +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Record.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Record.pm new file mode 100644 index 000000000..841467b8e --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/Record.pm @@ -0,0 +1,401 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +use TLSProxy::Proxy; + +package TLSProxy::Record; + +my $server_encrypting = 0; +my $client_encrypting = 0; +my $etm = 0; + +use constant TLS_RECORD_HEADER_LENGTH => 5; + +#Record types +use constant { + RT_APPLICATION_DATA => 23, + RT_HANDSHAKE => 22, + RT_ALERT => 21, + RT_CCS => 20, + RT_UNKNOWN => 100 +}; + +my %record_type = ( + RT_APPLICATION_DATA, "APPLICATION DATA", + RT_HANDSHAKE, "HANDSHAKE", + RT_ALERT, "ALERT", + RT_CCS, "CCS", + RT_UNKNOWN, "UNKNOWN" +); + +use constant { + VERS_TLS_1_4 => 0x0305, + VERS_TLS_1_3 => 0x0304, + VERS_TLS_1_2 => 0x0303, + VERS_TLS_1_1 => 0x0302, + VERS_TLS_1_0 => 0x0301, + VERS_SSL_3_0 => 0x0300, + VERS_SSL_LT_3_0 => 0x02ff +}; + +my %tls_version = ( + VERS_TLS_1_3, "TLS1.3", + VERS_TLS_1_2, "TLS1.2", + VERS_TLS_1_1, "TLS1.1", + VERS_TLS_1_0, "TLS1.0", + VERS_SSL_3_0, "SSL3", + VERS_SSL_LT_3_0, "SSL<3" +); + +#Class method to extract records from a packet of data +sub get_records +{ + my $class = shift; + my $server = shift; + my $flight = shift; + my $packet = shift; + my $partial = ""; + my @record_list = (); + my @message_list = (); + + my $recnum = 1; + while (length ($packet) > 0) { + print " Record $recnum ", $server ? "(server -> client)\n" + : "(client -> server)\n"; + + #Get the record header (unpack can't fail if $packet is too short) + my ($content_type, $version, $len) = unpack('Cnn', $packet); + + if (length($packet) < TLS_RECORD_HEADER_LENGTH + ($len // 0)) { + print "Partial data : ".length($packet)." bytes\n"; + $partial = $packet; + last; + } + + my $data = substr($packet, TLS_RECORD_HEADER_LENGTH, $len); + + print " Content type: ".$record_type{$content_type}."\n"; + print " Version: $tls_version{$version}\n"; + print " Length: $len\n"; + + my $record = TLSProxy::Record->new( + $flight, + $content_type, + $version, + $len, + 0, + $len, # len_real + $len, # decrypt_len + $data, # data + $data # decrypt_data + ); + + if ($content_type != RT_CCS + && (!TLSProxy::Proxy->is_tls13() + || $content_type != RT_ALERT)) { + if (($server && $server_encrypting) + || (!$server && $client_encrypting)) { + if (!TLSProxy::Proxy->is_tls13() && $etm) { + $record->decryptETM(); + } else { + $record->decrypt(); + } + $record->encrypted(1); + + if (TLSProxy::Proxy->is_tls13()) { + print " Inner content type: " + .$record_type{$record->content_type()}."\n"; + } + } + } + + push @record_list, $record; + + #Now figure out what messages are contained within this record + my @messages = TLSProxy::Message->get_messages($server, $record); + push @message_list, @messages; + + $packet = substr($packet, TLS_RECORD_HEADER_LENGTH + $len); + $recnum++; + } + + return (\@record_list, \@message_list, $partial); +} + +sub clear +{ + $server_encrypting = 0; + $client_encrypting = 0; +} + +#Class level accessors +sub server_encrypting +{ + my $class = shift; + if (@_) { + $server_encrypting = shift; + } + return $server_encrypting; +} +sub client_encrypting +{ + my $class = shift; + if (@_) { + $client_encrypting= shift; + } + return $client_encrypting; +} +#Enable/Disable Encrypt-then-MAC +sub etm +{ + my $class = shift; + if (@_) { + $etm = shift; + } + return $etm; +} + +sub new +{ + my $class = shift; + my ($flight, + $content_type, + $version, + $len, + $sslv2, + $len_real, + $decrypt_len, + $data, + $decrypt_data) = @_; + + my $self = { + flight => $flight, + content_type => $content_type, + version => $version, + len => $len, + sslv2 => $sslv2, + len_real => $len_real, + decrypt_len => $decrypt_len, + data => $data, + decrypt_data => $decrypt_data, + orig_decrypt_data => $decrypt_data, + sent => 0, + encrypted => 0, + outer_content_type => RT_APPLICATION_DATA + }; + + return bless $self, $class; +} + +#Decrypt using encrypt-then-MAC +sub decryptETM +{ + my ($self) = shift; + + my $data = $self->data; + + if($self->version >= VERS_TLS_1_1()) { + #TLS1.1+ has an explicit IV. Throw it away + $data = substr($data, 16); + } + + #Throw away the MAC (assumes MAC is 20 bytes for now. FIXME) + $data = substr($data, 0, length($data) - 20); + + #Find out what the padding byte is + my $padval = unpack("C", substr($data, length($data) - 1)); + + #Throw away the padding + $data = substr($data, 0, length($data) - ($padval + 1)); + + $self->decrypt_data($data); + $self->decrypt_len(length($data)); + + return $data; +} + +#Standard decrypt +sub decrypt() +{ + my ($self) = shift; + my $mactaglen = 20; + my $data = $self->data; + + #Throw away any IVs + if (TLSProxy::Proxy->is_tls13()) { + #A TLS1.3 client, when processing the server's initial flight, could + #respond with either an encrypted or an unencrypted alert. + if ($self->content_type() == RT_ALERT) { + #TODO(TLS1.3): Eventually it is sufficient just to check the record + #content type. If an alert is encrypted it will have a record + #content type of application data. However we haven't done the + #record layer changes yet, so it's a bit more complicated. For now + #we will additionally check if the data length is 2 (1 byte for + #alert level, 1 byte for alert description). If it is, then this is + #an unencrypted alert, so don't try to decrypt + return $data if (length($data) == 2); + } + $mactaglen = 16; + } elsif ($self->version >= VERS_TLS_1_1()) { + #16 bytes for a standard IV + $data = substr($data, 16); + + #Find out what the padding byte is + my $padval = unpack("C", substr($data, length($data) - 1)); + + #Throw away the padding + $data = substr($data, 0, length($data) - ($padval + 1)); + } + + #Throw away the MAC or TAG + $data = substr($data, 0, length($data) - $mactaglen); + + if (TLSProxy::Proxy->is_tls13()) { + #Get the content type + my $content_type = unpack("C", substr($data, length($data) - 1)); + $self->content_type($content_type); + $data = substr($data, 0, length($data) - 1); + } + + $self->decrypt_data($data); + $self->decrypt_len(length($data)); + + return $data; +} + +#Reconstruct the on-the-wire record representation +sub reconstruct_record +{ + my $self = shift; + my $server = shift; + my $data; + + #We only replay the records in the same direction + if ($self->{sent} || ($self->flight & 1) != $server) { + return ""; + } + $self->{sent} = 1; + + if ($self->sslv2) { + $data = pack('n', $self->len | 0x8000); + } else { + if (TLSProxy::Proxy->is_tls13() && $self->encrypted) { + $data = pack('Cnn', $self->outer_content_type, $self->version, + $self->len); + } else { + $data = pack('Cnn', $self->content_type, $self->version, + $self->len); + } + + } + $data .= $self->data; + + return $data; +} + +#Read only accessors +sub flight +{ + my $self = shift; + return $self->{flight}; +} +sub sslv2 +{ + my $self = shift; + return $self->{sslv2}; +} +sub len_real +{ + my $self = shift; + return $self->{len_real}; +} +sub orig_decrypt_data +{ + my $self = shift; + return $self->{orig_decrypt_data}; +} + +#Read/write accessors +sub decrypt_len +{ + my $self = shift; + if (@_) { + $self->{decrypt_len} = shift; + } + return $self->{decrypt_len}; +} +sub data +{ + my $self = shift; + if (@_) { + $self->{data} = shift; + } + return $self->{data}; +} +sub decrypt_data +{ + my $self = shift; + if (@_) { + $self->{decrypt_data} = shift; + } + return $self->{decrypt_data}; +} +sub len +{ + my $self = shift; + if (@_) { + $self->{len} = shift; + } + return $self->{len}; +} +sub version +{ + my $self = shift; + if (@_) { + $self->{version} = shift; + } + return $self->{version}; +} +sub content_type +{ + my $self = shift; + if (@_) { + $self->{content_type} = shift; + } + return $self->{content_type}; +} +sub encrypted +{ + my $self = shift; + if (@_) { + $self->{encrypted} = shift; + } + return $self->{encrypted}; +} +sub outer_content_type +{ + my $self = shift; + if (@_) { + $self->{outer_content_type} = shift; + } + return $self->{outer_content_type}; +} +sub is_fatal_alert +{ + my $self = shift; + my $server = shift; + + if (($self->{flight} & 1) == $server + && $self->{content_type} == TLSProxy::Record::RT_ALERT) { + my ($level, $alert) = unpack('CC', $self->decrypt_data); + return $alert if ($level == 2); + } + return 0; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ServerHello.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ServerHello.pm new file mode 100644 index 000000000..e9f1eca19 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ServerHello.pm @@ -0,0 +1,236 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::ServerHello; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +my $hrrrandom = pack("C*", 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, 0xBE, + 0x1D, 0x8C, 0x02, 0x1E, 0x65, 0xB8, 0x91, 0xC2, 0xA2, + 0x11, 0x16, 0x7A, 0xBB, 0x8C, 0x5E, 0x07, 0x9E, 0x09, + 0xE2, 0xC8, 0xA8, 0x33, 0x9C); + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_SERVER_HELLO, + $data, + $records, + $startoffset, + $message_frag_lens); + + $self->{server_version} = 0; + $self->{random} = []; + $self->{session_id_len} = 0; + $self->{session} = ""; + $self->{ciphersuite} = 0; + $self->{comp_meth} = 0; + $self->{extension_data} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + my $ptr = 2; + my ($server_version) = unpack('n', $self->data); + my $neg_version = $server_version; + + my $random = substr($self->data, $ptr, 32); + $ptr += 32; + my $session_id_len = 0; + my $session = ""; + $session_id_len = unpack('C', substr($self->data, $ptr)); + $ptr++; + $session = substr($self->data, $ptr, $session_id_len); + $ptr += $session_id_len; + + my $ciphersuite = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + my $comp_meth = 0; + $comp_meth = unpack('C', substr($self->data, $ptr)); + $ptr++; + + my $extensions_len = unpack('n', substr($self->data, $ptr)); + if (!defined $extensions_len) { + $extensions_len = 0; + } else { + $ptr += 2; + } + #For now we just deal with this as a block of data. In the future we will + #want to parse this + my $extension_data; + if ($extensions_len != 0) { + $extension_data = substr($self->data, $ptr); + + if (length($extension_data) != $extensions_len) { + die "Invalid extension length\n"; + } + } else { + if (length($self->data) != $ptr) { + die "Invalid extension length\n"; + } + $extension_data = ""; + } + my %extensions = (); + while (length($extension_data) >= 4) { + my ($type, $size) = unpack("nn", $extension_data); + my $extdata = substr($extension_data, 4, $size); + $extension_data = substr($extension_data, 4 + $size); + $extensions{$type} = $extdata; + if ($type == TLSProxy::Message::EXT_SUPPORTED_VERSIONS) { + $neg_version = unpack('n', $extdata); + } + } + + if ($random eq $hrrrandom) { + TLSProxy::Proxy->is_tls13(1); + } elsif ($neg_version == TLSProxy::Record::VERS_TLS_1_3) { + TLSProxy::Proxy->is_tls13(1); + + TLSProxy::Record->server_encrypting(1); + TLSProxy::Record->client_encrypting(1); + } + + $self->server_version($server_version); + $self->random($random); + $self->session_id_len($session_id_len); + $self->session($session); + $self->ciphersuite($ciphersuite); + TLSProxy::Proxy->ciphersuite($ciphersuite); + $self->comp_meth($comp_meth); + $self->extension_data(\%extensions); + + $self->process_data(); + + + print " Server Version:".$server_version."\n"; + print " Session ID Len:".$session_id_len."\n"; + print " Ciphersuite:".$ciphersuite."\n"; + print " Compression Method:".$comp_meth."\n"; + print " Extensions Len:".$extensions_len."\n"; +} + +#Perform any actions necessary based on the data we've seen +sub process_data +{ + my $self = shift; + + TLSProxy::Message->ciphersuite($self->ciphersuite); +} + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + my $extensions = ""; + + $data = pack('n', $self->server_version); + $data .= $self->random; + $data .= pack('C', $self->session_id_len); + $data .= $self->session; + $data .= pack('n', $self->ciphersuite); + $data .= pack('C', $self->comp_meth); + + foreach my $key (keys %{$self->extension_data}) { + my $extdata = ${$self->extension_data}{$key}; + $extensions .= pack("n", $key); + $extensions .= pack("n", length($extdata)); + $extensions .= $extdata; + if ($key == $self->dupext) { + $extensions .= pack("n", $key); + $extensions .= pack("n", length($extdata)); + $extensions .= $extdata; + } + } + + $data .= pack('n', length($extensions)); + $data .= $extensions; + $self->data($data); +} + +#Read/write accessors +sub server_version +{ + my $self = shift; + if (@_) { + $self->{server_version} = shift; + } + return $self->{server_version}; +} +sub random +{ + my $self = shift; + if (@_) { + $self->{random} = shift; + } + return $self->{random}; +} +sub session_id_len +{ + my $self = shift; + if (@_) { + $self->{session_id_len} = shift; + } + return $self->{session_id_len}; +} +sub session +{ + my $self = shift; + if (@_) { + $self->{session} = shift; + } + return $self->{session}; +} +sub ciphersuite +{ + my $self = shift; + if (@_) { + $self->{ciphersuite} = shift; + } + return $self->{ciphersuite}; +} +sub comp_meth +{ + my $self = shift; + if (@_) { + $self->{comp_meth} = shift; + } + return $self->{comp_meth}; +} +sub extension_data +{ + my $self = shift; + if (@_) { + $self->{extension_data} = shift; + } + return $self->{extension_data}; +} +sub set_extension +{ + my ($self, $ext_type, $ext_data) = @_; + $self->{extension_data}{$ext_type} = $ext_data; +} +sub delete_extension +{ + my ($self, $ext_type) = @_; + delete $self->{extension_data}{$ext_type}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ServerKeyExchange.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ServerKeyExchange.pm new file mode 100644 index 000000000..e0086e2be --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/TLSProxy/ServerKeyExchange.pm @@ -0,0 +1,157 @@ +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +package TLSProxy::ServerKeyExchange; + +use vars '@ISA'; +push @ISA, 'TLSProxy::Message'; + +sub new +{ + my $class = shift; + my ($server, + $data, + $records, + $startoffset, + $message_frag_lens) = @_; + + my $self = $class->SUPER::new( + $server, + TLSProxy::Message::MT_SERVER_KEY_EXCHANGE, + $data, + $records, + $startoffset, + $message_frag_lens); + + #DHE + $self->{p} = ""; + $self->{g} = ""; + $self->{pub_key} = ""; + $self->{sigalg} = -1; + $self->{sig} = ""; + + return $self; +} + +sub parse +{ + my $self = shift; + my $sigalg = -1; + + #Minimal SKE parsing. Only supports one known DHE ciphersuite at the moment + return if TLSProxy::Proxy->ciphersuite() + != TLSProxy::Message::CIPHER_ADH_AES_128_SHA + && TLSProxy::Proxy->ciphersuite() + != TLSProxy::Message::CIPHER_DHE_RSA_AES_128_SHA; + + my $p_len = unpack('n', $self->data); + my $ptr = 2; + my $p = substr($self->data, $ptr, $p_len); + $ptr += $p_len; + + my $g_len = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + my $g = substr($self->data, $ptr, $g_len); + $ptr += $g_len; + + my $pub_key_len = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + my $pub_key = substr($self->data, $ptr, $pub_key_len); + $ptr += $pub_key_len; + + #We assume its signed + my $record = ${$self->records}[0]; + + if (TLSProxy::Proxy->is_tls13() + || $record->version() == TLSProxy::Record::VERS_TLS_1_2) { + $sigalg = unpack('n', substr($self->data, $ptr)); + $ptr += 2; + } + my $sig = ""; + if (defined $sigalg) { + my $sig_len = unpack('n', substr($self->data, $ptr)); + if (defined $sig_len) { + $ptr += 2; + $sig = substr($self->data, $ptr, $sig_len); + $ptr += $sig_len; + } + } + + $self->p($p); + $self->g($g); + $self->pub_key($pub_key); + $self->sigalg($sigalg) if defined $sigalg; + $self->signature($sig); +} + + +#Reconstruct the on-the-wire message data following changes +sub set_message_contents +{ + my $self = shift; + my $data; + + $data = pack('n', length($self->p)); + $data .= $self->p; + $data .= pack('n', length($self->g)); + $data .= $self->g; + $data .= pack('n', length($self->pub_key)); + $data .= $self->pub_key; + $data .= pack('n', $self->sigalg) if ($self->sigalg != -1); + if (length($self->signature) > 0) { + $data .= pack('n', length($self->signature)); + $data .= $self->signature; + } + + $self->data($data); +} + +#Read/write accessors +#DHE +sub p +{ + my $self = shift; + if (@_) { + $self->{p} = shift; + } + return $self->{p}; +} +sub g +{ + my $self = shift; + if (@_) { + $self->{g} = shift; + } + return $self->{g}; +} +sub pub_key +{ + my $self = shift; + if (@_) { + $self->{pub_key} = shift; + } + return $self->{pub_key}; +} +sub sigalg +{ + my $self = shift; + if (@_) { + $self->{sigalg} = shift; + } + return $self->{sigalg}; +} +sub signature +{ + my $self = shift; + if (@_) { + $self->{sig} = shift; + } + return $self->{sig}; +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/checkhandshake.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/checkhandshake.pm new file mode 100644 index 000000000..04441b561 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/checkhandshake.pm @@ -0,0 +1,232 @@ +#! /usr/bin/env perl +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package checkhandshake; + +use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/; +use OpenSSL::Test::Utils; +use TLSProxy::Proxy; + +use Exporter; +our @ISA = 'Exporter'; +our @EXPORT = qw(@handmessages @extensions checkhandshake); + +use constant { + DEFAULT_HANDSHAKE => 1, + OCSP_HANDSHAKE => 2, + RESUME_HANDSHAKE => 4, + CLIENT_AUTH_HANDSHAKE => 8, + RENEG_HANDSHAKE => 16, + NPN_HANDSHAKE => 32, + EC_HANDSHAKE => 64, + HRR_HANDSHAKE => 128, + HRR_RESUME_HANDSHAKE => 256, + + ALL_HANDSHAKES => 511 +}; + +use constant { + #DEFAULT also includes SESSION_TICKET_SRV_EXTENSION and SERVER_NAME_CLI + DEFAULT_EXTENSIONS => 0x00000007, + SESSION_TICKET_SRV_EXTENSION => 0x00000002, + SERVER_NAME_CLI_EXTENSION => 0x00000004, + SERVER_NAME_SRV_EXTENSION => 0x00000008, + STATUS_REQUEST_CLI_EXTENSION => 0x00000010, + STATUS_REQUEST_SRV_EXTENSION => 0x00000020, + ALPN_CLI_EXTENSION => 0x00000040, + ALPN_SRV_EXTENSION => 0x00000080, + SCT_CLI_EXTENSION => 0x00000100, + SCT_SRV_EXTENSION => 0x00000200, + RENEGOTIATE_CLI_EXTENSION => 0x00000400, + NPN_CLI_EXTENSION => 0x00000800, + NPN_SRV_EXTENSION => 0x00001000, + SRP_CLI_EXTENSION => 0x00002000, + #Client side for ec point formats is a default extension + EC_POINT_FORMAT_SRV_EXTENSION => 0x00004000, + PSK_CLI_EXTENSION => 0x00008000, + PSK_SRV_EXTENSION => 0x00010000, + KEY_SHARE_SRV_EXTENSION => 0x00020000, + PSK_KEX_MODES_EXTENSION => 0x00040000, + KEY_SHARE_HRR_EXTENSION => 0x00080000, + SUPPORTED_GROUPS_SRV_EXTENSION => 0x00100000, + POST_HANDSHAKE_AUTH_CLI_EXTENSION => 0x00200000 +}; + +our @handmessages = (); +our @extensions = (); + +sub checkhandshake($$$$) +{ + my ($proxy, $handtype, $exttype, $testname) = @_; + + subtest $testname => sub { + my $loop = 0; + my $numtests; + my $extcount; + my $clienthelloseen = 0; + + my $lastmt = 0; + my $numsh = 0; + if (TLSProxy::Proxy::is_tls13()) { + #How many ServerHellos are we expecting? + for ($numtests = 0; $handmessages[$loop][1] != 0; $loop++) { + next if (($handmessages[$loop][1] & $handtype) == 0); + $numsh++ if ($lastmt != TLSProxy::Message::MT_SERVER_HELLO + && $handmessages[$loop][0] == TLSProxy::Message::MT_SERVER_HELLO); + $lastmt = $handmessages[$loop][0]; + } + } + + #First count the number of tests + my $nextmess = 0; + my $message = undef; + my $chnum = 0; + my $shnum = 0; + if (!TLSProxy::Proxy::is_tls13()) { + # In non-TLSv1.3 we always treat reneg CH and SH like the first CH + # and SH + $chnum = 1; + $shnum = 1; + } + #If we're only expecting one ServerHello out of two then we skip the + #first ServerHello in the list completely + $shnum++ if ($numsh == 1 && TLSProxy::Proxy::is_tls13()); + $loop = 0; + for ($numtests = 0; $handmessages[$loop][1] != 0; $loop++) { + next if (($handmessages[$loop][1] & $handtype) == 0); + if (scalar @{$proxy->message_list} > $nextmess) { + $message = ${$proxy->message_list}[$nextmess]; + $nextmess++; + } else { + $message = undef; + } + $numtests++; + + next if (!defined $message); + if (TLSProxy::Proxy::is_tls13()) { + $chnum++ if $message->mt() == TLSProxy::Message::MT_CLIENT_HELLO; + $shnum++ if $message->mt() == TLSProxy::Message::MT_SERVER_HELLO; + } + next if ($message->mt() != TLSProxy::Message::MT_CLIENT_HELLO + && $message->mt() != TLSProxy::Message::MT_SERVER_HELLO + && $message->mt() != + TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS + && $message->mt() != TLSProxy::Message::MT_CERTIFICATE + && $message->mt() != TLSProxy::Message::MT_CERTIFICATE_REQUEST); + + next if $message->mt() == TLSProxy::Message::MT_CERTIFICATE + && !TLSProxy::Proxy::is_tls13(); + + my $extchnum = 1; + my $extshnum = 1; + for (my $extloop = 0; + $extensions[$extloop][3] != 0; + $extloop++) { + $extchnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_CLIENT_HELLO + && TLSProxy::Proxy::is_tls13(); + $extshnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_SERVER_HELLO + && $extchnum == 2; + next if $extensions[$extloop][0] == TLSProxy::Message::MT_CLIENT_HELLO + && $extchnum != $chnum; + next if $extensions[$extloop][0] == TLSProxy::Message::MT_SERVER_HELLO + && $extshnum != $shnum; + next if ($message->mt() != $extensions[$extloop][0]); + next if ($message->server() != $extensions[$extloop][2]); + $numtests++; + } + $numtests++; + } + + plan tests => $numtests; + + $nextmess = 0; + $message = undef; + if (TLSProxy::Proxy::is_tls13()) { + $chnum = 0; + $shnum = 0; + } else { + # In non-TLSv1.3 we always treat reneg CH and SH like the first CH + # and SH + $chnum = 1; + $shnum = 1; + } + #If we're only expecting one ServerHello out of two then we skip the + #first ServerHello in the list completely + $shnum++ if ($numsh == 1 && TLSProxy::Proxy::is_tls13()); + for ($loop = 0; $handmessages[$loop][1] != 0; $loop++) { + next if (($handmessages[$loop][1] & $handtype) == 0); + if (scalar @{$proxy->message_list} > $nextmess) { + $message = ${$proxy->message_list}[$nextmess]; + $nextmess++; + } else { + $message = undef; + } + if (!defined $message) { + fail("Message type check. Got nothing, expected " + .$handmessages[$loop][0]); + next; + } else { + ok($message->mt == $handmessages[$loop][0], + "Message type check. Got ".$message->mt + .", expected ".$handmessages[$loop][0]); + } + if (TLSProxy::Proxy::is_tls13()) { + $chnum++ if $message->mt() == TLSProxy::Message::MT_CLIENT_HELLO; + $shnum++ if $message->mt() == TLSProxy::Message::MT_SERVER_HELLO; + } + + next if ($message->mt() != TLSProxy::Message::MT_CLIENT_HELLO + && $message->mt() != TLSProxy::Message::MT_SERVER_HELLO + && $message->mt() != + TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS + && $message->mt() != TLSProxy::Message::MT_CERTIFICATE + && $message->mt() != TLSProxy::Message::MT_CERTIFICATE_REQUEST); + + next if $message->mt() == TLSProxy::Message::MT_CERTIFICATE + && !TLSProxy::Proxy::is_tls13(); + + if ($message->mt() == TLSProxy::Message::MT_CLIENT_HELLO) { + #Add renegotiate extension we will expect if renegotiating + $exttype |= RENEGOTIATE_CLI_EXTENSION + if ($clienthelloseen && !TLSProxy::Proxy::is_tls13()); + $clienthelloseen = 1; + } + #Now check that we saw the extensions we expected + my $msgexts = $message->extension_data(); + my $extchnum = 1; + my $extshnum = 1; + for (my $extloop = 0, $extcount = 0; $extensions[$extloop][3] != 0; + $extloop++) { + #In TLSv1.3 we can have two ClientHellos if there has been a + #HelloRetryRequest, and they may have different extensions. Skip + #if these are extensions for a different ClientHello + $extchnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_CLIENT_HELLO + && TLSProxy::Proxy::is_tls13(); + $extshnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_SERVER_HELLO + && $extchnum == 2; + next if $extensions[$extloop][0] == TLSProxy::Message::MT_CLIENT_HELLO + && $extchnum != $chnum; + next if $extensions[$extloop][0] == TLSProxy::Message::MT_SERVER_HELLO + && $extshnum != $shnum; + next if ($message->mt() != $extensions[$extloop][0]); + next if ($message->server() != $extensions[$extloop][2]); + ok (($extensions[$extloop][3] & $exttype) == 0 + || defined ($msgexts->{$extensions[$extloop][1]}), + "Extension presence check (Message: ".$message->mt() + ." Extension: ".($extensions[$extloop][3] & $exttype).", " + .$extloop.")"); + $extcount++ if (($extensions[$extloop][3] & $exttype) != 0); + } + ok($extcount == keys %$msgexts, "Extensions count mismatch (" + .$extcount.", ".(keys %$msgexts) + .")"); + } + } +} + +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/with_fallback.pm b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/with_fallback.pm new file mode 100644 index 000000000..242365033 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/perl/with_fallback.pm @@ -0,0 +1,27 @@ +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package with_fallback; + +sub import { + shift; + + use File::Basename; + use File::Spec::Functions; + foreach (@_) { + eval "use $_"; + if ($@) { + unshift @INC, catdir(dirname(__FILE__), + "..", "..", "external", "perl"); + my $transfer = "transfer::$_"; + eval "use $transfer"; + shift @INC; + warn $@ if $@; + } + } +} +1; diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/private.num b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/private.num new file mode 100644 index 000000000..bc7d967b5 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/private.num @@ -0,0 +1,465 @@ +# This isn't a library ".num" file but is a list of documented items +# that don't appear in lib*.num -- because they are define's, in +# assembly language, etc. +# +OPENSSL_ia32cap environment +OPENSSL_MALLOC_FD environment +OPENSSL_MALLOC_FAILURES environment +OPENSSL_instrument_bus assembler +OPENSSL_instrument_bus2 assembler +# +ADMISSION_SYNTAX datatype +ADMISSIONS datatype +ASN1_STRING_TABLE datatype +BIO_ADDR datatype +BIO_ADDRINFO datatype +BIO_callback_fn datatype +BIO_callback_fn_ex datatype +BIO_hostserv_priorities datatype +BIO_lookup_type datatype +CRYPTO_EX_dup datatype +CRYPTO_EX_free datatype +CRYPTO_EX_new datatype +DTLS_timer_cb datatype +EVP_PKEY_gen_cb datatype +EVP_PKEY_METHOD datatype +EVP_PKEY_ASN1_METHOD datatype +GEN_SESSION_CB datatype +OPENSSL_Applink external +NAMING_AUTHORITY datatype +OSSL_STORE_CTX datatype +OSSL_STORE_INFO datatype +OSSL_STORE_LOADER datatype +OSSL_STORE_LOADER_CTX datatype +OSSL_STORE_SEARCH datatype +OSSL_STORE_close_fn datatype +OSSL_STORE_ctrl_fn datatype +OSSL_STORE_expect_fn datatype +OSSL_STORE_find_fn datatype +OSSL_STORE_eof_fn datatype +OSSL_STORE_error_fn datatype +OSSL_STORE_load_fn datatype +OSSL_STORE_open_fn datatype +OSSL_STORE_post_process_info_fn datatype +PROFESSION_INFO datatype +PROFESSION_INFOS datatype +RAND_DRBG_cleanup_entropy_fn datatype +RAND_DRBG_cleanup_nonce_fn datatype +RAND_DRBG_get_entropy_fn datatype +RAND_DRBG_get_nonce_fn datatype +RAND_poll_cb datatype +SSL_CTX_allow_early_data_cb_fn datatype +SSL_CTX_keylog_cb_func datatype +SSL_allow_early_data_cb_fn datatype +SSL_client_hello_cb_fn datatype +SSL_psk_client_cb_func datatype +SSL_psk_find_session_cb_func datatype +SSL_psk_server_cb_func datatype +SSL_psk_use_session_cb_func datatype +SSL_verify_cb datatype +UI datatype +UI_METHOD datatype +UI_STRING datatype +UI_string_types datatype +UI_string_types datatype +X509_STORE_CTX_cert_crl_fn datatype +X509_STORE_CTX_check_crl_fn datatype +X509_STORE_CTX_check_issued_fn datatype +X509_STORE_CTX_check_policy_fn datatype +X509_STORE_CTX_check_revocation_fn datatype +X509_STORE_CTX_cleanup_fn datatype +X509_STORE_CTX_get_crl_fn datatype +X509_STORE_CTX_get_issuer_fn datatype +X509_STORE_CTX_lookup_certs_fn datatype +X509_STORE_CTX_lookup_crls_fn datatype +X509_STORE_CTX_verify_cb datatype +X509_STORE_CTX_verify_fn datatype +X509_STORE_set_verify_cb_func datatype +X509_LOOKUP datatype +X509_LOOKUP_METHOD datatype +X509_LOOKUP_TYPE datatype +X509_LOOKUP_get_by_alias_fn datatype +X509_LOOKUP_get_by_subject_fn datatype +X509_LOOKUP_get_by_fingerprint_fn datatype +X509_LOOKUP_ctrl_fn datatype +X509_LOOKUP_get_by_issuer_serial_fn datatype +X509_STORE datatype +bio_info_cb datatype +BIO_info_cb datatype +custom_ext_add_cb datatype +custom_ext_free_cb datatype +custom_ext_parse_cb datatype +pem_password_cb datatype +ssl_ct_validation_cb datatype +# +BIO_append_filename define +BIO_destroy_bio_pair define +BIO_do_accept define +BIO_do_connect define +BIO_do_handshake define +BIO_eof define +BIO_flush define +BIO_get_accept_name define +BIO_get_accept_port define +BIO_get_accept_ip_family define +BIO_get_peer_name define +BIO_get_peer_port define +BIO_get_bind_mode define +BIO_get_buffer_num_lines define +BIO_get_cipher_ctx define +BIO_get_cipher_status define +BIO_get_close define +BIO_get_conn_address define +BIO_get_conn_hostname define +BIO_get_conn_port define +BIO_get_conn_ip_family define +BIO_get_fd define +BIO_get_fp define +BIO_get_info_callback define +BIO_get_md define +BIO_get_md_ctx define +BIO_get_mem_data define +BIO_get_mem_ptr define +BIO_get_num_renegotiates define +BIO_get_read_request define +BIO_get_ssl define +BIO_get_write_buf_size define +BIO_get_write_guarantee define +BIO_make_bio_pair define +BIO_pending define +BIO_read_filename define +BIO_reset define +BIO_retry_type define +BIO_rw_filename define +BIO_seek define +BIO_set_accept_bios define +BIO_set_accept_name define +BIO_set_accept_port define +BIO_set_accept_ip_family define +BIO_set_bind_mode define +BIO_set_buffer_read_data define +BIO_set_buffer_size define +BIO_set_close define +BIO_set_conn_address define +BIO_set_conn_hostname define +BIO_set_conn_port define +BIO_set_conn_ip_family define +BIO_set_fd define +BIO_set_fp define +BIO_set_info_callback define +BIO_set_md define +BIO_set_mem_buf define +BIO_set_mem_eof_return define +BIO_set_nbio define +BIO_set_nbio_accept define +BIO_set_read_buffer_size define +BIO_set_ssl define +BIO_set_ssl_mode define +BIO_set_ssl_renegotiate_bytes define +BIO_set_ssl_renegotiate_timeout define +BIO_set_write_buf_size define +BIO_set_write_buffer_size define +BIO_should_io_special define +BIO_should_read define +BIO_should_retry define +BIO_should_write define +BIO_shutdown_wr define +BIO_tell define +BIO_wpending define +BIO_write_filename define +BN_mod define +BN_num_bytes define +BN_one define +BN_zero define deprecated 0.9.8 +CONF_modules_free define deprecated 1.1.0 +DES_ecb2_encrypt define +DES_ede2_cbc_encrypt define +DES_ede2_cfb64_encrypt define +DES_ede2_ofb64_encrypt define +DTLS_get_link_min_mtu define +DTLS_set_link_mtu define +ENGINE_cleanup define deprecated 1.1.0 +ERR_FATAL_ERROR define +ERR_GET_FUNC define +ERR_GET_LIB define +ERR_GET_REASON define +ERR_PACK define +ERR_free_strings define deprecated 1.1.0 +ERR_load_crypto_strings define deprecated 1.1.0 +EVP_DigestSignUpdate define +EVP_DigestVerifyUpdate define +EVP_MD_CTX_block_size define +EVP_MD_CTX_size define +EVP_MD_CTX_type define +EVP_OpenUpdate define +EVP_PKEY_CTX_add1_hkdf_info define +EVP_PKEY_CTX_add1_tls1_prf_seed define +EVP_PKEY_CTX_get0_dh_kdf_oid define +EVP_PKEY_CTX_get0_dh_kdf_ukm define +EVP_PKEY_CTX_get0_ecdh_kdf_ukm define +EVP_PKEY_CTX_get0_rsa_oaep_label define +EVP_PKEY_CTX_get_dh_kdf_md define +EVP_PKEY_CTX_get_dh_kdf_outlen define +EVP_PKEY_CTX_get_dh_kdf_type define +EVP_PKEY_CTX_get_ecdh_cofactor_mode define +EVP_PKEY_CTX_get_ecdh_kdf_md define +EVP_PKEY_CTX_get_ecdh_kdf_outlen define +EVP_PKEY_CTX_get_ecdh_kdf_type define +EVP_PKEY_CTX_get_rsa_mgf1_md define +EVP_PKEY_CTX_get_rsa_oaep_md define +EVP_PKEY_CTX_get_rsa_padding define +EVP_PKEY_CTX_get_rsa_pss_saltlen define +EVP_PKEY_CTX_get_signature_md define +EVP_PKEY_CTX_hkdf_mode define +EVP_PKEY_CTX_set0_dh_kdf_oid define +EVP_PKEY_CTX_set0_dh_kdf_ukm define +EVP_PKEY_CTX_set0_ecdh_kdf_ukm define +EVP_PKEY_CTX_set0_rsa_oaep_label define +EVP_PKEY_CTX_set1_hkdf_key define +EVP_PKEY_CTX_set1_hkdf_salt define +EVP_PKEY_CTX_set1_pbe_pass define +EVP_PKEY_CTX_set1_scrypt_salt define +EVP_PKEY_CTX_set1_tls1_prf_secret define +EVP_PKEY_CTX_set_dh_paramgen_generator define +EVP_PKEY_CTX_set_dh_paramgen_prime_len define +EVP_PKEY_CTX_set_dh_paramgen_subprime_len define +EVP_PKEY_CTX_set_dh_paramgen_type define +EVP_PKEY_CTX_set_dh_kdf_md define +EVP_PKEY_CTX_set_dh_kdf_outlen define +EVP_PKEY_CTX_set_dh_kdf_type define +EVP_PKEY_CTX_set_dh_nid define +EVP_PKEY_CTX_set_dh_pad define +EVP_PKEY_CTX_set_dh_rfc5114 define +EVP_PKEY_CTX_set_dhx_rfc5114 define +EVP_PKEY_CTX_set_dsa_paramgen_bits define +EVP_PKEY_CTX_set_dsa_paramgen_q_bits define +EVP_PKEY_CTX_set_dsa_paramgen_md define +EVP_PKEY_CTX_set_ec_param_enc define +EVP_PKEY_CTX_set_ec_paramgen_curve_nid define +EVP_PKEY_CTX_set_ecdh_cofactor_mode define +EVP_PKEY_CTX_set_ecdh_kdf_md define +EVP_PKEY_CTX_set_ecdh_kdf_outlen define +EVP_PKEY_CTX_set_ecdh_kdf_type define +EVP_PKEY_CTX_set_hkdf_md define +EVP_PKEY_CTX_set_mac_key define +EVP_PKEY_CTX_set_rsa_keygen_bits define +EVP_PKEY_CTX_set_rsa_keygen_pubexp define +EVP_PKEY_CTX_set_rsa_keygen_primes define +EVP_PKEY_CTX_set_rsa_mgf1_md define +EVP_PKEY_CTX_set_rsa_oaep_md define +EVP_PKEY_CTX_set_rsa_padding define +EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md define +EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen define +EVP_PKEY_CTX_set_rsa_pss_keygen_md define +EVP_PKEY_CTX_set_rsa_pss_saltlen define +EVP_PKEY_CTX_set_scrypt_N define +EVP_PKEY_CTX_set_scrypt_r define +EVP_PKEY_CTX_set_scrypt_maxmem_bytes define +EVP_PKEY_CTX_set_scrypt_p define +EVP_PKEY_CTX_set_signature_md define +EVP_PKEY_CTX_set_tls1_prf_md define +EVP_PKEY_assign_DH define +EVP_PKEY_assign_DSA define +EVP_PKEY_assign_EC_KEY define +EVP_PKEY_assign_POLY1305 define +EVP_PKEY_assign_RSA define +EVP_PKEY_assign_SIPHASH define +EVP_SealUpdate define +EVP_SignInit define +EVP_SignInit_ex define +EVP_SignUpdate define +EVP_VerifyInit define +EVP_VerifyInit_ex define +EVP_VerifyUpdate define +EVP_bf_cfb define +EVP_cast5_cfb define +EVP_cleanup define deprecated 1.1.0 +EVP_get_digestbynid define +EVP_get_digestbyobj define +EVP_idea_cfb define +EVP_rc2_cfb define +EVP_rc5_32_12_16_cfb define +EVP_seed_cfb define +EVP_sm4_cfb define +OBJ_cleanup define deprecated 1.1.0 +OPENSSL_VERSION_NUMBER define +OPENSSL_VERSION_TEXT define +OPENSSL_clear_free define +OPENSSL_clear_realloc define +OPENSSL_free define +OPENSSL_malloc define +OPENSSL_malloc_init define +OPENSSL_mem_debug_pop define +OPENSSL_mem_debug_push define +OPENSSL_memdup define +OPENSSL_no_config define deprecated 1.1.0 +OPENSSL_realloc define +OPENSSL_secure_actual_size define +OPENSSL_secure_clear_free define +OPENSSL_secure_free define +OPENSSL_secure_malloc define +OPENSSL_secure_zalloc define +OPENSSL_strdup define +OPENSSL_strndup define +OPENSSL_zalloc define +OpenSSL_add_all_algorithms define deprecated 1.1.0 +OpenSSL_add_all_ciphers define deprecated 1.1.0 +OpenSSL_add_all_digests define deprecated 1.1.0 +OpenSSL_add_ssl_algorithms define +PEM_FLAG_EAY_COMPATIBLE define +PEM_FLAG_ONLY_B64 define +PEM_FLAG_SECURE define +RAND_cleanup define deprecated 1.1.0 +RAND_DRBG_get_ex_new_index define +SSL_COMP_free_compression_methods define deprecated 1.1.0 +SSL_CTX_add0_chain_cert define +SSL_CTX_add1_chain_cert define +SSL_CTX_add_extra_chain_cert define +SSL_CTX_build_cert_chain define +SSL_CTX_clear_chain_certs define +SSL_CTX_clear_extra_chain_certs define +SSL_CTX_clear_mode define +SSL_CTX_decrypt_session_ticket_fn define +SSL_CTX_disable_ct define +SSL_CTX_generate_session_ticket_fn define +SSL_CTX_get0_chain_certs define +SSL_CTX_get_default_read_ahead define +SSL_CTX_get_max_cert_list define +SSL_CTX_get_max_proto_version define +SSL_CTX_get_min_proto_version define +SSL_CTX_get_mode define +SSL_CTX_get_read_ahead define +SSL_CTX_get_session_cache_mode define +SSL_CTX_get_tlsext_status_arg define +SSL_CTX_get_tlsext_status_cb define +SSL_CTX_get_tlsext_status_type define +SSL_CTX_select_current_cert define +SSL_CTX_sess_accept define +SSL_CTX_sess_accept_good define +SSL_CTX_sess_accept_renegotiate define +SSL_CTX_sess_cache_full define +SSL_CTX_sess_cb_hits define +SSL_CTX_sess_connect define +SSL_CTX_sess_connect_good define +SSL_CTX_sess_connect_renegotiate define +SSL_CTX_sess_get_cache_size define +SSL_CTX_sess_hits define +SSL_CTX_sess_misses define +SSL_CTX_sess_number define +SSL_CTX_sess_set_cache_size define +SSL_CTX_sess_timeouts define +SSL_CTX_set0_chain define +SSL_CTX_set0_chain_cert_store define +SSL_CTX_set0_verify_cert_store define +SSL_CTX_set1_chain define +SSL_CTX_set1_chain_cert_store define +SSL_CTX_set1_client_sigalgs define +SSL_CTX_set1_client_sigalgs_list define +SSL_CTX_set1_curves define +SSL_CTX_set1_curves_list define +SSL_CTX_set1_groups define +SSL_CTX_set1_groups_list define +SSL_CTX_set1_sigalgs define +SSL_CTX_set1_sigalgs_list define +SSL_CTX_set1_verify_cert_store define +SSL_CTX_set_current_cert define +SSL_CTX_set_max_cert_list define +SSL_CTX_set_max_pipelines define +SSL_CTX_set_max_proto_version define +SSL_CTX_set_max_send_fragment define +SSL_CTX_set_min_proto_version define +SSL_CTX_set_mode define +SSL_CTX_set_msg_callback_arg define +SSL_CTX_set_read_ahead define +SSL_CTX_set_session_cache_mode define +SSL_CTX_set_split_send_fragment define +SSL_CTX_set_tlsext_servername_arg define +SSL_CTX_set_tlsext_servername_callback define +SSL_CTX_set_tlsext_status_arg define +SSL_CTX_set_tlsext_status_cb define +SSL_CTX_set_tlsext_status_type define +SSL_CTX_set_tlsext_ticket_key_cb define +SSL_CTX_set_tmp_dh define +SSL_add0_chain_cert define +SSL_add1_chain_cert define +SSL_build_cert_chain define +SSL_clear_chain_certs define +SSL_clear_mode define +SSL_disable_ct define +SSL_get0_chain_certs define +SSL_get0_session define +SSL_get1_curves define +SSL_get1_groups define +SSL_get_cipher define +SSL_get_cipher_bits define +SSL_get_cipher_name define +SSL_get_cipher_version define +SSL_get_extms_support define +SSL_get_max_cert_list define +SSL_get_max_proto_version define +SSL_get_min_proto_version define +SSL_get_mode define +SSL_get_peer_signature_nid define +SSL_get_peer_tmp_key define +SSL_get_secure_renegotiation_support define +SSL_get_server_tmp_key define +SSL_get_shared_curve define +SSL_get_shared_group define +SSL_get_signature_nid define +SSL_get_time define +SSL_get_timeout define +SSL_get_tlsext_status_ocsp_resp define +SSL_get_tlsext_status_type define +SSL_get_tmp_key define +SSL_in_accept_init define +SSL_in_connect_init define +SSL_library_init define +SSL_load_error_strings define deprecated 1.1.0 +SSL_select_current_cert define +SSL_set0_chain define +SSL_set0_chain_cert_store define +SSL_set0_verify_cert_store define +SSL_set1_chain define +SSL_set1_chain_cert_store define +SSL_set1_client_sigalgs define +SSL_set1_client_sigalgs_list define +SSL_set1_curves define +SSL_set1_curves_list define +SSL_set1_groups define +SSL_set1_groups_list define +SSL_set1_sigalgs define +SSL_set1_sigalgs_list define +SSL_set1_verify_cert_store define +SSL_set_current_cert define +SSL_set_max_cert_list define +SSL_set_max_pipelines define +SSL_set_max_proto_version define +SSL_set_max_send_fragment define +SSL_set_min_proto_version define +SSL_set_mode define +SSL_set_msg_callback_arg define +SSL_set_mtu define +SSL_set_split_send_fragment define +SSL_set_time define +SSL_set_timeout define +SSL_set_tlsext_host_name define +SSL_set_tlsext_status_ocsp_resp define +SSL_set_tlsext_status_type define +SSL_set_tmp_dh define +SSL_want_async define +SSL_want_async_job define +SSL_want_client_hello_cb define +SSL_want_nothing define +SSL_want_read define +SSL_want_write define +SSL_want_x509_lookup define +SSLv23_client_method define +SSLv23_method define +SSLv23_server_method define +X509_LOOKUP_add_dir define +X509_LOOKUP_load_file define +X509_STORE_set_lookup_crls_cb define +X509_STORE_set_verify_func define +EVP_PKEY_CTX_set1_id define +EVP_PKEY_CTX_get1_id define +EVP_PKEY_CTX_get1_id_len define diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/process_docs.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/process_docs.pl new file mode 100755 index 000000000..30b149eb8 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/process_docs.pl @@ -0,0 +1,271 @@ +#! /usr/bin/env perl +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use File::Spec::Functions; +use File::Basename; +use File::Copy; +use File::Path; +use FindBin; +use lib "$FindBin::Bin/perl"; +use OpenSSL::Glob; +use Getopt::Long; +use Pod::Usage; + +use lib '.'; +use configdata; + +# We know we are in the 'util' directory and that our perl modules are +# in util/perl +use lib catdir(dirname($0), "perl"); +use OpenSSL::Util::Pod; + +my %options = (); +GetOptions(\%options, + 'sourcedir=s', # Source directory + 'section=i@', # Subdirectories to look through, + # with associated section numbers + 'destdir=s', # Destination directory + #'in=s@', # Explicit files to process (ignores sourcedir) + 'type=s', # The result type, 'man' or 'html' + 'suffix:s', # Suffix to add to the extension. + # Only used with type=man + 'remove', # To remove files rather than writing them + 'dry-run|n', # Only output file names on STDOUT + 'debug|D+', + ); + +unless ($options{section}) { + $options{section} = [ 1, 3, 5, 7 ]; +} +unless ($options{sourcedir}) { + $options{sourcedir} = catdir($config{sourcedir}, "doc"); +} +pod2usage(1) unless ( defined $options{section} + && defined $options{sourcedir} + && defined $options{destdir} + && defined $options{type} + && ($options{type} eq 'man' + || $options{type} eq 'html') ); +pod2usage(1) if ( $options{type} eq 'html' + && defined $options{suffix} ); + +if ($options{debug}) { + print STDERR "DEBUG: options:\n"; + print STDERR "DEBUG: --sourcedir = $options{sourcedir}\n" + if defined $options{sourcedir}; + print STDERR "DEBUG: --destdir = $options{destdir}\n" + if defined $options{destdir}; + print STDERR "DEBUG: --type = $options{type}\n" + if defined $options{type}; + print STDERR "DEBUG: --suffix = $options{suffix}\n" + if defined $options{suffix}; + foreach (sort @{$options{section}}) { + print STDERR "DEBUG: --section = $_\n"; + } + print STDERR "DEBUG: --remove = $options{remove}\n" + if defined $options{remove}; + print STDERR "DEBUG: --debug = $options{debug}\n" + if defined $options{debug}; + print STDERR "DEBUG: --dry-run = $options{\"dry-run\"}\n" + if defined $options{"dry-run"}; +} + +my $symlink_exists = eval { symlink("",""); 1 }; + +foreach my $section (sort @{$options{section}}) { + my $subdir = "man$section"; + my $podsourcedir = catfile($options{sourcedir}, $subdir); + my $podglob = catfile($podsourcedir, "*.pod"); + + foreach my $podfile (glob $podglob) { + my $podname = basename($podfile, ".pod"); + my $podpath = catfile($podfile); + my %podinfo = extract_pod_info($podpath, + { debug => $options{debug}, + section => $section }); + my @podfiles = grep { $_ ne $podname } @{$podinfo{names}}; + + my $updir = updir(); + my $name = uc $podname; + my $suffix = { man => ".$podinfo{section}".($options{suffix} // ""), + html => ".html" } -> {$options{type}}; + my $generate = { man => "pod2man --name=$name --section=$podinfo{section} --center=OpenSSL --release=$config{version} \"$podpath\"", + html => "pod2html \"--podroot=$options{sourcedir}\" --htmldir=$updir --podpath=man1:man3:man5:man7 \"--infile=$podpath\" \"--title=$podname\" --quiet" + } -> {$options{type}}; + my $output_dir = catdir($options{destdir}, "man$podinfo{section}"); + my $output_file = $podname . $suffix; + my $output_path = catfile($output_dir, $output_file); + + if (! $options{remove}) { + my @output; + print STDERR "DEBUG: Processing, using \"$generate\"\n" + if $options{debug}; + unless ($options{"dry-run"}) { + @output = `$generate`; + map { s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html"|g; } @output + if $options{type} eq "html"; + if ($options{type} eq "man") { + # Because some *roff parsers are more strict than others, + # multiple lines in the NAME section must be merged into + # one. + my $in_name = 0; + my $name_line = ""; + my @newoutput = (); + foreach (@output) { + if ($in_name) { + if (/^\.SH "/) { + $in_name = 0; + push @newoutput, $name_line."\n"; + } else { + chomp (my $x = $_); + $name_line .= " " if $name_line; + $name_line .= $x; + next; + } + } + if (/^\.SH +"NAME" *$/) { + $in_name = 1; + } + push @newoutput, $_; + } + @output = @newoutput; + } + } + print STDERR "DEBUG: Done processing\n" if $options{debug}; + + if (! -d $output_dir) { + print STDERR "DEBUG: Creating directory $output_dir\n" if $options{debug}; + unless ($options{"dry-run"}) { + mkpath $output_dir + or die "Trying to create directory $output_dir: $!\n"; + } + } + print STDERR "DEBUG: Writing $output_path\n" if $options{debug}; + unless ($options{"dry-run"}) { + open my $output_fh, '>', $output_path + or die "Trying to write to $output_path: $!\n"; + foreach (@output) { + print $output_fh $_; + } + close $output_fh; + } + print STDERR "DEBUG: Done writing $output_path\n" if $options{debug}; + } else { + print STDERR "DEBUG: Removing $output_path\n" if $options{debug}; + unless ($options{"dry-run"}) { + while (unlink $output_path) {} + } + } + print "$output_path\n"; + + foreach (@podfiles) { + my $link_file = $_ . $suffix; + my $link_path = catfile($output_dir, $link_file); + if (! $options{remove}) { + if ($symlink_exists) { + print STDERR "DEBUG: Linking $link_path -> $output_file\n" + if $options{debug}; + unless ($options{"dry-run"}) { + symlink $output_file, $link_path; + } + } else { + print STDERR "DEBUG: Copying $output_path to link_path\n" + if $options{debug}; + unless ($options{"dry-run"}) { + copy $output_path, $link_path; + } + } + } else { + print STDERR "DEBUG: Removing $link_path\n" if $options{debug}; + unless ($options{"dry-run"}) { + while (unlink $link_path) {} + } + } + print "$link_path -> $output_path\n"; + } + } +} + +__END__ + +=pod + +=head1 NAME + +process_docs.pl - A script to process OpenSSL docs + +=head1 SYNOPSIS + +B<process_docs.pl> +[B<--sourcedir>=I<dir>] +B<--destdir>=I<dir> +B<--type>=B<man>|B<html> +[B<--suffix>=I<suffix>] +[B<--remove>] +[B<--dry-run>|B<-n>] +[B<--debug>|B<-D>] + +=head1 DESCRIPTION + +This script looks for .pod files in the subdirectories 'apps', 'crypto' +and 'ssl' under the given source directory. + +The OpenSSL configuration data file F<configdata.pm> I<must> reside in +the current directory, I<or> perl must have the directory it resides in +in its inclusion array. For the latter variant, a call like this would +work: + + perl -I../foo util/process_docs.pl {options ...} + +=head1 OPTIONS + +=over 4 + +=item B<--sourcedir>=I<dir> + +Top directory where the source files are found. + +=item B<--destdir>=I<dir> + +Top directory where the resulting files should end up + +=item B<--type>=B<man>|B<html> + +Type of output to produce. Currently supported are man pages and HTML files. + +=item B<--suffix>=I<suffix> + +A suffix added to the extension. Only valid with B<--type>=B<man> + +=item B<--remove> + +Instead of writing the files, remove them. + +=item B<--dry-run>|B<-n> + +Do not perform any file writing, directory creation or file removal. + +=item B<--debug>|B<-D> + +Print extra debugging output. + +=back + +=head1 COPYRIGHT + +Copyright 2013-2018 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html + +=cut diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/shlib_wrap.sh.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/shlib_wrap.sh.in new file mode 100755 index 000000000..eac70ed97 --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/shlib_wrap.sh.in @@ -0,0 +1,138 @@ +#!/bin/sh +{- + use lib '.'; + use configdata; + + sub shlib { + my $lib = shift; + return "" if $disabled{shared}; + $lib = $unified_info{rename}->{$lib} + if defined $unified_info{rename}->{$lib}; + $lib = $unified_info{sharednames}->{$lib} + . ($target{shlib_variant} || "") + . ($target{shared_extension} || ".so"); + $lib =~ s|\.\$\(SHLIB_VERSION_NUMBER\) + |.$config{shlib_version_number}|x; + return $lib; + } + ""; # Make sure no left over string sneaks its way into the script +-} +# To test this OpenSSL version's applications against another version's +# shared libraries, simply set +# +# OPENSSL_REGRESSION=/path/to/other/OpenSSL/build/tree +if [ -n "$OPENSSL_REGRESSION" ]; then + shlibwrap="$OPENSSL_REGRESSION/util/shlib_wrap.sh" + if [ -x "$shlibwrap" ]; then + # We clear OPENSSL_REGRESSION to avoid a loop, should the shlib_wrap.sh + # we exec also support that mechanism... + OPENSSL_REGRESSION= exec "$shlibwrap" "$@" + else + if [ -f "$shlibwrap" ]; then + echo "Not permitted to run $shlibwrap" >&2 + else + echo "No $shlibwrap, perhaps OPENSSL_REGRESSION isn't properly set?" >&2 + fi + exit 1 + fi +fi + +[ $# -ne 0 ] || set -x # debug mode without arguments:-) + +THERE="`echo $0 | sed -e 's|[^/]*$||' 2>/dev/null`.." +[ -d "${THERE}" ] || exec "$@" # should never happen... + +LIBCRYPTOSO="${THERE}/{- shlib('libcrypto') -}" +LIBSSLSO="${THERE}/{- shlib('libssl') -}" + +SYSNAME=`(uname -s) 2>/dev/null`; +case "$SYSNAME" in +SunOS|IRIX*) + # SunOS and IRIX run-time linkers evaluate alternative + # variables depending on target ABI... + rld_var=LD_LIBRARY_PATH + case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in + *ELF\ 64*SPARC*|*ELF\ 64*AMD64*) + [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64 + LD_PRELOAD_64="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_64 + preload_var=LD_PRELOAD_64 + ;; + *ELF\ 32*SPARC*|*ELF\ 32*80386*) + # We only need to change LD_PRELOAD_32 and LD_LIBRARY_PATH_32 + # on a multi-arch system. Otherwise, trust the fallbacks. + if [ -f /lib/64/ld.so.1 ]; then + [ -n "$LD_LIBRARY_PATH_32" ] && rld_var=LD_LIBRARY_PATH_32 + LD_PRELOAD_32="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_32 + preload_var=LD_PRELOAD_32 + fi + ;; + # Why are newly built .so's preloaded anyway? Because run-time + # .so lookup path embedded into application takes precedence + # over LD_LIBRARY_PATH and as result application ends up linking + # to previously installed .so's. On IRIX instead of preloading + # newly built .so's we trick run-time linker to fail to find + # the installed .so by setting _RLD_ROOT variable. + *ELF\ 32*MIPS*) + #_RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD_LIST + _RLD_ROOT=/no/such/dir; export _RLD_ROOT + eval $rld_var=\"/usr/lib'${'$rld_var':+:$'$rld_var'}'\" + preload_var=_RLD_LIST + ;; + *ELF\ N32*MIPS*) + [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH + #_RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST + _RLDN32_ROOT=/no/such/dir; export _RLDN32_ROOT + eval $rld_var=\"/usr/lib32'${'$rld_var':+:$'$rld_var'}'\" + preload_var=_RLDN32_LIST + ;; + *ELF\ 64*MIPS*) + [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH + #_RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST + _RLD64_ROOT=/no/such/dir; export _RLD64_ROOT + eval $rld_var=\"/usr/lib64'${'$rld_var':+:$'$rld_var'}'\" + preload_var=_RLD64_LIST + ;; + esac + eval $rld_var=\"${THERE}'${'$rld_var':+:$'$rld_var'}'\"; export $rld_var + unset rld_var + ;; +*) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX + DYLD_LIBRARY_PATH="${THERE}:$DYLD_LIBRARY_PATH" # MacOS X + SHLIB_PATH="${THERE}:$SHLIB_PATH" # legacy HP-UX + LIBPATH="${THERE}:$LIBPATH" # AIX, OS/2 + export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH + # Even though $PATH is adjusted [for Windows sake], it doesn't + # necessarily does the trick. Trouble is that with introduction + # of SafeDllSearchMode in XP/2003 it's more appropriate to copy + # .DLLs in vicinity of executable, which is done elsewhere... + if [ "$OSTYPE" != msdosdjgpp ]; then + PATH="${THERE}:$PATH"; export PATH + fi + ;; +esac + +{- output_off() unless grep (/-rpath\b/, @{$config{LDFLAGS}}); ""; -} +if [ -f "$LIBCRYPTOSO" -a -z "$preload_var" ]; then + # Following three lines are major excuse for isolating them into + # this wrapper script. Original reason for setting LD_PRELOAD + # was to make it possible to pass 'make test' when user linked + # with -rpath pointing to previous version installation. Wrapping + # it into a script makes it possible to do so on multi-ABI + # platforms. + case "$SYSNAME" in + *BSD) LD_PRELOAD="$LIBCRYPTOSO:$LIBSSLSO" ;; # *BSD + *) LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;; # SunOS, Linux, ELF HP-UX + esac + _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX + DYLD_INSERT_LIBRARIES="$LIBCRYPTOSO:$LIBSSLSO" # MacOS X + export LD_PRELOAD _RLD_LIST DYLD_INSERT_LIBRARIES +fi +{- output_on() unless grep (/-rpath\b/, @{$config{LDFLAGS}}); ""; -} + +cmd="$1"; [ -x "$cmd" ] || cmd="$cmd${EXE_EXT}" +shift +if [ $# -eq 0 ]; then + exec "$cmd" # old sh, such as Tru64 4.x, fails to expand empty "$@" +else + exec "$cmd" "$@" +fi diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/su-filter.pl b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/su-filter.pl new file mode 100644 index 000000000..389c7c35c --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/su-filter.pl @@ -0,0 +1,264 @@ +#! /usr/bin/env perl +# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; + +my $in_su = 0; +my $indent = 0; +my $out; +my $braces = 0; +my $arrcnt; +my $data; +my $tststr; +my $incomm = 0; + +while(<>) { + $tststr = $_; + $incomm++ while $tststr =~ /\/\*/g; + $incomm-- while $tststr =~ /\*\//g; + + if($in_su == 1) { + if(/}(.*);/) { + $out .= $_; + do_output($out); + $in_su = 0; + } elsif(/^ *\} [^\s]+(\[\d*\])* = \{/) { + $tststr = $1; + $arrcnt = 0; + $arrcnt++ while $tststr =~ /\[/g; + $in_su++; + $braces = 1; + /^(.* = \{)(.*)$/; + $data = $2; + $out .= $1."\n"; + } else { + $out .= $_; + } + } elsif($in_su == 2) { + $data .= $_; + if(/};$/) { + #$data = "\n$data"; + $data =~ s/\n */\n/g; + $data =~ s/};\n?//s; + my @strucdata = structureData($data); + $out .= displayData($indent, 0, \@strucdata); + $out .= "\n$indent};\n"; + do_output($out); + $in_su = 0; + } + } elsif($incomm <= 0 && /( *)(static )?(const )?(union|struct) ([a-zA-Z_\$][\$0-9a-zA-Z_]+ )?\{/) { + $in_su = 1; + $indent = $1; + $out = $_; + next; + } else { + do_output($_); + } +} + + +sub structureData { + my $data = $_[0]; + my @datalist = split(/(\{|\}|,|"|#|\n|\/\*|\*\/|\(|\))/, $data); + my $item; + my $dataitem = ""; + my @struclist = (); + my $substruc; + my $inquote = 0; + my $inbrace = 0; + my $preproc = 0; + my $comment = 0; + my $inparen = 0; + + + foreach $item (@datalist) { + if($comment) { + if($item eq "*/") { + $comment = 0; + $dataitem .= "*/"; + push @struclist, $dataitem; + $dataitem = ""; + next; + } + $dataitem .= $item; + next; + } + if($inquote) { + $dataitem .= $item; + if($item eq "\"") { + $inquote--; + } + next; + } + if($preproc) { + if($item eq "\n") { + $preproc = 0; + push @struclist, $dataitem; + $dataitem = ""; + next; + } + $dataitem .= $item; + next; + } + if($inbrace) { + if($item eq "}") { + $inbrace --; + + if(!$inbrace) { + $substruc = structureData($dataitem); + $dataitem = $substruc; + next; + } + } elsif($item eq "{") { + $inbrace++; + } elsif ($item eq "\"") { + $inquote++; + } + $dataitem .= $item; + next; + } + if($inparen) { + if($item eq ")") { + $inparen--; + } + $dataitem .= $item; + next; + } + if($item eq "\n") { + next; + } + if($item eq "#") { + $preproc = 1; + push @struclist, $dataitem; + $dataitem = "#"; + next; + } + if($item eq "/*") { + $comment = 1; + push @struclist, $dataitem; + $dataitem= "/*"; + next; + } + if($item eq "\"") { + $dataitem .= $item; + $inquote++; + next; + } + if($item eq "{") { + $inbrace++; + next; + } + if($item eq ",") { + push @struclist, $dataitem; + $dataitem = ""; + next; + } + if($item eq "(") { + $dataitem .= $item; + $inparen++; + next; + } + if($item =~ /^\s*$/) { + next; + } + if(ref $dataitem eq 'ARRAY') { + push @struclist, $dataitem; + $dataitem = ""; + } + $dataitem .= $item; + } + push @struclist, $dataitem; + return \@struclist; +} + +sub displayData { + my $indent = shift; + my $depth = shift; + my $data = shift; + my $item; + my $out = ""; + my $currline = ""; + my $first = 1; + my $prevpreproc = 0; + my $prevcomment = 0; + + foreach $item (@{$data}) { + if($item =~ /^\/\*/) { + #Comment + $item =~ s/\n/\n$indent/g; + if($out =~ /\n\s*$/s) { + $out .= $item."\n".$indent; + } else { + $out .= "\n".$indent.$item."\n".$indent; + } + $currline = $indent; + $prevcomment = 1; + next; + } + $item =~ s/^\s+//; + if($item =~ /^#/) { + #Pre-processor directive + if($out =~ /\n\s*$/s) { + $out =~ s/\n\s*$/\n/; + $out .= $item."\n".$indent; + } else { + $out .= "\n".$item."\n".$indent; + } + $currline = $indent; + $prevpreproc = 1; + next; + } + if($first) { + $first = 0; + if($depth != 0) { + $out .= $indent; + $currline = $indent; + } + } else { + if(!$prevpreproc && !$prevcomment) { + $out .= ", "; + $currline .= ", "; + if($depth == 1) { + $out .= "\n"; + $currline = ""; + } + if($depth == 1) { + $out .= $indent; + $currline .= $indent; + } + } + + } + $prevpreproc = 0; + $prevcomment = 0; + + if (ref $item eq 'ARRAY') { + if($depth == 0) { + $out .= displayData("$indent ", $depth+1, $item); + } else { + $out .= "{\n".displayData("$indent ", $depth+1, $item)."\n".$indent."}"; + $currline = $indent."}"; + } + } else { + if(length $currline.$item > 79) { + $currline = $indent; + $out .= "\n$indent"; + } + $out .= $item; + $currline .= $item; + } + } + return $out; +} + +sub do_output { + my $out = shift; + # Strip any trailing whitespace + $out =~ s/\s+\n/\n/g; + print $out; +} diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/unlocal_shlib.com.in b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/unlocal_shlib.com.in new file mode 100644 index 000000000..dd4fd2a9d --- /dev/null +++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/util/unlocal_shlib.com.in @@ -0,0 +1,26 @@ +${- + use File::Spec::Functions qw(rel2abs); + + my $bldtop = rel2abs($config{builddir}); + our %names = ( map { $_ => $bldtop.$_.".EXE" } + map { $unified_info{sharednames}->{$_} || () } + @{$unified_info{libraries}} ); + "" -} +$ ! Remove the local environment created by local_shlib.com +$ +$ OPENSSL_NAMES := OPENSSL_NAMES_'F$GETJPI("","PID")' +$ IF F$TRNLNM("OSSL_FLAG",OPENSSL_NAMES) .EQS. "" THEN EXIT 0 +$ +$ NAMES := {- join(",", keys %names); -} +$ I = 0 +$ LOOP: +$ E = F$ELEMENT(I,",",NAMES) +$ I = I + 1 +$ IF E .EQS. "," THEN GOTO ENDLOOP +$ OLDV = F$TRNLNM(E,OPENSSL_NAMES) +$ DEASSIGN 'E' +$ IF OLDV .NES. "" THEN DEFINE 'E' 'OLDV' +$ GOTO LOOP +$ ENDLOOP: +$ +$ DEASSIGN 'OPENSSL_NAMES' /TABLE=LNM$PROCESS_DIRECTORY |