Openssl 1.1.0h
This commit is contained in:
@@ -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
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 1995-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
|
||||
|
||||
# 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
|
||||
#
|
||||
|
||||
my $err_strict = 0;
|
||||
my $bad = 0;
|
||||
|
||||
foreach $file (@ARGV)
|
||||
{
|
||||
if ($file eq "-strict")
|
||||
{
|
||||
$err_strict = 1;
|
||||
next;
|
||||
}
|
||||
open(IN,"<$file") || die "unable to open $file\n";
|
||||
$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]+)err\(([^,]+)/ && ! /ckerr_ignore/)
|
||||
{
|
||||
$errlib=$1;
|
||||
$n=$2;
|
||||
|
||||
if ($func eq "")
|
||||
{ print "$file:$.:???:$n\n"; $bad = 1; next; }
|
||||
|
||||
if ($n !~ /([^_]+)_F_(.+)$/)
|
||||
{
|
||||
# print "check -$file:$.:$func:$n\n";
|
||||
next;
|
||||
}
|
||||
$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;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2005-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 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;
|
||||
|
||||
foreach $arg (@ARGV) {
|
||||
if ($arg eq "-stripcr")
|
||||
{
|
||||
$stripcr = 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 (glob $arg)
|
||||
{
|
||||
push @filelist, $_;
|
||||
}
|
||||
}
|
||||
|
||||
$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";
|
||||
}
|
||||
|
||||
|
||||
+210
@@ -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 qw(Text::Template);
|
||||
|
||||
#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 primarly 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 = my $orig = shift @_;
|
||||
$s =~ s/([\$\@\\"'])/\\$1/g;
|
||||
$s ne $orig || $s =~ /\s/ ? '"'.$s.'"' : $s;
|
||||
}
|
||||
|
||||
# quotify_l LIST
|
||||
# For each defined element in LIST (i.e. elements that aren't undef), have
|
||||
# it quotified with 'quotofy1'
|
||||
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);
|
||||
Executable
+549
@@ -0,0 +1,549 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2002-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
|
||||
|
||||
|
||||
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_s);
|
||||
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
|
||||
-s Also print missing sections in POD pages (implies -n)
|
||||
-p Warn if non-public name documented (implies -n)
|
||||
-u List 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";
|
||||
}
|
||||
}
|
||||
|
||||
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:";
|
||||
|
||||
# Find what section this page is in; assume 3.
|
||||
my $section = 3;
|
||||
$section = 1 if $dirname eq 'apps';
|
||||
$section = $1 if ( $contents =~ /=for comment openssl_manual_section:(\d)/);
|
||||
|
||||
&name_synopsis($id, $filename, $contents)
|
||||
unless $contents =~ /=for comment generic/
|
||||
or $section != 3;
|
||||
|
||||
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 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 crypto/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, $!";
|
||||
|
||||
foreach ((@{$mandatory_sections{'*'}}, @{$mandatory_sections{$section}})) {
|
||||
# Skip "return values" if not -s
|
||||
next if $_ eq 'RETURN VALUES' and not $opt_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;
|
||||
|
||||
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};
|
||||
next if $macro =~ /i2d_/
|
||||
|| $macro =~ /d2i_/
|
||||
|| $macro =~ /DEPRECATEDIN/
|
||||
|| $macro =~ /IMPLEMENT_/
|
||||
|| $macro =~ /DECLARE_/;
|
||||
print "$f:$macro\n" if $opt_d;
|
||||
$count++;
|
||||
}
|
||||
close(IN);
|
||||
}
|
||||
print "# Found $count macros missing (not all should be documented)\n"
|
||||
}
|
||||
|
||||
sub printem()
|
||||
{
|
||||
my $libname = shift;
|
||||
my $numfile = shift;
|
||||
my $count = 0;
|
||||
|
||||
foreach my $func ( &parsenum($numfile) ) {
|
||||
next if $docced{$func};
|
||||
|
||||
# Skip ASN1 utilities
|
||||
next if $func =~ /^ASN1_/;
|
||||
|
||||
print "$libname:$func\n" if $opt_d;
|
||||
$count++;
|
||||
}
|
||||
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 referenses 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/apps/$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/apps/$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/apps/$cmd.pod: Not implemented -$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
getopts('cdlnsphu');
|
||||
|
||||
&help() if $opt_h;
|
||||
$opt_n = 1 if $opt_s or $opt_p;
|
||||
$opt_u = 1 if $opt_d;
|
||||
|
||||
die "Need one of -[cdlnspu] 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/apps/$_.pod" ) {
|
||||
print "doc/apps/$_.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/crypto');
|
||||
foreach ( keys %temp ) {
|
||||
$docced{$_} = $temp{$_};
|
||||
}
|
||||
&printem('crypto', 'util/libcrypto.num');
|
||||
&printem('ssl', 'util/libssl.num');
|
||||
&checkmacros();
|
||||
}
|
||||
|
||||
exit;
|
||||
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#! /usr/bin/env perl
|
||||
# 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;
|
||||
use warnings;
|
||||
|
||||
use File::Spec::Functions;
|
||||
use File::Basename;
|
||||
#use File::Copy;
|
||||
#use File::Path;
|
||||
use lib catdir(dirname($0), "perl");
|
||||
use OpenSSL::Util::Pod;
|
||||
|
||||
my %dups;
|
||||
|
||||
sub parsenum()
|
||||
{
|
||||
my $file = shift;
|
||||
my @apis;
|
||||
|
||||
open my $IN, '<', $file
|
||||
or die "Can't open $file, $!, stopped";
|
||||
|
||||
while ( <$IN> ) {
|
||||
next if /\sNOEXIST/;
|
||||
next if /EXPORT_VAR_AS_FUNC/;
|
||||
push @apis, $1 if /([^\s]+).\s/;
|
||||
}
|
||||
|
||||
close $IN;
|
||||
|
||||
print "# Found ", scalar(@apis), " in $file\n";
|
||||
return sort @apis;
|
||||
}
|
||||
|
||||
sub getdocced()
|
||||
{
|
||||
my $dir = shift;
|
||||
my %return;
|
||||
|
||||
foreach my $pod ( glob("$dir/*.pod") ) {
|
||||
next if $pod eq 'doc/crypto/crypto.pod';
|
||||
next if $pod eq 'doc/ssl/ssl.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} = $pod;
|
||||
}
|
||||
}
|
||||
|
||||
return %return;
|
||||
}
|
||||
|
||||
sub printem()
|
||||
{
|
||||
my $docdir = shift;
|
||||
my $numfile = shift;
|
||||
my %docced = &getdocced($docdir);
|
||||
my $count = 0;
|
||||
|
||||
foreach my $func ( &parsenum($numfile) ) {
|
||||
next if $docced{$func};
|
||||
|
||||
# Skip ASN1 utilities
|
||||
next if $func =~ /^ASN1_/;
|
||||
|
||||
print $func, "\n";
|
||||
$count++;
|
||||
}
|
||||
print "# Found $count missing from $numfile\n\n";
|
||||
}
|
||||
|
||||
|
||||
&printem('doc/crypto', 'util/libcrypto.num');
|
||||
&printem('doc/ssl', 'util/libssl.num');
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#! /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.$$
|
||||
|
||||
cd include/openssl || exit 1
|
||||
grep '_[RF]_' * | 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
|
||||
@@ -0,0 +1,115 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2011-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
|
||||
|
||||
sub check_env
|
||||
{
|
||||
my @ret;
|
||||
foreach (@_)
|
||||
{
|
||||
die "Environment variable $_ not defined!\n" unless exists $ENV{$_};
|
||||
push @ret, $ENV{$_};
|
||||
}
|
||||
return @ret;
|
||||
}
|
||||
|
||||
|
||||
my ($fips_cc,$fips_cc_args, $fips_link,$fips_target, $fips_libdir, $sha1_exe)
|
||||
= check_env("FIPS_CC", "FIPS_CC_ARGS", "FIPS_LINK", "FIPS_TARGET",
|
||||
"FIPSLIB_D", "FIPS_SHA1_EXE");
|
||||
|
||||
|
||||
|
||||
if (exists $ENV{"PREMAIN_DSO_EXE"})
|
||||
{
|
||||
$fips_premain_dso = $ENV{"PREMAIN_DSO_EXE"};
|
||||
}
|
||||
else
|
||||
{
|
||||
$fips_premain_dso = "";
|
||||
}
|
||||
|
||||
check_hash($sha1_exe, "fips_premain.c");
|
||||
check_hash($sha1_exe, "fipscanister.lib");
|
||||
|
||||
|
||||
print "Integrity check OK\n";
|
||||
|
||||
if (is_premain_linked(@ARGV)) {
|
||||
print "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c\n";
|
||||
system "$fips_cc $fips_cc_args $fips_libdir/fips_premain.c";
|
||||
die "First stage Compile failure" if $? != 0;
|
||||
} elsif (!defined($ENV{FIPS_SIG})) {
|
||||
die "no fips_premain.obj linked";
|
||||
}
|
||||
|
||||
print "$fips_link @ARGV\n";
|
||||
system "$fips_link @ARGV";
|
||||
die "First stage Link failure" if $? != 0;
|
||||
|
||||
if (defined($ENV{FIPS_SIG})) {
|
||||
print "$ENV{FIPS_SIG} $fips_target\n";
|
||||
system "$ENV{FIPS_SIG} $fips_target";
|
||||
die "$ENV{FIPS_SIG} $fips_target failed" if $? != 0;
|
||||
exit;
|
||||
}
|
||||
|
||||
print "$fips_premain_dso $fips_target\n";
|
||||
system("$fips_premain_dso $fips_target >$fips_target.sha1");
|
||||
die "Get hash failure" if $? != 0;
|
||||
open my $sha1_res, '<', $fips_target.".sha1" or die "Get hash failure";
|
||||
$fips_hash=<$sha1_res>;
|
||||
close $sha1_res;
|
||||
unlink $fips_target.".sha1";
|
||||
$fips_hash =~ s|\R$||; # Better chomp
|
||||
die "Get hash failure" if $? != 0;
|
||||
|
||||
|
||||
print "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c\n";
|
||||
system "$fips_cc -DHMAC_SHA1_SIG=\\\"$fips_hash\\\" $fips_cc_args $fips_libdir/fips_premain.c";
|
||||
die "Second stage Compile failure" if $? != 0;
|
||||
|
||||
|
||||
print "$fips_link @ARGV\n";
|
||||
system "$fips_link @ARGV";
|
||||
die "Second stage Link failure" if $? != 0;
|
||||
|
||||
sub is_premain_linked
|
||||
{
|
||||
return 1 if (grep /fips_premain\.obj/,@_);
|
||||
foreach (@_)
|
||||
{
|
||||
if (/^@(.*)/ && -f $1)
|
||||
{
|
||||
open FD,$1 or die "can't open $1";
|
||||
my $ret = (grep /fips_premain\.obj/,<FD>)?1:0;
|
||||
close FD;
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub check_hash
|
||||
{
|
||||
my ($sha1_exe, $filename) = @_;
|
||||
my ($hashfile, $hashval);
|
||||
|
||||
open(IN, "${fips_libdir}/${filename}.sha1") || die "Cannot open file hash file ${fips_libdir}/${filename}.sha1";
|
||||
$hashfile = <IN>;
|
||||
close IN;
|
||||
$hashval = `$sha1_exe ${fips_libdir}/$filename`;
|
||||
$hashfile =~ s|\R$||; # Better chomp
|
||||
$hashval =~ s|\R$||; # Better chomp
|
||||
$hashfile =~ s/^.*=\s+//;
|
||||
$hashval =~ s/^.*=\s+//;
|
||||
die "Invalid hash syntax in file" if (length($hashfile) != 40);
|
||||
die "Invalid hash received for file" if (length($hashval) != 40);
|
||||
die "***HASH VALUE MISMATCH FOR FILE $filename ***" if ($hashval ne $hashfile);
|
||||
}
|
||||
|
||||
|
||||
Executable
+454
@@ -0,0 +1,454 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2011-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
|
||||
|
||||
# The script embeds fingerprint into ELF executable object, either
|
||||
# application binary or shared library.
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# ELF symbol table parser by <appro@openssl.org>. The table entries
|
||||
# are extended with offset within executable file...
|
||||
#
|
||||
{ package ELF;
|
||||
use FileHandle;
|
||||
|
||||
sub dup { my %copy=map {$_} @_; return \%copy; }
|
||||
|
||||
sub Load {
|
||||
my $class = shift;
|
||||
my $self = {};
|
||||
my $FD = FileHandle->new(); # autoclose
|
||||
|
||||
bless $self,$class;
|
||||
|
||||
sysopen($FD,shift,0) or die "$!";
|
||||
binmode($FD);
|
||||
|
||||
#################################################
|
||||
# read and parse elf_ehdr.e_ident...
|
||||
#
|
||||
read($FD,my $elf,16) or die "$!";
|
||||
|
||||
my %e_ident;
|
||||
@e_ident{magic,class,data,version,osabi,abiver,pad}=
|
||||
unpack("a4C*",$elf);
|
||||
|
||||
$!=42; # signal fipsld to revert to two-step link
|
||||
die "not ELF file" if ($e_ident{magic} ne chr(0177)."ELF");
|
||||
|
||||
my $elf_bits = $e_ident{class}*32; # 32 or 64
|
||||
my $big_endian = $e_ident{data}-1; # 0 or 1
|
||||
|
||||
if ($elf_bits==64) {
|
||||
if (!(((1<<31)<<1) && $big_endian==(unpack("L",pack("N",1))==1))) {
|
||||
die "ELF64 is supported only natively";
|
||||
}
|
||||
}
|
||||
|
||||
#################################################
|
||||
# read and parse remainder of elf_ehdr...
|
||||
#
|
||||
read($FD,my $elfhdr,64) or die "$!";
|
||||
|
||||
my %elf_ehdr;
|
||||
@elf_ehdr{e_type,e_machine,e_version,
|
||||
e_entry,e_phoff,e_shoff,e_flags,e_ehsize,
|
||||
e_phentsize,e_phnum,e_shentsize,e_shnum,e_shstrndx} =
|
||||
$elf_bits==32 ?
|
||||
unpack($big_endian?"nnN5n6":"vvV5v6",$elfhdr)
|
||||
: unpack("SSLQ3LS6",$elfhdr);
|
||||
|
||||
# put aside e_machine in case one has to treat specific
|
||||
# platforms differently, see EM_ constants in elf.h for
|
||||
# assortment...
|
||||
$self->{e_machine} = $elf_ehdr{e_machine};
|
||||
|
||||
#################################################
|
||||
# read and parse elf_shdr table...
|
||||
#
|
||||
my ($i,$sz,$symtab_idx,$blob,$strings);
|
||||
|
||||
seek($FD,$elf_ehdr{e_shoff},0) or die "$!";
|
||||
read($FD,$blob,$elf_ehdr{e_shentsize}*$elf_ehdr{e_shnum}) or die "$!";
|
||||
|
||||
my @sections;
|
||||
my $elf_shdr_struct=($elf_bits==32?($big_endian?"N10":"V10"):"L2Q4L2Q2");
|
||||
for ($sz=$elf_ehdr{e_shentsize},$i=0;$i<length($blob);$i+=$sz) {
|
||||
my %elf_shdr;
|
||||
|
||||
@elf_shdr{sh_name,sh_type,sh_flags,
|
||||
sh_addr,sh_offset,sh_size,
|
||||
sh_link,sh_info,sh_addalign,sh_entsize} =
|
||||
unpack($elf_shdr_struct,substr($blob,$i,$sz));
|
||||
|
||||
push(@sections,dup(%elf_shdr));
|
||||
|
||||
# note SHT_SYMTAB or SHT_DYNSYM for future reference
|
||||
if ($elf_shdr{sh_type}==2 || $elf_shdr{sh_type}==11) {
|
||||
$symtab_idx = $#sections;
|
||||
}
|
||||
}
|
||||
|
||||
# read strings table and map section names...
|
||||
seek($FD,@sections[$elf_ehdr{e_shstrndx}]->{sh_offset},0) or die "$!";
|
||||
read($FD,$strings,@sections[$elf_ehdr{e_shstrndx}]->{sh_size}) or die "$!";
|
||||
for (@sections) {
|
||||
$_->{sh_name}=(split(chr(0),substr($strings,$_->{sh_name},64)))[0];
|
||||
}
|
||||
|
||||
#################################################
|
||||
# read symbol strings table...
|
||||
#
|
||||
$i=@sections[$symtab_idx]->{sh_link};
|
||||
seek($FD,@sections[$i]->{sh_offset},0) or die "$!";
|
||||
read($FD,$strings,@sections[$i]->{sh_size}) or die "$!";
|
||||
|
||||
#################################################
|
||||
# read and parse elf_sym table...
|
||||
#
|
||||
seek($FD,@sections[$symtab_idx]->{sh_offset},0) or die "$!";
|
||||
read($FD,my $blob,@sections[$symtab_idx]->{sh_size}) or die "$!";
|
||||
|
||||
for ($sz=@sections[$symtab_idx]->{sh_entsize},$i=0;$i<length($blob);$i+=$sz) {
|
||||
my %elf_sym;
|
||||
|
||||
if ($elf_bits==32) {
|
||||
@elf_sym{st_name,st_value,st_size,st_info,st_other,st_shndx} =
|
||||
unpack($big_endian?"N3CCn":"V3CCv",substr($blob,$i,$sz));
|
||||
} else {
|
||||
@elf_sym{st_name,st_info,st_other,st_shndx,st_value,st_size} =
|
||||
unpack("LCCSQQ",substr($blob,$i,$sz));
|
||||
}
|
||||
|
||||
my $st_type = $elf_sym{st_info}&0xf;
|
||||
my $st_bind = $elf_sym{st_info}>>4;
|
||||
my $st_secn = $elf_sym{st_shndx};
|
||||
my $name;
|
||||
# (STT_OBJECT || STT_FUNC)
|
||||
if ($st_bind<3 && ($st_type==1 || $st_type==2)
|
||||
&& $st_secn <= $#sections # sane st_shndx
|
||||
&& @sections[$st_secn]->{sh_type} # not SHN_UNDEF
|
||||
&& ($name=(split(chr(0),substr($strings,$elf_sym{st_name},128)))[0])
|
||||
) {
|
||||
# synthesize st_offset, ...
|
||||
$elf_sym{st_offset} = $elf_sym{st_value}
|
||||
- @sections[$st_secn]->{sh_addr}
|
||||
+ @sections[$st_secn]->{sh_offset};
|
||||
$elf_sym{st_name} = $name;
|
||||
$elf_sym{st_section} = @sections[$st_secn]->{sh_name};
|
||||
# ... and add to lookup table
|
||||
$self->{symbols}{$name} = dup(%elf_sym);
|
||||
}
|
||||
}
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub Lookup {
|
||||
my $self = shift;
|
||||
my $name = shift;
|
||||
return $self->{symbols}{$name};
|
||||
}
|
||||
|
||||
sub Traverse {
|
||||
my $self = shift;
|
||||
my $code = shift;
|
||||
|
||||
if (ref($code) eq 'CODE') {
|
||||
for (keys(%{$self->{symbols}})) { &$code($self->{symbols}{$_}); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# SHA1 and HMAC in Perl by <appro@openssl.org>.
|
||||
#
|
||||
{ package SHA1;
|
||||
use integer;
|
||||
|
||||
{
|
||||
################################### SHA1 block code generator
|
||||
my @V = ('$A','$B','$C','$D','$E');
|
||||
my $i;
|
||||
|
||||
sub XUpdate {
|
||||
my $ret;
|
||||
$ret="(\$T=\$W[($i-16)%16]^\$W[($i-14)%16]^\$W[($i-8)%16]^\$W[($i-3)%16],\n\t";
|
||||
if ((1<<31)<<1) {
|
||||
$ret.=" \$W[$i%16]=((\$T<<1)|(\$T>>31))&0xffffffff)\n\t ";
|
||||
} else {
|
||||
$ret.=" \$W[$i%16]=(\$T<<1)|((\$T>>31)&1))\n\t ";
|
||||
}
|
||||
}
|
||||
sub tail {
|
||||
my ($a,$b,$c,$d,$e)=@V;
|
||||
my $ret;
|
||||
if ((1<<31)<<1) {
|
||||
$ret.="(($a<<5)|($a>>27));\n\t";
|
||||
$ret.="$b=($b<<30)|($b>>2); $e&=0xffffffff; #$b&=0xffffffff;\n\t";
|
||||
} else {
|
||||
$ret.="(($a<<5)|($a>>27)&0x1f);\n\t";
|
||||
$ret.="$b=($b<<30)|($b>>2)&0x3fffffff;\n\t";
|
||||
}
|
||||
$ret;
|
||||
}
|
||||
sub BODY_00_15 {
|
||||
my ($a,$b,$c,$d,$e)=@V;
|
||||
"$e+=\$W[$i]+0x5a827999+((($c^$d)&$b)^$d)+".tail();
|
||||
}
|
||||
sub BODY_16_19 {
|
||||
my ($a,$b,$c,$d,$e)=@V;
|
||||
"$e+=".XUpdate()."+0x5a827999+((($c^$d)&$b)^$d)+".tail();
|
||||
}
|
||||
sub BODY_20_39 {
|
||||
my ($a,$b,$c,$d,$e)=@V;
|
||||
"$e+=".XUpdate()."+0x6ed9eba1+($b^$c^$d)+".tail();
|
||||
}
|
||||
sub BODY_40_59 {
|
||||
my ($a,$b,$c,$d,$e)=@V;
|
||||
"$e+=".XUpdate()."+0x8f1bbcdc+(($b&$c)|(($b|$c)&$d))+".tail();
|
||||
}
|
||||
sub BODY_60_79 {
|
||||
my ($a,$b,$c,$d,$e)=@V;
|
||||
"$e+=".XUpdate()."+0xca62c1d6+($b^$c^$d)+".tail();
|
||||
}
|
||||
|
||||
my $sha1_impl =
|
||||
'sub block {
|
||||
my $self = @_[0];
|
||||
my @W = unpack("N16",@_[1]);
|
||||
my ($A,$B,$C,$D,$E,$T) = @{$self->{H}};
|
||||
';
|
||||
|
||||
$sha1_impl.='
|
||||
$A &= 0xffffffff;
|
||||
$B &= 0xffffffff;
|
||||
' if ((1<<31)<<1);
|
||||
|
||||
for($i=0;$i<16;$i++){ $sha1_impl.=BODY_00_15(); unshift(@V,pop(@V)); }
|
||||
for(;$i<20;$i++) { $sha1_impl.=BODY_16_19(); unshift(@V,pop(@V)); }
|
||||
for(;$i<40;$i++) { $sha1_impl.=BODY_20_39(); unshift(@V,pop(@V)); }
|
||||
for(;$i<60;$i++) { $sha1_impl.=BODY_40_59(); unshift(@V,pop(@V)); }
|
||||
for(;$i<80;$i++) { $sha1_impl.=BODY_60_79(); unshift(@V,pop(@V)); }
|
||||
|
||||
$sha1_impl.='
|
||||
$self->{H}[0]+=$A; $self->{H}[1]+=$B; $self->{H}[2]+=$C;
|
||||
$self->{H}[3]+=$D; $self->{H}[4]+=$E; }';
|
||||
|
||||
#print $sha1_impl,"\n";
|
||||
eval($sha1_impl); # generate code
|
||||
}
|
||||
|
||||
sub Init {
|
||||
my $class = shift; # multiple instances...
|
||||
my $self = {};
|
||||
|
||||
bless $self,$class;
|
||||
$self->{H} = [0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0];
|
||||
$self->{N} = 0;
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub Update {
|
||||
my $self = shift;
|
||||
my $msg;
|
||||
|
||||
foreach $msg (@_) {
|
||||
my $len = length($msg);
|
||||
my $num = length($self->{buf});
|
||||
my $off = 0;
|
||||
|
||||
$self->{N} += $len;
|
||||
|
||||
if (($num+$len)<64)
|
||||
{ $self->{buf} .= $msg; next; }
|
||||
elsif ($num)
|
||||
{ $self->{buf} .= substr($msg,0,($off=64-$num));
|
||||
$self->block($self->{buf});
|
||||
}
|
||||
|
||||
while(($off+64) <= $len)
|
||||
{ $self->block(substr($msg,$off,64));
|
||||
$off += 64;
|
||||
}
|
||||
|
||||
$self->{buf} = substr($msg,$off);
|
||||
}
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub Final {
|
||||
my $self = shift;
|
||||
my $num = length($self->{buf});
|
||||
|
||||
$self->{buf} .= chr(0x80); $num++;
|
||||
if ($num>56)
|
||||
{ $self->{buf} .= chr(0)x(64-$num);
|
||||
$self->block($self->{buf});
|
||||
$self->{buf}=undef;
|
||||
$num=0;
|
||||
}
|
||||
$self->{buf} .= chr(0)x(56-$num);
|
||||
$self->{buf} .= pack("N2",($self->{N}>>29)&0x7,$self->{N}<<3);
|
||||
$self->block($self->{buf});
|
||||
|
||||
return pack("N*",@{$self->{H}});
|
||||
}
|
||||
|
||||
sub Selftest {
|
||||
my $hash;
|
||||
|
||||
$hash=SHA1->Init()->Update('abc')->Final();
|
||||
die "SHA1 test#1" if (unpack("H*",$hash) ne 'a9993e364706816aba3e25717850c26c9cd0d89d');
|
||||
|
||||
$hash=SHA1->Init()->Update('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq')->Final();
|
||||
die "SHA1 test#2" if (unpack("H*",$hash) ne '84983e441c3bd26ebaae4aa1f95129e5e54670f1');
|
||||
|
||||
#$hash=SHA1->Init()->Update('a'x1000000)->Final();
|
||||
#die "SHA1 test#3" if (unpack("H*",$hash) ne '34aa973cd4c4daa4f61eeb2bdbad27316534016f');
|
||||
}
|
||||
}
|
||||
|
||||
{ package HMAC;
|
||||
|
||||
sub Init {
|
||||
my $class = shift;
|
||||
my $key = shift;
|
||||
my $self = {};
|
||||
|
||||
bless $self,$class;
|
||||
|
||||
if (length($key)>64) {
|
||||
$key = SHA1->Init()->Update($key)->Final();
|
||||
}
|
||||
$key .= chr(0x00)x(64-length($key));
|
||||
|
||||
my @ikey = map($_^=0x36,unpack("C*",$key));
|
||||
($self->{hash} = SHA1->Init())->Update(pack("C*",@ikey));
|
||||
$self->{okey} = pack("C*",map($_^=0x36^0x5c,@ikey));
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub Update {
|
||||
my $self = shift;
|
||||
$self->{hash}->Update(@_);
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub Final {
|
||||
my $self = shift;
|
||||
my $ihash = $self->{hash}->Final();
|
||||
return SHA1->Init()->Update($self->{okey},$ihash)->Final();
|
||||
}
|
||||
|
||||
sub Selftest {
|
||||
my $hmac;
|
||||
|
||||
$hmac = HMAC->Init('0123456789:;<=>?@ABC')->Update('Sample #2')->Final();
|
||||
die "HMAC test" if (unpack("H*",$hmac) ne '0922d3405faa3d194f82a45830737d5cc6c75d24');
|
||||
}
|
||||
}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# main()
|
||||
#
|
||||
my $legacy_mode;
|
||||
|
||||
if ($ARGV<0 || ($#ARGV>0 && !($legacy_mode=(@ARGV[0] =~ /^\-(dso|exe)$/)))) {
|
||||
print STDERR "usage: $0 [-dso|-exe] elfbinary\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$exe = ELF->Load(@ARGV[$#ARGV]);
|
||||
|
||||
$FIPS_text_start = $exe->Lookup("FIPS_text_start") or die;
|
||||
$FIPS_text_end = $exe->Lookup("FIPS_text_end") or die;
|
||||
$FIPS_rodata_start = $exe->Lookup("FIPS_rodata_start") or die;
|
||||
$FIPS_rodata_end = $exe->Lookup("FIPS_rodata_end") or die;
|
||||
$FIPS_signature = $exe->Lookup("FIPS_signature") or die;
|
||||
|
||||
# new cross-compile support
|
||||
$FIPS_text_startX = $exe->Lookup("FIPS_text_startX");
|
||||
$FIPS_text_endX = $exe->Lookup("FIPS_text_endX");
|
||||
|
||||
if (!$legacy_mode) {
|
||||
if (!$FIPS_text_startX || !$FIPS_text_endX) {
|
||||
print STDERR "@ARGV[$#ARGV] is not cross-compiler aware.\n";
|
||||
exit(42); # signal fipsld to revert to two-step link
|
||||
}
|
||||
|
||||
$FINGERPRINT_ascii_value
|
||||
= $exe->Lookup("FINGERPRINT_ascii_value");
|
||||
|
||||
}
|
||||
if ($FIPS_text_startX && $FIPS_text_endX) {
|
||||
$FIPS_text_start = $FIPS_text_startX;
|
||||
$FIPS_text_end = $FIPS_text_endX;
|
||||
}
|
||||
|
||||
sysopen(FD,@ARGV[$#ARGV],$legacy_mode?0:2) or die "$!"; # 2 is read/write
|
||||
binmode(FD);
|
||||
|
||||
sub HMAC_Update {
|
||||
my ($hmac,$off,$len) = @_;
|
||||
my $blob;
|
||||
|
||||
seek(FD,$off,0) or die "$!";
|
||||
read(FD,$blob,$len) or die "$!";
|
||||
$$hmac->Update($blob);
|
||||
}
|
||||
|
||||
# fips/fips.c:FIPS_incore_fingerprint's Perl twin
|
||||
#
|
||||
sub FIPS_incore_fingerprint {
|
||||
my $p1 = $FIPS_text_start->{st_offset};
|
||||
my $p2 = $FIPS_text_end->{st_offset};
|
||||
my $p3 = $FIPS_rodata_start->{st_offset};
|
||||
my $p4 = $FIPS_rodata_end->{st_offset};
|
||||
my $sig = $FIPS_signature->{st_offset};
|
||||
my $ctx = HMAC->Init("etaonrishdlcupfm");
|
||||
|
||||
# detect overlapping regions
|
||||
if ($p1<=$p3 && $p2>=$p3) {
|
||||
$p3 = $p1; $p4 = $p2>$p4?$p2:$p4; $p1 = 0; $p2 = 0;
|
||||
} elsif ($p3<=$p1 && $p4>=$p1) {
|
||||
$p3 = $p3; $p4 = $p2>$p4?$p2:$p4; $p1 = 0; $p2 = 0;
|
||||
}
|
||||
|
||||
if ($p1) {
|
||||
HMAC_Update (\$ctx,$p1,$p2-$p1);
|
||||
}
|
||||
|
||||
if ($sig>=$p3 && $sig<$p4) {
|
||||
# "punch" hole
|
||||
HMAC_Update(\$ctx,$p3,$sig-$p3);
|
||||
$p3 = $sig+20;
|
||||
HMAC_Update(\$ctx,$p3,$p4-$p3);
|
||||
} else {
|
||||
HMAC_Update(\$ctx,$p3,$p4-$p3);
|
||||
}
|
||||
|
||||
return $ctx->Final();
|
||||
}
|
||||
|
||||
$fingerprint = FIPS_incore_fingerprint();
|
||||
|
||||
if ($legacy_mode) {
|
||||
print unpack("H*",$fingerprint);
|
||||
} elsif (defined($FINGERPRINT_ascii_value)) {
|
||||
seek(FD,$FINGERPRINT_ascii_value->{st_offset},0) or die "$!";
|
||||
print FD unpack("H*",$fingerprint) or die "$!";
|
||||
} else {
|
||||
seek(FD,$FIPS_signature->{st_offset},0) or die "$!";
|
||||
print FD $fingerprint or die "$!";
|
||||
}
|
||||
|
||||
close (FD);
|
||||
+672
@@ -0,0 +1,672 @@
|
||||
-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_COMPAT_FUNCS
|
||||
-T ASN1_CTX
|
||||
-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 ASN1_const_CTX
|
||||
-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_DATA_FUNCS
|
||||
-T CRYPTO_EX_DATA_IMPL
|
||||
-T CRYPTO_EX_dup
|
||||
-T CRYPTO_EX_free
|
||||
-T CRYPTO_EX_new
|
||||
-T CRYPTO_MEM_LEAK_CB
|
||||
-T CRYPTO_THREADID
|
||||
-T CRYPTO_dynlock_value
|
||||
-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 DRBG_CTX
|
||||
-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_DATA
|
||||
-T ECDH_METHOD
|
||||
-T ECDSA_DATA
|
||||
-T ECDSA_METHOD
|
||||
-T ECDSA_SIG
|
||||
-T ECPARAMETERS
|
||||
-T ECPKPARAMETERS
|
||||
-T EC_EXTRA_DATA
|
||||
-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_ISSUER_SERIAL
|
||||
-T ESS_SIGNING_CERT
|
||||
-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 EX_CLASS_ITEM
|
||||
-T E_GMP_RSA_CTX
|
||||
-T E_RSAX_MOD_CTX
|
||||
-T FILE
|
||||
-T F_DIGITALSIGNATUREVERIFY
|
||||
-T F_PUBLICKEYEXTRACT
|
||||
-T GCM128_CONTEXT
|
||||
-T GENERAL_NAME
|
||||
-T GENERAL_NAMES
|
||||
-T GENERAL_SUBTREE
|
||||
-T GEN_SESSION_CB
|
||||
-T HASH_CTX
|
||||
-T HEAPENTRY32
|
||||
-T HEAPLIST32
|
||||
-T HEARTBEAT_TEST_FIXTURE
|
||||
-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_COMP_FN_TYPE
|
||||
-T LHASH_DOALL_ARG_FN_TYPE
|
||||
-T LHASH_DOALL_FN_TYPE
|
||||
-T LHASH_HASH_FN_TYPE
|
||||
-T LHASH_NODE
|
||||
-T LPDIR_CTX
|
||||
-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 MD_DATA
|
||||
-T MEM
|
||||
-T MEM_LEAK
|
||||
-T MEM_OBJECT_DATA
|
||||
-T MIME_HEADER
|
||||
-T MIME_PARAM
|
||||
-T MODULEENTRY32
|
||||
-T MODULEENTRY32W
|
||||
-T MS_FAR
|
||||
-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 NETSCAPE_X509
|
||||
-T NET_API_FUNCTION
|
||||
-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_ITEM
|
||||
-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 PCRYPTO_MEM_LEAK_CB
|
||||
-T PEM_CTX
|
||||
-T PEM_ENCODE_SEAL_CTX
|
||||
-T PEM_USER
|
||||
-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 SESS_CERT
|
||||
-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 SSL2_STATE
|
||||
-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 WSAAPI
|
||||
-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_CERT_FILE_CTX
|
||||
-T X509_CERT_PAIR
|
||||
-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_OBJECTS
|
||||
-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 X509_VERIFY_PARAM_ID
|
||||
-T X9_62_CHARACTERISTIC_TWO
|
||||
-T X9_62_CURVE
|
||||
-T X9_62_FIELDID
|
||||
-T X9_62_PENTANOMIAL
|
||||
-T XTS128_CONTEXT
|
||||
-T ZEN_MD_DATA
|
||||
-T _LHASH
|
||||
-T _STACK
|
||||
-T __int64
|
||||
-T _ossl_old_des_cblock
|
||||
-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_EX_DATA_FUNCS_
|
||||
-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_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_MEM_OBJECT_DATA_
|
||||
-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_EX_CLASS_ITEM_
|
||||
-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 tls12_lookup
|
||||
-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_FIBRE
|
||||
-T ASYNC_CTX
|
||||
-T ASYNC_JOB
|
||||
-T intmax_t
|
||||
-T uintmax_t
|
||||
-T pqueue
|
||||
-T danetls_record
|
||||
+4236
@@ -0,0 +1,4236 @@
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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: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:UI
|
||||
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:!WIN32,!macintosh: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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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: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:RSA
|
||||
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:UI
|
||||
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:EC
|
||||
OCSP_SINGLERESP_get0_id 642 1_1_0 EXIST::FUNCTION:OCSP
|
||||
UI_add_info_string 643 1_1_0 EXIST::FUNCTION:UI
|
||||
OBJ_NAME_remove 644 1_1_0 EXIST::FUNCTION:
|
||||
UI_get_method 645 1_1_0 EXIST::FUNCTION:UI
|
||||
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:UI
|
||||
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: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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:
|
||||
LONG_it 1759 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
|
||||
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:
|
||||
ZLONG_it 1825 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
|
||||
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:UI
|
||||
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: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:UI
|
||||
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:UI
|
||||
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: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:UI
|
||||
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:UI
|
||||
OCSP_request_add1_nonce 2031 1_1_0 EXIST::FUNCTION:OCSP
|
||||
UI_construct_prompt 2032 1_1_0 EXIST::FUNCTION:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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: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: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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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
|
||||
UI_dup_info_string 2760 1_1_0 EXIST::FUNCTION:UI
|
||||
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: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:EC
|
||||
X509_get_default_cert_file 3191 1_1_0 EXIST::FUNCTION:
|
||||
UI_method_set_flusher 3192 1_1_0 EXIST::FUNCTION:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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: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:UI
|
||||
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:UI
|
||||
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:UI
|
||||
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
|
||||
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:UI
|
||||
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
|
||||
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:
|
||||
X509_VERIFY_PARAM_get_time 4181 1_1_0d EXIST::FUNCTION:
|
||||
DH_check_params 4183 1_1_0d EXIST::FUNCTION:DH
|
||||
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_secure_clear_free 4315 1_1_0g EXIST::FUNCTION:
|
||||
EVP_PKEY_set1_engine 4347 1_1_0g EXIST::FUNCTION:ENGINE
|
||||
OCSP_resp_get0_signer 4374 1_1_0h EXIST::FUNCTION:OCSP
|
||||
X509_get0_authority_key_id 4448 1_1_0h EXIST::FUNCTION:
|
||||
+407
@@ -0,0 +1,407 @@
|
||||
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_TRACE
|
||||
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_COMP_get_id 412 1_1_0d EXIST::FUNCTION:
|
||||
SSL_COMP_get0_name 413 1_1_0d EXIST::FUNCTION:
|
||||
@@ -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:
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2014-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
|
||||
|
||||
|
||||
my ($cflags, $platform) = @ARGV;
|
||||
|
||||
$cflags = "compiler: $cflags";
|
||||
$date = localtime();
|
||||
print <<"END_OUTPUT";
|
||||
/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
|
||||
#define CFLAGS cflags
|
||||
/*
|
||||
* Generate CFLAGS 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 cflags[] = {
|
||||
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'
|
||||
};
|
||||
#define PLATFORM "platform: $platform"
|
||||
#define DATE "built on: $date"
|
||||
END_OUTPUT
|
||||
Executable
+220
@@ -0,0 +1,220 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script will re-make all the required certs.
|
||||
# cd apps
|
||||
# sh ../util/mkcerts.sh
|
||||
# mv ca-cert.pem pca-cert.pem ../certs
|
||||
# cd ..
|
||||
# cat certs/*.pem >>apps/server.pem
|
||||
# cat certs/*.pem >>apps/server2.pem
|
||||
# SSLEAY=`pwd`/apps/ssleay; export SSLEAY
|
||||
# sh tools/c_rehash certs
|
||||
#
|
||||
|
||||
CAbits=1024
|
||||
SSLEAY="../apps/openssl"
|
||||
CONF="-config ../apps/openssl.cnf"
|
||||
|
||||
# create pca request.
|
||||
echo creating $CAbits bit PCA cert request
|
||||
$SSLEAY req $CONF \
|
||||
-new -sha256 -newkey $CAbits \
|
||||
-keyout pca-key.pem \
|
||||
-out pca-req.pem -nodes >/dev/null <<EOF
|
||||
AU
|
||||
Queensland
|
||||
.
|
||||
CryptSoft Pty Ltd
|
||||
.
|
||||
Test PCA (1024 bit)
|
||||
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems generating PCA request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#sign it.
|
||||
echo
|
||||
echo self signing PCA
|
||||
$SSLEAY x509 -sha256 -days 36525 \
|
||||
-req -signkey pca-key.pem \
|
||||
-CAcreateserial -CAserial pca-cert.srl \
|
||||
-in pca-req.pem -out pca-cert.pem
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems self signing PCA cert
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
|
||||
# create ca request.
|
||||
echo creating $CAbits bit CA cert request
|
||||
$SSLEAY req $CONF \
|
||||
-new -sha256 -newkey $CAbits \
|
||||
-keyout ca-key.pem \
|
||||
-out ca-req.pem -nodes >/dev/null <<EOF
|
||||
AU
|
||||
Queensland
|
||||
.
|
||||
CryptSoft Pty Ltd
|
||||
.
|
||||
Test CA (1024 bit)
|
||||
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems generating CA request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#sign it.
|
||||
echo
|
||||
echo signing CA
|
||||
$SSLEAY x509 -sha256 -days 36525 \
|
||||
-req \
|
||||
-CAcreateserial -CAserial pca-cert.srl \
|
||||
-CA pca-cert.pem -CAkey pca-key.pem \
|
||||
-in ca-req.pem -out ca-cert.pem
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems signing CA cert
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
|
||||
# create server request.
|
||||
echo creating 512 bit server cert request
|
||||
$SSLEAY req $CONF \
|
||||
-new -sha256 -newkey 512 \
|
||||
-keyout s512-key.pem \
|
||||
-out s512-req.pem -nodes >/dev/null <<EOF
|
||||
AU
|
||||
Queensland
|
||||
.
|
||||
CryptSoft Pty Ltd
|
||||
.
|
||||
Server test cert (512 bit)
|
||||
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems generating 512 bit server cert request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#sign it.
|
||||
echo
|
||||
echo signing 512 bit server cert
|
||||
$SSLEAY x509 -sha256 -days 36525 \
|
||||
-req \
|
||||
-CAcreateserial -CAserial ca-cert.srl \
|
||||
-CA ca-cert.pem -CAkey ca-key.pem \
|
||||
-in s512-req.pem -out server.pem
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems signing 512 bit server cert
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
|
||||
# create 1024 bit server request.
|
||||
echo creating 1024 bit server cert request
|
||||
$SSLEAY req $CONF \
|
||||
-new -sha256 -newkey 1024 \
|
||||
-keyout s1024key.pem \
|
||||
-out s1024req.pem -nodes >/dev/null <<EOF
|
||||
AU
|
||||
Queensland
|
||||
.
|
||||
CryptSoft Pty Ltd
|
||||
.
|
||||
Server test cert (1024 bit)
|
||||
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems generating 1024 bit server cert request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#sign it.
|
||||
echo
|
||||
echo signing 1024 bit server cert
|
||||
$SSLEAY x509 -sha256 -days 36525 \
|
||||
-req \
|
||||
-CAcreateserial -CAserial ca-cert.srl \
|
||||
-CA ca-cert.pem -CAkey ca-key.pem \
|
||||
-in s1024req.pem -out server2.pem
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems signing 1024 bit server cert
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
|
||||
# create 512 bit client request.
|
||||
echo creating 512 bit client cert request
|
||||
$SSLEAY req $CONF \
|
||||
-new -sha256 -newkey 512 \
|
||||
-keyout c512-key.pem \
|
||||
-out c512-req.pem -nodes >/dev/null <<EOF
|
||||
AU
|
||||
Queensland
|
||||
.
|
||||
CryptSoft Pty Ltd
|
||||
.
|
||||
Client test cert (512 bit)
|
||||
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems generating 512 bit client cert request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#sign it.
|
||||
echo
|
||||
echo signing 512 bit client cert
|
||||
$SSLEAY x509 -sha256 -days 36525 \
|
||||
-req \
|
||||
-CAcreateserial -CAserial ca-cert.srl \
|
||||
-CA ca-cert.pem -CAkey ca-key.pem \
|
||||
-in c512-req.pem -out client.pem
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo problems signing 512 bit client cert
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo cleanup
|
||||
|
||||
cat pca-key.pem >> pca-cert.pem
|
||||
cat ca-key.pem >> ca-cert.pem
|
||||
cat s512-key.pem >> server.pem
|
||||
cat s1024key.pem >> server2.pem
|
||||
cat c512-key.pem >> client.pem
|
||||
|
||||
for i in pca-cert.pem ca-cert.pem server.pem server2.pem client.pem
|
||||
do
|
||||
$SSLEAY x509 -issuer -subject -in $i -noout >$$
|
||||
cat $$
|
||||
/bin/cat $i >>$$
|
||||
/bin/mv $$ $i
|
||||
done
|
||||
|
||||
#/bin/rm -f *key.pem *req.pem *.srl
|
||||
|
||||
echo Finished
|
||||
|
||||
Executable
+1685
@@ -0,0 +1,1685 @@
|
||||
#! /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
|
||||
|
||||
#
|
||||
# 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 itms, 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;
|
||||
# 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",
|
||||
);
|
||||
|
||||
# %disabled comes from configdata.pm
|
||||
my %disabled_algorithms =
|
||||
map { (my $x = uc $_) =~ s|-|_|g; $x => 1; } keys %disabled;
|
||||
|
||||
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;
|
||||
}
|
||||
if ($_ eq "linux") {
|
||||
$linux=1;
|
||||
$UNIX=1;
|
||||
}
|
||||
$VMS=1 if $_ eq "VMS";
|
||||
if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic"
|
||||
|| $_ eq "enable-zlib-dynamic") {
|
||||
$zlib = 1;
|
||||
}
|
||||
|
||||
$do_ssl=1 if $_ eq "libssl";
|
||||
if ($_ eq "ssl") {
|
||||
$do_ssl=1;
|
||||
$libname=$_
|
||||
}
|
||||
$do_crypto=1 if $_ eq "libcrypto";
|
||||
if ($_ eq "crypto") {
|
||||
$do_crypto=1;
|
||||
$libname=$_;
|
||||
}
|
||||
$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";
|
||||
if (/^--api=(\d+)\.(\d+)\.(\d+)$/) {
|
||||
my $apiv = sprintf "%x%02x%02x", $1, $2, $3;
|
||||
foreach (@known_algorithms) {
|
||||
if (/^DEPRECATEDIN_(\d+)_(\d+)_(\d+)$/) {
|
||||
my $depv = sprintf "%x%02x%02x", $1, $2, $3;
|
||||
$disabled_algorithms{$_} = 1 if $apiv ge $depv;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (/^no-deprecated$/) {
|
||||
foreach (@known_algorithms) {
|
||||
if (/^DEPRECATEDIN_/) {
|
||||
$disabled_algorithms{$_} = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
elsif (/^(enable|disable|no)-(.*)$/) {
|
||||
my $alg = uc $2;
|
||||
$alg =~ tr/-/_/;
|
||||
if (exists $disabled_algorithms{$alg}) {
|
||||
$disabled_algorithms{$alg} = $1 eq "enable" ? 0 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!$libname) {
|
||||
if ($do_ssl) {
|
||||
$libname="LIBSSL";
|
||||
}
|
||||
if ($do_crypto) {
|
||||
$libname="LIBCRYPTO";
|
||||
}
|
||||
}
|
||||
|
||||
# If no platform is given, assume WIN32
|
||||
if ($W32 + $VMS + $linux == 0) {
|
||||
$W32 = 1;
|
||||
}
|
||||
die "Please, only one platform at a time"
|
||||
if ($W32 + $VMS + $linux > 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/tls1.h";
|
||||
$ssl.=" include/openssl/srtp.h";
|
||||
|
||||
# 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/openssl/crypto.h";
|
||||
$crypto.=" include/internal/o_dir.h";
|
||||
$crypto.=" include/internal/o_str.h";
|
||||
$crypto.=" include/internal/err.h";
|
||||
$crypto.=" include/internal/asn1t.h";
|
||||
$crypto.=" include/openssl/des.h" ; # unless $no_des;
|
||||
$crypto.=" include/openssl/idea.h" ; # unless $no_idea;
|
||||
$crypto.=" include/openssl/rc4.h" ; # unless $no_rc4;
|
||||
$crypto.=" include/openssl/rc5.h" ; # unless $no_rc5;
|
||||
$crypto.=" include/openssl/rc2.h" ; # unless $no_rc2;
|
||||
$crypto.=" include/openssl/blowfish.h" ; # unless $no_bf;
|
||||
$crypto.=" include/openssl/cast.h" ; # unless $no_cast;
|
||||
$crypto.=" include/openssl/whrlpool.h" ;
|
||||
$crypto.=" include/openssl/md2.h" ; # unless $no_md2;
|
||||
$crypto.=" include/openssl/md4.h" ; # unless $no_md4;
|
||||
$crypto.=" include/openssl/md5.h" ; # unless $no_md5;
|
||||
$crypto.=" include/openssl/mdc2.h" ; # unless $no_mdc2;
|
||||
$crypto.=" include/openssl/sha.h" ; # unless $no_sha;
|
||||
$crypto.=" include/openssl/ripemd.h" ; # unless $no_ripemd;
|
||||
$crypto.=" include/openssl/aes.h" ; # unless $no_aes;
|
||||
$crypto.=" include/openssl/camellia.h" ; # unless $no_camellia;
|
||||
$crypto.=" include/openssl/seed.h"; # unless $no_seed;
|
||||
|
||||
$crypto.=" include/openssl/bn.h";
|
||||
$crypto.=" include/openssl/rsa.h" ; # unless $no_rsa;
|
||||
$crypto.=" include/openssl/dsa.h" ; # unless $no_dsa;
|
||||
$crypto.=" include/openssl/dh.h" ; # unless $no_dh;
|
||||
$crypto.=" include/openssl/ec.h" ; # unless $no_ec;
|
||||
$crypto.=" include/openssl/hmac.h" ; # unless $no_hmac;
|
||||
$crypto.=" include/openssl/cmac.h" ;
|
||||
|
||||
$crypto.=" include/openssl/engine.h"; # unless $no_engine;
|
||||
$crypto.=" include/openssl/stack.h" ; # unless $no_stack;
|
||||
$crypto.=" include/openssl/buffer.h" ; # unless $no_buffer;
|
||||
$crypto.=" include/openssl/bio.h" ; # unless $no_bio;
|
||||
$crypto.=" include/internal/dso.h" ; # unless $no_dso;
|
||||
$crypto.=" include/openssl/lhash.h" ; # unless $no_lhash;
|
||||
$crypto.=" include/openssl/conf.h";
|
||||
$crypto.=" include/openssl/txt_db.h";
|
||||
|
||||
$crypto.=" include/openssl/evp.h" ; # unless $no_evp;
|
||||
$crypto.=" include/openssl/objects.h";
|
||||
$crypto.=" include/openssl/pem.h";
|
||||
#$crypto.=" include/openssl/meth.h";
|
||||
$crypto.=" include/openssl/asn1.h";
|
||||
$crypto.=" include/openssl/asn1t.h";
|
||||
$crypto.=" include/openssl/err.h" ; # unless $no_err;
|
||||
$crypto.=" include/openssl/pkcs7.h";
|
||||
$crypto.=" include/openssl/pkcs12.h";
|
||||
$crypto.=" include/openssl/x509.h";
|
||||
$crypto.=" include/openssl/x509_vfy.h";
|
||||
$crypto.=" include/openssl/x509v3.h";
|
||||
$crypto.=" include/openssl/ts.h";
|
||||
$crypto.=" include/openssl/rand.h";
|
||||
$crypto.=" include/openssl/comp.h" ; # unless $no_comp;
|
||||
$crypto.=" include/openssl/ocsp.h";
|
||||
$crypto.=" include/openssl/ui.h";
|
||||
#$crypto.=" include/openssl/store.h";
|
||||
$crypto.=" include/openssl/cms.h";
|
||||
$crypto.=" include/openssl/srp.h";
|
||||
$crypto.=" include/openssl/modes.h";
|
||||
$crypto.=" include/openssl/async.h";
|
||||
$crypto.=" include/openssl/ct.h";
|
||||
$crypto.=" include/openssl/kdf.h";
|
||||
|
||||
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 "TRACE: start reading $fn\n" if $trace;
|
||||
open(IN,"<$fn") || die "unable to open $fn:$!\n";
|
||||
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),
|
||||
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 it's 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 /\*\//) { # multiline 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*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: chaged 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);
|
||||
$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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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 globale 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;
|
||||
}
|
||||
}
|
||||
|
||||
# Prune the returned symbols
|
||||
|
||||
delete $syms{"bn_dump1"};
|
||||
$platform{"BIO_s_log"} .= ",!WIN32,!macintosh";
|
||||
|
||||
$platform{"PEM_read_NS_CERT_SEQ"} = "VMS";
|
||||
$platform{"PEM_write_NS_CERT_SEQ"} = "VMS";
|
||||
$platform{"PEM_read_P8_PRIV_KEY_INFO"} = "VMS";
|
||||
$platform{"PEM_write_P8_PRIV_KEY_INFO"} = "VMS";
|
||||
|
||||
# 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} == 1) { 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)
|
||||
{ $libname.="32"; }
|
||||
|
||||
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";
|
||||
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 ($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+)$/;
|
||||
# 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, -1) < substr($tvnums, -1)
|
||||
|| 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 DEPRECTEDIN: $decl\n";
|
||||
my $info1 .= "#INFO:";
|
||||
$info1 .= join(',', @{$plats}) . ":";
|
||||
my $info2 = $info1;
|
||||
$info1 .= join(',',@{$algs}, $1) . ";";
|
||||
$info2 .= join(',',@{$algs}) . ";";
|
||||
return $info1 . $2 . ";" . $info2;
|
||||
}
|
||||
Executable
+44
@@ -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";
|
||||
}
|
||||
+771
@@ -0,0 +1,771 @@
|
||||
#! /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
|
||||
|
||||
my $config = "crypto/err/openssl.ec";
|
||||
my $debug = 0;
|
||||
my $unref = 0;
|
||||
my $rebuild = 0;
|
||||
my $static = 1;
|
||||
my $recurse = 0;
|
||||
my $reindex = 0;
|
||||
my $dowrite = 0;
|
||||
my $staticloader = "";
|
||||
my @t = localtime();
|
||||
my $YEAR = @t[5] + 1900;
|
||||
|
||||
my $pack_errcode;
|
||||
my $load_errcode;
|
||||
|
||||
my $errcount;
|
||||
my $year = (localtime)[5] + 1900;
|
||||
|
||||
while (@ARGV) {
|
||||
my $arg = $ARGV[0];
|
||||
if($arg eq "-conf") {
|
||||
shift @ARGV;
|
||||
$config = shift @ARGV;
|
||||
} elsif($arg eq "-hprefix") {
|
||||
shift @ARGV;
|
||||
$hprefix = shift @ARGV;
|
||||
} elsif($arg eq "-debug") {
|
||||
$debug = 1;
|
||||
$unref = 1;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-rebuild") {
|
||||
$rebuild = 1;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-recurse") {
|
||||
$recurse = 1;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-reindex") {
|
||||
$reindex = 1;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-nostatic") {
|
||||
$static = 0;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-staticloader") {
|
||||
$staticloader = "static ";
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-unref") {
|
||||
$unref = 1;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-write") {
|
||||
$dowrite = 1;
|
||||
shift @ARGV;
|
||||
} elsif($arg eq "-help" || $arg eq "-h" || $arg eq "-?" || $arg eq "--help") {
|
||||
print STDERR <<"EOF";
|
||||
mkerr.pl [options] ...
|
||||
|
||||
Options:
|
||||
|
||||
-conf F Use the config file F instead of the default one:
|
||||
crypto/err/openssl.ec
|
||||
|
||||
-hprefix P Prepend the filenames in generated #include <header>
|
||||
statements with prefix P. Default: 'openssl/' (without
|
||||
the quotes, naturally)
|
||||
NOTE: not used any more because our include directory
|
||||
structure has changed.
|
||||
|
||||
-debug Turn on debugging verbose output on stderr.
|
||||
|
||||
-rebuild Rebuild all header and C source files, irrespective of the
|
||||
fact if any error or function codes have been added/removed.
|
||||
Default: only update files for libraries which saw change
|
||||
(of course, this requires '-write' as well, or no
|
||||
files will be touched!)
|
||||
|
||||
-recurse scan a preconfigured set of directories / files for error and
|
||||
function codes:
|
||||
(<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>, <apps/*.c>)
|
||||
When this option is NOT specified, the filelist is taken from
|
||||
the commandline instead. Here, wildcards may be embedded. (Be
|
||||
sure to escape those to prevent the shell from expanding them
|
||||
for you when you wish mkerr.pl to do so instead.)
|
||||
Default: take file list to scan from the command line.
|
||||
|
||||
-reindex Discard the numeric values previously assigned to the error
|
||||
and function codes as extracted from the scanned header files;
|
||||
instead renumber all of them starting from 100. (Note that
|
||||
the numbers assigned through 'R' records in the config file
|
||||
remain intact.)
|
||||
Default: keep previously assigned numbers. (You are warned
|
||||
when collisions are detected.)
|
||||
|
||||
-nostatic Generates a different source code, where these additional
|
||||
functions are generated for each library specified in the
|
||||
config file:
|
||||
void ERR_load_<LIB>_strings(void);
|
||||
void ERR_unload_<LIB>_strings(void);
|
||||
void ERR_<LIB>_error(int f, int r, char *fn, int ln);
|
||||
#define <LIB>err(f,r) ERR_<LIB>_error(f,r,OPENSSL_FILE,OPENSSL_LINE)
|
||||
while the code facilitates the use of these in an environment
|
||||
where the error support routines are dynamically loaded at
|
||||
runtime.
|
||||
Default: 'static' code generation.
|
||||
|
||||
-staticloader Prefix generated functions with the 'static' scope modifier.
|
||||
Default: don't write any scope modifier prefix.
|
||||
|
||||
-unref Print out unreferenced function and reason codes.
|
||||
|
||||
-write Actually (over)write the generated code to the header and C
|
||||
source files as assigned to each library through the config
|
||||
file.
|
||||
Default: don't write.
|
||||
|
||||
-help / -h / -? / --help Show this help text.
|
||||
|
||||
... Additional arguments are added to the file list to scan,
|
||||
assuming '-recurse' was NOT specified on the command line.
|
||||
|
||||
EOF
|
||||
exit 1;
|
||||
} else {
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
if($recurse) {
|
||||
@source = ( <crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>, <ssl/*/*.c> )
|
||||
} else {
|
||||
@source = @ARGV;
|
||||
}
|
||||
|
||||
# Read in the config file
|
||||
|
||||
open(IN, "<$config") || die "Can't open config file $config";
|
||||
|
||||
# Parse config file
|
||||
|
||||
while(<IN>)
|
||||
{
|
||||
if(/^L\s+(\S+)\s+(\S+)\s+(\S+)/) {
|
||||
$hinc{$1} = $2;
|
||||
$libinc{$2} = $1;
|
||||
$cskip{$3} = $1;
|
||||
if($3 ne "NONE") {
|
||||
$csrc{$1} = $3;
|
||||
$fmax{$1} = 100;
|
||||
$rmax{$1} = 100;
|
||||
$fassigned{$1} = ":";
|
||||
$rassigned{$1} = ":";
|
||||
$fnew{$1} = 0;
|
||||
$rnew{$1} = 0;
|
||||
}
|
||||
} elsif (/^F\s+(\S+)/) {
|
||||
# Add extra function with $1
|
||||
} elsif (/^R\s+(\S+)\s+(\S+)/) {
|
||||
$rextra{$1} = $2;
|
||||
$rcodes{$1} = $2;
|
||||
}
|
||||
}
|
||||
|
||||
close IN;
|
||||
|
||||
# Scan each header file in turn and make a list of error codes
|
||||
# and function names
|
||||
|
||||
while (($hdr, $lib) = each %libinc)
|
||||
{
|
||||
next if($hdr eq "NONE");
|
||||
print STDERR "Scanning header file $hdr\n" if $debug;
|
||||
my $line = "", $def= "", $linenr = 0, $gotfile = 0, $cpp = 0;
|
||||
if (open(IN, "<$hdr")) {
|
||||
$gotfile = 1;
|
||||
while(<IN>) {
|
||||
$linenr++;
|
||||
print STDERR "line: $linenr\r" if $debug;
|
||||
|
||||
last if(/BEGIN\s+ERROR\s+CODES/);
|
||||
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 .= $_;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print STDERR " \r" if $debug;
|
||||
$defnr = 0;
|
||||
# Delete any DECLARE_ macros
|
||||
$def =~ s/DECLARE_\w+\([\w,\s]+\)//gs;
|
||||
foreach (split /;/, $def) {
|
||||
$defnr++;
|
||||
print STDERR "def: $defnr\r" if $debug;
|
||||
|
||||
# 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;
|
||||
|
||||
if (/(\w+)\s*\(\).*/s) { # first token prior [first] () is
|
||||
my $name = $1; # a function name!
|
||||
$name =~ tr/[a-z]/[A-Z]/;
|
||||
$ftrans{$name} = $1;
|
||||
} elsif (/[\(\)]/ and not (/=/)) {
|
||||
print STDERR "Header $hdr: cannot parse: $_;\n";
|
||||
}
|
||||
}
|
||||
|
||||
print STDERR " \r" if $debug;
|
||||
|
||||
next if $reindex;
|
||||
|
||||
# Scan function and reason codes and store them: keep a note of the
|
||||
# maximum code used.
|
||||
|
||||
if ($gotfile) {
|
||||
while(<IN>) {
|
||||
if(/^\#\s*define\s+(\S+)\s+(\S+)/) {
|
||||
$name = $1;
|
||||
$code = $2;
|
||||
next if $name =~ /^${lib}err/;
|
||||
unless($name =~ /^${lib}_([RF])_(\w+)$/) {
|
||||
print STDERR "Invalid error code $name\n";
|
||||
next;
|
||||
}
|
||||
if($1 eq "R") {
|
||||
$rcodes{$name} = $code;
|
||||
if ($rassigned{$lib} =~ /:$code:/) {
|
||||
print STDERR "!! ERROR: $lib reason code $code assigned twice (collision at $name)\n";
|
||||
++$errcount;
|
||||
}
|
||||
$rassigned{$lib} .= "$code:";
|
||||
if(!(exists $rextra{$name}) &&
|
||||
($code > $rmax{$lib}) ) {
|
||||
$rmax{$lib} = $code;
|
||||
}
|
||||
} else {
|
||||
if ($fassigned{$lib} =~ /:$code:/) {
|
||||
print STDERR "!! ERROR: $lib function code $code assigned twice (collision at $name)\n";
|
||||
++$errcount;
|
||||
}
|
||||
$fassigned{$lib} .= "$code:";
|
||||
if($code > $fmax{$lib}) {
|
||||
$fmax{$lib} = $code;
|
||||
}
|
||||
$fcodes{$name} = $code;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
if (defined($fmax{$lib})) {
|
||||
print STDERR "Max function code fmax" . "{" . "$lib" . "} = $fmax{$lib}\n";
|
||||
$fassigned{$lib} =~ m/^:(.*):$/;
|
||||
@fassigned = sort {$a <=> $b} split(":", $1);
|
||||
print STDERR " @fassigned\n";
|
||||
}
|
||||
if (defined($rmax{$lib})) {
|
||||
print STDERR "Max reason code rmax" . "{" . "$lib" . "} = $rmax{$lib}\n";
|
||||
$rassigned{$lib} =~ m/^:(.*):$/;
|
||||
@rassigned = sort {$a <=> $b} split(":", $1);
|
||||
print STDERR " @rassigned\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ($lib eq "SSL") {
|
||||
if ($rmax{$lib} >= 1000) {
|
||||
print STDERR "!! ERROR: SSL error codes 1000+ are reserved for alerts.\n";
|
||||
print STDERR "!! Any new alerts must be added to $config.\n";
|
||||
++$errcount;
|
||||
print STDERR "\n";
|
||||
}
|
||||
}
|
||||
close IN;
|
||||
}
|
||||
|
||||
# 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 %ufcodes and %urcodes
|
||||
# so all those unreferenced can be printed out.
|
||||
|
||||
|
||||
foreach $file (@source) {
|
||||
# Don't parse the error source file.
|
||||
next if exists $cskip{$file};
|
||||
print STDERR "File loaded: ".$file."\r" if $debug;
|
||||
open(IN, "<$file") || die "Can't open source file $file\n";
|
||||
my $func;
|
||||
my $linenr = 0;
|
||||
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(/(([A-Z0-9]+)_F_([A-Z0-9_]+))/) {
|
||||
next unless exists $csrc{$2};
|
||||
next if($1 eq "BIO_F_BUFFER_CTX");
|
||||
$ufcodes{$1} = 1;
|
||||
if(!exists $fcodes{$1}) {
|
||||
$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";
|
||||
$errcount++;
|
||||
}
|
||||
print STDERR "Function: $1\t= $fcodes{$1} (lib: $2, name: $3)\n" if $debug;
|
||||
}
|
||||
if(/(([A-Z0-9]+)_R_[A-Z0-9_]+)/) {
|
||||
next unless exists $csrc{$2};
|
||||
$urcodes{$1} = 1;
|
||||
if(!exists $rcodes{$1}) {
|
||||
$rcodes{$1} = "X";
|
||||
$rnew{$2}++;
|
||||
}
|
||||
print STDERR "Reason: $1\t= $rcodes{$1} (lib: $2)\n" if $debug;
|
||||
}
|
||||
}
|
||||
close IN;
|
||||
}
|
||||
print STDERR " \n" if $debug;
|
||||
|
||||
# Now process each library in turn.
|
||||
|
||||
foreach $lib (keys %csrc)
|
||||
{
|
||||
my $hfile = $hinc{$lib};
|
||||
my $cfile = $csrc{$lib};
|
||||
if(!$fnew{$lib} && !$rnew{$lib}) {
|
||||
next unless $rebuild;
|
||||
} else {
|
||||
print STDERR "$lib:\t\t$fnew{$lib} New Functions,";
|
||||
print STDERR " $rnew{$lib} New Reasons.\n";
|
||||
next unless $dowrite;
|
||||
}
|
||||
|
||||
# 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);
|
||||
|
||||
# Rewrite the header file
|
||||
|
||||
$cpp = 0;
|
||||
$cplusplus = 0;
|
||||
if (open(IN, "<$hfile")) {
|
||||
# Copy across the old file
|
||||
while(<IN>) {
|
||||
$cplusplus = $cpp if /^#.*ifdef.*cplusplus/;
|
||||
$cpp++ if /^#\s*if/;
|
||||
$cpp-- if /^#\s*endif/;
|
||||
push @out, $_;
|
||||
last if (/BEGIN ERROR CODES/);
|
||||
}
|
||||
close IN;
|
||||
} else {
|
||||
$cpp = 1;
|
||||
$cplusplus = 1;
|
||||
push @out,
|
||||
"/*\n",
|
||||
" * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.\n",
|
||||
" *\n",
|
||||
" * Licensed under the OpenSSL license (the \"License\"). You may not use\n",
|
||||
" * this file except in compliance with the License. You can obtain a copy\n",
|
||||
" * in the file LICENSE in the source distribution or at\n",
|
||||
" * https://www.openssl.org/source/license.html\n",
|
||||
" */\n",
|
||||
"\n",
|
||||
"#ifndef HEADER_${lib}_ERR_H\n",
|
||||
"# define HEADER_${lib}_ERR_H\n",
|
||||
"\n",
|
||||
"# ifdef __cplusplus\n",
|
||||
"extern \"C\" {\n",
|
||||
"# endif\n",
|
||||
"\n",
|
||||
"/* BEGIN ERROR CODES */\n";
|
||||
}
|
||||
open (OUT, ">$hfile") || die "Can't Open File $hfile for writing\n";
|
||||
|
||||
print OUT @out;
|
||||
undef @out;
|
||||
print OUT <<"EOF";
|
||||
/*
|
||||
* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
* made after this point may be overwritten when the script is next run.
|
||||
*/
|
||||
|
||||
EOF
|
||||
if($static) {
|
||||
print OUT <<"EOF";
|
||||
${staticloader}int ERR_load_${lib}_strings(void);
|
||||
|
||||
EOF
|
||||
} else {
|
||||
print OUT <<"EOF";
|
||||
${staticloader}int ERR_load_${lib}_strings(void);
|
||||
${staticloader}void ERR_unload_${lib}_strings(void);
|
||||
${staticloader}void ERR_${lib}_error(int function, int reason, char *file, int line);
|
||||
# define ${lib}err(f,r) ERR_${lib}_error((f),(r),OPENSSL_FILE,OPENSSL_LINE)
|
||||
|
||||
EOF
|
||||
}
|
||||
print OUT <<"EOF";
|
||||
/* Error codes for the $lib functions. */
|
||||
|
||||
/* Function codes. */
|
||||
EOF
|
||||
|
||||
foreach $i (@function) {
|
||||
$z=48 - length($i);
|
||||
if($fcodes{$i} eq "X") {
|
||||
$fassigned{$lib} =~ m/^:([^:]*):/;
|
||||
$findcode = $1;
|
||||
if (!defined($findcode)) {
|
||||
$findcode = $fmax{$lib};
|
||||
}
|
||||
while ($fassigned{$lib} =~ m/:$findcode:/) {
|
||||
$findcode++;
|
||||
}
|
||||
$fcodes{$i} = $findcode;
|
||||
$fassigned{$lib} .= "$findcode:";
|
||||
print STDERR "New Function code $i\n" if $debug;
|
||||
}
|
||||
printf OUT "# define $i%s $fcodes{$i}\n"," " x $z;
|
||||
}
|
||||
|
||||
print OUT "\n/* Reason codes. */\n";
|
||||
|
||||
foreach $i (@reasons) {
|
||||
$z=48 - length($i);
|
||||
if($rcodes{$i} eq "X") {
|
||||
$rassigned{$lib} =~ m/^:([^:]*):/;
|
||||
$findcode = $1;
|
||||
if (!defined($findcode)) {
|
||||
$findcode = $rmax{$lib};
|
||||
}
|
||||
while ($rassigned{$lib} =~ m/:$findcode:/) {
|
||||
$findcode++;
|
||||
}
|
||||
$rcodes{$i} = $findcode;
|
||||
$rassigned{$lib} .= "$findcode:";
|
||||
print STDERR "New Reason code $i\n" if $debug;
|
||||
}
|
||||
printf OUT "# define $i%s $rcodes{$i}\n"," " x $z;
|
||||
}
|
||||
print OUT <<"EOF";
|
||||
|
||||
EOF
|
||||
do {
|
||||
if ($cplusplus == $cpp) {
|
||||
print OUT "#", " "x$cpp, "ifdef __cplusplus\n";
|
||||
print OUT "}\n";
|
||||
print OUT "#", " "x$cpp, "endif\n";
|
||||
}
|
||||
if ($cpp-- > 0) {
|
||||
print OUT "#", " "x$cpp, "endif\n";
|
||||
}
|
||||
} while ($cpp);
|
||||
close OUT;
|
||||
|
||||
# Rewrite the C source file containing the error details.
|
||||
|
||||
# First, read any existing reason string definitions:
|
||||
my %err_reason_strings;
|
||||
if (open(IN,"<$cfile")) {
|
||||
my $line = "";
|
||||
while (<IN>) {
|
||||
s|\R$||; # Better chomp
|
||||
$_ = $line . $_;
|
||||
$line = "";
|
||||
if (/{ERR_(FUNC|REASON)\(/) {
|
||||
if (/\b(${lib}_R_\w*)\b.*\"(.*)\"/) {
|
||||
$err_reason_strings{$1} = $2;
|
||||
} elsif (/\b${lib}_F_(\w*)\b.*\"(.*)\"/) {
|
||||
if (!exists $ftrans{$1} && ($1 ne $2)) {
|
||||
print STDERR "WARNING: Mismatched function string $2\n";
|
||||
$ftrans{$1} = $2;
|
||||
}
|
||||
} else {
|
||||
$line = $_;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(IN);
|
||||
}
|
||||
|
||||
|
||||
my $hincf;
|
||||
if($static) {
|
||||
$hincf = $hfile;
|
||||
$hincf =~ s|.*include/||;
|
||||
if ($hincf =~ m|^openssl/|) {
|
||||
$hincf = "<${hincf}>";
|
||||
} else {
|
||||
$hincf = "\"${hincf}\"";
|
||||
}
|
||||
} else {
|
||||
$hincf = "\"$hfile\"";
|
||||
}
|
||||
|
||||
# If static we know the error code at compile time so use it
|
||||
# in error definitions.
|
||||
|
||||
if ($static)
|
||||
{
|
||||
$pack_errcode = "ERR_LIB_${lib}";
|
||||
$load_errcode = "0";
|
||||
}
|
||||
else
|
||||
{
|
||||
$pack_errcode = "0";
|
||||
$load_errcode = "ERR_LIB_${lib}";
|
||||
}
|
||||
|
||||
|
||||
open (OUT,">$cfile") || die "Can't open $cfile for writing";
|
||||
|
||||
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 <stdio.h>
|
||||
#include <openssl/err.h>
|
||||
#include $hincf
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
|
||||
# define ERR_FUNC(func) ERR_PACK($pack_errcode,func,0)
|
||||
# define ERR_REASON(reason) ERR_PACK($pack_errcode,0,reason)
|
||||
|
||||
static ERR_STRING_DATA ${lib}_str_functs[] = {
|
||||
EOF
|
||||
# Add each function code: if a function name is found then use it.
|
||||
foreach $i (@function) {
|
||||
my $fn;
|
||||
$i =~ /^${lib}_F_(\S+)$/;
|
||||
$fn = $1;
|
||||
if(exists $ftrans{$fn}) {
|
||||
$fn = $ftrans{$fn};
|
||||
}
|
||||
# print OUT "{ERR_PACK($pack_errcode,$i,0),\t\"$fn\"},\n";
|
||||
if(length($i) + length($fn) > 57) {
|
||||
print OUT " {ERR_FUNC($i),\n \"$fn\"},\n";
|
||||
} else {
|
||||
print OUT " {ERR_FUNC($i), \"$fn\"},\n";
|
||||
}
|
||||
}
|
||||
print OUT <<"EOF";
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
static ERR_STRING_DATA ${lib}_str_reasons[] = {
|
||||
EOF
|
||||
# Add each reason code.
|
||||
foreach $i (@reasons) {
|
||||
my $rn;
|
||||
my $rstr = "ERR_REASON($i)";
|
||||
if (exists $err_reason_strings{$i}) {
|
||||
$rn = $err_reason_strings{$i};
|
||||
} else {
|
||||
$i =~ /^${lib}_R_(\S+)$/;
|
||||
$rn = $1;
|
||||
$rn =~ tr/_[A-Z]/ [a-z]/;
|
||||
}
|
||||
if(length($i) + length($rn) > 55) {
|
||||
print OUT " {${rstr},\n \"$rn\"},\n";
|
||||
} else {
|
||||
print OUT " {${rstr}, \"$rn\"},\n";
|
||||
}
|
||||
}
|
||||
if($static) {
|
||||
print OUT <<"EOF";
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
${staticloader}int ERR_load_${lib}_strings(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
|
||||
if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL) {
|
||||
ERR_load_strings($load_errcode, ${lib}_str_functs);
|
||||
ERR_load_strings($load_errcode, ${lib}_str_reasons);
|
||||
}
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
EOF
|
||||
} else {
|
||||
print OUT <<"EOF";
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef ${lib}_LIB_NAME
|
||||
static ERR_STRING_DATA ${lib}_lib_name[] = {
|
||||
{0, ${lib}_LIB_NAME},
|
||||
{0, NULL}
|
||||
};
|
||||
#endif
|
||||
|
||||
static int ${lib}_lib_error_code = 0;
|
||||
static int ${lib}_error_init = 1;
|
||||
|
||||
${staticloader}int ERR_load_${lib}_strings(void)
|
||||
{
|
||||
if (${lib}_lib_error_code == 0)
|
||||
${lib}_lib_error_code = ERR_get_next_error_library();
|
||||
|
||||
if (${lib}_error_init) {
|
||||
${lib}_error_init = 0;
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
ERR_load_strings(${lib}_lib_error_code, ${lib}_str_functs);
|
||||
ERR_load_strings(${lib}_lib_error_code, ${lib}_str_reasons);
|
||||
#endif
|
||||
|
||||
#ifdef ${lib}_LIB_NAME
|
||||
${lib}_lib_name->error = ERR_PACK(${lib}_lib_error_code, 0, 0);
|
||||
ERR_load_strings(0, ${lib}_lib_name);
|
||||
#endif
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
${staticloader}void ERR_unload_${lib}_strings(void)
|
||||
{
|
||||
if (${lib}_error_init == 0) {
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
ERR_unload_strings(${lib}_lib_error_code, ${lib}_str_functs);
|
||||
ERR_unload_strings(${lib}_lib_error_code, ${lib}_str_reasons);
|
||||
#endif
|
||||
|
||||
#ifdef ${lib}_LIB_NAME
|
||||
ERR_unload_strings(0, ${lib}_lib_name);
|
||||
#endif
|
||||
${lib}_error_init = 1;
|
||||
}
|
||||
}
|
||||
|
||||
${staticloader}void ERR_${lib}_error(int function, int reason, char *file, int line)
|
||||
{
|
||||
if (${lib}_lib_error_code == 0)
|
||||
${lib}_lib_error_code = ERR_get_next_error_library();
|
||||
ERR_PUT_error(${lib}_lib_error_code, function, reason, file, line);
|
||||
}
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
close OUT;
|
||||
undef %err_reason_strings;
|
||||
}
|
||||
|
||||
if($debug && %notrans) {
|
||||
print STDERR "The following function codes were not translated:\n";
|
||||
foreach(sort keys %notrans)
|
||||
{
|
||||
print STDERR "$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Make a list of unreferenced function and reason codes
|
||||
|
||||
foreach (keys %fcodes) {
|
||||
push (@funref, $_) unless exists $ufcodes{$_};
|
||||
}
|
||||
|
||||
foreach (keys %rcodes) {
|
||||
push (@runref, $_) unless exists $urcodes{$_};
|
||||
}
|
||||
|
||||
if($unref && @funref) {
|
||||
print STDERR "The following function codes were not referenced:\n";
|
||||
foreach(sort @funref)
|
||||
{
|
||||
print STDERR "$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
if($unref && @runref) {
|
||||
print STDERR "The following reason codes were not referenced:\n";
|
||||
foreach(sort @runref)
|
||||
{
|
||||
print STDERR "$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
if($errcount) {
|
||||
print STDERR "There were errors, failing...\n\n";
|
||||
exit $errcount;
|
||||
}
|
||||
|
||||
Executable
+83
@@ -0,0 +1,83 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2006-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 lib ".";
|
||||
use configdata;
|
||||
use File::Spec::Functions;
|
||||
|
||||
my $versionfile = catfile($config{sourcedir},"include/openssl/opensslv.h");
|
||||
|
||||
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);
|
||||
|
||||
$filename = $ARGV[0]; $filename =~ /(.*)\.([^.]+)$/;
|
||||
$basename = $1;
|
||||
$extname = $2;
|
||||
|
||||
if ($extname =~ /dll/i) { $description = "OpenSSL shared library"; }
|
||||
else { $description = "OpenSSL application"; }
|
||||
|
||||
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_DLL
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
// Required:
|
||||
VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
|
||||
VALUE "FileDescription", "$description\\0"
|
||||
VALUE "FileVersion", "$version\\0"
|
||||
VALUE "InternalName", "$basename\\0"
|
||||
VALUE "OriginalFilename", "$filename\\0"
|
||||
VALUE "ProductName", "The OpenSSL Toolkit\\0"
|
||||
VALUE "ProductVersion", "$version\\0"
|
||||
// Optional:
|
||||
//VALUE "Comments", "\\0"
|
||||
VALUE "LegalCopyright", "Copyright 1998-2016 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
|
||||
___
|
||||
Executable
+175
@@ -0,0 +1,175 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# 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
|
||||
|
||||
#
|
||||
# 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 possition 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
|
||||
Executable
+26
@@ -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
|
||||
@@ -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__
|
||||
@@ -0,0 +1,1051 @@
|
||||
# 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 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 indir app fuzz perlapp test perltest
|
||||
run));
|
||||
@EXPORT_OK = (@Test::More::EXPORT_OK, qw(bldtop_dir bldtop_file
|
||||
srctop_dir srctop_file
|
||||
data_file
|
||||
pipe with cmdstr quotify));
|
||||
|
||||
=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;
|
||||
|
||||
|
||||
# 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 value that will be
|
||||
# returned by run().
|
||||
# NOTE: When run() gets the option 'capture => 1', this hook is ignored.
|
||||
exit_checker => sub { return shift == 0 ? 1 : 0 },
|
||||
|
||||
);
|
||||
|
||||
# Debug flag, to be set manually when needed
|
||||
my $debug = 0;
|
||||
|
||||
# Declare some utility functions that are defined at the end
|
||||
sub bldtop_file;
|
||||
sub bldtop_dir;
|
||||
sub srctop_file;
|
||||
sub srctop_dir;
|
||||
sub quotify;
|
||||
|
||||
# Declare some private functions that are defined at the end
|
||||
sub __env;
|
||||
sub __cwd;
|
||||
sub __apps_file;
|
||||
sub __results_file;
|
||||
sub __fixup_cmd;
|
||||
sub __build_cmd;
|
||||
|
||||
=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 preceives 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 preceives 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<app ARRAYREF, OPTS>
|
||||
|
||||
=item B<test ARRAYREF, OPTS>
|
||||
|
||||
Both of these functions take a reference to a list that is a command and
|
||||
its arguments, and some additional options (described further on).
|
||||
|
||||
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>).
|
||||
|
||||
Both return a CODEREF to be used by C<run>, C<pipe> or C<cmdstr>.
|
||||
|
||||
The options that both C<app> and C<test> 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<perlapp ARRAYREF, OPTS>
|
||||
|
||||
=item B<perltest ARRAYREF, OPTS>
|
||||
|
||||
Both these functions function the same way as B<app> and B<test>, except
|
||||
that they expect the command to be a perl script. Also, they support one
|
||||
more option:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<interpreter_args =E<gt> ARRAYref>
|
||||
|
||||
The array reference is a set of arguments for perl 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
|
||||
|
||||
=cut
|
||||
|
||||
sub app {
|
||||
my $cmd = shift;
|
||||
my %opts = @_;
|
||||
return sub { my $num = shift;
|
||||
return __build_cmd($num, \&__apps_file, $cmd, %opts); }
|
||||
}
|
||||
|
||||
sub fuzz {
|
||||
my $cmd = shift;
|
||||
my %opts = @_;
|
||||
return sub { my $num = shift;
|
||||
return __build_cmd($num, \&__fuzz_file, $cmd, %opts); }
|
||||
}
|
||||
|
||||
sub test {
|
||||
my $cmd = shift;
|
||||
my %opts = @_;
|
||||
return sub { my $num = shift;
|
||||
return __build_cmd($num, \&__test_file, $cmd, %opts); }
|
||||
}
|
||||
|
||||
sub perlapp {
|
||||
my $cmd = shift;
|
||||
my %opts = @_;
|
||||
return sub { my $num = shift;
|
||||
return __build_cmd($num, \&__perlapps_file, $cmd, %opts); }
|
||||
}
|
||||
|
||||
sub perltest {
|
||||
my $cmd = shift;
|
||||
my %opts = @_;
|
||||
return sub { my $num = shift;
|
||||
return __build_cmd($num, \&__perltest_file, $cmd, %opts); }
|
||||
}
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<run CODEREF, OPTS>
|
||||
|
||||
This CODEREF is expected to be the value return by C<app> or C<test>,
|
||||
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.
|
||||
|
||||
=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;
|
||||
|
||||
# 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();
|
||||
}
|
||||
|
||||
# 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}) {
|
||||
@r = `$prefix$cmd`;
|
||||
$e = ($? & 0x7f) ? ($? & 0x7f)|0x80 : ($? >> 8);
|
||||
} else {
|
||||
system("$prefix$cmd");
|
||||
$e = ($? & 0x7f) ? ($? & 0x7f)|0x80 : ($? >> 8);
|
||||
$r = $hooks{exit_checker}->($e);
|
||||
}
|
||||
|
||||
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_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 temporarly 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 additiona 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->($_) } @_;
|
||||
}
|
||||
|
||||
######################################################################
|
||||
# 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} = $ENV{SRCTOP} || $ENV{TOP};
|
||||
$directories{BLDTOP} = $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;
|
||||
};
|
||||
|
||||
sub __srctop_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
return catfile($directories{SRCTOP},@_,$f);
|
||||
}
|
||||
|
||||
sub __srctop_dir {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
return catdir($directories{SRCTOP},@_);
|
||||
}
|
||||
|
||||
sub __bldtop_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
return catfile($directories{BLDTOP},@_,$f);
|
||||
}
|
||||
|
||||
sub __bldtop_dir {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
return catdir($directories{BLDTOP},@_);
|
||||
}
|
||||
|
||||
sub __exeext {
|
||||
my $ext = "";
|
||||
if ($^O eq "VMS" ) { # VMS
|
||||
$ext = ".exe";
|
||||
} elsif ($^O eq "MSWin32") { # Windows
|
||||
$ext = ".exe";
|
||||
}
|
||||
return $ENV{"EXE_EXT"} || $ext;
|
||||
}
|
||||
|
||||
sub __test_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
my $out = catfile($directories{BLDTEST},@_,$f . __exeext());
|
||||
$out = catfile($directories{SRCTEST},@_,$f) unless -x $out;
|
||||
return $out;
|
||||
}
|
||||
|
||||
sub __perltest_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
my $out = catfile($directories{BLDTEST},@_,$f);
|
||||
$out = catfile($directories{SRCTEST},@_,$f) unless -f $out;
|
||||
return ($^X, $out);
|
||||
}
|
||||
|
||||
sub __apps_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
my $out = catfile($directories{BLDAPPS},@_,$f . __exeext());
|
||||
$out = catfile($directories{SRCAPPS},@_,$f) unless -x $out;
|
||||
return $out;
|
||||
}
|
||||
|
||||
sub __fuzz_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
my $out = catfile($directories{BLDFUZZ},@_,$f . __exeext());
|
||||
$out = catfile($directories{SRCFUZZ},@_,$f) unless -x $out;
|
||||
return $out;
|
||||
}
|
||||
|
||||
sub __perlapps_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
my $out = catfile($directories{BLDAPPS},@_,$f);
|
||||
$out = catfile($directories{SRCAPPS},@_,$f) unless -f $out;
|
||||
return ($^X, $out);
|
||||
}
|
||||
|
||||
sub __data_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
return catfile($directories{SRCDATA},@_,$f);
|
||||
}
|
||||
|
||||
sub __results_file {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $f = pop;
|
||||
return catfile($directories{RESULTS},@_,$f);
|
||||
}
|
||||
|
||||
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_irectories )
|
||||
# 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;
|
||||
}
|
||||
|
||||
sub __fixup_cmd {
|
||||
my $prog = shift;
|
||||
my $exe_shell = shift;
|
||||
|
||||
my $prefix = __bldtop_file("util", "shlib_wrap.sh")." ";
|
||||
|
||||
if (defined($exe_shell)) {
|
||||
$prefix = "$exe_shell ";
|
||||
} elsif ($^O eq "VMS" ) { # VMS
|
||||
$prefix = ($prog =~ /^(?:[\$a-z0-9_]+:)?[<\[]/i ? "mcr " : "mcr []");
|
||||
} elsif ($^O eq "MSWin32") { # Windows
|
||||
$prefix = "";
|
||||
}
|
||||
|
||||
# We test both with and without extension. The reason
|
||||
# is that we might be passed a complete file spec, with
|
||||
# extension.
|
||||
if ( ! -x $prog ) {
|
||||
my $prog = "$prog";
|
||||
if ( ! -x $prog ) {
|
||||
$prog = undef;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
sub __build_cmd {
|
||||
BAIL_OUT("Must run setup() first") if (! $test_name);
|
||||
|
||||
my $num = shift;
|
||||
my $path_builder = shift;
|
||||
# Make a copy to not destroy the caller's array
|
||||
my @cmdarray = ( @{$_[0]} ); shift;
|
||||
my %opts = @_;
|
||||
|
||||
# We do a little dance, as $path_builder might return a list of
|
||||
# more than one. If so, only the first is to be considered a
|
||||
# program to fix up, the rest is part of the arguments. This
|
||||
# happens for perl scripts, where $path_builder will return
|
||||
# a list of two, $^X and the script name.
|
||||
# Also, if $path_builder returned more than one, we don't apply
|
||||
# the EXE_SHELL environment variable.
|
||||
my @prog = ($path_builder->(shift @cmdarray));
|
||||
my $first = shift @prog;
|
||||
my $exe_shell = @prog ? undef : $ENV{EXE_SHELL};
|
||||
my $cmd = __fixup_cmd($first, $exe_shell);
|
||||
if (@prog) {
|
||||
if ( ! -f $prog[0] ) {
|
||||
print STDERR "$prog[0] not found\n";
|
||||
$cmd = undef;
|
||||
}
|
||||
}
|
||||
my @args = (@prog, @cmdarray);
|
||||
if (defined($opts{interpreter_args})) {
|
||||
unshift @args, @{$opts{interpreter_args}};
|
||||
}
|
||||
|
||||
return () if !$cmd;
|
||||
|
||||
my $arg_str = "";
|
||||
my $null = devnull();
|
||||
|
||||
|
||||
$arg_str = " ".join(" ", quotify @args) if @args;
|
||||
|
||||
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 = "$cmd$arg_str$stdin$stdout$stderr";
|
||||
|
||||
$stderr=" 2> ".$null
|
||||
unless $stderr || !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE};
|
||||
|
||||
$cmd .= "$arg_str$stdin$stdout$stderr";
|
||||
|
||||
if ($debug) {
|
||||
print STDERR "DEBUG[__build_cmd]: \$cmd = \"$cmd\"\n";
|
||||
print STDERR "DEBUG[__build_cmd]: \$display_cmd = \"$display_cmd\"\n";
|
||||
}
|
||||
|
||||
return ($cmd, $display_cmd);
|
||||
}
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<Test::More>, L<Test::Harness>
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Richard Levitte E<lt>levitte@openssl.orgE<gt> with assitance and
|
||||
inspiration from Andy Polyakov E<lt>appro@openssl.org<gt>.
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -0,0 +1,158 @@
|
||||
# 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 default man section number
|
||||
to be used with the given .pod file. This number can be altered if
|
||||
the .pod file has a line like this:
|
||||
|
||||
=for comment openssl_manual_section: 4
|
||||
|
||||
=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$||;
|
||||
if (m|^=for\s+comment\s+openssl_manual_section:\s*([0-9])\s*$|) {
|
||||
print STDERR "DEBUG: Found man section number $1\n"
|
||||
if $defaults{debug};
|
||||
$podinfo{section} = $1;
|
||||
}
|
||||
|
||||
# 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;
|
||||
@@ -0,0 +1,242 @@
|
||||
# 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::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);
|
||||
}
|
||||
}
|
||||
|
||||
#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}) {
|
||||
my $extdata = ${$self->extension_data}{$key};
|
||||
$extensions .= pack("n", $key);
|
||||
$extensions .= pack("n", length($extdata));
|
||||
$extensions .= $extdata;
|
||||
if ($key == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) {
|
||||
$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 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;
|
||||
@@ -0,0 +1,456 @@
|
||||
# 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::Message;
|
||||
|
||||
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_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_NO_RENEGOTIATION => 100
|
||||
};
|
||||
|
||||
my %message_type = (
|
||||
MT_HELLO_REQUEST, "HelloRequest",
|
||||
MT_CLIENT_HELLO, "ClientHello",
|
||||
MT_SERVER_HELLO, "ServerHello",
|
||||
MT_NEW_SESSION_TICKET, "NewSessionTicket",
|
||||
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_STATUS_REQUEST => 5,
|
||||
EXT_ENCRYPT_THEN_MAC => 22,
|
||||
EXT_EXTENDED_MASTER_SECRET => 23,
|
||||
EXT_SESSION_TICKET => 35,
|
||||
# This extension does not exist and isn't recognised by OpenSSL.
|
||||
# We use it to test handling of duplicate extensions.
|
||||
EXT_DUPLICATE_EXTENSION => 1234
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
sub clear
|
||||
{
|
||||
$payload = "";
|
||||
$messlen = -1;
|
||||
$startoffset = -1;
|
||||
$server = 0;
|
||||
$success = 0;
|
||||
$end = 0;
|
||||
@message_rec_list = ();
|
||||
@message_frag_lens = ();
|
||||
}
|
||||
|
||||
#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 ($server) {
|
||||
TLSProxy::Record->server_ccs_seen(1);
|
||||
} else {
|
||||
TLSProxy::Record->client_ccs_seen(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";
|
||||
} elsif ($record->content_type == TLSProxy::Record::RT_ALERT) {
|
||||
my ($alertlev, $alertdesc) = unpack('CC', $record->decrypt_data);
|
||||
#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;
|
||||
}
|
||||
#All alerts end the test
|
||||
$end = 1;
|
||||
}
|
||||
|
||||
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_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 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
|
||||
};
|
||||
|
||||
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: Does not currently support re-encrypting
|
||||
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);
|
||||
# Don't support re-encryption.
|
||||
$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);
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -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;
|
||||
@@ -0,0 +1,553 @@
|
||||
# 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 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::ServerKeyExchange;
|
||||
use TLSProxy::NewSessionTicket;
|
||||
use Time::HiRes qw/usleep/;
|
||||
|
||||
my $have_IPv6 = 0;
|
||||
my $IP_factory;
|
||||
|
||||
sub new
|
||||
{
|
||||
my $class = shift;
|
||||
my ($filter,
|
||||
$execute,
|
||||
$cert,
|
||||
$debug) = @_;
|
||||
|
||||
my $self = {
|
||||
#Public read/write
|
||||
proxy_addr => "localhost",
|
||||
proxy_port => 4453,
|
||||
server_addr => "localhost",
|
||||
server_port => 4443,
|
||||
filter => $filter,
|
||||
serverflags => "",
|
||||
clientflags => "",
|
||||
serverconnects => 1,
|
||||
serverpid => 0,
|
||||
clientpid => 0,
|
||||
reneg => 0,
|
||||
|
||||
#Public read
|
||||
execute => $execute,
|
||||
cert => $cert,
|
||||
debug => $debug,
|
||||
cipherc => "",
|
||||
ciphers => "AES128-SHA",
|
||||
flight => -1,
|
||||
direction => -1,
|
||||
partial => ["", ""],
|
||||
record_list => [],
|
||||
message_list => [],
|
||||
};
|
||||
|
||||
# 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 code 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(@_); };
|
||||
$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(@_); };
|
||||
}
|
||||
}
|
||||
|
||||
# Create the Proxy socket
|
||||
my $proxaddr = $self->{proxy_addr};
|
||||
$proxaddr =~ s/[\[\]]//g; # Remove [ and ]
|
||||
my @proxyargs = (
|
||||
LocalHost => $proxaddr,
|
||||
LocalPort => $self->{proxy_port},
|
||||
Proto => "tcp",
|
||||
Listen => SOMAXCONN,
|
||||
);
|
||||
push @proxyargs, ReuseAddr => 1
|
||||
unless $^O eq "MSWin32";
|
||||
$self->{proxy_sock} = $IP_factory->(@proxyargs);
|
||||
|
||||
if ($self->{proxy_sock}) {
|
||||
print "Proxy started on port ".$self->{proxy_port}."\n";
|
||||
} else {
|
||||
warn "Failed creating proxy socket (".$proxaddr.",".$self->{proxy_port}."): $!\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->{flight} = -1;
|
||||
$self->{direction} = -1;
|
||||
$self->{partial} = ["", ""];
|
||||
$self->{record_list} = [];
|
||||
$self->{message_list} = [];
|
||||
$self->{clientflags} = "";
|
||||
$self->{clientpid} = 0;
|
||||
|
||||
TLSProxy::Message->clear();
|
||||
TLSProxy::Record->clear();
|
||||
}
|
||||
|
||||
sub clear
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
$self->clearClient;
|
||||
$self->{ciphers} = "AES128-SHA";
|
||||
$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 start
|
||||
{
|
||||
my ($self) = shift;
|
||||
my $pid;
|
||||
|
||||
if ($self->{proxy_sock} == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$pid = fork();
|
||||
if ($pid == 0) {
|
||||
my $execcmd = $self->execute
|
||||
." s_server -max_protocol TLSv1.2 -no_comp -rev -engine ossltest -accept "
|
||||
.($self->server_port)
|
||||
." -cert ".$self->cert." -naccept ".$self->serverconnects;
|
||||
unless ($self->supports_IPv6) {
|
||||
$execcmd .= " -4";
|
||||
}
|
||||
if ($self->ciphers ne "") {
|
||||
$execcmd .= " -cipher ".$self->ciphers;
|
||||
}
|
||||
if ($self->serverflags ne "") {
|
||||
$execcmd .= " ".$self->serverflags;
|
||||
}
|
||||
if ($self->debug) {
|
||||
print STDERR "Server command: $execcmd\n";
|
||||
}
|
||||
exec($execcmd);
|
||||
}
|
||||
$self->serverpid($pid);
|
||||
|
||||
return $self->clientstart;
|
||||
}
|
||||
|
||||
sub clientstart
|
||||
{
|
||||
my ($self) = shift;
|
||||
my $oldstdout;
|
||||
|
||||
if ($self->execute) {
|
||||
my $pid = fork();
|
||||
if ($pid == 0) {
|
||||
my $echostr;
|
||||
if ($self->reneg()) {
|
||||
$echostr = "R";
|
||||
} else {
|
||||
$echostr = "test";
|
||||
}
|
||||
my $execcmd = "echo ".$echostr." | ".$self->execute
|
||||
." s_client -max_protocol TLSv1.2 -engine ossltest -connect "
|
||||
.($self->proxy_addr).":".($self->proxy_port);
|
||||
unless ($self->supports_IPv6) {
|
||||
$execcmd .= " -4";
|
||||
}
|
||||
if ($self->cipherc ne "") {
|
||||
$execcmd .= " -cipher ".$self->cipherc;
|
||||
}
|
||||
if ($self->clientflags ne "") {
|
||||
$execcmd .= " ".$self->clientflags;
|
||||
}
|
||||
if ($self->debug) {
|
||||
print STDERR "Client command: $execcmd\n";
|
||||
}
|
||||
exec($execcmd);
|
||||
}
|
||||
$self->clientpid($pid);
|
||||
}
|
||||
|
||||
# Wait for incoming connection from client
|
||||
my $client_sock;
|
||||
if(!($client_sock = $self->{proxy_sock}->accept())) {
|
||||
warn "Failed accepting incoming connection: $!\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
print "Connection opened\n";
|
||||
|
||||
# Now connect to the server
|
||||
my $retry = 50;
|
||||
my $server_sock;
|
||||
#We loop over this a few times because sometimes s_server can take a while
|
||||
#to start up
|
||||
do {
|
||||
my $servaddr = $self->server_addr;
|
||||
$servaddr =~ s/[\[\]]//g; # Remove [ and ]
|
||||
eval {
|
||||
$server_sock = $IP_factory->(
|
||||
PeerAddr => $servaddr,
|
||||
PeerPort => $self->server_port,
|
||||
MultiHomed => 1,
|
||||
Proto => 'tcp'
|
||||
);
|
||||
};
|
||||
|
||||
$retry--;
|
||||
#Some buggy IP factories can return a defined server_sock that hasn't
|
||||
#actually connected, so we check peerport too
|
||||
if ($@ || !defined($server_sock) || !defined($server_sock->peerport)) {
|
||||
$server_sock->close() if defined($server_sock);
|
||||
undef $server_sock;
|
||||
if ($retry) {
|
||||
#Sleep for a short while
|
||||
select(undef, undef, undef, 0.1);
|
||||
} else {
|
||||
warn "Failed to start up server (".$servaddr.",".$self->server_port."): $!\n";
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
} while (!$server_sock);
|
||||
|
||||
my $sel = IO::Select->new($server_sock, $client_sock);
|
||||
my $indata;
|
||||
my @handles = ($server_sock, $client_sock);
|
||||
|
||||
#Wait for either the server socket or the client socket to become readable
|
||||
my @ready;
|
||||
local $SIG{PIPE} = "IGNORE";
|
||||
while(!(TLSProxy::Message->end) && (@ready = $sel->can_read)) {
|
||||
foreach my $hand (@ready) {
|
||||
if ($hand == $server_sock) {
|
||||
$server_sock->sysread($indata, 16384) or goto END;
|
||||
$indata = $self->process_packet(1, $indata);
|
||||
$client_sock->syswrite($indata);
|
||||
} elsif ($hand == $client_sock) {
|
||||
$client_sock->sysread($indata, 16384) or goto END;
|
||||
$indata = $self->process_packet(0, $indata);
|
||||
$server_sock->syswrite($indata);
|
||||
} else {
|
||||
print "Err\n";
|
||||
goto END;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
END:
|
||||
print "Connection closed\n";
|
||||
if($server_sock) {
|
||||
$server_sock->close();
|
||||
}
|
||||
if($client_sock) {
|
||||
#Closing this also kills the child process
|
||||
$client_sock->close();
|
||||
}
|
||||
if(!$self->debug) {
|
||||
select($oldstdout);
|
||||
}
|
||||
$self->serverconnects($self->serverconnects - 1);
|
||||
if ($self->serverconnects == 0) {
|
||||
die "serverpid is zero\n" if $self->serverpid == 0;
|
||||
print "Waiting for server process to close: "
|
||||
.$self->serverpid."\n";
|
||||
waitpid( $self->serverpid, 0);
|
||||
die "exit code $? from server process\n" if $? != 0;
|
||||
} else {
|
||||
# Give s_server sufficient time to finish what it was doing
|
||||
usleep(250000);
|
||||
}
|
||||
die "clientpid is zero\n" if $self->clientpid == 0;
|
||||
print "Waiting for client process to close: ".$self->clientpid."\n";
|
||||
waitpid($self->clientpid, 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);
|
||||
}
|
||||
|
||||
#Reconstruct the packet
|
||||
$packet = "";
|
||||
foreach my $record (@{$self->record_list}) {
|
||||
$packet .= $record->reconstruct_record();
|
||||
}
|
||||
|
||||
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};
|
||||
}
|
||||
|
||||
#Read/write accessors
|
||||
sub server_addr
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{server_addr} = shift;
|
||||
}
|
||||
return $self->{server_addr};
|
||||
}
|
||||
sub server_port
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{server_port} = shift;
|
||||
}
|
||||
return $self->{server_port};
|
||||
}
|
||||
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 ciphers
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{ciphers} = shift;
|
||||
}
|
||||
return $self->{ciphers};
|
||||
}
|
||||
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 serverpid
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{serverpid} = shift;
|
||||
}
|
||||
return $self->{serverpid};
|
||||
}
|
||||
sub clientpid
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{clientpid} = shift;
|
||||
}
|
||||
return $self->{clientpid};
|
||||
}
|
||||
|
||||
sub fill_known_data
|
||||
{
|
||||
my $length = shift;
|
||||
my $ret = "";
|
||||
for (my $i = 0; $i < $length; $i++) {
|
||||
$ret .= chr($i);
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub reneg
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{reneg} = shift;
|
||||
}
|
||||
return $self->{reneg};
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -0,0 +1,339 @@
|
||||
# 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 TLSProxy::Proxy;
|
||||
|
||||
package TLSProxy::Record;
|
||||
|
||||
my $server_ccs_seen = 0;
|
||||
my $client_ccs_seen = 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_3 => 772,
|
||||
VERS_TLS_1_2 => 771,
|
||||
VERS_TLS_1_1 => 770,
|
||||
VERS_TLS_1_0 => 769,
|
||||
VERS_SSL_3_0 => 768,
|
||||
VERS_SSL_LT_3_0 => 767
|
||||
};
|
||||
|
||||
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 $data;
|
||||
my $content_type;
|
||||
my $version;
|
||||
my $len;
|
||||
my $len_real;
|
||||
my $decrypt_len;
|
||||
|
||||
my $recnum = 1;
|
||||
while (length ($packet) > 0) {
|
||||
print " Record $recnum";
|
||||
if ($server) {
|
||||
print " (server -> client)\n";
|
||||
} else {
|
||||
print " (client -> server)\n";
|
||||
}
|
||||
#Get the record header
|
||||
if (length($packet) < TLS_RECORD_HEADER_LENGTH
|
||||
|| length($packet) < 5 + unpack("n", substr($packet, 3, 2))) {
|
||||
print "Partial data : ".length($packet)." bytes\n";
|
||||
$partial = $packet;
|
||||
$packet = "";
|
||||
} else {
|
||||
($content_type, $version, $len) = unpack('CnnC*', $packet);
|
||||
$data = substr($packet, 5, $len);
|
||||
|
||||
print " Content type: ".$record_type{$content_type}."\n";
|
||||
print " Version: $tls_version{$version}\n";
|
||||
print " Length: $len";
|
||||
if ($len == length($data)) {
|
||||
print "\n";
|
||||
$decrypt_len = $len_real = $len;
|
||||
} else {
|
||||
print " (expected), ".length($data)." (actual)\n";
|
||||
$decrypt_len = $len_real = length($data);
|
||||
}
|
||||
|
||||
my $record = TLSProxy::Record->new(
|
||||
$flight,
|
||||
$content_type,
|
||||
$version,
|
||||
$len,
|
||||
0,
|
||||
$len_real,
|
||||
$decrypt_len,
|
||||
substr($packet, TLS_RECORD_HEADER_LENGTH, $len_real),
|
||||
substr($packet, TLS_RECORD_HEADER_LENGTH, $len_real)
|
||||
);
|
||||
|
||||
if (($server && $server_ccs_seen)
|
||||
|| (!$server && $client_ccs_seen)) {
|
||||
if ($etm) {
|
||||
$record->decryptETM();
|
||||
} else {
|
||||
$record->decrypt();
|
||||
}
|
||||
}
|
||||
|
||||
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_real);
|
||||
$recnum++;
|
||||
}
|
||||
}
|
||||
|
||||
return (\@record_list, \@message_list, $partial);
|
||||
}
|
||||
|
||||
sub clear
|
||||
{
|
||||
$server_ccs_seen = 0;
|
||||
$client_ccs_seen = 0;
|
||||
}
|
||||
|
||||
#Class level accessors
|
||||
sub server_ccs_seen
|
||||
{
|
||||
my $class = shift;
|
||||
if (@_) {
|
||||
$server_ccs_seen = shift;
|
||||
}
|
||||
return $server_ccs_seen;
|
||||
}
|
||||
sub client_ccs_seen
|
||||
{
|
||||
my $class = shift;
|
||||
if (@_) {
|
||||
$client_ccs_seen = shift;
|
||||
}
|
||||
return $client_ccs_seen;
|
||||
}
|
||||
#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
|
||||
};
|
||||
|
||||
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 $data = $self->data;
|
||||
|
||||
if($self->version >= VERS_TLS_1_1()) {
|
||||
#TLS1.1+ has an explicit IV. Throw it away
|
||||
$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 (assumes MAC is 20 bytes for now. FIXME)
|
||||
$data = substr($data, 0, length($data) - 20);
|
||||
|
||||
$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 $data;
|
||||
|
||||
if ($self->{sent}) {
|
||||
return "";
|
||||
}
|
||||
$self->{sent} = 1;
|
||||
|
||||
if ($self->sslv2) {
|
||||
$data = pack('n', $self->len | 0x8000);
|
||||
} 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 content_type
|
||||
{
|
||||
my $self = shift;
|
||||
return $self->{content_type};
|
||||
}
|
||||
sub version
|
||||
{
|
||||
my $self = shift;
|
||||
return $self->{version};
|
||||
}
|
||||
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};
|
||||
}
|
||||
1;
|
||||
@@ -0,0 +1,210 @@
|
||||
# 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::ServerHello;
|
||||
|
||||
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_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 $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 = unpack('n', substr($self->data, $ptr));
|
||||
$ptr += 2;
|
||||
my $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;
|
||||
}
|
||||
|
||||
$self->server_version($server_version);
|
||||
$self->random($random);
|
||||
$self->session_id_len($session_id_len);
|
||||
$self->session($session);
|
||||
$self->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 == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) {
|
||||
$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->{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
|
||||
{
|
||||
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;
|
||||
@@ -0,0 +1,134 @@
|
||||
# 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::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->{sig} = "";
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub parse
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
#Minimal SKE parsing. Only supports DHE at the moment (if its not DHE
|
||||
#the parsing data will be trash...which is ok as long as we don't try to
|
||||
#use it)
|
||||
|
||||
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 $sig_len = unpack('n', substr($self->data, $ptr));
|
||||
my $sig = "";
|
||||
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->sig($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;
|
||||
if (length($self->sig) > 0) {
|
||||
$data .= pack('n', length($self->sig));
|
||||
$data .= $self->sig;
|
||||
}
|
||||
|
||||
$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 sig
|
||||
{
|
||||
my $self = shift;
|
||||
if (@_) {
|
||||
$self->{sig} = shift;
|
||||
}
|
||||
return $self->{sig};
|
||||
}
|
||||
1;
|
||||
@@ -0,0 +1,25 @@
|
||||
# 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 with_fallback;
|
||||
|
||||
sub import {
|
||||
use File::Basename;
|
||||
use File::Spec::Functions;
|
||||
foreach (@_) {
|
||||
eval "require $_";
|
||||
if ($@) {
|
||||
unshift @INC, catdir(dirname(__FILE__),
|
||||
"..", "..", "external", "perl");
|
||||
my $transfer = "transfer::$_";
|
||||
eval "require $transfer";
|
||||
shift @INC;
|
||||
warn $@ if $@;
|
||||
}
|
||||
}
|
||||
}
|
||||
1;
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm -f "$2"
|
||||
if test "$OSTYPE" = msdosdjgpp || test "x$PLATFORM" = xmingw ; then
|
||||
cp "$1" "$2"
|
||||
else
|
||||
ln -s "$1" "$2"
|
||||
fi
|
||||
echo "$2 => $1"
|
||||
|
||||
Executable
+248
@@ -0,0 +1,248 @@
|
||||
#! /usr/bin/env perl
|
||||
# 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;
|
||||
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
|
||||
'subdir=s%', # Subdirectories to look through,
|
||||
# with associated section numbers
|
||||
'destdir=s', # Destination directory
|
||||
#'in=s@', # Explicit files to process (ignores sourcedir)
|
||||
#'section=i', # Default section used for --in files
|
||||
'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{subdir}) {
|
||||
$options{subdir} = { apps => '1',
|
||||
crypto => '3',
|
||||
ssl => '3' };
|
||||
}
|
||||
unless ($options{sourcedir}) {
|
||||
$options{sourcedir} = catdir($config{sourcedir}, "doc");
|
||||
}
|
||||
pod2usage(1) unless ( defined $options{subdir}
|
||||
&& 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 (keys %{$options{subdir}}) {
|
||||
print STDERR "DEBUG: --subdir = $_=$options{subdir}->{$_}\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 $subdir (keys %{$options{subdir}}) {
|
||||
my $section = $options{subdir}->{$subdir};
|
||||
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=apps:crypto:ssl \"--infile=$podpath\" \"--title=$podname\""
|
||||
} -> {$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";
|
||||
}
|
||||
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-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
|
||||
|
||||
=cut
|
||||
@@ -0,0 +1,207 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2000-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
|
||||
|
||||
# Run the test suite and generate a report
|
||||
|
||||
if (! -f "Configure") {
|
||||
print "Please run perl util/selftest.pl in the OpenSSL directory.\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
my $report="testlog";
|
||||
my $os="??";
|
||||
my $version="??";
|
||||
my $platform0="??";
|
||||
my $platform="??";
|
||||
my $options="??";
|
||||
my $last="??";
|
||||
my $ok=0;
|
||||
my $cc="cc";
|
||||
my $cversion="??";
|
||||
my $sep="-----------------------------------------------------------------------------\n";
|
||||
my $not_our_fault="\nPlease ask your system administrator/vendor for more information.\n[Problems with your operating system setup should not be reported\nto the OpenSSL project.]\n";
|
||||
|
||||
open(OUT,">$report") or die;
|
||||
|
||||
print OUT "OpenSSL self-test report:\n\n";
|
||||
|
||||
$uname=`uname -a`;
|
||||
$uname="??\n" if $uname eq "";
|
||||
|
||||
$c=`sh config -t`;
|
||||
foreach $_ (split("\n",$c)) {
|
||||
$os=$1 if (/Operating system: (.*)$/);
|
||||
$platform0=$1 if (/Configuring for (.*)$/);
|
||||
}
|
||||
|
||||
system "sh config" if (! -f "Makefile");
|
||||
|
||||
if (open(IN,"<Makefile")) {
|
||||
while (<IN>) {
|
||||
$version=$1 if (/^VERSION=(.*)$/);
|
||||
$platform=$1 if (/^PLATFORM=(.*)$/);
|
||||
$options=$1 if (/^OPTIONS=(.*)$/);
|
||||
$cc=$1 if (/^CC= *(.*)$/);
|
||||
}
|
||||
close(IN);
|
||||
} else {
|
||||
print OUT "Error running config!\n";
|
||||
}
|
||||
|
||||
$cversion=`$cc -v 2>&1`;
|
||||
$cversion=`$cc -V 2>&1` if $cversion =~ "[Uu]sage";
|
||||
$cversion=`$cc -V |head -1` if $cversion =~ "Error";
|
||||
$cversion=`$cc --version` if $cversion eq "";
|
||||
$cversion =~ s/Reading specs.*\n//;
|
||||
$cversion =~ s/usage.*\n//;
|
||||
$cversion =~ s|\R$||;
|
||||
|
||||
if (open(IN,"<CHANGES")) {
|
||||
while(<IN>) {
|
||||
if (/\*\) (.{0,55})/ && !/applies to/) {
|
||||
$last=$1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
close(IN);
|
||||
}
|
||||
|
||||
print OUT "OpenSSL version: $version\n";
|
||||
print OUT "Last change: $last...\n";
|
||||
print OUT "Options: $options\n" if $options ne "";
|
||||
print OUT "OS (uname): $uname";
|
||||
print OUT "OS (config): $os\n";
|
||||
print OUT "Target (default): $platform0\n";
|
||||
print OUT "Target: $platform\n";
|
||||
print OUT "Compiler: $cversion\n";
|
||||
print OUT "\n";
|
||||
|
||||
print "Checking compiler...\n";
|
||||
if (open(TEST,">cctest.c")) {
|
||||
print TEST "#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\nmain(){printf(\"Hello world\\n\");}\n";
|
||||
close(TEST);
|
||||
system("$cc -o cctest cctest.c");
|
||||
if (`./cctest` !~ /Hello world/) {
|
||||
print OUT "Compiler doesn't work.\n";
|
||||
print OUT $not_our_fault;
|
||||
goto err;
|
||||
}
|
||||
system("ar r cctest.a /dev/null");
|
||||
if (not -f "cctest.a") {
|
||||
print OUT "Check your archive tool (ar).\n";
|
||||
print OUT $not_our_fault;
|
||||
goto err;
|
||||
}
|
||||
} else {
|
||||
print OUT "Can't create cctest.c\n";
|
||||
}
|
||||
if (open(TEST,">cctest.c")) {
|
||||
print TEST "#include <stdio.h>\n#include <stdlib.h>\n#include <openssl/opensslv.h>\nmain(){printf(OPENSSL_VERSION_TEXT);}\n";
|
||||
close(TEST);
|
||||
system("$cc -o cctest -Iinclude cctest.c");
|
||||
$cctest = `./cctest`;
|
||||
if ($cctest !~ /OpenSSL $version/) {
|
||||
if ($cctest =~ /OpenSSL/) {
|
||||
print OUT "#include uses headers from different OpenSSL version!\n";
|
||||
} else {
|
||||
print OUT "Can't compile test program!\n";
|
||||
}
|
||||
print OUT $not_our_fault;
|
||||
goto err;
|
||||
}
|
||||
} else {
|
||||
print OUT "Can't create cctest.c\n";
|
||||
}
|
||||
|
||||
print "Running make...\n";
|
||||
if (system("make 2>&1 | tee make.log") > 255) {
|
||||
|
||||
print OUT "make failed!\n";
|
||||
if (open(IN,"<make.log")) {
|
||||
print OUT $sep;
|
||||
while (<IN>) {
|
||||
print OUT;
|
||||
}
|
||||
close(IN);
|
||||
print OUT $sep;
|
||||
} else {
|
||||
print OUT "make.log not found!\n";
|
||||
}
|
||||
goto err;
|
||||
}
|
||||
|
||||
# Not sure why this is here. The tests themselves can detect if their
|
||||
# particular feature isn't included, and should therefore skip themselves.
|
||||
# To skip *all* tests just because one algorithm isn't included is like
|
||||
# shooting mosquito with an elephant gun...
|
||||
# -- Richard Levitte, inspired by problem report 1089
|
||||
#
|
||||
#$_=$options;
|
||||
#s/no-asm//;
|
||||
#s/no-shared//;
|
||||
#s/no-krb5//;
|
||||
#if (/no-/)
|
||||
#{
|
||||
# print OUT "Test skipped.\n";
|
||||
# goto err;
|
||||
#}
|
||||
|
||||
print "Running make test...\n";
|
||||
if (system("make test 2>&1 | tee maketest.log") > 255)
|
||||
{
|
||||
print OUT "make test failed!\n";
|
||||
} else {
|
||||
$ok=1;
|
||||
}
|
||||
|
||||
if ($ok and open(IN,"<maketest.log")) {
|
||||
while (<IN>) {
|
||||
$ok=2 if /^platform: $platform/;
|
||||
}
|
||||
close(IN);
|
||||
}
|
||||
|
||||
if ($ok != 2) {
|
||||
print OUT "Failure!\n";
|
||||
if (open(IN,"<make.log")) {
|
||||
print OUT $sep;
|
||||
while (<IN>) {
|
||||
print OUT;
|
||||
}
|
||||
close(IN);
|
||||
print OUT $sep;
|
||||
} else {
|
||||
print OUT "make.log not found!\n";
|
||||
}
|
||||
if (open(IN,"<maketest.log")) {
|
||||
while (<IN>) {
|
||||
print OUT;
|
||||
}
|
||||
close(IN);
|
||||
print OUT $sep;
|
||||
} else {
|
||||
print OUT "maketest.log not found!\n";
|
||||
}
|
||||
} else {
|
||||
print OUT "Test passed.\n";
|
||||
}
|
||||
err:
|
||||
close(OUT);
|
||||
|
||||
print "\n";
|
||||
open(IN,"<$report") or die;
|
||||
while (<IN>) {
|
||||
if (/$sep/) {
|
||||
print "[...]\n";
|
||||
last;
|
||||
}
|
||||
print;
|
||||
}
|
||||
print "\nTest report in file $report\n";
|
||||
|
||||
die if $ok != 2;
|
||||
Executable
+128
@@ -0,0 +1,128 @@
|
||||
#!/bin/sh
|
||||
|
||||
# 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...
|
||||
|
||||
# Alternative to this is to parse ${THERE}/Makefile...
|
||||
LIBCRYPTOSO="${THERE}/libcrypto.so"
|
||||
if [ -f "$LIBCRYPTOSO" ]; then
|
||||
while [ -h "$LIBCRYPTOSO" ]; do
|
||||
LIBCRYPTOSO="${THERE}/`ls -l "$LIBCRYPTOSO" | sed -e 's|.*\-> ||'`"
|
||||
done
|
||||
SOSUFFIX=`echo ${LIBCRYPTOSO} | sed -e 's|.*\.so||' 2>/dev/null`
|
||||
LIBSSLSO="${THERE}/libssl.so${SOSUFFIX}"
|
||||
fi
|
||||
|
||||
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() if $config{ex_libs} !~ /,-rpath,/; ""; -}
|
||||
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|QNX) LD_PRELOAD="$LIBCRYPTOSO:$LIBSSLSO" ;; # *BSD, QNX
|
||||
*) 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() if $config{ex_libs} !~ /,-rpath,/; ""; -}
|
||||
|
||||
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
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user