Latest update.

This commit is contained in:
2020-03-03 19:16:19 +09:00
parent f85de4da03
commit b412d79e8b
310 changed files with 32765 additions and 19720 deletions
+194 -21
View File
@@ -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
View File
@@ -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
-18
View File
@@ -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)
-4
View File
@@ -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)
+52
View File
@@ -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
View File
@@ -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"
+8
View File
@@ -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
View File
@@ -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);
-282
View File
@@ -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
View File
@@ -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);