Latest update.
This commit is contained in:
+194
-21
@@ -11,20 +11,25 @@ require 5.10.0;
|
||||
use warnings;
|
||||
use strict;
|
||||
|
||||
use Carp qw(:DEFAULT cluck);
|
||||
use Pod::Checker;
|
||||
use File::Find;
|
||||
use File::Basename;
|
||||
use File::Spec::Functions;
|
||||
use Getopt::Std;
|
||||
use lib catdir(dirname($0), "perl");
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/perl";
|
||||
|
||||
use OpenSSL::Util::Pod;
|
||||
|
||||
use lib '.';
|
||||
use configdata;
|
||||
|
||||
# Set to 1 for debug output
|
||||
my $debug = 0;
|
||||
|
||||
# Where to find openssl command
|
||||
my $BLDTOP = $ENV{BLDTOP} || ".";
|
||||
my $openssl = "$BLDTOP/util/opensslwrap.sh";
|
||||
my $openssl = "./util/opensslwrap.sh";
|
||||
|
||||
# Options.
|
||||
our($opt_d);
|
||||
@@ -77,6 +82,7 @@ my $OUT;
|
||||
my %public;
|
||||
my $status = 0;
|
||||
|
||||
my @sections = ( 'man1', 'man3', 'man5', 'man7' );
|
||||
my %mandatory_sections = (
|
||||
'*' => [ 'NAME', 'DESCRIPTION', 'COPYRIGHT' ],
|
||||
1 => [ 'SYNOPSIS', 'OPTIONS' ],
|
||||
@@ -85,6 +91,164 @@ my %mandatory_sections = (
|
||||
7 => [ ]
|
||||
);
|
||||
|
||||
# Collect all POD files, both internal and public, and regardless of location
|
||||
# We collect them in a hash table with each file being a key, so we can attach
|
||||
# tags to them. For example, internal docs will have the word "internal"
|
||||
# attached to them.
|
||||
my %files = ();
|
||||
# We collect files names on the fly, on known tag basis
|
||||
my %collected_tags = ();
|
||||
# We cache results based on tags
|
||||
my %collected_results = ();
|
||||
|
||||
# files OPTIONS
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# files(TAGS => 'manual');
|
||||
# files(TAGS => [ 'manual', 'man1' ]);
|
||||
#
|
||||
# This function returns an array of files corresponding to a set of tags
|
||||
# given with the options "TAGS". The value of this option can be a single
|
||||
# word, or an array of several words, which work as inclusive or exclusive
|
||||
# selectors. Inclusive selectors are used to add one more set of files to
|
||||
# the returned array, while exclusive selectors limit the set of files added
|
||||
# to the array. The recognised tag values are:
|
||||
#
|
||||
# 'public_manual' - inclusive selector, adds public manuals to the
|
||||
# returned array of files.
|
||||
# 'internal_manual' - inclusive selector, adds internal manuals to the
|
||||
# returned array of files.
|
||||
# 'manual' - inclusive selector, adds any manual to the returned
|
||||
# array of files. This is really a shorthand for
|
||||
# 'public_manual' and 'internal_manual' combined.
|
||||
# 'public_header' - inclusive selector, adds public headers to the
|
||||
# returned array of files.
|
||||
# 'header' - inclusive selector, adds any header file to the
|
||||
# returned array of files. Since we currently only
|
||||
# care about public headers, this is exactly
|
||||
# equivalent to 'public_header', but is present for
|
||||
# consistency.
|
||||
#
|
||||
# 'man1', 'man3', 'man5', 'man7'
|
||||
# - exclusive selectors, only applicable together with
|
||||
# any of the manual selectors. If any of these are
|
||||
# present, only the manuals from the given sections
|
||||
# will be include. If none of these are present,
|
||||
# the manuals from all sections will be returned.
|
||||
#
|
||||
# All returned manual files come from configdata.pm.
|
||||
# All returned header files come from looking inside
|
||||
# "$config{sourcedir}/include/openssl"
|
||||
#
|
||||
sub files {
|
||||
my %opts = ( @_ ); # Make a copy of the arguments
|
||||
|
||||
$opts{TAGS} = [ $opts{TAGS} ] if ref($opts{TAGS}) eq '';
|
||||
|
||||
croak "No tags given, or not an array"
|
||||
unless exists $opts{TAGS} && ref($opts{TAGS}) eq 'ARRAY';
|
||||
|
||||
my %tags = map { $_ => 1 } @{$opts{TAGS}};
|
||||
$tags{public_manual} = 1
|
||||
if $tags{manual} && ($tags{public} // !$tags{internal});
|
||||
$tags{internal_manual} = 1
|
||||
if $tags{manual} && ($tags{internal} // !$tags{public});
|
||||
$tags{public_header} = 1
|
||||
if $tags{header} && ($tags{public} // !$tags{internal});
|
||||
delete $tags{manual};
|
||||
delete $tags{header};
|
||||
delete $tags{public};
|
||||
delete $tags{internal};
|
||||
|
||||
my $tags_as_key = join(':', sort keys %tags);
|
||||
|
||||
cluck "DEBUG[files]: This is how we got here!" if $debug;
|
||||
print STDERR "DEBUG[files]: tags: $tags_as_key\n" if $debug;
|
||||
|
||||
my %tags_to_collect = ( map { $_ => 1 }
|
||||
grep { !exists $collected_tags{$_} }
|
||||
keys %tags );
|
||||
|
||||
if ($tags_to_collect{public_manual}) {
|
||||
print STDERR "DEBUG[files]: collecting public manuals\n"
|
||||
if $debug;
|
||||
|
||||
# The structure in configdata.pm is that $unified_info{mandocs}
|
||||
# contains lists of man files, and in turn, $unified_info{depends}
|
||||
# contains hash tables showing which POD file each of those man
|
||||
# files depend on. We use that information to find the POD files,
|
||||
# and to attach the man section they belong to as tags
|
||||
foreach my $mansect ( @sections ) {
|
||||
foreach ( map { @{$unified_info{depends}->{$_}} }
|
||||
@{$unified_info{mandocs}->{$mansect}} ) {
|
||||
$files{$_} = { $mansect => 1, public_manual => 1 };
|
||||
}
|
||||
}
|
||||
$collected_tags{public_manual} = 1;
|
||||
}
|
||||
|
||||
if ($tags_to_collect{internal_manual}) {
|
||||
print STDERR "DEBUG[files]: collecting internal manuals\n"
|
||||
if $debug;
|
||||
|
||||
# We don't have the internal docs in configdata.pm. However, they
|
||||
# are all in the source tree, so they're easy to find.
|
||||
foreach my $mansect ( @sections ) {
|
||||
foreach ( glob(catfile($config{sourcedir},
|
||||
'doc', 'internal', $mansect, '*.pod')) ) {
|
||||
$files{$_} = { $mansect => 1, internal_manual => 1 };
|
||||
}
|
||||
}
|
||||
$collected_tags{internal_manual} = 1;
|
||||
}
|
||||
|
||||
if ($tags_to_collect{public_header}) {
|
||||
print STDERR "DEBUG[files]: collecting public headers\n"
|
||||
if $debug;
|
||||
|
||||
foreach ( glob(catfile($config{sourcedir},
|
||||
'include', 'openssl', '*.h')) ) {
|
||||
$files{$_} = { public_header => 1 };
|
||||
}
|
||||
}
|
||||
|
||||
my @result = @{$collected_results{$tags_as_key} // []};
|
||||
|
||||
if (!@result) {
|
||||
# Produce a result based on caller tags
|
||||
foreach my $type ( ( 'public_manual', 'internal_manual' ) ) {
|
||||
next unless $tags{$type};
|
||||
|
||||
# If caller asked for specific sections, we care about sections.
|
||||
# Otherwise, we give back all of them.
|
||||
my @selected_sections =
|
||||
grep { $tags{$_} } @sections;
|
||||
@selected_sections = @sections unless @selected_sections;
|
||||
|
||||
foreach my $section ( ( @selected_sections ) ) {
|
||||
push @result,
|
||||
( sort { basename($a) cmp basename($b) }
|
||||
grep { $files{$_}->{$type} && $files{$_}->{$section} }
|
||||
keys %files );
|
||||
}
|
||||
}
|
||||
if ($tags{public_header}) {
|
||||
push @result,
|
||||
( sort { basename($a) cmp basename($b) }
|
||||
grep { $files{$_}->{public_header} }
|
||||
keys %files );
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
print STDERR "DEBUG[files]: result:\n";
|
||||
print STDERR "DEBUG[files]: $_\n" foreach @result;
|
||||
}
|
||||
$collected_results{$tags_as_key} = [ @result ];
|
||||
}
|
||||
|
||||
return @result;
|
||||
}
|
||||
|
||||
# Print error message, set $status.
|
||||
sub err {
|
||||
@@ -112,7 +276,8 @@ sub name_synopsis {
|
||||
if $tmp =~ /[^,] /;
|
||||
|
||||
my $dirname = dirname($filename);
|
||||
my $simplename = basename(basename($filename, ".in"), ".pod");
|
||||
my $section = basename($dirname);
|
||||
my $simplename = basename($filename, ".pod");
|
||||
my $foundfilename = 0;
|
||||
my %foundfilenames = ();
|
||||
my %names;
|
||||
@@ -124,7 +289,9 @@ sub name_synopsis {
|
||||
$names{$n} = 1;
|
||||
$foundfilename++ if $n eq $simplename;
|
||||
$foundfilenames{$n} = 1
|
||||
if -f "$dirname/$n.pod" && $n ne $simplename;
|
||||
if ( ( grep { basename($_) eq "$n.pod" }
|
||||
files(TAGS => [ 'manual', $section ]) )
|
||||
&& $n ne $simplename );
|
||||
}
|
||||
err($id, "the following exist as other .pod files:",
|
||||
sort keys %foundfilenames)
|
||||
@@ -476,7 +643,8 @@ sub check {
|
||||
while ( $contents =~ /L<([^>]*)\(1\)(?:\/.*)?>/g ) {
|
||||
my $target = $1;
|
||||
next if $target =~ /openssl-?/;
|
||||
next if -f "doc/man1/$target.pod";
|
||||
next if ( grep { basename($_) eq "$target.pod" }
|
||||
files(TAGS => [ 'manual', 'man1' ]) );
|
||||
# TODO: Filter out "foreign manual" links.
|
||||
next if $target =~ /ps|apropos|sha1sum|procmail|perl/;
|
||||
err($id, "Bad command link L<$target(1)>");
|
||||
@@ -570,7 +738,7 @@ sub parsenum {
|
||||
my $file = shift;
|
||||
my @apis;
|
||||
|
||||
open my $IN, '<', $file
|
||||
open my $IN, '<', catfile($config{sourcedir}, $file)
|
||||
or die "Can't open $file, $!, stopped";
|
||||
|
||||
while ( <$IN> ) {
|
||||
@@ -600,7 +768,7 @@ sub loadmissing($)
|
||||
my $missingfile = shift;
|
||||
my @missing;
|
||||
|
||||
open FH, $missingfile
|
||||
open FH, catfile($config{sourcedir}, $missingfile)
|
||||
or die "Can't open $missingfile";
|
||||
while ( <FH> ) {
|
||||
chomp;
|
||||
@@ -630,11 +798,12 @@ sub checkmacros {
|
||||
@missing = loadmissing('util/missingmacro.txt');
|
||||
}
|
||||
|
||||
foreach my $f ( glob('include/openssl/*.h') ) {
|
||||
foreach my $f ( files(TAGS => 'public_header') ) {
|
||||
# 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';
|
||||
my $b = basename($f);
|
||||
next if $b eq 'asn1.h';
|
||||
next if $b eq 'asn1t.h';
|
||||
next if $b eq 'err.h';
|
||||
open(IN, $f)
|
||||
or die "Can't open $f, $!";
|
||||
while ( <IN> ) {
|
||||
@@ -859,13 +1028,17 @@ if ( $opt_c ) {
|
||||
# See if each has a manpage.
|
||||
foreach my $cmd ( @commands ) {
|
||||
next if $cmd eq 'help' || $cmd eq 'exit';
|
||||
my $doc = "doc/man1/openssl-$cmd.pod";
|
||||
# Handle "tsget" and "CA.pl" pod pages
|
||||
$doc = "doc/man1/$cmd.pod" if -f "doc/man1/$cmd.pod";
|
||||
if ( ! -f "$doc" ) {
|
||||
err("$doc does not exist");
|
||||
my @doc = ( grep { basename($_) eq "openssl-$cmd.pod"
|
||||
# For "tsget" and "CA.pl" pod pages
|
||||
|| basename($_) eq "$cmd.pod" }
|
||||
files(TAGS => [ 'manual', 'man1' ]) );
|
||||
my $num = scalar @doc;
|
||||
if ($num > 1) {
|
||||
err("$num manuals for 'openssl $cmd': ".join(", ", @doc));
|
||||
} elsif ($num < 1) {
|
||||
err("no manual for 'openssl $cmd'");
|
||||
} else {
|
||||
checkflags($cmd, $doc);
|
||||
checkflags($cmd, @doc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -884,7 +1057,7 @@ if ( $opt_c ) {
|
||||
|
||||
# Preparation for some options, populate %name_map and %link_map
|
||||
if ( $opt_l || $opt_u || $opt_v ) {
|
||||
foreach ( glob('doc/*/*.pod doc/internal/*/*.pod') ) {
|
||||
foreach ( files(TAGS => 'manual') ) {
|
||||
collectnames($_);
|
||||
}
|
||||
}
|
||||
@@ -898,13 +1071,13 @@ if ( $opt_l ) {
|
||||
|
||||
if ( $opt_n ) {
|
||||
publicize();
|
||||
foreach ( @ARGV ? @ARGV : glob('doc/*/*.pod doc/internal/*/*.pod') ) {
|
||||
foreach ( @ARGV ? @ARGV : files(TAGS => 'manual') ) {
|
||||
check($_);
|
||||
}
|
||||
|
||||
# If not given args, check that all man1 commands are named properly.
|
||||
if ( scalar @ARGV == 0 ) {
|
||||
foreach ( glob('doc/man1/*.pod') ) {
|
||||
foreach ( files(TAGS => [ 'public_manual', 'man1' ]) ) {
|
||||
next if /CA.pl/ || /openssl\.pod/ || /tsget\.pod/;
|
||||
err("$_ doesn't start with openssl-") unless /openssl-/;
|
||||
}
|
||||
|
||||
+77
-60
@@ -100,7 +100,7 @@ DSAparams_print 101 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3
|
||||
BF_set_key 102 3_0_0 EXIST::FUNCTION:BF,DEPRECATEDIN_3_0
|
||||
d2i_DHparams 103 3_0_0 EXIST::FUNCTION:DH
|
||||
i2d_PKCS7_ENC_CONTENT 104 3_0_0 EXIST::FUNCTION:
|
||||
DH_generate_key 105 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_generate_key 105 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
ENGINE_add_conf_module 106 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
BIO_new_socket 107 3_0_0 EXIST::FUNCTION:SOCK
|
||||
ASN1_OBJECT_free 108 3_0_0 EXIST::FUNCTION:
|
||||
@@ -445,7 +445,7 @@ X509_get_serialNumber 453 3_0_0 EXIST::FUNCTION:
|
||||
BIO_sock_should_retry 454 3_0_0 EXIST::FUNCTION:SOCK
|
||||
ENGINE_get_digests 455 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
TS_MSG_IMPRINT_get_algo 456 3_0_0 EXIST::FUNCTION:TS
|
||||
DH_new_method 457 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_new_method 457 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
BF_ecb_encrypt 458 3_0_0 EXIST::FUNCTION:BF,DEPRECATEDIN_3_0
|
||||
PEM_write_bio_DHparams 459 3_0_0 EXIST::FUNCTION:DH
|
||||
EVP_DigestFinal 460 3_0_0 EXIST::FUNCTION:
|
||||
@@ -555,7 +555,7 @@ CT_POLICY_EVAL_CTX_get0_issuer 566 3_0_0 EXIST::FUNCTION:CT
|
||||
TLS_FEATURE_new 567 3_0_0 EXIST::FUNCTION:
|
||||
RSA_get_default_method 568 3_0_0 EXIST::FUNCTION:RSA
|
||||
CRYPTO_cts128_encrypt_block 569 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_digest 570 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_digest 570 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
|
||||
ERR_load_X509V3_strings 571 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_meth_get_cleanup 572 3_0_0 EXIST::FUNCTION:
|
||||
d2i_X509 574 3_0_0 EXIST::FUNCTION:
|
||||
@@ -563,7 +563,7 @@ a2i_ASN1_STRING 575 3_0_0 EXIST::FUNCTION:
|
||||
EC_GROUP_get_mont_data 576 3_0_0 EXIST::FUNCTION:EC
|
||||
CMAC_CTX_copy 577 3_0_0 EXIST::FUNCTION:CMAC,DEPRECATEDIN_3_0
|
||||
EVP_camellia_128_cfb128 579 3_0_0 EXIST::FUNCTION:CAMELLIA
|
||||
DH_compute_key_padded 580 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_compute_key_padded 580 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
ERR_load_CONF_strings 581 3_0_0 EXIST::FUNCTION:
|
||||
ESS_ISSUER_SERIAL_dup 582 3_0_0 EXIST::FUNCTION:
|
||||
BN_GF2m_mod_exp_arr 583 3_0_0 EXIST::FUNCTION:EC2M
|
||||
@@ -615,9 +615,9 @@ UI_get0_result_string 629 3_0_0 EXIST::FUNCTION:
|
||||
TS_RESP_CTX_add_policy 630 3_0_0 EXIST::FUNCTION:TS
|
||||
X509_REQ_dup 631 3_0_0 EXIST::FUNCTION:
|
||||
d2i_DSA_PUBKEY_fp 633 3_0_0 EXIST::FUNCTION:DSA,STDIO
|
||||
OCSP_REQ_CTX_nbio_d2i 634 3_0_0 EXIST::FUNCTION:SOCK
|
||||
OCSP_REQ_CTX_nbio_d2i 634 3_0_0 EXIST::FUNCTION:
|
||||
d2i_X509_REQ_fp 635 3_0_0 EXIST::FUNCTION:STDIO
|
||||
DH_OpenSSL 636 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_OpenSSL 636 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
BN_get_rfc3526_prime_8192 637 3_0_0 EXIST::FUNCTION:DH
|
||||
X509_REVOKED_it 638 3_0_0 EXIST::FUNCTION:
|
||||
CRYPTO_THREAD_write_lock 639 3_0_0 EXIST::FUNCTION:
|
||||
@@ -672,13 +672,13 @@ CTLOG_get0_log_id 688 3_0_0 EXIST::FUNCTION:CT
|
||||
CMS_RecipientInfo_ktri_get0_signer_id 689 3_0_0 EXIST::FUNCTION:CMS
|
||||
OCSP_REQUEST_add1_ext_i2d 690 3_0_0 EXIST::FUNCTION:OCSP
|
||||
EVP_PBE_CipherInit 691 3_0_0 EXIST::FUNCTION:
|
||||
DSA_dup_DH 692 3_0_0 EXIST::FUNCTION:DH,DSA
|
||||
DSA_dup_DH 692 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH,DSA
|
||||
CONF_imodule_get_value 693 3_0_0 EXIST::FUNCTION:
|
||||
OCSP_id_issuer_cmp 694 3_0_0 EXIST::FUNCTION:OCSP
|
||||
ASN1_INTEGER_free 695 3_0_0 EXIST::FUNCTION:
|
||||
BN_get0_nist_prime_224 696 3_0_0 EXIST::FUNCTION:
|
||||
OPENSSL_isservice 697 3_0_0 EXIST::FUNCTION:
|
||||
DH_compute_key 698 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_compute_key 698 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
TS_RESP_CTX_set_signer_key 699 3_0_0 EXIST::FUNCTION:TS
|
||||
i2d_DSAPrivateKey_bio 700 3_0_0 EXIST::FUNCTION:DSA
|
||||
ASN1_item_d2i 702 3_0_0 EXIST::FUNCTION:
|
||||
@@ -718,7 +718,7 @@ OCSP_REQUEST_get1_ext_d2i 736 3_0_0 EXIST::FUNCTION:OCSP
|
||||
CMS_unsigned_add1_attr_by_NID 737 3_0_0 EXIST::FUNCTION:CMS
|
||||
BN_mod_exp_mont 738 3_0_0 EXIST::FUNCTION:
|
||||
d2i_DHxparams 739 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_size 740 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_size 740 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
CONF_imodule_get_name 741 3_0_0 EXIST::FUNCTION:
|
||||
ENGINE_get_pkey_meth_engine 742 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
OCSP_BASICRESP_free 743 3_0_0 EXIST::FUNCTION:OCSP
|
||||
@@ -965,7 +965,7 @@ ERR_load_TS_strings 989 3_0_0 EXIST::FUNCTION:TS
|
||||
BN_nist_mod_func 990 3_0_0 EXIST::FUNCTION:
|
||||
OCSP_ONEREQ_new 991 3_0_0 EXIST::FUNCTION:OCSP
|
||||
DSA_SIG_new 992 3_0_0 EXIST::FUNCTION:DSA
|
||||
DH_get_default_method 993 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_default_method 993 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
PEM_proc_type 994 3_0_0 EXIST::FUNCTION:
|
||||
BIO_printf 995 3_0_0 EXIST::FUNCTION:
|
||||
a2i_IPADDRESS 996 3_0_0 EXIST::FUNCTION:
|
||||
@@ -1337,7 +1337,7 @@ X509_get_default_cert_file_env 1366 3_0_0 EXIST::FUNCTION:
|
||||
X509v3_addr_validate_resource_set 1367 3_0_0 EXIST::FUNCTION:RFC3779
|
||||
d2i_X509_VAL 1368 3_0_0 EXIST::FUNCTION:
|
||||
CRYPTO_gcm128_decrypt_ctr32 1370 3_0_0 EXIST::FUNCTION:
|
||||
DHparams_print 1371 3_0_0 EXIST::FUNCTION:DH
|
||||
DHparams_print 1371 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
OPENSSL_sk_unshift 1372 3_0_0 EXIST::FUNCTION:
|
||||
BN_GENCB_set_old 1373 3_0_0 EXIST::FUNCTION:
|
||||
PEM_write_bio_X509 1374 3_0_0 EXIST::FUNCTION:
|
||||
@@ -1716,7 +1716,7 @@ i2d_NETSCAPE_SPKI 1754 3_0_0 EXIST::FUNCTION:
|
||||
ASYNC_init_thread 1755 3_0_0 EXIST::FUNCTION:
|
||||
OCSP_BASICRESP_get_ext_by_OBJ 1756 3_0_0 EXIST::FUNCTION:OCSP
|
||||
X509_reject_clear 1757 3_0_0 EXIST::FUNCTION:
|
||||
DH_security_bits 1758 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_security_bits 1758 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
LONG_it 1759 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
|
||||
ASN1_dup 1760 3_0_0 EXIST::FUNCTION:
|
||||
TS_RESP_new 1761 3_0_0 EXIST::FUNCTION:TS
|
||||
@@ -2018,7 +2018,7 @@ EVP_MD_CTX_clear_flags 2064 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_meth_get_verifyctx 2065 3_0_0 EXIST::FUNCTION:
|
||||
CT_POLICY_EVAL_CTX_get0_cert 2066 3_0_0 EXIST::FUNCTION:CT
|
||||
PEM_write_DHparams 2067 3_0_0 EXIST::FUNCTION:DH,STDIO
|
||||
DH_set_ex_data 2068 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_set_ex_data 2068 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
OCSP_SIGNATURE_free 2069 3_0_0 EXIST::FUNCTION:OCSP
|
||||
CRYPTO_128_unwrap_pad 2070 3_0_0 EXIST::FUNCTION:
|
||||
BIO_new_CMS 2071 3_0_0 EXIST::FUNCTION:CMS
|
||||
@@ -2061,7 +2061,7 @@ OCSP_ONEREQ_add1_ext_i2d 2107 3_0_0 EXIST::FUNCTION:OCSP
|
||||
ENGINE_register_pkey_meths 2108 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
ENGINE_load_public_key 2109 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
ASIdOrRange_it 2110 3_0_0 EXIST::FUNCTION:RFC3779
|
||||
DHparams_print_fp 2111 3_0_0 EXIST::FUNCTION:DH,STDIO
|
||||
DHparams_print_fp 2111 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH,STDIO
|
||||
ERR_load_CRYPTO_strings 2112 3_0_0 EXIST:!VMS:FUNCTION:
|
||||
ERR_load_CRYPTOlib_strings 2112 3_0_0 EXIST:VMS:FUNCTION:
|
||||
X509_REQ_set_version 2113 3_0_0 EXIST::FUNCTION:
|
||||
@@ -2289,7 +2289,7 @@ OPENSSL_sk_zero 2337 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_PRINTABLE_type 2338 3_0_0 EXIST::FUNCTION:
|
||||
TS_CONF_set_ess_cert_id_chain 2339 3_0_0 EXIST::FUNCTION:TS
|
||||
PEM_read_DSAPrivateKey 2340 3_0_0 EXIST::FUNCTION:DSA,STDIO
|
||||
DH_generate_parameters_ex 2341 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_generate_parameters_ex 2341 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
UI_dup_input_string 2342 3_0_0 EXIST::FUNCTION:
|
||||
X509_keyid_set1 2343 3_0_0 EXIST::FUNCTION:
|
||||
X509_VERIFY_PARAM_set1 2344 3_0_0 EXIST::FUNCTION:
|
||||
@@ -2315,7 +2315,7 @@ OTHERNAME_it 2363 3_0_0 EXIST::FUNCTION:
|
||||
X509at_add1_attr_by_txt 2364 3_0_0 EXIST::FUNCTION:
|
||||
PKCS7_SIGN_ENVELOPE_free 2365 3_0_0 EXIST::FUNCTION:
|
||||
BIO_dgram_is_sctp 2366 3_0_0 EXIST::FUNCTION:DGRAM,SCTP
|
||||
DH_check 2367 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_check 2367 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
Camellia_set_key 2368 3_0_0 EXIST::FUNCTION:CAMELLIA,DEPRECATEDIN_3_0
|
||||
X509_LOOKUP_by_issuer_serial 2369 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_BMPSTRING_free 2370 3_0_0 EXIST::FUNCTION:
|
||||
@@ -2545,7 +2545,7 @@ MD4_Update 2598 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_
|
||||
X509_STORE_CTX_set_time 2599 3_0_0 EXIST::FUNCTION:
|
||||
ENGINE_set_default_DH 2600 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
X509_ocspid_print 2601 3_0_0 EXIST::FUNCTION:
|
||||
DH_set_method 2602 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_set_method 2602 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
EVP_rc2_64_cbc 2603 3_0_0 EXIST::FUNCTION:RC2
|
||||
CRYPTO_THREAD_get_current_id 2604 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_CTX_set_cb 2605 3_0_0 EXIST::FUNCTION:
|
||||
@@ -2723,7 +2723,7 @@ OPENSSL_sk_value 2781 3_0_0 EXIST::FUNCTION:
|
||||
NCONF_get_section 2782 3_0_0 EXIST::FUNCTION:
|
||||
PKCS12_MAC_DATA_it 2783 3_0_0 EXIST::FUNCTION:
|
||||
X509_REQ_add1_attr_by_NID 2784 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_sign 2785 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_sign 2785 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
|
||||
CMS_RecipientInfo_encrypt 2786 3_0_0 EXIST::FUNCTION:CMS
|
||||
X509_get_pubkey_parameters 2787 3_0_0 EXIST::FUNCTION:
|
||||
PKCS12_setup_mac 2788 3_0_0 EXIST::FUNCTION:
|
||||
@@ -2841,7 +2841,7 @@ i2d_RSAPrivateKey_fp 2902 3_0_0 EXIST::FUNCTION:RSA,STDIO
|
||||
X509_REQ_print 2903 3_0_0 EXIST::FUNCTION:
|
||||
RSA_size 2904 3_0_0 EXIST::FUNCTION:RSA
|
||||
EVP_CIPHER_CTX_iv_noconst 2905 3_0_0 EXIST::FUNCTION:
|
||||
DH_set_default_method 2906 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_set_default_method 2906 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
X509_ALGOR_new 2907 3_0_0 EXIST::FUNCTION:
|
||||
EVP_aes_192_ofb 2908 3_0_0 EXIST::FUNCTION:
|
||||
EVP_des_ede3_cfb1 2909 3_0_0 EXIST::FUNCTION:DES
|
||||
@@ -2911,7 +2911,7 @@ TS_REQ_get_cert_req 2973 3_0_0 EXIST::FUNCTION:TS
|
||||
BIO_pop 2974 3_0_0 EXIST::FUNCTION:
|
||||
SHA256_Final 2975 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_set1_DH 2976 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_ex_data 2977 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_ex_data 2977 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
CRYPTO_secure_malloc 2978 3_0_0 EXIST::FUNCTION:
|
||||
TS_RESP_get_status_info 2979 3_0_0 EXIST::FUNCTION:TS
|
||||
HMAC_CTX_new 2980 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
|
||||
@@ -2939,7 +2939,7 @@ TS_RESP_CTX_set_status_info 3001 3_0_0 EXIST::FUNCTION:TS
|
||||
BIO_f_nbio_test 3002 3_0_0 EXIST::FUNCTION:
|
||||
SEED_ofb128_encrypt 3003 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,SEED
|
||||
d2i_RSAPrivateKey_bio 3004 3_0_0 EXIST::FUNCTION:RSA
|
||||
DH_KDF_X9_42 3005 3_0_0 EXIST::FUNCTION:CMS,DH
|
||||
DH_KDF_X9_42 3005 3_0_0 EXIST::FUNCTION:CMS,DEPRECATEDIN_3_0,DH
|
||||
EVP_PKEY_meth_set_signctx 3006 3_0_0 EXIST::FUNCTION:
|
||||
X509_CRL_get_version 3007 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_meth_get0_info 3008 3_0_0 EXIST::FUNCTION:
|
||||
@@ -3163,7 +3163,7 @@ ACCESS_DESCRIPTION_free 3228 3_0_0 EXIST::FUNCTION:
|
||||
BN_nist_mod_384 3229 3_0_0 EXIST::FUNCTION:
|
||||
i2d_EC_PUBKEY_fp 3230 3_0_0 EXIST::FUNCTION:EC,STDIO
|
||||
ENGINE_set_default_pkey_meths 3231 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
DH_bits 3232 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_bits 3232 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
i2d_X509_ALGORS 3233 3_0_0 EXIST::FUNCTION:
|
||||
EVP_camellia_192_cfb1 3234 3_0_0 EXIST::FUNCTION:CAMELLIA
|
||||
TS_RESP_CTX_add_failure_info 3235 3_0_0 EXIST::FUNCTION:TS
|
||||
@@ -3343,7 +3343,7 @@ BUF_MEM_new_ex 3412 3_0_0 EXIST::FUNCTION:
|
||||
RSA_padding_add_X931 3413 3_0_0 EXIST::FUNCTION:RSA
|
||||
BN_get0_nist_prime_256 3414 3_0_0 EXIST::FUNCTION:
|
||||
CRYPTO_memcmp 3415 3_0_0 EXIST::FUNCTION:
|
||||
DH_check_pub_key 3416 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_check_pub_key 3416 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
ASN1_mbstring_copy 3417 3_0_0 EXIST::FUNCTION:
|
||||
PKCS7_set_type 3418 3_0_0 EXIST::FUNCTION:
|
||||
BIO_gets 3419 3_0_0 EXIST::FUNCTION:
|
||||
@@ -3596,7 +3596,7 @@ X509v3_asid_canonize 3675 3_0_0 EXIST::FUNCTION:RFC3779
|
||||
i2d_ASIdOrRange 3676 3_0_0 EXIST::FUNCTION:RFC3779
|
||||
OCSP_url_svcloc_new 3677 3_0_0 EXIST::FUNCTION:OCSP
|
||||
CRYPTO_mem_ctrl 3678 3_0_0 EXIST::FUNCTION:CRYPTO_MDEBUG,DEPRECATEDIN_3_0
|
||||
ASN1_verify 3679 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_verify 3679 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
|
||||
DSA_generate_parameters_ex 3680 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
|
||||
X509_sign 3681 3_0_0 EXIST::FUNCTION:
|
||||
SHA256_Transform 3682 3_0_0 EXIST::FUNCTION:
|
||||
@@ -3615,7 +3615,7 @@ EVP_CIPHER_CTX_encrypting 3694 3_0_0 EXIST::FUNCTION:
|
||||
EC_KEY_can_sign 3695 3_0_0 EXIST::FUNCTION:EC
|
||||
PEM_write_bio_RSAPublicKey 3696 3_0_0 EXIST::FUNCTION:RSA
|
||||
X509_CRL_set1_lastUpdate 3697 3_0_0 EXIST::FUNCTION:
|
||||
OCSP_sendreq_nbio 3698 3_0_0 EXIST::FUNCTION:OCSP,SOCK
|
||||
OCSP_sendreq_nbio 3698 3_0_0 EXIST::FUNCTION:OCSP
|
||||
PKCS8_encrypt 3699 3_0_0 EXIST::FUNCTION:
|
||||
i2d_PKCS7_fp 3700 3_0_0 EXIST::FUNCTION:STDIO
|
||||
i2d_X509_REQ 3701 3_0_0 EXIST::FUNCTION:
|
||||
@@ -3951,33 +3951,33 @@ RSA_get0_crt_params 4038 3_0_0 EXIST::FUNCTION:RSA
|
||||
DH_set0_pqg 4039 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_clear_flags 4041 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get0_key 4042 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get0_engine 4043 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get0_engine 4043 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_set0_key 4044 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_set_length 4045 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_set_length 4045 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_test_flags 4046 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_length 4047 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_length 4047 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_get0_pqg 4048 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_compute_key 4049 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set1_name 4050 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_init 4051 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_finish 4052 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get0_name 4053 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_generate_params 4054 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_compute_key 4055 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_flags 4056 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_generate_params 4057 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_flags 4058 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_finish 4059 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get0_app_data 4060 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set0_app_data 4061 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_init 4062 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_bn_mod_exp 4063 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_new 4064 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_dup 4065 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_bn_mod_exp 4066 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_set_generate_key 4067 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_free 4068 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_generate_key 4069 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_meth_get_compute_key 4049 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set1_name 4050 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_init 4051 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get_finish 4052 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get0_name 4053 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_generate_params 4054 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_compute_key 4055 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_flags 4056 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get_generate_params 4057 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get_flags 4058 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_finish 4059 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get0_app_data 4060 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set0_app_data 4061 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get_init 4062 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get_bn_mod_exp 4063 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_new 4064 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_dup 4065 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_bn_mod_exp 4066 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_set_generate_key 4067 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_free 4068 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_meth_get_generate_key 4069 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_set_flags 4070 3_0_0 EXIST::FUNCTION:DH
|
||||
X509_STORE_CTX_get_obj_by_subject 4071 3_0_0 EXIST::FUNCTION:
|
||||
X509_OBJECT_free 4072 3_0_0 EXIST::FUNCTION:
|
||||
@@ -4250,7 +4250,7 @@ EVP_PKEY_meth_remove 4343 3_0_0 EXIST::FUNCTION:
|
||||
OPENSSL_sk_reserve 4344 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_set1_engine 4347 3_0_0 EXIST::FUNCTION:ENGINE
|
||||
DH_new_by_nid 4348 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_nid 4349 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_get_nid 4349 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
CRYPTO_get_alloc_counts 4350 3_0_0 EXIST::FUNCTION:CRYPTO_MDEBUG
|
||||
OPENSSL_sk_new_reserve 4351 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_asn1_set_check 4352 3_0_0 EXIST::FUNCTION:
|
||||
@@ -4270,9 +4270,9 @@ EVP_PKEY_meth_get_public_check 4365 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_meth_get_param_check 4366 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_asn1_set_public_check 4367 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_asn1_set_param_check 4368 3_0_0 EXIST::FUNCTION:
|
||||
DH_check_ex 4369 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_check_pub_key_ex 4370 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_check_params_ex 4371 3_0_0 EXIST::FUNCTION:DH
|
||||
DH_check_ex 4369 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_check_pub_key_ex 4370 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
DH_check_params_ex 4371 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
|
||||
RSA_generate_multi_prime_key 4372 3_0_0 EXIST::FUNCTION:RSA
|
||||
RSA_get_multi_prime_extra_count 4373 3_0_0 EXIST::FUNCTION:RSA
|
||||
OCSP_resp_get0_signer 4374 3_0_0 EXIST::FUNCTION:OCSP
|
||||
@@ -4919,15 +4919,15 @@ EVP_PKEY_pairwise_check ? 3_0_0 EXIST::FUNCTION:
|
||||
ASN1_item_verify_ctx ? 3_0_0 EXIST::FUNCTION:
|
||||
RAND_DRBG_set_callback_data ? 3_0_0 EXIST::FUNCTION:
|
||||
RAND_DRBG_get_callback_data ? 3_0_0 EXIST::FUNCTION:
|
||||
BIO_wait ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
BIO_socket_wait ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
BIO_connect_retry ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
BIO_wait ? 3_0_0 EXIST::FUNCTION:
|
||||
BIO_connect_retry ? 3_0_0 EXIST::FUNCTION:
|
||||
ERR_load_HTTP_strings ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_HTTP_get ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
OSSL_HTTP_get_asn1 ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
OSSL_HTTP_post_asn1 ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
OSSL_HTTP_transfer ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
OSSL_HTTP_proxy_connect ? 3_0_0 EXIST::FUNCTION:SOCK
|
||||
OSSL_HTTP_get ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_HTTP_get_asn1 ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_HTTP_post_asn1 ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_HTTP_transfer ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_HTTP_proxy_connect ? 3_0_0 EXIST::FUNCTION:
|
||||
ERR_add_error_txt ? 3_0_0 EXIST::FUNCTION:
|
||||
ERR_add_error_mem_bio ? 3_0_0 EXIST::FUNCTION:
|
||||
X509_STORE_CTX_print_verify_cb ? 3_0_0 EXIST::FUNCTION:
|
||||
@@ -4935,4 +4935,21 @@ X509_STORE_get1_all_certs ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_CMP_validate_msg ? 3_0_0 EXIST::FUNCTION:CMP
|
||||
OSSL_CMP_validate_cert_path ? 3_0_0 EXIST::FUNCTION:CMP
|
||||
OSSL_CMP_print_to_bio ? 3_0_0 EXIST::FUNCTION:CMP
|
||||
EVP_PKEY_CTX_set_ecdh_cofactor_mode ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_get_ecdh_cofactor_mode ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_set_ecdh_kdf_type ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_get_ecdh_kdf_type ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_set_ecdh_kdf_md ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_get_ecdh_kdf_md ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_set_ecdh_kdf_outlen ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_get_ecdh_kdf_outlen ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_set0_ecdh_kdf_ukm ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_get0_ecdh_kdf_ukm ? 3_0_0 EXIST::FUNCTION:EC
|
||||
EVP_PKEY_CTX_set_rsa_pss_saltlen ? 3_0_0 EXIST::FUNCTION:RSA
|
||||
EVP_PKEY_CTX_get_rsa_pss_saltlen ? 3_0_0 EXIST::FUNCTION:RSA
|
||||
OSSL_SELF_TEST_new ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_SELF_TEST_free ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_SELF_TEST_onbegin ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_SELF_TEST_oncorrupt_byte ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_SELF_TEST_onend ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_chacha20_poly1305_draft ? 3_0_0 EXIST::FUNCTION:CHACHA,POLY1305
|
||||
@@ -1326,15 +1326,6 @@ X509_EXTENSIONS_it(3)
|
||||
X509_EXTENSION_it(3)
|
||||
X509_INFO_free(3)
|
||||
X509_INFO_new(3)
|
||||
X509_LOOKUP_by_alias(3)
|
||||
X509_LOOKUP_by_fingerprint(3)
|
||||
X509_LOOKUP_by_issuer_serial(3)
|
||||
X509_LOOKUP_by_subject(3)
|
||||
X509_LOOKUP_ctrl(3)
|
||||
X509_LOOKUP_free(3)
|
||||
X509_LOOKUP_init(3)
|
||||
X509_LOOKUP_new(3)
|
||||
X509_LOOKUP_shutdown(3)
|
||||
X509_NAME_ENTRY_it(3)
|
||||
X509_NAME_ENTRY_set(3)
|
||||
X509_NAME_hash(3)
|
||||
@@ -1407,7 +1398,6 @@ X509_STORE_CTX_set_flags(3)
|
||||
X509_STORE_CTX_set_purpose(3)
|
||||
X509_STORE_CTX_set_time(3)
|
||||
X509_STORE_CTX_set_trust(3)
|
||||
X509_STORE_add_lookup(3)
|
||||
X509_STORE_get_verify(3)
|
||||
X509_TRUST_add(3)
|
||||
X509_TRUST_cleanup(3)
|
||||
@@ -1557,20 +1547,12 @@ i2d_PrivateKey_fp(3)
|
||||
i2d_X509_bio(3)
|
||||
i2d_X509_fp(3)
|
||||
i2o_ECPublicKey(3)
|
||||
i2s_ASN1_ENUMERATED(3)
|
||||
i2s_ASN1_ENUMERATED_TABLE(3)
|
||||
i2s_ASN1_IA5STRING(3)
|
||||
i2s_ASN1_INTEGER(3)
|
||||
i2s_ASN1_OCTET_STRING(3)
|
||||
i2v_ASN1_BIT_STRING(3)
|
||||
i2v_GENERAL_NAME(3)
|
||||
i2v_GENERAL_NAMES(3)
|
||||
o2i_ECPublicKey(3)
|
||||
openssl-core_numbers.h(7)
|
||||
provider-kdf(7)
|
||||
s2i_ASN1_IA5STRING(3)
|
||||
s2i_ASN1_INTEGER(3)
|
||||
s2i_ASN1_OCTET_STRING(3)
|
||||
v2i_ASN1_BIT_STRING(3)
|
||||
v2i_GENERAL_NAME(3)
|
||||
v2i_GENERAL_NAMES(3)
|
||||
|
||||
@@ -166,10 +166,6 @@ SSL_CTX_set_tlsext_ticket_keys(3)
|
||||
X509_extract_key(3)
|
||||
X509_REQ_extract_key(3)
|
||||
X509_name_cmp(3)
|
||||
X509_LOOKUP_load_file(3)
|
||||
X509_LOOKUP_load_store(3)
|
||||
X509_LOOKUP_add_dir(3)
|
||||
X509_LOOKUP_add_store(3)
|
||||
X509V3_conf_err(3)
|
||||
X509V3_set_ctx_test(3)
|
||||
X509V3_set_ctx_nodb(3)
|
||||
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use lib ".";
|
||||
use Getopt::Std;
|
||||
use Pod::Html;
|
||||
|
||||
# Options.
|
||||
our($opt_i); # -i INFILE
|
||||
our($opt_o); # -o OUTFILE
|
||||
our($opt_t); # -t TITLE
|
||||
our($opt_r); # -r PODROOT
|
||||
|
||||
getopts('i:o:t:r:');
|
||||
die "-i flag missing" unless $opt_i;
|
||||
die "-o flag missing" unless $opt_o;
|
||||
die "-t flag missing" unless $opt_t;
|
||||
die "-r flag missing" unless $opt_r;
|
||||
|
||||
pod2html
|
||||
"--infile=$opt_i",
|
||||
"--outfile=$opt_o",
|
||||
"--title=$opt_t",
|
||||
"--podroot=$opt_r",
|
||||
"--podpath=man1:man3:man5:man7",
|
||||
"--htmldir=..";
|
||||
|
||||
# Read in contents.
|
||||
open F, "<$opt_o"
|
||||
or die "Can't read $opt_o, $!";
|
||||
my $contents = '';
|
||||
{
|
||||
local $/ = undef;
|
||||
$contents = <F>;
|
||||
}
|
||||
close F;
|
||||
unlink $opt_o;
|
||||
|
||||
$contents =~
|
||||
s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html|g;
|
||||
open F, ">$opt_o"
|
||||
or die "Can't write $opt_o, $!";
|
||||
print F $contents;
|
||||
close F;
|
||||
+5
-1
@@ -8,7 +8,11 @@
|
||||
|
||||
HERE=`dirname $0`
|
||||
|
||||
version=`grep 'OPENSSL_VERSION_TEXT *"OpenSSL' $HERE/../include/openssl/opensslv.h | sed -e 's|.*"OpenSSL ||' -e 's| .*||'`
|
||||
# Get all version data as shell variables
|
||||
. $HERE/../VERSION
|
||||
|
||||
if [ -n "$PRE_RELEASE_TAG" ]; then PRE_RELEASE_TAG=-$PRE_RELEASE_TAG; fi
|
||||
version=$MAJOR.$MINOR.$PATCH$PRE_RELEASE_TAG$BUILD_METADATA
|
||||
basename=openssl
|
||||
|
||||
NAME="$basename-$version"
|
||||
|
||||
@@ -95,11 +95,15 @@ X509_STORE_CTX_lookup_crls_fn datatype
|
||||
X509_STORE_CTX_verify_cb datatype
|
||||
X509_STORE_CTX_verify_fn datatype
|
||||
X509_STORE_set_verify_cb_func datatype
|
||||
X509_LOOKUP datatype
|
||||
X509_LOOKUP_METHOD datatype
|
||||
X509_LOOKUP_TYPE datatype
|
||||
X509_LOOKUP_get_by_alias_fn datatype
|
||||
X509_LOOKUP_get_by_subject_fn datatype
|
||||
X509_LOOKUP_get_by_fingerprint_fn datatype
|
||||
X509_LOOKUP_ctrl_fn datatype
|
||||
X509_LOOKUP_get_by_issuer_serial_fn datatype
|
||||
X509_STORE datatype
|
||||
bio_info_cb datatype
|
||||
BIO_info_cb datatype
|
||||
custom_ext_add_cb datatype
|
||||
@@ -544,6 +548,10 @@ SSLv23_server_method define
|
||||
TLS_DEFAULT_CIPHERSUITES define deprecated 3.0.0
|
||||
X509_CRL_http_nbio define
|
||||
X509_http_nbio define
|
||||
X509_LOOKUP_add_dir define
|
||||
X509_LOOKUP_add_store define
|
||||
X509_LOOKUP_load_file define
|
||||
X509_LOOKUP_load_store define
|
||||
X509_STORE_set_lookup_crls_cb define
|
||||
X509_STORE_set_verify_func define
|
||||
EVP_PKEY_CTX_set1_id define
|
||||
|
||||
+46
-34
@@ -132,6 +132,7 @@ is defined).
|
||||
sub setup {
|
||||
my $old_test_name = $test_name;
|
||||
$test_name = shift;
|
||||
my %opts = @_;
|
||||
|
||||
BAIL_OUT("setup() must receive a name") unless $test_name;
|
||||
warn "setup() detected test name change. Innocuous, so we continue...\n"
|
||||
@@ -149,6 +150,9 @@ sub setup {
|
||||
BAIL_OUT("setup() expects the file Configure in the source top directory")
|
||||
unless -f srctop_file("Configure");
|
||||
|
||||
note "The results of this test will end up in $directories{RESULTS}"
|
||||
unless $opts{quiet};
|
||||
|
||||
__cwd($directories{RESULTS});
|
||||
}
|
||||
|
||||
@@ -170,12 +174,6 @@ When set to 1 (or any value that perl perceives as true), the subdirectory
|
||||
will be created if it doesn't already exist. This happens before BLOCK
|
||||
is executed.
|
||||
|
||||
=item B<cleanup =E<gt> 0|1>
|
||||
|
||||
When set to 1 (or any value that perl perceives as true), the subdirectory
|
||||
will be cleaned out and removed. This happens both before and after BLOCK
|
||||
is executed.
|
||||
|
||||
=back
|
||||
|
||||
An example:
|
||||
@@ -188,7 +186,7 @@ An example:
|
||||
is($line, qr/^OpenSSL 1\./,
|
||||
"check that we're using OpenSSL 1.x.x");
|
||||
}
|
||||
}, create => 1, cleanup => 1;
|
||||
}, create => 1;
|
||||
|
||||
=back
|
||||
|
||||
@@ -206,10 +204,6 @@ sub indir {
|
||||
$codeblock->();
|
||||
|
||||
__cwd($reverse);
|
||||
|
||||
if ($opts{cleanup}) {
|
||||
rmtree($subdir, { safe => 0 });
|
||||
}
|
||||
}
|
||||
|
||||
=over 4
|
||||
@@ -943,17 +937,22 @@ i.e. Some tests may only work in non FIPS mode.
|
||||
sub __env {
|
||||
(my $recipe_datadir = basename($0)) =~ s/\.t$/_data/i;
|
||||
|
||||
$directories{SRCTOP} = abs_path($ENV{SRCTOP} || $ENV{TOP});
|
||||
$directories{BLDTOP} = abs_path($ENV{BLDTOP} || $ENV{TOP});
|
||||
$directories{BLDAPPS} = $ENV{BIN_D} || __bldtop_dir("apps");
|
||||
$directories{SRCAPPS} = __srctop_dir("apps");
|
||||
$directories{BLDFUZZ} = __bldtop_dir("fuzz");
|
||||
$directories{SRCFUZZ} = __srctop_dir("fuzz");
|
||||
$directories{BLDTEST} = $ENV{TEST_D} || __bldtop_dir("test");
|
||||
$directories{SRCTEST} = __srctop_dir("test");
|
||||
$directories{SRCDATA} = __srctop_dir("test", "recipes",
|
||||
$recipe_datadir);
|
||||
$directories{RESULTS} = $ENV{RESULT_D} || $directories{BLDTEST};
|
||||
$directories{SRCTOP} = abs_path($ENV{SRCTOP} || $ENV{TOP});
|
||||
$directories{BLDTOP} = abs_path($ENV{BLDTOP} || $ENV{TOP});
|
||||
$directories{BLDAPPS} = $ENV{BIN_D} || __bldtop_dir("apps");
|
||||
$directories{SRCAPPS} = __srctop_dir("apps");
|
||||
$directories{BLDFUZZ} = __bldtop_dir("fuzz");
|
||||
$directories{SRCFUZZ} = __srctop_dir("fuzz");
|
||||
$directories{BLDTEST} = $ENV{TEST_D} || __bldtop_dir("test");
|
||||
$directories{SRCTEST} = __srctop_dir("test");
|
||||
$directories{SRCDATA} = __srctop_dir("test", "recipes",
|
||||
$recipe_datadir);
|
||||
$directories{RESULTTOP} = $ENV{RESULT_D} || __bldtop_dir("test-runs");
|
||||
$directories{RESULTS} = catdir($directories{RESULTTOP}, $test_name);
|
||||
|
||||
# Create result directory dynamically
|
||||
rmtree($directories{RESULTS}, { safe => 0, keep_root => 1 });
|
||||
mkpath($directories{RESULTS});
|
||||
|
||||
push @direnv, "TOP" if $ENV{TOP};
|
||||
push @direnv, "SRCTOP" if $ENV{SRCTOP};
|
||||
@@ -962,7 +961,7 @@ sub __env {
|
||||
push @direnv, "TEST_D" if $ENV{TEST_D};
|
||||
push @direnv, "RESULT_D" if $ENV{RESULT_D};
|
||||
|
||||
$end_with_bailout = $ENV{STOPTEST} ? 1 : 0;
|
||||
$end_with_bailout = $ENV{STOPTEST} ? 1 : 0;
|
||||
};
|
||||
|
||||
# __srctop_file and __srctop_dir are helpers to build file and directory
|
||||
@@ -1079,7 +1078,6 @@ sub __results_file {
|
||||
# hash style arguments to alter __cwd's behavior:
|
||||
#
|
||||
# create = 0|1 The directory we move to is created if 1, not if 0.
|
||||
# cleanup = 0|1 The directory we move from is removed if 1, not if 0.
|
||||
|
||||
sub __cwd {
|
||||
my $dir = catdir(shift);
|
||||
@@ -1137,10 +1135,6 @@ sub __cwd {
|
||||
# Should we just bail out here as well? I'm unsure.
|
||||
return undef unless chdir($dir);
|
||||
|
||||
if ($opts{cleanup}) {
|
||||
rmtree(".", { safe => 0, keep_root => 1 });
|
||||
}
|
||||
|
||||
# We put back new values carefully. Doing the obvious
|
||||
# %directories = ( %tmp_directories )
|
||||
# will clear out any value that happens to be an absolute path
|
||||
@@ -1184,13 +1178,31 @@ sub __wrap_cmd {
|
||||
my $cmd = shift;
|
||||
my $exe_shell = shift;
|
||||
|
||||
my @prefix = ( __bldtop_file("util", "shlib_wrap.sh") );
|
||||
my @prefix = ();
|
||||
|
||||
if(defined($exe_shell)) {
|
||||
@prefix = ( $exe_shell );
|
||||
} elsif ($^O eq "VMS" || $^O eq "MSWin32") {
|
||||
# VMS and Windows don't use any wrapper script for the moment
|
||||
@prefix = ();
|
||||
if (defined($exe_shell)) {
|
||||
# If $exe_shell is defined, trust it
|
||||
@prefix = ( $exe_shell );
|
||||
} else {
|
||||
# Otherwise, use the standard wrapper
|
||||
my $std_wrapper = __bldtop_file("util", "wrap.pl");
|
||||
|
||||
if ($^O eq "VMS") {
|
||||
# On VMS, running random executables without having a command
|
||||
# symbol means running them with the MCR command. This is an
|
||||
# old PDP-11 command that stuck around. So we get a command
|
||||
# running perl running the script.
|
||||
@prefix = ( "MCR", $^X, $std_wrapper );
|
||||
} elsif ($^O eq "MSWin32") {
|
||||
# In the Windows case, we run perl explicitly. We might not
|
||||
# need it, but that depends on if the user has associated the
|
||||
# '.pl' extension with a perl interpreter, so better be safe.
|
||||
@prefix = ( $^X, $std_wrapper );
|
||||
} else {
|
||||
# Otherwise, we assume Unix semantics, and trust that the #!
|
||||
# line activates perl for us.
|
||||
@prefix = ( $std_wrapper );
|
||||
}
|
||||
}
|
||||
|
||||
return (@prefix, $cmd);
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
use strict;
|
||||
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 directories
|
||||
'section=i@', # Subdirectories to look through,
|
||||
# with associated section numbers
|
||||
'destdir=s', # Destination directory
|
||||
#'in=s@', # Explicit files to process (ignores sourcedir)
|
||||
'type=s', # The result type, 'man' or 'html'
|
||||
'suffix:s', # Suffix to add to the extension.
|
||||
# Only used with type=man
|
||||
'remove', # To remove files rather than writing them
|
||||
'dry-run|n', # Only output file names on STDOUT
|
||||
'debug|D+',
|
||||
);
|
||||
|
||||
unless ($options{section}) {
|
||||
$options{section} = [ 1, 3, 5, 7 ];
|
||||
}
|
||||
unless ($options{sourcedir}) {
|
||||
$options{sourcedir} = [ catdir($config{sourcedir}, "doc"),
|
||||
catdir($config{builddir}, "doc") ];
|
||||
}
|
||||
pod2usage(1) unless ( defined $options{section}
|
||||
&& defined $options{sourcedir}
|
||||
&& defined $options{destdir}
|
||||
&& defined $options{type}
|
||||
&& ($options{type} eq 'man'
|
||||
|| $options{type} eq 'html') );
|
||||
pod2usage(1) if ( $options{type} eq 'html'
|
||||
&& defined $options{suffix} );
|
||||
|
||||
if ($options{debug}) {
|
||||
print STDERR "DEBUG: options:\n";
|
||||
foreach (sort @{$options{sourcedir}}) {
|
||||
print STDERR "DEBUG: --sourcedir = $_\n";
|
||||
}
|
||||
print STDERR "DEBUG: --destdir = $options{destdir}\n"
|
||||
if defined $options{destdir};
|
||||
print STDERR "DEBUG: --type = $options{type}\n"
|
||||
if defined $options{type};
|
||||
print STDERR "DEBUG: --suffix = $options{suffix}\n"
|
||||
if defined $options{suffix};
|
||||
foreach (sort @{$options{section}}) {
|
||||
print STDERR "DEBUG: --section = $_\n";
|
||||
}
|
||||
print STDERR "DEBUG: --remove = $options{remove}\n"
|
||||
if defined $options{remove};
|
||||
print STDERR "DEBUG: --debug = $options{debug}\n"
|
||||
if defined $options{debug};
|
||||
print STDERR "DEBUG: --dry-run = $options{\"dry-run\"}\n"
|
||||
if defined $options{"dry-run"};
|
||||
}
|
||||
|
||||
my $symlink_exists = eval { symlink("",""); 1 };
|
||||
|
||||
foreach my $section (sort @{$options{section}}) {
|
||||
my $subdir = "man$section";
|
||||
foreach my $sourcedir (@{$options{sourcedir}}) {
|
||||
my $podsourcedir = catfile($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=$sourcedir" --htmldir=$updir --podpath=man1:man3:man5:man7 "--infile=$podpath" "--title=$podname" --quiet
|
||||
_____
|
||||
} -> {$options{type}};
|
||||
my $output_dir = catdir($options{destdir}, "man$podinfo{section}");
|
||||
my $output_file = $podname . $suffix;
|
||||
my $output_path = catfile($output_dir, $output_file);
|
||||
|
||||
if (! $options{remove}) {
|
||||
my @output;
|
||||
print STDERR "DEBUG: Processing, using \"$generate\"\n"
|
||||
if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
@output = `$generate`;
|
||||
map { s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html"|g; } @output
|
||||
if $options{type} eq "html";
|
||||
if ($options{type} eq "man") {
|
||||
# Because some *roff parsers are more strict than
|
||||
# others, multiple lines in the NAME section must
|
||||
# be merged into one.
|
||||
my $in_name = 0;
|
||||
my $name_line = "";
|
||||
my @newoutput = ();
|
||||
foreach (@output) {
|
||||
if ($in_name) {
|
||||
if (/^\.SH "/) {
|
||||
$in_name = 0;
|
||||
push @newoutput, $name_line."\n";
|
||||
} else {
|
||||
chomp (my $x = $_);
|
||||
$name_line .= " " if $name_line;
|
||||
$name_line .= $x;
|
||||
next;
|
||||
}
|
||||
}
|
||||
if (/^\.SH +"NAME" *$/) {
|
||||
$in_name = 1;
|
||||
}
|
||||
push @newoutput, $_;
|
||||
}
|
||||
@output = @newoutput;
|
||||
}
|
||||
}
|
||||
print STDERR "DEBUG: Done processing\n" if $options{debug};
|
||||
|
||||
if (! -d $output_dir) {
|
||||
print STDERR "DEBUG: Creating directory $output_dir\n"
|
||||
if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
mkpath $output_dir
|
||||
or die "Trying to create directory $output_dir: $!\n";
|
||||
}
|
||||
}
|
||||
print STDERR "DEBUG: Writing $output_path\n" if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
open my $output_fh, '>', $output_path
|
||||
or die "Trying to write to $output_path: $!\n";
|
||||
foreach (@output) {
|
||||
print $output_fh $_;
|
||||
}
|
||||
close $output_fh;
|
||||
}
|
||||
print STDERR "DEBUG: Done writing $output_path\n" if $options{debug};
|
||||
} else {
|
||||
print STDERR "DEBUG: Removing $output_path\n" if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
while (unlink $output_path) {}
|
||||
}
|
||||
}
|
||||
print "$output_path\n";
|
||||
|
||||
foreach (@podfiles) {
|
||||
my $link_file = $_ . $suffix;
|
||||
my $link_path = catfile($output_dir, $link_file);
|
||||
if (! $options{remove}) {
|
||||
if ($symlink_exists) {
|
||||
print STDERR "DEBUG: Linking $link_path -> $output_file\n"
|
||||
if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
symlink $output_file, $link_path;
|
||||
}
|
||||
} else {
|
||||
print STDERR "DEBUG: Copying $output_path to link_path\n"
|
||||
if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
copy $output_path, $link_path;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print STDERR "DEBUG: Removing $link_path\n" if $options{debug};
|
||||
unless ($options{"dry-run"}) {
|
||||
while (unlink $link_path) {}
|
||||
}
|
||||
}
|
||||
print "$link_path -> $output_path\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
process_docs.pl - A script to process OpenSSL docs
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<process_docs.pl>
|
||||
[B<--sourcedir>=I<dir>]
|
||||
B<--destdir>=I<dir>
|
||||
B<--type>=B<man>|B<html>
|
||||
[B<--suffix>=I<suffix>]
|
||||
[B<--remove>]
|
||||
[B<--dry-run>|B<-n>]
|
||||
[B<--debug>|B<-D>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This script looks for .pod files in the subdirectories 'apps', 'crypto'
|
||||
and 'ssl' under the given source directory.
|
||||
|
||||
The OpenSSL configuration data file F<configdata.pm> I<must> reside in
|
||||
the current directory, I<or> perl must have the directory it resides in
|
||||
in its inclusion array. For the latter variant, a call like this would
|
||||
work:
|
||||
|
||||
perl -I../foo util/process_docs.pl {options ...}
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<--sourcedir>=I<dir>
|
||||
|
||||
Top directory where the source files are found.
|
||||
|
||||
=item B<--destdir>=I<dir>
|
||||
|
||||
Top directory where the resulting files should end up
|
||||
|
||||
=item B<--type>=B<man>|B<html>
|
||||
|
||||
Type of output to produce. Currently supported are man pages and HTML files.
|
||||
|
||||
=item B<--suffix>=I<suffix>
|
||||
|
||||
A suffix added to the extension. Only valid with B<--type>=B<man>
|
||||
|
||||
=item B<--remove>
|
||||
|
||||
Instead of writing the files, remove them.
|
||||
|
||||
=item B<--dry-run>|B<-n>
|
||||
|
||||
Do not perform any file writing, directory creation or file removal.
|
||||
|
||||
=item B<--debug>|B<-D>
|
||||
|
||||
Print extra debugging output.
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2013-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
https://www.openssl.org/source/license.html
|
||||
|
||||
=cut
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#! /usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Basename;
|
||||
use File::Spec::Functions;
|
||||
|
||||
my $there = canonpath(catdir(dirname($0), updir()));
|
||||
my $std_engines = catdir($there, 'engines');
|
||||
my $std_providers = catdir($there, 'providers');
|
||||
my $unix_shlib_wrap = catfile($there, 'util/shlib_wrap.sh');
|
||||
|
||||
$ENV{OPENSSL_ENGINES} = $std_engines
|
||||
if ($ENV{OPENSSL_ENGINES} // '') eq '' && -d $std_engines;
|
||||
$ENV{OPENSSL_MODULES} = $std_providers
|
||||
if ($ENV{OPENSSL_MODULES} // '') eq '' && -d $std_providers;
|
||||
|
||||
my $use_system = 0;
|
||||
my @cmd;
|
||||
|
||||
if (($ENV{EXE_SHELL} // '') ne '') {
|
||||
# We don't know what $ENV{EXE_SHELL} contains, so we must use the one
|
||||
# string form to ensure that exec invokes a shell as needed.
|
||||
@cmd = ( join(' ', $ENV{EXE_SHELL}, @ARGV) );
|
||||
} elsif (-x $unix_shlib_wrap) {
|
||||
@cmd = ( $unix_shlib_wrap, @ARGV );
|
||||
} else {
|
||||
# Hope for the best
|
||||
@cmd = ( @ARGV );
|
||||
}
|
||||
|
||||
# The exec() statement on MSWin32 doesn't seem to give back the exit code
|
||||
# from the call, so we resort to using system() instead.
|
||||
my $waitcode = system @cmd;
|
||||
|
||||
# According to documentation, -1 means that system() couldn't run the command,
|
||||
# otherwise, the value is similar to the Unix wait() status value
|
||||
# (exitcode << 8 | signalcode)
|
||||
die "wrap.pl: Failed to execute '", join(' ', @cmd), "': $!\n"
|
||||
if $waitcode == -1;
|
||||
exit($? & 255) if ($? & 255) != 0;
|
||||
exit($? >> 8);
|
||||
Reference in New Issue
Block a user