From levitte at openssl.org Mon Oct 1 07:49:59 2018 From: levitte at openssl.org (Richard Levitte) Date: Mon, 01 Oct 2018 07:49:59 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538380199.977226.10768.nullmailer@dev.openssl.org> The branch master has been updated via ef2dfc9902e015de91f015177bdf235c9000839e (commit) from b44882a0bd0717e0aab84f5dc3ef81ab673155e9 (commit) - Log ----------------------------------------------------------------- commit ef2dfc9902e015de91f015177bdf235c9000839e Author: Richard Levitte Date: Sun Sep 30 14:44:59 2018 +0200 Refactor linker script generation The generation of linker scripts was badly balanced, as all sorts of platform dependent stuff went into the top build.info, when that part should really be made as simply and generic as possible. Therefore, we move a lot of the "magic" to the build files templates, since they are the place for platform dependent things. What remains is to parametrize just enough in the build.info file to generate the linker scripts correctly for each associated library. "linker script" is a term usually reserved for certain Unix linkers. However, we only use them to say what symbols should be exported, so we use the term loosely for all platforms. The internal extension is '.ld', and is changed by the build file templates as appropriate for each target platform. Note that this adds extra meaning to the value of the shared_target attribute. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7333) ----------------------------------------------------------------------- Summary of changes: Configurations/10-main.conf | 8 ++++-- Configurations/README | 9 ++++++- Configurations/descrip.mms.tmpl | 21 +++++++++++++--- Configurations/shared-info.pl | 2 +- Configurations/unix-Makefile.tmpl | 25 ++++++++++++++----- Configurations/windows-makefile.tmpl | 24 +++++++++++++++--- Configure | 19 +++++++++------ build.info | 47 +++--------------------------------- util/mkdef.pl | 7 +++--- 9 files changed, 90 insertions(+), 72 deletions(-) diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 8360bb3..e3cc34c 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -211,7 +211,7 @@ my %targets = ( ex_libs => add("-lsocket -lnsl -ldl"), dso_scheme => "dlfcn", thread_scheme => "pthreads", - shared_target => "self", + shared_target => "solaris", shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)", shared_ldflag => "-Wl,-Bsymbolic", shared_defflag => "-Wl,-M,", @@ -1113,7 +1113,7 @@ my %targets = ( lflags => "-Wl,-bsvr4", thread_scheme => "pthreads", dso_scheme => "dlfcn", - shared_target => "self", + shared_target => "aix", module_ldflags => "-Wl,-G,-bsymbolic,-bexpall", shared_ldflag => "-Wl,-G,-bsymbolic", shared_defflag => "-Wl,-bE:", @@ -1230,6 +1230,8 @@ my %targets = ( lib_defines => add("L_ENDIAN"), dso_cflags => "/Zi /Fddso.pdb", bin_cflags => "/Zi /Fdapp.pdb", + # def_flag made to empty string so a .def file gets generated + shared_defflag => '', shared_ldflag => "/dll", shared_target => "win-shared", # meaningless except it gives Configure a hint thread_scheme => "winthreads", @@ -1743,6 +1745,8 @@ my %targets = ( dso_cflags => "", ex_libs => add(sub { return vms_info()->{zlib} || (); }), shared_target => "vms-shared", + # def_flag made to empty string so a .opt file gets generated + shared_defflag => '', dso_scheme => "vms", thread_scheme => "pthreads", diff --git a/Configurations/README b/Configurations/README index a03d445..9fd4922 100644 --- a/Configurations/README +++ b/Configurations/README @@ -169,7 +169,14 @@ In each table entry, the following keys are significant: assembler files used when compiling with assembler implementations. shared_target => The shared library building method used. - This is a target found in Makefile.shared. + This serves multiple purposes: + - as index for targets found in shared_info.pl. + - as linker script generation selector. + To serve both purposes, the index for shared_info.pl + should end with '-shared', and this suffix will be + removed for use as a linker script generation + selector. Note that the latter is only used if + 'shared_defflag' is defined. build_scheme => The scheme used to build up a Makefile. In its simplest form, the value is a string with the name of the build scheme. diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index b1c00b7..7393e22 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -132,7 +132,10 @@ DEPS={- our @deps = map { (my $x = $_) =~ s|\.o$|\$(DEP_EXT)|; $x; } {- output_on() if $disabled{makedepend}; "" -} GENERATED_MANDATORY={- join(", ", map { "-\n\t".$_ } @{$unified_info{depends}->{""}} ) -} GENERATED={- # common0.tmpl provides @generated - join(", ", map { (my $x = $_) =~ s|\.[sS]$|.asm|; "-\n\t".$x } + join(", ", map { my $x = $_; + $x =~ s|\.[sS]$|.asm|; + $x =~ s|\.ld$|.OPT|; + "-\n\t".$x } @generated) -} INSTALL_LIBS={- join(", ", map { "-\n\t".$_.".OLB" } @install_libs) -} @@ -748,12 +751,19 @@ reconfigure reconf : sub generatesrc { my %args = @_; - (my $target = $args{src}) =~ s/\.[sS]$/.asm/; my $generator = join(" ", @{$args{generator}}); my $generator_incs = join("", map { ' "-I'.$_.'"' } @{$args{generator_incs}}); my $deps = join(", -\n\t\t", @{$args{generator_deps}}, @{$args{deps}}); - if ($target !~ /\.asm$/) { + if ($args{src} =~ /\.ld$/) { + (my $target = $args{src}) =~ s/\.ld$/.OPT/; + my $mkdef = sourcefile('util', 'mkdef.pl'); + return <<"EOF"; +$target : $args{generator}->[0] $deps + \$(PERL) $mkdef $args{generator}->[1] "VMS" > $target +EOF + } elsif ($target !~ /\.[sS]$/) { + my $target = $args{src}; if ($args{generator}->[0] =~ m|^.*\.in$|) { my $dofile = abs2rel(rel2abs(catfile($config{sourcedir}, "util", "dofile.pl")), @@ -770,6 +780,7 @@ $target : $args{generator}->[0] $deps EOF } } else { + (my $target = $args{src}) =~ s/\.[sS]$/.asm/; if ($args{generator}->[0] =~ /\.pl$/) { $generator = '$(PERL)'.$generator_incs.' '.$generator; } elsif ($args{generator}->[0] =~ /\.S$/) { @@ -913,7 +924,9 @@ EOF my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x } grep { $_ =~ m|\.o$| } @{$args{objs}}; - my @defs = grep { $_ =~ /\.opt$/ } @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$|.OPT|; $x } + grep { $_ =~ /\.ld$/ } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); die "More than one symbol vector" if scalar @defs > 1; my $deps = join(", -\n\t\t", @objs, @defs, @deps); diff --git a/Configurations/shared-info.pl b/Configurations/shared-info.pl index 47eddd6..e3a40a9 100644 --- a/Configurations/shared-info.pl +++ b/Configurations/shared-info.pl @@ -53,7 +53,7 @@ my %shared_info; 'mingw-shared' => sub { return { %{$shared_info{'cygwin-shared'}}, - # def_flag made to empty string so it still generates + # def_flag made to empty string so it still generates # something shared_defflag => '', }; diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 17f76a5..f67eae5 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -4,6 +4,7 @@ ## {- join("\n## ", @autowarntext) -} {- our $objext = $target{obj_extension} || ".o"; + our $defext = $target{def_extension} || ".ld"; our $depext = $target{dep_extension} || ".d"; our $exeext = $target{exe_extension} || ""; our $libext = $target{lib_extension} || ".a"; @@ -112,7 +113,10 @@ DEPS={- join(" ", map { (my $x = $_) =~ s|\.o$|$depext|; $x; } {- output_on() if $disabled{makedepend}; "" -} GENERATED_MANDATORY={- join(" ", @{$unified_info{depends}->{""}}) -} GENERATED={- # common0.tmpl provides @generated - join(" ", @generated ) -} + join(" ", map { my $x = $_; + $x =~ s|\.ld$|$defext|; + $x } + @generated ) -} INSTALL_LIBS={- join(" ", map { lib($_) } @{$unified_info{install}->{libraries}}) -} INSTALL_SHLIBS={- join(" ", map { shlib($_) } @{$unified_info{install}->{libraries}}) -} @@ -408,7 +412,7 @@ libclean: fi; \ done $(RM) $(LIBS) - $(RM) *.map + $(RM) *.{- $defext -} clean: libclean $(RM) $(PROGRAMS) $(TESTPROGS) $(ENGINES) $(SCRIPTS) @@ -956,7 +960,14 @@ reconfigure reconf: my $incs = join("", map { " -I".$_ } @{$args{incs}}); my $deps = join(" ", @{$args{generator_deps}}, @{$args{deps}}); - if ($args{src} !~ /\.[sS]$/) { + if ($args{src} =~ /\.ld$/) { + (my $target = $args{src}) =~ s/\.ld$/${defext}/; + (my $mkdef_os = $target{shared_target}) =~ s|-shared$||; + return <<"EOF"; +$target: $args{generator}->[0] $deps + \$(PERL) \$(SRCDIR)/util/mkdef.pl $args{generator}->[1] $mkdef_os > $target +EOF + } elsif ($args{src} !~ /\.[sS]$/) { if ($args{generator}->[0] =~ m|^.*\.in$|) { my $dofile = abs2rel(rel2abs(catfile($config{sourcedir}, "util", "dofile.pl")), @@ -1102,9 +1113,11 @@ EOF (my $l = $f) =~ s/^lib//; " -l$l" } @{$args{deps}}); my @objs = map { (my $x = $_) =~ s|\.o$||; "$x$objext" } - grep { $_ !~ m/\.(?:def|map)$/ } + grep { $_ !~ m/\.ld$/ } + @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$||; "$x$defext" } + grep { $_ =~ /\.ld$/ } @{$args{objs}}; - my @defs = grep { $_ =~ /\.(?:def|map)$/ } @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); die "More than one exported symbol map" if scalar @defs > 1; my $objs = join(" ", @objs); @@ -1169,7 +1182,7 @@ EOF (my $l = $f) =~ s/^lib//; " -l$l" } @{$args{deps}}); my @objs = map { (my $x = $_) =~ s|\.o$||; "$x$objext" } - grep { $_ !~ m/\.(?:def|map)$/ } + grep { $_ !~ m/\.ld$/ } @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); my $objs = join(" ", @objs); diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 148ddf4..fb7ddca 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -6,6 +6,7 @@ our $objext = $target{obj_extension} || ".obj"; our $resext = $target{res_extension} || ".res"; our $depext = $target{dep_extension} || ".d"; + our $defext = $target{dep_extension} || ".def"; our $exeext = $target{exe_extension} || ".exe"; our $libext = $target{lib_extension} || ".lib"; our $shlibext = $target{shared_extension} || ".dll"; @@ -89,7 +90,10 @@ DEPS={- join(" ", map { (my $x = $_) =~ s|\.o$|$depext|; $x; } {- output_on() if $disabled{makedepend}; "" -} GENERATED_MANDATORY={- join(" ", @{$unified_info{depends}->{""}} ) -} GENERATED={- # common0.tmpl provides @generated - join(" ", map { (my $x = $_) =~ s|\.[sS]$|.asm|; $x } + join(" ", map { my $x = $_; + $x =~ s|\.[sS]$|.asm|; + $x =~ s|\.ld$|$defext|; + $x } @generated) -} INSTALL_LIBS={- join(" ", map { quotify1(lib($_)) } @{$unified_info{install}->{libraries}}) -} @@ -496,7 +500,6 @@ reconfigure reconf: sub generatesrc { my %args = @_; - (my $target = $args{src}) =~ s/\.[sS]$/.asm/; my ($gen0, @gens) = @{$args{generator}}; my $generator = '"'.$gen0.'"'.join('', map { " $_" } @gens); my $generator_incs = join("", map { " -I \"$_\"" } @{$args{generator_incs}}); @@ -504,7 +507,17 @@ reconfigure reconf: my $deps = @{$args{deps}} ? '"'.join('" "', @{$args{generator_deps}}, @{$args{deps}}).'"' : ''; - if ($target !~ /\.asm$/) { + if ($args{src} =~ /\.ld$/) { + (my $target = $args{src}) =~ s/\.ld$/$defext/; + my $mkdef = abs2rel(rel2abs(catfile($config{sourcedir}, + "util", "mkdef.pl")), + rel2abs($config{builddir})); + return <<"EOF"; +$target: $args{generator}->[0] $deps + \$(PERL) $mkdef $args{generator}->[1] 32 > $target +EOF + } elsif ($args{src} !~ /\.[sS]$/) { + my $target = $args{src}; if ($args{generator}->[0] =~ m|^.*\.in$|) { my $dofile = abs2rel(rel2abs(catfile($config{sourcedir}, "util", "dofile.pl")), @@ -521,6 +534,7 @@ $target: "$args{generator}->[0]" $deps EOF } } else { + (my $target = $args{src}) =~ s/\.[sS]$/.asm/; if ($args{generator}->[0] =~ /\.pl$/) { $generator = '"$(PERL)"'.$generator_incs.' '.$generator; } elsif ($args{generator}->[0] =~ /\.S$/) { @@ -623,7 +637,9 @@ EOF my @objs = map { (my $x = $_) =~ s|\.o$|$objext|; $x } grep { $_ =~ m/\.(?:o|res)$/ } @{$args{objs}}; - my @defs = grep { $_ =~ /\.def$/ } @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$||; "$x$defext" } + grep { $_ =~ /\.ld$/ } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); die "More than one exported symbols list" if scalar @defs > 1; my $linklibs = join("", map { "$_\n" } @deps); diff --git a/Configure b/Configure index a1db916..de4ca68 100755 --- a/Configure +++ b/Configure @@ -1121,7 +1121,9 @@ $target{exe_extension}=""; $target{exe_extension}=".exe" if ($config{target} eq "DJGPP" || $config{target} =~ /^(?:Cygwin|mingw)/); $target{exe_extension}=".pm" if ($config{target} =~ /vos/); - +$target{def_extension}=".ld"; +$target{def_extension}=".def" if $config{target} =~ /^mingw|VC-/; +$target{def_extension}=".opt" if $config{target} =~ /^vms/; ($target{shared_extension_simple}=$target{shared_extension}) =~ s|\.\$\(SHLIB_VERSION_NUMBER\)|| unless defined($target{shared_extension_simple}); @@ -2074,11 +2076,11 @@ EOF my $o = cleanfile($buildd, $o, $blddir); $unified_info{shared_sources}->{$ddest}->{$o} = -1; $unified_info{sources}->{$o}->{$s} = -1; - } elsif ($s =~ /\.(def|map|opt)$/) { - # We also recognise .def / .map / .opt files + } elsif ($s =~ /\.ld$/) { + # We also recognise linker scripts (or corresponding) # We know they are generated files - my $def = cleanfile($buildd, $s, $blddir); - $unified_info{shared_sources}->{$ddest}->{$def} = 1; + my $ld = cleanfile($buildd, $s, $blddir); + $unified_info{shared_sources}->{$ddest}->{$ld} = 1; } else { die "unrecognised source file type for shared library: $s\n"; } @@ -2189,7 +2191,7 @@ EOF } } - # Go through all object files and change their names to something that + # Go through all intermediary files and change their names to something that # reflects what they will be built for. Note that for some source files, # this leads to duplicate object files because they are used multiple times. # the goal is to rename all object files according to this scheme: @@ -2246,8 +2248,9 @@ EOF map { keys %{$unified_copy{$_}->{$prod}} } @src; foreach (keys %prod_sources) { - # Only affect object or resource files, the others - # simply get a new value (+1 instead of -1) + # Only affect object files and resource files, + # the others simply get a new value + # (+1 instead of -1) if ($_ =~ /\.(o|res)$/) { (my $prodname = $prod) =~ s|\.a$||; my $newobj = diff --git a/build.info b/build.info index 3dda4e8..16e587e 100644 --- a/build.info +++ b/build.info @@ -25,50 +25,11 @@ DEPEND[crypto/include/internal/dso_conf.h]=configdata.pm GENERATE[crypto/include/internal/dso_conf.h]=crypto/include/internal/dso_conf.h.in IF[{- defined $target{shared_defflag} -}] - IF[{- $config{target} =~ /^mingw/ -}] - GENERATE[libcrypto.def]=util/mkdef.pl crypto 32 - DEPEND[libcrypto.def]=util/libcrypto.num - GENERATE[libssl.def]=util/mkdef.pl ssl 32 - DEPEND[libssl.def]=util/libssl.num + SHARED_SOURCE[libcrypto]=libcrypto.ld + SHARED_SOURCE[libssl]=libssl.ld - SHARED_SOURCE[libcrypto]=libcrypto.def - SHARED_SOURCE[libssl]=libssl.def - ELSIF[{- $config{target} =~ /^aix/ -}] - GENERATE[libcrypto.map]=util/mkdef.pl crypto aix - DEPEND[libcrypto.map]=util/libcrypto.num - GENERATE[libssl.map]=util/mkdef.pl ssl aix - DEPEND[libssl.map]=util/libssl.num - - SHARED_SOURCE[libcrypto]=libcrypto.map - SHARED_SOURCE[libssl]=libssl.map - ELSE - GENERATE[libcrypto.map]=util/mkdef.pl crypto linux - DEPEND[libcrypto.map]=util/libcrypto.num - GENERATE[libssl.map]=util/mkdef.pl ssl linux - DEPEND[libssl.map]=util/libssl.num - - SHARED_SOURCE[libcrypto]=libcrypto.map - SHARED_SOURCE[libssl]=libssl.map - ENDIF -ENDIF -# VMS and VC don't have parametrised .def / .symvec generation, so they get -# special treatment, since we know they do use these files -IF[{- $config{target} =~ /^VC-/ -}] - GENERATE[libcrypto.def]=util/mkdef.pl crypto 32 - DEPEND[libcrypto.def]=util/libcrypto.num - GENERATE[libssl.def]=util/mkdef.pl ssl 32 - DEPEND[libssl.def]=util/libssl.num - - SHARED_SOURCE[libcrypto]=libcrypto.def - SHARED_SOURCE[libssl]=libssl.def -ELSIF[{- $config{target} =~ /^vms/ -}] - GENERATE[libcrypto.opt]=util/mkdef.pl crypto "VMS" - DEPEND[libcrypto.opt]=util/libcrypto.num - GENERATE[libssl.opt]=util/mkdef.pl ssl "VMS" - DEPEND[libssl.opt]=util/libssl.num - - SHARED_SOURCE[libcrypto]=libcrypto.opt - SHARED_SOURCE[libssl]=libssl.opt + GENERATE[libcrypto.ld]=util/libcrypto.num crypto + GENERATE[libssl.ld]=util/libssl.num ssl ENDIF IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-)/ -}] diff --git a/util/mkdef.pl b/util/mkdef.pl index bcbb475..6523a05 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -167,12 +167,13 @@ foreach (@ARGV, split(/ /, $config{options})) $debug=1 if $_ eq "debug"; $trace=1 if $_ eq "trace"; $verbose=1 if $_ eq "verbose"; - $W32=1 if $_ eq "32"; die "win16 not supported" if $_ eq "16"; - if($_ eq "NT") { + if ($_ eq "32" || $_ eq "mingw") { + $W32=1; + } elsif ($_ eq "NT") { $W32 = 1; $NT = 1; - } elsif ($_ eq "linux") { + } elsif ($_ eq "linux" || $_ eq "solaris") { $linux=1; $UNIX=1; } elsif ($_ eq "aix") { From builds at travis-ci.org Mon Oct 1 08:09:37 2018 From: builds at travis-ci.org (Travis CI) Date: Mon, 01 Oct 2018 08:09:37 +0000 Subject: [openssl-commits] Fixed: openssl/openssl#20885 (master - ef2dfc9) In-Reply-To: Message-ID: <5bb1d640ea3c2_43fa5d03088501455f9@aef35589-aa39-4be6-81ce-0d039e8069a7.mail> Build Update for openssl/openssl ------------------------------------- Build: #20885 Status: Fixed Duration: 18 mins and 42 secs Commit: ef2dfc9 (master) Author: Richard Levitte Message: Refactor linker script generation The generation of linker scripts was badly balanced, as all sorts of platform dependent stuff went into the top build.info, when that part should really be made as simply and generic as possible. Therefore, we move a lot of the "magic" to the build files templates, since they are the place for platform dependent things. What remains is to parametrize just enough in the build.info file to generate the linker scripts correctly for each associated library. "linker script" is a term usually reserved for certain Unix linkers. However, we only use them to say what symbols should be exported, so we use the term loosely for all platforms. The internal extension is '.ld', and is changed by the build file templates as appropriate for each target platform. Note that this adds extra meaning to the value of the shared_target attribute. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7333) View the changeset: https://github.com/openssl/openssl/compare/b44882a0bd07...ef2dfc9902e0 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/435478409?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From levitte at openssl.org Mon Oct 1 13:42:44 2018 From: levitte at openssl.org (Richard Levitte) Date: Mon, 01 Oct 2018 13:42:44 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538401364.897400.14287.nullmailer@dev.openssl.org> The branch master has been updated via 8ddbff9c0811a0f11855eda871b9d3bff8fb325e (commit) from ef2dfc9902e015de91f015177bdf235c9000839e (commit) - Log ----------------------------------------------------------------- commit 8ddbff9c0811a0f11855eda871b9d3bff8fb325e Author: Richard Levitte Date: Thu Jul 12 14:22:43 2018 +0200 'openssl list': add option -objects to list built in objects Related to #6696 Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/6702) ----------------------------------------------------------------------- Summary of changes: CHANGES | 4 ++++ apps/openssl.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- doc/man1/list.pod | 5 +++++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index fab0af4..a1fa57c 100644 --- a/CHANGES +++ b/CHANGES @@ -21,6 +21,10 @@ well as its type mnemonic (bin, lib, shlib). [Richard Levitte] + *) Added new option for 'openssl list', '-objects', which will display the + list of built in objects, i.e. OIDs with names. + [Richard Levitte] + Changes between 1.1.0i and 1.1.1 [11 Sep 2018] *) Add a new ClientHello callback. Provides a callback interface that gives diff --git a/apps/openssl.c b/apps/openssl.c index a872e2c..3d6b276 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -316,6 +316,56 @@ static void list_missing_help(void) } } +static void list_objects(void) +{ + int max_nid = OBJ_new_nid(0); + int i; + char *oid_buf = NULL; + int oid_size = 0; + + /* Skip 0, since that's NID_undef */ + for (i = 1; i < max_nid; i++) { + const ASN1_OBJECT *obj = OBJ_nid2obj(i); + const char *sn = OBJ_nid2sn(i); + const char *ln = OBJ_nid2ln(i); + int n = 0; + + /* + * If one of the retrieved objects somehow generated an error, + * we ignore it. The check for NID_undef below will detect the + * error and simply skip to the next NID. + */ + ERR_clear_error(); + + if (OBJ_obj2nid(obj) == NID_undef) + continue; + + if ((n = OBJ_obj2txt(NULL, 0, obj, 1)) == 0) { + BIO_printf(bio_out, "# None-OID object: %s, %s\n", sn, ln); + continue; + } + if (n < 0) + break; /* Error */ + + if (n > oid_size) { + oid_buf = OPENSSL_realloc(oid_buf, n + 1); + if (oid_buf == NULL) { + BIO_printf(bio_err, "ERROR: Memory allocation\n"); + break; /* Error */ + } + oid_size = n + 1; + } + if (OBJ_obj2txt(oid_buf, oid_size, obj, 1) < 0) + break; /* Error */ + if (ln == NULL || strcmp(sn, ln) == 0) + BIO_printf(bio_out, "%s = %s\n", sn, oid_buf); + else + BIO_printf(bio_out, "%s = %s, %s\n", sn, ln, oid_buf); + } + + OPENSSL_free(oid_buf); +} + static void list_options_for_command(const char *command) { const FUNCTION *fp; @@ -348,7 +398,8 @@ typedef enum HELPLIST_CHOICE { OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ONE, OPT_COMMANDS, OPT_DIGEST_COMMANDS, OPT_OPTIONS, OPT_DIGEST_ALGORITHMS, OPT_CIPHER_COMMANDS, OPT_CIPHER_ALGORITHMS, - OPT_PK_ALGORITHMS, OPT_PK_METHOD, OPT_DISABLED, OPT_MISSING_HELP + OPT_PK_ALGORITHMS, OPT_PK_METHOD, OPT_DISABLED, OPT_MISSING_HELP, + OPT_OBJECTS } HELPLIST_CHOICE; const OPTIONS list_options[] = { @@ -372,6 +423,8 @@ const OPTIONS list_options[] = { "List missing detailed help strings"}, {"options", OPT_OPTIONS, 's', "List options for specified command"}, + {"objects", OPT_OBJECTS, '-', + "List built in objects (OID<->name mappings)"}, {NULL} }; @@ -422,6 +475,9 @@ opthelp: case OPT_MISSING_HELP: list_missing_help(); break; + case OPT_OBJECTS: + list_objects(); + break; case OPT_OPTIONS: list_options_for_command(opt_arg()); break; diff --git a/doc/man1/list.pod b/doc/man1/list.pod index bed39b0..f2fd06b 100644 --- a/doc/man1/list.pod +++ b/doc/man1/list.pod @@ -80,6 +80,11 @@ without an associated ASN.1 method, for example, KDF algorithms. Display a list of disabled features, those that were compiled out of the installation. +=item B<-objects> + +Display a list of built in objects, i.e. OIDs with names. They're listed in the +format described in L. + =back =head1 COPYRIGHT From pauli at openssl.org Mon Oct 1 23:26:27 2018 From: pauli at openssl.org (Paul I. Dale) Date: Mon, 01 Oct 2018 23:26:27 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538436387.617197.1776.nullmailer@dev.openssl.org> The branch master has been updated via f3002a2ed3645d8d6e1511424b3f5e89f6117edf (commit) from 8ddbff9c0811a0f11855eda871b9d3bff8fb325e (commit) - Log ----------------------------------------------------------------- commit f3002a2ed3645d8d6e1511424b3f5e89f6117edf Author: Shane Lontis Date: Tue Oct 2 09:25:59 2018 +1000 Change DRBG's to DRBGs Minor change to documentation of RAND_DRBG_set_defaults() Reviewed-by: Paul Yang Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7326) ----------------------------------------------------------------------- Summary of changes: doc/man3/RAND_DRBG_new.pod | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/man3/RAND_DRBG_new.pod b/doc/man3/RAND_DRBG_new.pod index 125e60d..9705a7b 100644 --- a/doc/man3/RAND_DRBG_new.pod +++ b/doc/man3/RAND_DRBG_new.pod @@ -56,7 +56,8 @@ NID_aes_128_ctr, NID_aes_192_ctr, NID_aes_256_ctr, NID_sha1, NID_sha224, NID_sha256, NID_sha384, NID_sha512, NID_sha512_224, NID_sha512_256, NID_sha3_224, NID_sha3_256, NID_sha3_384 or NID_sha3_512. -If this method is not called then the default type is given by RAND_DRBG_TYPE. +If this method is not called then the default type is given by NID_aes_256_ctr +and the default flags are zero. Before the DRBG can be used to generate random bits, it is necessary to set its type and to instantiate it. @@ -83,9 +84,8 @@ Enables use of HMAC instead of the HASH DRBG. These 3 flags can be used to set the individual DRBG types created. Multiple calls are required to set the types to different values. If none of these 3 -flags are used, then the same type and flags are used for all 3 DRBG's in the -B chain (, and ). The default used if this -method is not called is to use RAND_DRBG_FLAGS. +flags are used, then the same type and flags are used for all 3 DRBGs in the +B chain (, and ). =back From builds at travis-ci.org Mon Oct 1 23:59:13 2018 From: builds at travis-ci.org (Travis CI) Date: Mon, 01 Oct 2018 23:59:13 +0000 Subject: [openssl-commits] Errored: openssl/openssl#20890 (master - f3002a2) In-Reply-To: Message-ID: <5bb2b4d19a93f_43fa728515b80681b2@2d2af2b4-e983-47ce-b8c6-fbee7c331f7c.mail> Build Update for openssl/openssl ------------------------------------- Build: #20890 Status: Errored Duration: 31 mins and 57 secs Commit: f3002a2 (master) Author: Shane Lontis Message: Change DRBG's to DRBGs Minor change to documentation of RAND_DRBG_set_defaults() Reviewed-by: Paul Yang Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7326) View the changeset: https://github.com/openssl/openssl/compare/8ddbff9c0811...f3002a2ed364 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/435892784?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt at openssl.org Tue Oct 2 10:01:44 2018 From: matt at openssl.org (Matt Caswell) Date: Tue, 02 Oct 2018 10:01:44 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538474504.412428.25673.nullmailer@dev.openssl.org> The branch master has been updated via 434893af2bd4c1fa72655f8e5262c8a432713968 (commit) via c20a76f695922f409c316399f7290530f7728f19 (commit) from f3002a2ed3645d8d6e1511424b3f5e89f6117edf (commit) - Log ----------------------------------------------------------------- commit 434893af2bd4c1fa72655f8e5262c8a432713968 Author: Matt Caswell Date: Mon Oct 1 13:16:55 2018 +0100 Fix some Coverity warnings Check some return values on some functions. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7335) commit c20a76f695922f409c316399f7290530f7728f19 Author: Matt Caswell Date: Mon Oct 1 12:06:06 2018 +0100 Fix a mem leak in the ocsp app Free memory allocated in the parent process that is not needed in the child. We also free it in the parent. Technically this isn't really required since we end up calling exit() soon afterwards - but to prevent false positives we free it anyway. Fixes a Coverity issue. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7335) ----------------------------------------------------------------------- Summary of changes: apps/ocsp.c | 2 ++ crypto/evp/e_rc2.c | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/ocsp.c b/apps/ocsp.c index eb822c2..7fd7862 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c @@ -950,6 +950,7 @@ static void spawn_loop(void) sleep(30); break; case 0: /* child */ + OPENSSL_free(kidpids); signal(SIGINT, SIG_DFL); signal(SIGTERM, SIG_DFL); if (termsig) @@ -976,6 +977,7 @@ static void spawn_loop(void) } /* The loop above can only break on termsig */ + OPENSSL_free(kidpids); syslog(LOG_INFO, "terminating on signal: %d", termsig); killall(0, kidpids); } diff --git a/crypto/evp/e_rc2.c b/crypto/evp/e_rc2.c index 80afe31..234d1eb 100644 --- a/crypto/evp/e_rc2.c +++ b/crypto/evp/e_rc2.c @@ -92,7 +92,8 @@ static int rc2_meth_to_magic(EVP_CIPHER_CTX *e) { int i; - EVP_CIPHER_CTX_ctrl(e, EVP_CTRL_GET_RC2_KEY_BITS, 0, &i); + if (EVP_CIPHER_CTX_ctrl(e, EVP_CTRL_GET_RC2_KEY_BITS, 0, &i) <= 0) + return 0; if (i == 128) return RC2_128_MAGIC; else if (i == 64) @@ -136,8 +137,9 @@ static int rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type) return -1; if (i > 0 && !EVP_CipherInit_ex(c, NULL, NULL, NULL, iv, -1)) return -1; - EVP_CIPHER_CTX_ctrl(c, EVP_CTRL_SET_RC2_KEY_BITS, key_bits, NULL); - if (EVP_CIPHER_CTX_set_key_length(c, key_bits / 8) <= 0) + if (EVP_CIPHER_CTX_ctrl(c, EVP_CTRL_SET_RC2_KEY_BITS, key_bits, + NULL) <= 0 + || EVP_CIPHER_CTX_set_key_length(c, key_bits / 8) <= 0) return -1; } return i; From matt at openssl.org Tue Oct 2 10:01:54 2018 From: matt at openssl.org (Matt Caswell) Date: Tue, 02 Oct 2018 10:01:54 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1538474514.693627.26441.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via acb03676c50edeace8732fc0ee3fc9d3277f7a77 (commit) via cb853a65e248fced131162774a987ece3351872d (commit) from a2516f0c3e9474f8ac16f713fa0d9b1caff994ac (commit) - Log ----------------------------------------------------------------- commit acb03676c50edeace8732fc0ee3fc9d3277f7a77 Author: Matt Caswell Date: Mon Oct 1 13:16:55 2018 +0100 Fix some Coverity warnings Check some return values on some functions. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7335) (cherry picked from commit 434893af2bd4c1fa72655f8e5262c8a432713968) commit cb853a65e248fced131162774a987ece3351872d Author: Matt Caswell Date: Mon Oct 1 12:06:06 2018 +0100 Fix a mem leak in the ocsp app Free memory allocated in the parent process that is not needed in the child. We also free it in the parent. Technically this isn't really required since we end up calling exit() soon afterwards - but to prevent false positives we free it anyway. Fixes a Coverity issue. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7335) (cherry picked from commit c20a76f695922f409c316399f7290530f7728f19) ----------------------------------------------------------------------- Summary of changes: apps/ocsp.c | 2 ++ crypto/evp/e_rc2.c | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/ocsp.c b/apps/ocsp.c index eb822c2..7fd7862 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c @@ -950,6 +950,7 @@ static void spawn_loop(void) sleep(30); break; case 0: /* child */ + OPENSSL_free(kidpids); signal(SIGINT, SIG_DFL); signal(SIGTERM, SIG_DFL); if (termsig) @@ -976,6 +977,7 @@ static void spawn_loop(void) } /* The loop above can only break on termsig */ + OPENSSL_free(kidpids); syslog(LOG_INFO, "terminating on signal: %d", termsig); killall(0, kidpids); } diff --git a/crypto/evp/e_rc2.c b/crypto/evp/e_rc2.c index 80afe31..234d1eb 100644 --- a/crypto/evp/e_rc2.c +++ b/crypto/evp/e_rc2.c @@ -92,7 +92,8 @@ static int rc2_meth_to_magic(EVP_CIPHER_CTX *e) { int i; - EVP_CIPHER_CTX_ctrl(e, EVP_CTRL_GET_RC2_KEY_BITS, 0, &i); + if (EVP_CIPHER_CTX_ctrl(e, EVP_CTRL_GET_RC2_KEY_BITS, 0, &i) <= 0) + return 0; if (i == 128) return RC2_128_MAGIC; else if (i == 64) @@ -136,8 +137,9 @@ static int rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type) return -1; if (i > 0 && !EVP_CipherInit_ex(c, NULL, NULL, NULL, iv, -1)) return -1; - EVP_CIPHER_CTX_ctrl(c, EVP_CTRL_SET_RC2_KEY_BITS, key_bits, NULL); - if (EVP_CIPHER_CTX_set_key_length(c, key_bits / 8) <= 0) + if (EVP_CIPHER_CTX_ctrl(c, EVP_CTRL_SET_RC2_KEY_BITS, key_bits, + NULL) <= 0 + || EVP_CIPHER_CTX_set_key_length(c, key_bits / 8) <= 0) return -1; } return i; From builds at travis-ci.org Tue Oct 2 10:21:40 2018 From: builds at travis-ci.org (Travis CI) Date: Tue, 02 Oct 2018 10:21:40 +0000 Subject: [openssl-commits] Failed: openssl/openssl#20892 (master - 434893a) In-Reply-To: Message-ID: <5bb346b41e44d_43f7dfa2fd9e42713ab@f9559001-9984-44ae-9e0f-c09435a64cd1.mail> Build Update for openssl/openssl ------------------------------------- Build: #20892 Status: Failed Duration: 19 mins and 3 secs Commit: 434893a (master) Author: Matt Caswell Message: Fix some Coverity warnings Check some return values on some functions. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7335) View the changeset: https://github.com/openssl/openssl/compare/f3002a2ed364...434893af2bd4 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/436056950?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nic.tuv at gmail.com Tue Oct 2 10:48:44 2018 From: nic.tuv at gmail.com (nic.tuv at gmail.com) Date: Tue, 02 Oct 2018 10:48:44 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_0_2-stable update Message-ID: <1538477324.139042.31604.nullmailer@dev.openssl.org> The branch OpenSSL_1_0_2-stable has been updated via fff1da43be2236995cdf5ef2f3e2a51be232ba85 (commit) from 788d2fa0cf38420fd729b336bdb88d5a6e9d68ac (commit) - Log ----------------------------------------------------------------- commit fff1da43be2236995cdf5ef2f3e2a51be232ba85 Author: Nicola Tuveri Date: Fri Sep 7 00:44:36 2018 +0300 Access `group->mont_data` conditionally in EC_GROUP_set_generator() It appears that, in FIPS mode, `ec_precompute_mont_data()` always failed but the error was ignored until commit e3ab8cc from #6810. The actual problem lies in the fact that access to the `mont_data` field of an `EC_GROUP` struct should always be guarded by an `EC_GROUP_VERSION(group)` check to avoid OOB accesses, because `group` might come from the FIPS module, which does not define the `mont_data` field inside the EC_GROUP structure. This commit adds the required check before any access to `group->mont_data` in `EC_GROUP_set_generator()`. Fixes #7127 Reviewed-by: Tim Hudson Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/7135) ----------------------------------------------------------------------- Summary of changes: CHANGES | 5 ++++- crypto/ec/ec_lcl.h | 3 +-- crypto/ec/ec_lib.c | 41 +++++++++++++++++++++++++++++------------ 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/CHANGES b/CHANGES index bfcd7b3..b574074 100644 --- a/CHANGES +++ b/CHANGES @@ -9,7 +9,10 @@ Changes between 1.0.2p and 1.0.2q [xx XXX xxxx] - *) + *) Resolve a compatibility issue in EC_GROUP handling with the FIPS Object + Module, accidentally introduced while backporting security fixes from the + development branch and hindering the use of ECC in FIPS mode. + [Nicola Tuveri] Changes between 1.0.2o and 1.0.2p [14 Aug 2018] diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h index 969fd14..2d604fa 100644 --- a/crypto/ec/ec_lcl.h +++ b/crypto/ec/ec_lcl.h @@ -214,7 +214,7 @@ struct ec_group_st { int asn1_flag; /* flag to control the asn1 encoding */ /* * Kludge: upper bit of ans1_flag is used to denote structure - * version. Is set, then last field is present. This is done + * version. If set, then last field is present. This is done * for interoperation with FIPS code. */ #define EC_GROUP_ASN1_FLAG_MASK 0x7fffffff @@ -549,7 +549,6 @@ void ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array, void ec_GFp_nistp_recode_scalar_bits(unsigned char *sign, unsigned char *digit, unsigned char in); #endif -int ec_precompute_mont_data(EC_GROUP *); #ifdef ECP_NISTZ256_ASM /** Returns GFp methods using montgomery multiplication, with x86-64 optimized diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c index 9337452..df56484 100644 --- a/crypto/ec/ec_lib.c +++ b/crypto/ec/ec_lib.c @@ -70,6 +70,10 @@ const char EC_version[] = "EC" OPENSSL_VERSION_PTEXT; +/* local function prototypes */ + +static int ec_precompute_mont_data(EC_GROUP *group); + /* functions for EC_GROUP objects */ EC_GROUP *EC_GROUP_new(const EC_METHOD *meth) @@ -318,17 +322,25 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, } else BN_zero(&group->cofactor); - /* - * Some groups have an order with - * factors of two, which makes the Montgomery setup fail. - * |group->mont_data| will be NULL in this case. + /*- + * Access to the `mont_data` field of an EC_GROUP struct should always be + * guarded by an EC_GROUP_VERSION(group) check to avoid OOB accesses, as the + * group might come from the FIPS module, which does not define the + * `mont_data` field inside the EC_GROUP structure. */ - if (BN_is_odd(&group->order)) { - return ec_precompute_mont_data(group); + if (EC_GROUP_VERSION(group)) { + /*- + * Some groups have an order with + * factors of two, which makes the Montgomery setup fail. + * |group->mont_data| will be NULL in this case. + */ + if (BN_is_odd(&group->order)) + return ec_precompute_mont_data(group); + + BN_MONT_CTX_free(group->mont_data); + group->mont_data = NULL; } - BN_MONT_CTX_free(group->mont_data); - group->mont_data = NULL; return 1; } @@ -1098,18 +1110,23 @@ int EC_GROUP_have_precompute_mult(const EC_GROUP *group) * been performed */ } -/* +/*- * ec_precompute_mont_data sets |group->mont_data| from |group->order| and * returns one on success. On error it returns zero. + * + * Note: this function must be called only after verifying that + * EC_GROUP_VERSION(group) returns true. + * The reason for this is that access to the `mont_data` field of an EC_GROUP + * struct should always be guarded by an EC_GROUP_VERSION(group) check to avoid + * OOB accesses, as the group might come from the FIPS module, which does not + * define the `mont_data` field inside the EC_GROUP structure. */ +static int ec_precompute_mont_data(EC_GROUP *group) { BN_CTX *ctx = BN_CTX_new(); int ret = 0; - if (!EC_GROUP_VERSION(group)) - goto err; - if (group->mont_data) { BN_MONT_CTX_free(group->mont_data); group->mont_data = NULL; From nic.tuv at gmail.com Tue Oct 2 15:14:37 2018 From: nic.tuv at gmail.com (nic.tuv at gmail.com) Date: Tue, 02 Oct 2018 15:14:37 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_0-stable update Message-ID: <1538493277.085042.27767.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_0-stable has been updated via 875ba8b21ecc65ad9a6bdc66971e50461660fcbb (commit) from e5d1825728e41dbd650b9969a40bace692010408 (commit) - Log ----------------------------------------------------------------- commit 875ba8b21ecc65ad9a6bdc66971e50461660fcbb Author: Sohaib ul Hassan Date: Sat Jun 16 17:07:40 2018 +0300 Implement coordinate blinding for EC_POINT This commit implements coordinate blinding, i.e., it randomizes the representative of an elliptic curve point in its equivalence class, for prime curves implemented through EC_GFp_simple_method, EC_GFp_mont_method, and EC_GFp_nist_method. This commit is derived from the patch https://marc.info/?l=openssl-dev&m=131194808413635 by Billy Brumley. Coordinate blinding is a generally useful side-channel countermeasure and is (mostly) free. The function itself takes a few field multiplicationss, but is usually only necessary at the beginning of a scalar multiplication (as implemented in the patch). When used this way, it makes the values that variables take (i.e., field elements in an algorithm state) unpredictable. For instance, this mitigates chosen EC point side-channel attacks for settings such as ECDH and EC private key decryption, for the aforementioned curves. For EC_METHODs using different coordinate representations this commit does nothing, but the corresponding coordinate blinding function can be easily added in the future to extend these changes to such curves. Co-authored-by: Nicola Tuveri Co-authored-by: Billy Brumley Reviewed-by: Tim Hudson Reviewed-by: Nicola Tuveri Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/6526) ----------------------------------------------------------------------- Summary of changes: CHANGES | 5 ++++- crypto/ec/ec2_smpl.c | 3 ++- crypto/ec/ec_err.c | 4 +++- crypto/ec/ec_lcl.h | 5 +++++ crypto/ec/ec_lib.c | 18 +++++++++++++++ crypto/ec/ec_mult.c | 11 ++++++++++ crypto/ec/ecp_mont.c | 3 ++- crypto/ec/ecp_nist.c | 3 ++- crypto/ec/ecp_nistp224.c | 3 ++- crypto/ec/ecp_nistp521.c | 3 ++- crypto/ec/ecp_nistz256.c | 3 ++- crypto/ec/ecp_smpl.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++- include/openssl/ec.h | 1 + 13 files changed, 110 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index ae8ceca..28b9938 100644 --- a/CHANGES +++ b/CHANGES @@ -9,7 +9,10 @@ Changes between 1.1.0i and 1.1.0j [xx XXX xxxx] - *) + *) Add coordinate blinding for EC_POINT and implement projective + coordinate blinding for generic prime curves as a countermeasure to + chosen point SCA attacks. + [Sohaib ul Hassan, Nicola Tuveri, Billy Bob Brumley] Changes between 1.1.0h and 1.1.0i [14 Aug 2018] diff --git a/crypto/ec/ec2_smpl.c b/crypto/ec/ec2_smpl.c index 28b91d5..cdacce6 100644 --- a/crypto/ec/ec2_smpl.c +++ b/crypto/ec/ec2_smpl.c @@ -83,7 +83,8 @@ const EC_METHOD *EC_GF2m_simple_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + 0 /* blind_coordinates */ }; return &ret; diff --git a/crypto/ec/ec_err.c b/crypto/ec/ec_err.c index e4c2c1c..717c92e 100644 --- a/crypto/ec/ec_err.c +++ b/crypto/ec/ec_err.c @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -97,6 +97,8 @@ static ERR_STRING_DATA EC_str_functs[] = { {ERR_FUNC(EC_F_EC_GFP_NIST_FIELD_SQR), "ec_GFp_nist_field_sqr"}, {ERR_FUNC(EC_F_EC_GFP_NIST_GROUP_SET_CURVE), "ec_GFp_nist_group_set_curve"}, + {ERR_FUNC(EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES), + "ec_GFp_simple_blind_coordinates"}, {ERR_FUNC(EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT), "ec_GFp_simple_group_check_discriminant"}, {ERR_FUNC(EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE), diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h index d814170..ca1776e 100644 --- a/crypto/ec/ec_lcl.h +++ b/crypto/ec/ec_lcl.h @@ -169,6 +169,7 @@ struct ec_method_st { /* custom ECDH operation */ int (*ecdh_compute_key)(unsigned char **pout, size_t *poutlen, const EC_POINT *pub_key, const EC_KEY *ecdh); + int (*blind_coordinates)(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx); }; /* @@ -375,6 +376,8 @@ int ec_GFp_simple_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *); int ec_GFp_simple_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); +int ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT *p, + BN_CTX *ctx); /* method functions in ecp_mont.c */ int ec_GFp_mont_group_init(EC_GROUP *); @@ -627,3 +630,5 @@ int X25519(uint8_t out_shared_key[32], const uint8_t private_key[32], const uint8_t peer_public_value[32]); void X25519_public_from_private(uint8_t out_public_value[32], const uint8_t private_key[32]); + +int ec_point_blind_coordinates(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx); diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c index d665556..a7be03b 100644 --- a/crypto/ec/ec_lib.c +++ b/crypto/ec/ec_lib.c @@ -1017,3 +1017,21 @@ int ec_group_simple_order_bits(const EC_GROUP *group) return 0; return BN_num_bits(group->order); } + +/*- + * Coordinate blinding for EC_POINT. + * + * The underlying EC_METHOD can optionally implement this function: + * underlying implementations should return 0 on errors, or 1 on + * success. + * + * This wrapper returns 1 in case the underlying EC_METHOD does not + * support coordinate blinding. + */ +int ec_point_blind_coordinates(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx) +{ + if (group->meth->blind_coordinates == NULL) + return 1; /* ignore if not implemented */ + + return group->meth->blind_coordinates(group, p, ctx); +} diff --git a/crypto/ec/ec_mult.c b/crypto/ec/ec_mult.c index 71ec910..22bb30f 100644 --- a/crypto/ec/ec_mult.c +++ b/crypto/ec/ec_mult.c @@ -216,6 +216,17 @@ static int ec_mul_consttime(const EC_GROUP *group, EC_POINT *r, || (bn_wexpand(r->Z, group_top) == NULL)) goto err; + /*- + * Apply coordinate blinding for EC_POINT. + * + * The underlying EC_METHOD can optionally implement this function: + * ec_point_blind_coordinates() returns 0 in case of errors or 1 on + * success or if coordinate blinding is not implemented for this + * group. + */ + if (!ec_point_blind_coordinates(group, s, ctx)) + goto err; + /* top bit is a 1, in a fixed pos */ if (!EC_POINT_copy(r, s)) goto err; diff --git a/crypto/ec/ecp_mont.c b/crypto/ec/ecp_mont.c index 994cc1d..1e0a3e0 100644 --- a/crypto/ec/ecp_mont.c +++ b/crypto/ec/ecp_mont.c @@ -66,7 +66,8 @@ const EC_METHOD *EC_GFp_mont_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + ec_GFp_simple_blind_coordinates }; return &ret; diff --git a/crypto/ec/ecp_nist.c b/crypto/ec/ecp_nist.c index 615563b..66b88d5 100644 --- a/crypto/ec/ecp_nist.c +++ b/crypto/ec/ecp_nist.c @@ -68,7 +68,8 @@ const EC_METHOD *EC_GFp_nist_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + ec_GFp_simple_blind_coordinates }; return &ret; diff --git a/crypto/ec/ecp_nistp224.c b/crypto/ec/ecp_nistp224.c index 0cd994f..7dc5309 100644 --- a/crypto/ec/ecp_nistp224.c +++ b/crypto/ec/ecp_nistp224.c @@ -290,7 +290,8 @@ const EC_METHOD *EC_GFp_nistp224_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + 0 /* blind_coordinates */ }; return &ret; diff --git a/crypto/ec/ecp_nistp521.c b/crypto/ec/ecp_nistp521.c index 133f089..74d56e3 100644 --- a/crypto/ec/ecp_nistp521.c +++ b/crypto/ec/ecp_nistp521.c @@ -1642,7 +1642,8 @@ const EC_METHOD *EC_GFp_nistp521_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + 0 /* blind_coordinates */ }; return &ret; diff --git a/crypto/ec/ecp_nistz256.c b/crypto/ec/ecp_nistz256.c index 4dbe216..7eafce6 100644 --- a/crypto/ec/ecp_nistz256.c +++ b/crypto/ec/ecp_nistz256.c @@ -1536,7 +1536,8 @@ const EC_METHOD *EC_GFp_nistz256_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + 0 /* blind_coordinates */ }; return &ret; diff --git a/crypto/ec/ecp_smpl.c b/crypto/ec/ecp_smpl.c index e3b8831..2015f11 100644 --- a/crypto/ec/ecp_smpl.c +++ b/crypto/ec/ecp_smpl.c @@ -67,7 +67,8 @@ const EC_METHOD *EC_GFp_simple_method(void) ec_key_simple_generate_public_key, 0, /* keycopy */ 0, /* keyfinish */ - ecdh_simple_compute_key + ecdh_simple_compute_key, + ec_GFp_simple_blind_coordinates }; return &ret; @@ -1368,3 +1369,57 @@ int ec_GFp_simple_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, { return BN_mod_sqr(r, a, group->field, ctx); } + +/*- + * Apply randomization of EC point projective coordinates: + * + * (X, Y ,Z ) = (lambda^2*X, lambda^3*Y, lambda*Z) + * lambda = [1,group->field) + * + */ +int ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT *p, + BN_CTX *ctx) +{ + int ret = 0; + BIGNUM *lambda = NULL; + BIGNUM *temp = NULL; + + BN_CTX_start(ctx); + lambda = BN_CTX_get(ctx); + temp = BN_CTX_get(ctx); + if (temp == NULL) { + ECerr(EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES, ERR_R_MALLOC_FAILURE); + goto err; + } + + /* make sure lambda is not zero */ + do { + if (!BN_rand_range(lambda, group->field)) { + ECerr(EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES, ERR_R_BN_LIB); + goto err; + } + } while (BN_is_zero(lambda)); + + /* if field_encode defined convert between representations */ + if (group->meth->field_encode != NULL + && !group->meth->field_encode(group, lambda, lambda, ctx)) + goto err; + if (!group->meth->field_mul(group, p->Z, p->Z, lambda, ctx)) + goto err; + if (!group->meth->field_sqr(group, temp, lambda, ctx)) + goto err; + if (!group->meth->field_mul(group, p->X, p->X, temp, ctx)) + goto err; + if (!group->meth->field_mul(group, temp, temp, lambda, ctx)) + goto err; + if (!group->meth->field_mul(group, p->Y, p->Y, temp, ctx)) + goto err; + p->Z_is_one = 0; + + ret = 1; + + err: + BN_CTX_end(ctx); + return ret; +} + diff --git a/include/openssl/ec.h b/include/openssl/ec.h index f06680a..9dbc172 100644 --- a/include/openssl/ec.h +++ b/include/openssl/ec.h @@ -1424,6 +1424,7 @@ int ERR_load_EC_strings(void); # define EC_F_EC_GFP_NIST_FIELD_MUL 200 # define EC_F_EC_GFP_NIST_FIELD_SQR 201 # define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 +# define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 287 # define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 # define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 # define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 From osslsanity at gmail.com Wed Oct 3 03:01:15 2018 From: osslsanity at gmail.com (osslsanity at gmail.com) Date: Wed, 3 Oct 2018 03:01:15 +0000 (UTC) Subject: [openssl-commits] Build failed in Jenkins: 1_0_2_abi #535 Message-ID: <15205276.170.1538535675416.JavaMail.jenkins@ip-172-31-34-99> See Changes: [nic.tuv] Access `group->mont_data` conditionally in EC_GROUP_set_generator() ------------------------------------------ [...truncated 414.55 KB...] gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rsautl.o rsautl.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dsa.o dsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dsaparam.o dsaparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ec.o ec.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ecparam.o ecparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o x509.o x509.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o genrsa.o genrsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o gendsa.o gendsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o genpkey.o genpkey.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_server.o s_server.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_client.o s_client.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o speed.o speed.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_time.o s_time.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o apps.o apps.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_cb.o s_cb.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_socket.o s_socket.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o app_rand.o app_rand.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o version.o version.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sess_id.o sess_id.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ciphers.o ciphers.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o nseq.o nseq.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkcs12.o pkcs12.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkcs8.o pkcs8.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkey.o pkey.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkeyparam.o pkeyparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkeyutl.o pkeyutl.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o spkac.o spkac.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o smime.o smime.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o cms.o cms.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rand.o rand.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o engine.o engine.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ocsp.o ocsp.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o prime.o prime.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ts.o ts.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o srp.o srp.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o openssl.o openssl.c rm -f openssl shlib_target=; if [ -n "libcrypto.so.1.0.0 libssl.so.1.0.0" ]; then \ shlib_target="linux-shared"; \ elif [ -n "" ]; then \ FIPSLD_CC="gcc"; CC=/usr/local/ssl/fips-2.0/bin/fipsld; export CC FIPSLD_CC; \ fi; \ LIBRARIES="-L.. -lssl -L.. -lcrypto" ; \ make -f ../Makefile.shared -e \ APPNAME=openssl OBJECTS="openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o" \ LIBDEPS=" $LIBRARIES -ldl" \ link_app.${shlib_target} make[2]: Entering directory ` make[2]: Leaving directory ` make[2]: Entering directory ` Doing certs/demo make[2]: Leaving directory ` make[1]: Leaving directory ` making all in test... make[1]: Entering directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o bntest.o bntest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ectest.o ectest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ecdsatest.o ecdsatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ecdhtest.o ecdhtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ideatest.o ideatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o md2test.o md2test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o md4test.o md4test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o md5test.o md5test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o hmactest.o hmactest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o wp_test.o wp_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rc2test.o rc2test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rc4test.o rc4test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rc5test.o rc5test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o destest.o destest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o shatest.o shatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sha1test.o sha1test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sha256t.o sha256t.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sha512t.o sha512t.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o mdc2test.o mdc2test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rmdtest.o rmdtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o randtest.o randtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dhtest.o dhtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o enginetest.o enginetest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o bftest.o bftest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o casttest.o casttest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ssltest.o ssltest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o exptest.o exptest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dsatest.o dsatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rsa_test.o rsa_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o evp_test.o evp_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o evp_extra_test.o evp_extra_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o igetest.o igetest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o jpaketest.o jpaketest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o srptest.o srptest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o asn1test.o asn1test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o v3nametest.o v3nametest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o heartbeat_test.o heartbeat_test.c make[2]: Entering directory ` ( :; LIBDEPS="${LIBDEPS:-../libssl.a ../libcrypto.a -ldl}"; LDCMD="${LDCMD:-gcc}"; LDFLAGS="${LDFLAGS:--fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM}"; LIBPATH=`for x in $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=heartbeat_test} heartbeat_test.o ${LIBDEPS} ) make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o constant_time_test.o constant_time_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o verify_extra_test.o verify_extra_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o clienthellotest.o clienthellotest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sslv2conftest.o sslv2conftest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dtlstest.o dtlstest.c gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ssltestlib.o ssltestlib.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o bad_dtls_test.o bad_dtls_test.c bad_dtls_test.c: In function 'PACKET_get_length_prefixed_1': bad_dtls_test.c:245:18: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] subpkt->curr = data; ^ bad_dtls_test.c:240:26: warning: 'length' may be used uninitialized in this function [-Wmaybe-uninitialized] !PACKET_get_bytes(&tmp, &data, (size_t)length)) { ^ bad_dtls_test.c: In function 'validate_ccs': bad_dtls_test.c:696:33: warning: 'u' may be used uninitialized in this function [-Wmaybe-uninitialized] if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_CHANGE_CIPHER_SPEC) ^ bad_dtls_test.c: In function 'validate_client_hello': bad_dtls_test.c:429:33: warning: 'u' may be used uninitialized in this function [-Wmaybe-uninitialized] if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_HANDSHAKE) ^ make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o fatalerrtest.o fatalerrtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o x509_time_test.o x509_time_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dummytest.o dummytest.c make[2]: Entering directory ` make[2]: Leaving directory ` make[1]: Leaving directory ` making all in tools... make[1]: Entering directory ` make[1]: Nothing to be done for `all'. make[1]: Leaving directory ` [1_0_2_abi] $ /bin/sh -xe /tmp/jenkins3949846902841834375.sh + export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/bin + abi-dumper libcrypto.so.1.0.0 -o libcrypto.dump -lver 1 Reading debug-info Extracting ABI information Creating ABI dump The object ABI has been dumped to: libcrypto.dump + abi-dumper libssl.so.1.0.0 -o libssl.dump -lver 1 Reading debug-info Extracting ABI information Creating ABI dump The object ABI has been dumped to: libssl.dump Copied 2 artifacts from "1_0_2_abi" build number 534 [1_0_2_abi] $ /bin/sh -xe /tmp/jenkins2527764327767944750.sh + ls old libcrypto.dump libssl.dump + export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/bin + abi-compliance-checker -l crypto -old old/libcrypto.dump -new libcrypto.dump preparation, please wait ... comparing ABIs ... comparing APIs ... creating compatibility report ... result: INCOMPATIBLE (Binary: 0.02%, Source: 0.02%) total "Binary" compatibility problems: 1, warnings: 0 total "Source" compatibility problems: 1, warnings: 0 see detailed report: compat_reports/crypto/1_to_1/compat_report.html Build step 'Execute shell' marked build as failure Archiving artifacts From matt at openssl.org Wed Oct 3 15:40:46 2018 From: matt at openssl.org (Matt Caswell) Date: Wed, 03 Oct 2018 15:40:46 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538581246.610548.12297.nullmailer@dev.openssl.org> The branch master has been updated via a21f4cec14664d8fc5f52dc42ab7119b696521a5 (commit) from 434893af2bd4c1fa72655f8e5262c8a432713968 (commit) - Log ----------------------------------------------------------------- commit a21f4cec14664d8fc5f52dc42ab7119b696521a5 Author: Matt Caswell Date: Tue Oct 2 14:05:14 2018 +0100 Ignore libcrypto.ld and libssl.ld These are auto generated files that should not be checked into git Reviewed-by: Richard Levitte Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7339) ----------------------------------------------------------------------- Summary of changes: .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1b0f25c..30068e0 100644 --- a/.gitignore +++ b/.gitignore @@ -82,8 +82,8 @@ Makefile /util/shlib_wrap.sh /tags /TAGS -/libcrypto.map -/libssl.map +*.map +*.ld # Windows (legacy) /tmp32 From matt at openssl.org Wed Oct 3 15:47:19 2018 From: matt at openssl.org (Matt Caswell) Date: Wed, 03 Oct 2018 15:47:19 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538581639.332396.13608.nullmailer@dev.openssl.org> The branch master has been updated via 1b39bc9bcf2c8a0eb1047529feb91ed00c8c6ff7 (commit) from a21f4cec14664d8fc5f52dc42ab7119b696521a5 (commit) - Log ----------------------------------------------------------------- commit 1b39bc9bcf2c8a0eb1047529feb91ed00c8c6ff7 Author: Matt Caswell Date: Tue Oct 2 13:44:17 2018 +0100 Fix the drbgtest with randomized ordering In drbgtest, test_set_defaults changes the default DRBGs. This works fine when tests are run in the normal order. However if OPENSSL_TEST_RAND_ORDER is defined then it may fail (dependent on the ordering). This environment variable is defined for one of the Travis tests, so this issue was causing intermittent travis test failures. [extended tests] Reviewed-by: Matthias St. Pierre Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7338) ----------------------------------------------------------------------- Summary of changes: test/drbgtest.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/drbgtest.c b/test/drbgtest.c index 4e0c76f..f2054a8 100644 --- a/test/drbgtest.c +++ b/test/drbgtest.c @@ -1049,7 +1049,17 @@ static int test_set_defaults(void) && TEST_true(RAND_DRBG_uninstantiate(master)) && TEST_int_eq(master->type, NID_aes_256_ctr) && TEST_int_eq(master->flags, - RAND_DRBG_FLAG_MASTER|RAND_DRBG_FLAG_CTR_NO_DF); + RAND_DRBG_FLAG_MASTER|RAND_DRBG_FLAG_CTR_NO_DF) + + /* Reset back to the standard defaults */ + && TEST_true(RAND_DRBG_set_defaults(RAND_DRBG_TYPE, + RAND_DRBG_FLAGS + | RAND_DRBG_FLAG_MASTER + | RAND_DRBG_FLAG_PUBLIC + | RAND_DRBG_FLAG_PRIVATE)) + && TEST_true(RAND_DRBG_uninstantiate(master)) + && TEST_true(RAND_DRBG_uninstantiate(public)) + && TEST_true(RAND_DRBG_uninstantiate(private)); } int setup_tests(void) From builds at travis-ci.org Wed Oct 3 16:06:37 2018 From: builds at travis-ci.org (Travis CI) Date: Wed, 03 Oct 2018 16:06:37 +0000 Subject: [openssl-commits] Still Failing: openssl/openssl#20908 (master - a21f4ce) In-Reply-To: Message-ID: <5bb4e90d2c89c_43fccc3d433781140b1@b0733cb0-4e5b-44b9-a0d7-07413163a63f.mail> Build Update for openssl/openssl ------------------------------------- Build: #20908 Status: Still Failing Duration: 23 mins and 57 secs Commit: a21f4ce (master) Author: Matt Caswell Message: Ignore libcrypto.ld and libssl.ld These are auto generated files that should not be checked into git Reviewed-by: Richard Levitte Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7339) View the changeset: https://github.com/openssl/openssl/compare/434893af2bd4...a21f4cec1466 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/436702215?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From builds at travis-ci.org Wed Oct 3 16:26:54 2018 From: builds at travis-ci.org (Travis CI) Date: Wed, 03 Oct 2018 16:26:54 +0000 Subject: [openssl-commits] Fixed: openssl/openssl#20910 (master - 1b39bc9) In-Reply-To: Message-ID: <5bb4edce17dfe_43f8dd6e96fd04462df@316da775-9700-4359-95f8-51d14edb845d.mail> Build Update for openssl/openssl ------------------------------------- Build: #20910 Status: Fixed Duration: 24 mins and 45 secs Commit: 1b39bc9 (master) Author: Matt Caswell Message: Fix the drbgtest with randomized ordering In drbgtest, test_set_defaults changes the default DRBGs. This works fine when tests are run in the normal order. However if OPENSSL_TEST_RAND_ORDER is defined then it may fail (dependent on the ordering). This environment variable is defined for one of the Travis tests, so this issue was causing intermittent travis test failures. [extended tests] Reviewed-by: Matthias St. Pierre Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7338) View the changeset: https://github.com/openssl/openssl/compare/a21f4cec1466...1b39bc9bcf2c View the full build log and details: https://travis-ci.org/openssl/openssl/builds/436705327?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From levitte at openssl.org Wed Oct 3 20:15:21 2018 From: levitte at openssl.org (Richard Levitte) Date: Wed, 03 Oct 2018 20:15:21 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538597721.824758.8440.nullmailer@dev.openssl.org> The branch master has been updated via 18958cefd82449daf3c589b74a074f0c88159d47 (commit) from 1b39bc9bcf2c8a0eb1047529feb91ed00c8c6ff7 (commit) - Log ----------------------------------------------------------------- commit 18958cefd82449daf3c589b74a074f0c88159d47 Author: Richard Levitte Date: Tue Oct 2 18:57:39 2018 +0200 Remove SSL_version_str I was never exported in our shared libraries and no one noticed, and we don't seem to use it ourselves, so clean it away. In all likelyhood, this is a remain from the 90's, when it was in fashion to litter library modules with these kinds of strings. Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7340) ----------------------------------------------------------------------- Summary of changes: include/openssl/ssl.h | 2 -- ssl/ssl_lib.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index 0a18a43..ffe1583 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -2392,8 +2392,6 @@ int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); -extern const char SSL_version_str[]; - typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index ec5b155..846b856 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -23,8 +23,6 @@ #include "internal/cryptlib.h" #include "internal/refcount.h" -const char SSL_version_str[] = OPENSSL_VERSION_TEXT; - static int ssl_undefined_function_1(SSL *ssl, SSL3_RECORD *r, size_t s, int t) { (void)r; From no-reply at appveyor.com Thu Oct 4 00:14:26 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 00:14:26 +0000 Subject: [openssl-commits] Build failed: openssl master.20186 Message-ID: <20181004001426.1.9BA118D845B0962A@appveyor.com> An HTML attachment was scrubbed... URL: From osslsanity at gmail.com Thu Oct 4 03:01:14 2018 From: osslsanity at gmail.com (osslsanity at gmail.com) Date: Thu, 4 Oct 2018 03:01:14 +0000 (UTC) Subject: [openssl-commits] Jenkins build is back to normal : 1_0_2_abi #536 In-Reply-To: <15205276.170.1538535675416.JavaMail.jenkins@ip-172-31-34-99> References: <15205276.170.1538535675416.JavaMail.jenkins@ip-172-31-34-99> Message-ID: <1299444167.173.1538622074835.JavaMail.jenkins@ip-172-31-34-99> See From no-reply at appveyor.com Thu Oct 4 05:16:38 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 05:16:38 +0000 Subject: [openssl-commits] Build failed: openssl master.20187 Message-ID: <20181004051638.1.282116D1FF9A3139@appveyor.com> An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Thu Oct 4 05:31:27 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 05:31:27 +0000 Subject: [openssl-commits] Build failed: openssl master.20188 Message-ID: <20181004053127.1.DA2F40B0BCE27324@appveyor.com> An HTML attachment was scrubbed... URL: From levitte at openssl.org Thu Oct 4 08:00:03 2018 From: levitte at openssl.org (Richard Levitte) Date: Thu, 04 Oct 2018 08:00:03 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1538640003.567891.17286.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via 236119c48ecaac933fc52d7cbfd8d9214d216122 (commit) via 6babfb216137ab3e13c3219b45ac669a1f514901 (commit) from acb03676c50edeace8732fc0ee3fc9d3277f7a77 (commit) - Log ----------------------------------------------------------------- commit 236119c48ecaac933fc52d7cbfd8d9214d216122 Author: Richard Levitte Date: Sun Sep 30 02:18:47 2018 +0200 Clean out aliases in include/openssl/symhacks.h Only a few clashing ones remain Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7331) (cherry picked from commit b44882a0bd0717e0aab84f5dc3ef81ab673155e9) commit 6babfb216137ab3e13c3219b45ac669a1f514901 Author: Richard Levitte Date: Sun Sep 30 01:59:11 2018 +0200 Small cleanup (util/mkdef.pl, crypto/bio/bss_log.c, include/openssl/ocsp.h) BIO_s_log() is declared for everyone, so should return NULL when not actually implemented. Also, it had explicit platform limitations in util/mkdef.pl that didn't correspond to what was actually in code. While at it, a few other hard coded things that have lost their relevance were removed. include/openssl/ocsp.h had a few duplicate declarations. Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7331) (cherry picked from commit 7e09c5eaa57295f87453286ffe25277c2f2bc73f) ----------------------------------------------------------------------- Summary of changes: crypto/bio/bss_log.c | 5 +++++ include/openssl/ocsp.h | 3 --- include/openssl/symhacks.h | 15 --------------- util/libcrypto.num | 2 +- util/mkdef.pl | 10 ---------- 5 files changed, 6 insertions(+), 29 deletions(-) diff --git a/crypto/bio/bss_log.c b/crypto/bio/bss_log.c index 4324f24..e9ab932 100644 --- a/crypto/bio/bss_log.c +++ b/crypto/bio/bss_log.c @@ -408,4 +408,9 @@ static void xcloselog(BIO *bp) # endif /* Unix */ +#else /* NO_SYSLOG */ +const BIO_METHOD *BIO_s_log(void) +{ + return NULL; +} #endif /* NO_SYSLOG */ diff --git a/include/openssl/ocsp.h b/include/openssl/ocsp.h index 937b322..0a17166 100644 --- a/include/openssl/ocsp.h +++ b/include/openssl/ocsp.h @@ -93,7 +93,6 @@ typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; # define V_OCSP_RESPID_KEY 1 DEFINE_STACK_OF(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; @@ -162,8 +161,6 @@ int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, const ASN1_ITEM *it); BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, diff --git a/include/openssl/symhacks.h b/include/openssl/symhacks.h index caf1f1a..b6d68ef 100644 --- a/include/openssl/symhacks.h +++ b/include/openssl/symhacks.h @@ -28,21 +28,6 @@ # undef i2d_ECPKPARAMETERS # define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - /* This one clashes with CMS_data_create */ # undef cms_Data_create # define cms_Data_create priv_cms_Data_create diff --git a/util/libcrypto.num b/util/libcrypto.num index c4460c9..bad3a38 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -282,7 +282,7 @@ TS_REQ_free 282 1_1_0 EXIST::FUNCTION:TS PEM_read_DHparams 283 1_1_0 EXIST::FUNCTION:DH,STDIO RSA_private_decrypt 284 1_1_0 EXIST::FUNCTION:RSA X509V3_EXT_get_nid 285 1_1_0 EXIST::FUNCTION: -BIO_s_log 286 1_1_0 EXIST:!WIN32,!macintosh:FUNCTION: +BIO_s_log 286 1_1_0 EXIST::FUNCTION: EC_POINT_set_to_infinity 287 1_1_0 EXIST::FUNCTION:EC EVP_des_ede_ofb 288 1_1_0 EXIST::FUNCTION:DES ECDH_KDF_X9_62 289 1_1_0 EXIST::FUNCTION:EC diff --git a/util/mkdef.pl b/util/mkdef.pl index 657162b..bcbb475 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -936,16 +936,6 @@ sub do_defs } } - # Prune the returned symbols - - delete $syms{"bn_dump1"}; - $platform{"BIO_s_log"} .= ",!WIN32,!macintosh"; - - $platform{"PEM_read_NS_CERT_SEQ"} = "VMS"; - $platform{"PEM_write_NS_CERT_SEQ"} = "VMS"; - $platform{"PEM_read_P8_PRIV_KEY_INFO"} = "VMS"; - $platform{"PEM_write_P8_PRIV_KEY_INFO"} = "VMS"; - # Info we know about push @ret, map { $_."\\".&info_string($_,"EXIST", From levitte at openssl.org Thu Oct 4 08:00:55 2018 From: levitte at openssl.org (Richard Levitte) Date: Thu, 04 Oct 2018 08:00:55 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_0-stable update Message-ID: <1538640055.150774.18202.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_0-stable has been updated via d39b27749f7402127a0be1e8dfffd710db52bde6 (commit) via 32451d8f861324697fc275593fbb830f80c1723b (commit) from 875ba8b21ecc65ad9a6bdc66971e50461660fcbb (commit) - Log ----------------------------------------------------------------- commit d39b27749f7402127a0be1e8dfffd710db52bde6 Author: Richard Levitte Date: Sun Sep 30 02:18:47 2018 +0200 Clean out aliases in include/openssl/symhacks.h Only a few clashing ones remain Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7331) (cherry picked from commit b44882a0bd0717e0aab84f5dc3ef81ab673155e9) commit 32451d8f861324697fc275593fbb830f80c1723b Author: Richard Levitte Date: Sun Sep 30 01:59:11 2018 +0200 Small cleanup (util/mkdef.pl, crypto/bio/bss_log.c, include/openssl/ocsp.h) BIO_s_log() is declared for everyone, so should return NULL when not actually implemented. Also, it had explicit platform limitations in util/mkdef.pl that didn't correspond to what was actually in code. While at it, a few other hard coded things that have lost their relevance were removed. include/openssl/ocsp.h had a few duplicate declarations. Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7331) (cherry picked from commit 7e09c5eaa57295f87453286ffe25277c2f2bc73f) ----------------------------------------------------------------------- Summary of changes: crypto/bio/bss_log.c | 5 +++++ include/openssl/ocsp.h | 3 --- include/openssl/symhacks.h | 15 --------------- util/libcrypto.num | 2 +- util/mkdef.pl | 10 ---------- 5 files changed, 6 insertions(+), 29 deletions(-) diff --git a/crypto/bio/bss_log.c b/crypto/bio/bss_log.c index 4719a5e..f090e82 100644 --- a/crypto/bio/bss_log.c +++ b/crypto/bio/bss_log.c @@ -404,4 +404,9 @@ static void xcloselog(BIO *bp) # endif /* Unix */ +#else /* NO_SYSLOG */ +const BIO_METHOD *BIO_s_log(void) +{ + return NULL; +} #endif /* NO_SYSLOG */ diff --git a/include/openssl/ocsp.h b/include/openssl/ocsp.h index fd172fb..aa432f1 100644 --- a/include/openssl/ocsp.h +++ b/include/openssl/ocsp.h @@ -92,7 +92,6 @@ typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; # define V_OCSP_RESPID_KEY 1 DEFINE_STACK_OF(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; @@ -159,8 +158,6 @@ int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, const ASN1_ITEM *it); BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, diff --git a/include/openssl/symhacks.h b/include/openssl/symhacks.h index caf1f1a..b6d68ef 100644 --- a/include/openssl/symhacks.h +++ b/include/openssl/symhacks.h @@ -28,21 +28,6 @@ # undef i2d_ECPKPARAMETERS # define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - /* This one clashes with CMS_data_create */ # undef cms_Data_create # define cms_Data_create priv_cms_Data_create diff --git a/util/libcrypto.num b/util/libcrypto.num index c0fe79d..2390fa0 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -282,7 +282,7 @@ TS_REQ_free 282 1_1_0 EXIST::FUNCTION:TS PEM_read_DHparams 283 1_1_0 EXIST::FUNCTION:DH,STDIO RSA_private_decrypt 284 1_1_0 EXIST::FUNCTION:RSA X509V3_EXT_get_nid 285 1_1_0 EXIST::FUNCTION: -BIO_s_log 286 1_1_0 EXIST:!WIN32,!macintosh:FUNCTION: +BIO_s_log 286 1_1_0 EXIST::FUNCTION: EC_POINT_set_to_infinity 287 1_1_0 EXIST::FUNCTION:EC EVP_des_ede_ofb 288 1_1_0 EXIST::FUNCTION:DES ECDH_KDF_X9_62 289 1_1_0 EXIST::FUNCTION:EC diff --git a/util/mkdef.pl b/util/mkdef.pl index 823cb66..3626dcd 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -978,16 +978,6 @@ sub do_defs } } - # Prune the returned symbols - - delete $syms{"bn_dump1"}; - $platform{"BIO_s_log"} .= ",!WIN32,!macintosh"; - - $platform{"PEM_read_NS_CERT_SEQ"} = "VMS"; - $platform{"PEM_write_NS_CERT_SEQ"} = "VMS"; - $platform{"PEM_read_P8_PRIV_KEY_INFO"} = "VMS"; - $platform{"PEM_write_P8_PRIV_KEY_INFO"} = "VMS"; - # Info we know about push @ret, map { $_."\\".&info_string($_,"EXIST", From no-reply at appveyor.com Thu Oct 4 08:44:17 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 08:44:17 +0000 Subject: [openssl-commits] Build completed: openssl OpenSSL_1_1_1-stable.20189 Message-ID: <20181004084417.1.241C2A7FC79F1BFD@appveyor.com> An HTML attachment was scrubbed... URL: From levitte at openssl.org Thu Oct 4 10:49:33 2018 From: levitte at openssl.org (Richard Levitte) Date: Thu, 04 Oct 2018 10:49:33 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538650173.163536.5038.nullmailer@dev.openssl.org> The branch master has been updated via 30699aa1943b10b265c52334d9f582c04c4eccba (commit) via 15ba109631254b98d3ef2611a1765e75442314a6 (commit) via d73c44404d470424aa58e85fe38b97351f112bc1 (commit) via ab1e5495e45708f43f71e1f9e8872066dc8177c0 (commit) via 8effd8fa67689e1d4318cfda21604eef428a37cf (commit) via 91a99748d328164ab043cf7bc3da8e45ec0de497 (commit) from 18958cefd82449daf3c589b74a074f0c88159d47 (commit) - Log ----------------------------------------------------------------- commit 30699aa1943b10b265c52334d9f582c04c4eccba Author: Richard Levitte Date: Fri Sep 14 15:28:39 2018 +0200 Refactor util/mknum.pl for clearer separation of functionality Rewrite util/mknum.pl to become cleaner, and to use the separate generic C header parsing module, as well as the separate ordinals manipulation module. Adapt the build files. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7191) commit 15ba109631254b98d3ef2611a1765e75442314a6 Author: Richard Levitte Date: Wed Oct 3 17:44:59 2018 +0200 Add code to manipulate the items in OpenSSL::Ordinals This means adding the capability to add new items, to invalidate and revalidate all the items, and to update the file it came from, as well as the possibility to create new items from other data than a line from said file. While we're at it, we throw in a couple of useful filters. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7191) commit d73c44404d470424aa58e85fe38b97351f112bc1 Author: Richard Levitte Date: Wed Oct 3 17:43:48 2018 +0200 A perl module to parse through C headers OpenSSL::ParseC is a module that parses through a C header file and returns a list with information on what it found. Currently, the information it returns covers function and variable declarations, macro definitions, struct declarations/definitions and typedef definitions. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7191) commit ab1e5495e45708f43f71e1f9e8872066dc8177c0 Author: Richard Levitte Date: Fri Sep 14 15:19:37 2018 +0200 Move ZLIB from 'platforms' to 'features' Having it as a 'platform' was conceptually wrong from from the beginning, and makes decoding more complicated than necessary. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7191) commit 8effd8fa67689e1d4318cfda21604eef428a37cf Author: Richard Levitte Date: Fri Sep 14 14:59:40 2018 +0200 Refactor util/mkdef.pl for clearer separation of functionality Move the .num updating functionality to util/mknum.pl. Rewrite util/mkdef.pl to create .def / .map / .opt files exclusively, using the separate ordinals reading module. Adapt the build files. Adapt the symbol presence test. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7191) commit 91a99748d328164ab043cf7bc3da8e45ec0de497 Author: Richard Levitte Date: Fri Sep 14 14:58:11 2018 +0200 Add a perl module that deals with ordinals files Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7191) ----------------------------------------------------------------------- Summary of changes: Configurations/descrip.mms.tmpl | 2 +- Configurations/unix-Makefile.tmpl | 44 +- Configurations/windows-makefile.tmpl | 2 +- build.info | 6 +- test/recipes/01-test_symbol_presence.t | 5 +- util/libcrypto.num | 2 +- util/mkdef.pl | 1824 +++++--------------------------- util/mknum.pl | 125 +++ util/perl/OpenSSL/Ordinals.pm | 946 +++++++++++++++++ util/perl/OpenSSL/ParseC.pm | 1129 ++++++++++++++++++++ 10 files changed, 2540 insertions(+), 1545 deletions(-) create mode 100644 util/mknum.pl create mode 100644 util/perl/OpenSSL/Ordinals.pm create mode 100644 util/perl/OpenSSL/ParseC.pm diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index 7393e22..c5dee22 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -760,7 +760,7 @@ reconfigure reconf : my $mkdef = sourcefile('util', 'mkdef.pl'); return <<"EOF"; $target : $args{generator}->[0] $deps - \$(PERL) $mkdef $args{generator}->[1] "VMS" > $target + \$(PERL) $mkdef --ordinals $args{generator}->[0] --name $args{generator}->[1] "--OS" "VMS" > $target EOF } elsif ($target !~ /\.[sS]$/) { my $target = $args{src}; diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index f67eae5..662fb05 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -809,9 +809,47 @@ errors: -conf $$E `basename $$E .ec`.c ; \ done ) +{- use File::Basename; + + our @sslheaders = + qw( include/openssl/ssl.h + include/openssl/ssl2.h + include/openssl/ssl3.h + include/openssl/sslerr.h + include/openssl/tls1.h + include/openssl/dtls1.h + include/openssl/srtp.h ); + our @cryptoheaders = + qw( include/internal/dso.h + include/internal/o_dir.h + include/internal/o_str.h + include/internal/err.h + include/internal/sslconf.h ); + our @cryptoskipheaders = ( @sslheaders, + qw( include/openssl/conf_api.h + include/openssl/ebcdic.h + include/openssl/opensslconf.h + include/openssl/symhacks.h ) ); + foreach my $f ( glob(catfile($config{sourcedir}, + 'include','openssl','*.h')) ) { + my $fn = "include/openssl/" . basename($f); + push @cryptoheaders, $fn unless grep { $_ eq $fn } @cryptoskipheaders; + } + ""; +-} +CRYPTOHEADERS={- join(" \\\n\t", sort @cryptoheaders) -} +SSLHEADERS={- join(" \\\n\t", sort @sslheaders) -} ordinals: - ( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b util/mkdef.pl crypto update ) - ( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b util/mkdef.pl ssl update ) + ( cd $(SRCDIR); \ + $(PERL) util/mknum.pl --version $(VERSION) --no-warnings \ + --ordinals util/libcrypto.num \ + --symhacks include/openssl/symhacks.h \ + $(CRYPTOHEADERS) ) + ( cd $(SRCDIR); \ + $(PERL) util/mknum.pl --version $(VERSION) --no-warnings \ + --ordinals util/libssl.num \ + --symhacks include/openssl/symhacks.h \ + $(SSLHEADERS)) test_ordinals: ( cd test; \ @@ -965,7 +1003,7 @@ reconfigure reconf: (my $mkdef_os = $target{shared_target}) =~ s|-shared$||; return <<"EOF"; $target: $args{generator}->[0] $deps - \$(PERL) \$(SRCDIR)/util/mkdef.pl $args{generator}->[1] $mkdef_os > $target + \$(PERL) \$(SRCDIR)/util/mkdef.pl --ordinals $args{generator}->[0] --name $args{generator}->[1] --OS $mkdef_os > $target EOF } elsif ($args{src} !~ /\.[sS]$/) { if ($args{generator}->[0] =~ m|^.*\.in$|) { diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index fb7ddca..46f564d 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -514,7 +514,7 @@ reconfigure reconf: rel2abs($config{builddir})); return <<"EOF"; $target: $args{generator}->[0] $deps - \$(PERL) $mkdef $args{generator}->[1] 32 > $target + \$(PERL) $mkdef --ordinals $args{generator}->[0] --name $args{generator}->[1] --OS windows > $target EOF } elsif ($args{src} !~ /\.[sS]$/) { my $target = $args{src}; diff --git a/build.info b/build.info index 16e587e..ceb250f 100644 --- a/build.info +++ b/build.info @@ -1,4 +1,6 @@ {- + use File::Spec::Functions; + our $sover = $config{shlib_version_number}; our $sover_filename = $sover; $sover_filename =~ s|\.|_|g @@ -28,8 +30,8 @@ IF[{- defined $target{shared_defflag} -}] SHARED_SOURCE[libcrypto]=libcrypto.ld SHARED_SOURCE[libssl]=libssl.ld - GENERATE[libcrypto.ld]=util/libcrypto.num crypto - GENERATE[libssl.ld]=util/libssl.num ssl + GENERATE[libcrypto.ld]=util/libcrypto.num libcrypto + GENERATE[libssl.ld]=util/libssl.num libssl ENDIF IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-)/ -}] diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t index 7f2a2d7..015dee9 100644 --- a/test/recipes/01-test_symbol_presence.t +++ b/test/recipes/01-test_symbol_presence.t @@ -49,8 +49,9 @@ foreach my $libname (@libnames) { my @def_lines; indir $bldtop => sub { my $mkdefpath = srctop_file("util", "mkdef.pl"); - @def_lines = map { s|\R$||; $_ } `$^X $mkdefpath $libname linux 2> /dev/null`; - ok($? == 0, "running 'cd $bldtop; $^X $mkdefpath $libname linux' => $?"); + my $libnumpath = srctop_file("util", "lib$libname.num"); + @def_lines = map { s|\R$||; $_ } `$^X $mkdefpath --ordinals $libnumpath --name $libname --OS linux 2> /dev/null`; + ok($? == 0, "running 'cd $bldtop; $^X $mkdefpath --ordinals $libnumpath --name $libname --OS linux' => $?"); }, create => 0, cleanup => 0; note "Number of lines in \@nm_lines before massaging: ", scalar @nm_lines; diff --git a/util/libcrypto.num b/util/libcrypto.num index bad3a38..ecece38 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -2529,7 +2529,7 @@ ASN1_STRING_type_new 2494 1_1_0 EXIST::FUNCTION: TS_STATUS_INFO_free 2495 1_1_0 EXIST::FUNCTION:TS BN_mod_mul 2496 1_1_0 EXIST::FUNCTION: CMS_add0_recipient_key 2497 1_1_0 EXIST::FUNCTION:CMS -BIO_f_zlib 2498 1_1_0 EXIST:ZLIB:FUNCTION:COMP +BIO_f_zlib 2498 1_1_0 EXIST::FUNCTION:COMP,ZLIB AES_cfb128_encrypt 2499 1_1_0 EXIST::FUNCTION: ENGINE_set_EC 2500 1_1_0 EXIST::FUNCTION:ENGINE d2i_ECPKParameters 2501 1_1_0 EXIST::FUNCTION:EC diff --git a/util/mkdef.pl b/util/mkdef.pl index 6523a05..959a13d 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -1,57 +1,41 @@ #! /usr/bin/env perl -# Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy # in the file LICENSE in the source distribution or at # https://www.openssl.org/source/license.html -# -# generate a .def file -# -# It does this by parsing the header files and looking for the -# prototyped functions: it then prunes the output. -# -# Intermediary files are created, call libcrypto.num and libssl.num, -# The format of these files is: -# -# routine-name nnnn vers info -# -# The "nnnn" and "vers" fields are the numeric id and version for the symbol -# respectively. The "info" part is actually a colon-separated string of fields -# with the following meaning: -# -# existence:platform:kind:algorithms -# -# - "existence" can be "EXIST" or "NOEXIST" depending on if the symbol is -# found somewhere in the source, -# - "platforms" is empty if it exists on all platforms, otherwise it contains -# comma-separated list of the platform, just as they are if the symbol exists -# for those platforms, or prepended with a "!" if not. This helps resolve -# symbol name variants for platforms where the names are too long for the -# compiler or linker, or if the systems is case insensitive and there is a -# clash, or the symbol is implemented differently (see -# EXPORT_VAR_AS_FUNCTION). This script assumes renaming of symbols is found -# in the file crypto/symhacks.h. -# The semantics for the platforms is that every item is checked against the -# environment. For the negative items ("!FOO"), if any of them is false -# (i.e. "FOO" is true) in the environment, the corresponding symbol can't be -# used. For the positive items, if all of them are false in the environment, -# the corresponding symbol can't be used. Any combination of positive and -# negative items are possible, and of course leave room for some redundancy. -# - "kind" is "FUNCTION" or "VARIABLE". The meaning of that is obvious. -# - "algorithms" is a comma-separated list of algorithm names. This helps -# exclude symbols that are part of an algorithm that some user wants to -# exclude. -# +# Generate a linker version script suitable for the given platform +# from a given ordinals file. -use lib "."; -use configdata; -use File::Spec::Functions; -use File::Basename; +use strict; +use warnings; + +use Getopt::Long; use FindBin; use lib "$FindBin::Bin/perl"; -use OpenSSL::Glob; + +use OpenSSL::Ordinals; + +use lib '.'; +use configdata; + +my $name = undef; # internal library/module name +my $ordinals_file = undef; # the ordinals file to use +my $OS = undef; # the operating system family +my $verbose = 0; +my $ctest = 0; + +GetOptions('name=s' => \$name, + 'ordinals=s' => \$ordinals_file, + 'OS=s' => \$OS, + 'ctest' => \$ctest, + 'verbose' => \$verbose) + or die "Error in command line arguments\n"; + +die "Please supply arguments\n" + unless $name && $ordinals_file && $OS; # When building a "variant" shared library, with a custom SONAME, also customize # all the symbol versions. This produces a shared object that can coexist @@ -103,1532 +87,302 @@ use OpenSSL::Glob; # 0000000000000000 A OPENSSL_OPT_1_1_0 # 0000000000000000 A OPENSSL_OPT_1_1_0d # -(my $SO_VARIANT = qq{\U$target{"shlib_variant"}}) =~ s/\W/_/g; - -my $debug=0; -my $trace=0; -my $verbose=0; - -my $crypto_num= catfile($config{sourcedir},"util","libcrypto.num"); -my $ssl_num= catfile($config{sourcedir},"util","libssl.num"); -my $libname; - -my $do_update = 0; -my $do_rewrite = 1; -my $do_crypto = 0; -my $do_ssl = 0; -my $do_ctest = 0; -my $do_ctestall = 0; -my $do_checkexist = 0; - -my $VMS=0; -my $W32=0; -my $NT=0; -my $UNIX=0; -my $linux=0; -my $aix=0; -# Set this to make typesafe STACK definitions appear in DEF -my $safe_stack_def = 0; - -my @known_platforms = ( "__FreeBSD__", "PERL5", - "EXPORT_VAR_AS_FUNCTION", "ZLIB", "_WIN32" - ); -my @known_ossl_platforms = ( "UNIX", "VMS", "WIN32", "WINNT", "OS2" ); -my @known_algorithms = ( # These are algorithms we know are guarded in relevant - # header files, but aren't actually disablable. - # Without these, this script will warn a lot. - "RSA", "MD5", - # @disablables comes from configdata.pm - map { (my $x = uc $_) =~ s|-|_|g; $x; } @disablables, - # Deprecated functions. Not really algorithmss, but - # treated as such here for the sake of simplicity - "DEPRECATEDIN_0_9_8", - "DEPRECATEDIN_1_0_0", - "DEPRECATEDIN_1_1_0", - "DEPRECATEDIN_1_2_0", - ); - -# %disabled comes from configdata.pm -my %disabled_algorithms = - map { (my $x = uc $_) =~ s|-|_|g; $x => 1; } keys %disabled; - -my $apiv = sprintf "%x%02x%02x", split(/\./, $config{api}); -foreach (@known_algorithms) { - if (/^DEPRECATEDIN_(\d+)_(\d+)_(\d+)$/) { - my $depv = sprintf "%x%02x%02x", $1, $2, $3; - $disabled_algorithms{$_} = 1 if $apiv ge $depv; - } -} - -my $zlib; - -foreach (@ARGV, split(/ /, $config{options})) - { - $debug=1 if $_ eq "debug"; - $trace=1 if $_ eq "trace"; - $verbose=1 if $_ eq "verbose"; - die "win16 not supported" if $_ eq "16"; - if ($_ eq "32" || $_ eq "mingw") { - $W32=1; - } elsif ($_ eq "NT") { - $W32 = 1; - $NT = 1; - } elsif ($_ eq "linux" || $_ eq "solaris") { - $linux=1; - $UNIX=1; - } elsif ($_ eq "aix") { - $aix=1; - $UNIX=1; - } elsif ($_ eq "VMS") { - $VMS=1; - } - if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic" - || $_ eq "enable-zlib-dynamic") { - $zlib = 1; - } - - $do_crypto=1 if $_ eq "libcrypto" || $_ eq "crypto"; - $do_ssl=1 if $_ eq "libssl" || $_ eq "ssl"; - - $do_update=1 if $_ eq "update"; - $do_rewrite=1 if $_ eq "rewrite"; - $do_ctest=1 if $_ eq "ctest"; - $do_ctestall=1 if $_ eq "ctestall"; - $do_checkexist=1 if $_ eq "exist"; - } -$libname = $unified_info{sharednames}->{libcrypto} if $do_crypto; -$libname = $unified_info{sharednames}->{libssl} if $do_ssl; - -if (!$libname) { - if ($do_ssl) { - $libname="LIBSSL"; - } - if ($do_crypto) { - $libname="LIBCRYPTO"; - } -} - -# If no platform is given, assume WIN32 -if ($W32 + $VMS + $linux + $aix == 0) { - $W32 = 1; -} -die "Please, only one platform at a time" - if ($W32 + $VMS + $linux + $aix > 1); - -if (!$do_ssl && !$do_crypto) - { - print STDERR "usage: $0 ( ssl | crypto ) [ 16 | 32 | NT | OS2 | linux | VMS ]\n"; - exit(1); - } - -%ssl_list=&load_numbers($ssl_num); -$max_ssl = $max_num; -%crypto_list=&load_numbers($crypto_num); -$max_crypto = $max_num; - -my $ssl="include/openssl/ssl.h"; -$ssl.=" include/openssl/sslerr.h"; -$ssl.=" include/openssl/tls1.h"; -$ssl.=" include/openssl/srtp.h"; - -# When scanning include/openssl, skip all SSL files and some internal ones. -my %skipthese; -foreach my $f ( split(/\s+/, $ssl) ) { - $skipthese{$f} = 1; -} -$skipthese{'include/openssl/conf_api.h'} = 1; -$skipthese{'include/openssl/ebcdic.h'} = 1; -$skipthese{'include/openssl/opensslconf.h'} = 1; - -# We use headers found in include/openssl and include/internal only. -# The latter is needed so libssl.so/.dll/.exe can link properly. -my $crypto ="include/internal/dso.h"; -$crypto.=" include/internal/o_dir.h"; -$crypto.=" include/internal/o_str.h"; -$crypto.=" include/internal/err.h"; -$crypto.=" include/internal/sslconf.h"; -foreach my $f ( glob(catfile($config{sourcedir},'include/openssl/*.h')) ) { - my $fn = "include/openssl/" . basename($f); - $crypto .= " $fn" if !defined $skipthese{$fn}; -} - -my $symhacks="include/openssl/symhacks.h"; - -my @ssl_symbols = &do_defs("LIBSSL", $ssl, $symhacks); -my @crypto_symbols = &do_defs("LIBCRYPTO", $crypto, $symhacks); - -if ($do_update) { - -if ($do_ssl == 1) { - - &maybe_add_info("LIBSSL",*ssl_list, at ssl_symbols); - if ($do_rewrite == 1) { - open(OUT, ">$ssl_num"); - &rewrite_numbers(*OUT,"LIBSSL",*ssl_list, at ssl_symbols); - } else { - open(OUT, ">>$ssl_num"); - } - &update_numbers(*OUT,"LIBSSL",*ssl_list,$max_ssl, at ssl_symbols); - close OUT; -} - -if($do_crypto == 1) { - - &maybe_add_info("LIBCRYPTO",*crypto_list, at crypto_symbols); - if ($do_rewrite == 1) { - open(OUT, ">$crypto_num"); - &rewrite_numbers(*OUT,"LIBCRYPTO",*crypto_list, at crypto_symbols); - } else { - open(OUT, ">>$crypto_num"); - } - &update_numbers(*OUT,"LIBCRYPTO",*crypto_list,$max_crypto, at crypto_symbols); - close OUT; -} - -} elsif ($do_checkexist) { - &check_existing(*ssl_list, @ssl_symbols) - if $do_ssl == 1; - &check_existing(*crypto_list, @crypto_symbols) - if $do_crypto == 1; -} elsif ($do_ctest || $do_ctestall) { - - print <<"EOF"; - -/* Test file to check all DEF file symbols are present by trying - * to link to all of them. This is *not* intended to be run! - */ - -int main() -{ -EOF - &print_test_file(*STDOUT,"LIBSSL",*ssl_list,$do_ctestall, at ssl_symbols) - if $do_ssl == 1; - - &print_test_file(*STDOUT,"LIBCRYPTO",*crypto_list,$do_ctestall, at crypto_symbols) - if $do_crypto == 1; - - print "}\n"; - -} else { - - &print_def_file(*STDOUT,$libname,*ssl_list, at ssl_symbols) - if $do_ssl == 1; - - &print_def_file(*STDOUT,$libname,*crypto_list, at crypto_symbols) - if $do_crypto == 1; - -} - - -sub do_defs -{ - my($name,$files,$symhacksfile)=@_; - my $file; - my @ret; - my %syms; - my %platform; # For anything undefined, we assume "" - my %kind; # For anything undefined, we assume "FUNCTION" - my %algorithm; # For anything undefined, we assume "" - my %variant; - my %variant_cnt; # To be able to allocate "name{n}" if "name" - # is the same name as the original. - my $cpp; - my %unknown_algorithms = (); - my $parens = 0; - - foreach $file (split(/\s+/,$symhacksfile." ".$files)) - { - my $fn = catfile($config{sourcedir},$file); - print STDERR "DEBUG: starting on $fn:\n" if $debug; - print STDERR "TRACE: start reading $fn\n" if $trace; - open(IN,"<$fn") || die "Can't open $fn, $!,"; - my $line = "", my $def= ""; - my %tag = ( - (map { $_ => 0 } @known_platforms), - (map { "OPENSSL_SYS_".$_ => 0 } @known_ossl_platforms), - (map { "OPENSSL_NO_".$_ => 0 } @known_algorithms), - (map { "OPENSSL_USE_".$_ => 0 } @known_algorithms), - (grep /^DEPRECATED_/, @known_algorithms), - NOPROTO => 0, - PERL5 => 0, - _WINDLL => 0, - CONST_STRICT => 0, - TRUE => 1, - ); - my $symhacking = $file eq $symhacksfile; - my @current_platforms = (); - my @current_algorithms = (); - - # params: symbol, alias, platforms, kind - # The reason to put this subroutine in a variable is that - # it will otherwise create it's own, unshared, version of - # %tag and %variant... - my $make_variant = sub - { - my ($s, $a, $p, $k) = @_; - my ($a1, $a2); - - print STDERR "DEBUG: make_variant: Entered with ",$s,", ",$a,", ",(defined($p)?$p:""),", ",(defined($k)?$k:""),"\n" if $debug; - if (defined($p)) - { - $a1 = join(",",$p, - grep(!/^$/, - map { $tag{$_} == 1 ? $_ : "" } - @known_platforms)); - } - else - { - $a1 = join(",", - grep(!/^$/, - map { $tag{$_} == 1 ? $_ : "" } - @known_platforms)); - } - $a2 = join(",", - grep(!/^$/, - map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ : "" } - @known_ossl_platforms)); - print STDERR "DEBUG: make_variant: a1 = $a1; a2 = $a2\n" if $debug; - if ($a1 eq "") { $a1 = $a2; } - elsif ($a1 ne "" && $a2 ne "") { $a1 .= ",".$a2; } - if ($a eq $s) - { - if (!defined($variant_cnt{$s})) - { - $variant_cnt{$s} = 0; - } - $variant_cnt{$s}++; - $a .= "{$variant_cnt{$s}}"; - } - my $toadd = $a.":".$a1.(defined($k)?":".$k:""); - my $togrep = $s.'(\{[0-9]+\})?:'.$a1.(defined($k)?":".$k:""); - if (!grep(/^$togrep$/, - split(/;/, defined($variant{$s})?$variant{$s}:""))) { - if (defined($variant{$s})) { $variant{$s} .= ";"; } - $variant{$s} .= $toadd; - } - print STDERR "DEBUG: make_variant: Exit with variant of ",$s," = ",$variant{$s},"\n" if $debug; - }; - - print STDERR "DEBUG: parsing ----------\n" if $debug; - while() { - s|\R$||; # Better chomp - if($parens > 0) { - #Inside a DEPRECATEDIN - $stored_multiline .= $_; - print STDERR "DEBUG: Continuing multiline DEPRECATEDIN: $stored_multiline\n" if $debug; - $parens = count_parens($stored_multiline); - if ($parens == 0) { - $def .= do_deprecated($stored_multiline, - \@current_platforms, - \@current_algorithms); - } - next; - } - if (/\/\* Error codes for the \w+ functions\. \*\//) - { - undef @tag; - last; - } - if ($line ne '') { - $_ = $line . $_; - $line = ''; - } - - if (/\\$/) { - $line = $`; # keep what was before the backslash - next; - } - - if(/\/\*/) { - if (not /\*\//) { # multi-line comment... - $line = $_; # ... just accumulate - next; - } else { - s/\/\*.*?\*\///gs;# wipe it - } - } - - if ($cpp) { - $cpp++ if /^#\s*if/; - $cpp-- if /^#\s*endif/; - next; - } - if (/^#.*ifdef.*cplusplus/) { - $cpp = 1; - next; - } - - s/{[^{}]*}//gs; # ignore {} blocks - print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne ""; - print STDERR "DEBUG: \$_=\"$_\"\n" if $debug; - if (/^\#\s*if\s+OPENSSL_API_COMPAT\s*(\S)\s*(0x[0-9a-fA-F]{8})L\s*$/) { - my $op = $1; - my $v = hex($2); - if ($op ne '<' && $op ne '>=') { - die "$file unacceptable operator $op: $_\n"; - } - my ($one, $major, $minor) = - ( ($v >> 28) & 0xf, - ($v >> 20) & 0xff, - ($v >> 12) & 0xff ); - my $t = "DEPRECATEDIN_${one}_${major}_${minor}"; - push(@tag,"-"); - push(@tag,$t); - $tag{$t}=($op eq '<' ? 1 : -1); - print STDERR "DEBUG: $file: found tag $t = $tag{$t}\n" if $debug; - } elsif (/^\#\s*ifndef\s+(.*)/) { - push(@tag,"-"); - push(@tag,$1); - $tag{$1}=-1; - print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug; - } elsif (/^\#\s*if\s+!defined\s*\(([^\)]+)\)/) { - push(@tag,"-"); - if (/^\#\s*if\s+(!defined\s*\(([^\)]+)\)(\s+\&\&\s+!defined\s*\(([^\)]+)\))*)$/) { - my $tmp_1 = $1; - my $tmp_; - foreach $tmp_ (split '\&\&',$tmp_1) { - $tmp_ =~ /!defined\s*\(([^\)]+)\)/; - print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug; - push(@tag,$1); - $tag{$1}=-1; - } - } else { - print STDERR "Warning: $file: taking only '!defined($1)' of complicated expression: $_" if $verbose; # because it is O... - print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug; - push(@tag,$1); - $tag{$1}=-1; - } - } elsif (/^\#\s*ifdef\s+(\S*)/) { - push(@tag,"-"); - push(@tag,$1); - $tag{$1}=1; - print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug; - } elsif (/^\#\s*if\s+defined\s*\(([^\)]+)\)/) { - push(@tag,"-"); - if (/^\#\s*if\s+(defined\s*\(([^\)]+)\)(\s+\|\|\s+defined\s*\(([^\)]+)\))*)$/) { - my $tmp_1 = $1; - my $tmp_; - foreach $tmp_ (split '\|\|',$tmp_1) { - $tmp_ =~ /defined\s*\(([^\)]+)\)/; - print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug; - push(@tag,$1); - $tag{$1}=1; - } - } else { - print STDERR "Warning: $file: taking only 'defined($1)' of complicated expression: $_\n" if $verbose; # because it is O... - print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug; - push(@tag,$1); - $tag{$1}=1; - } - } elsif (/^\#\s*error\s+(\w+) is disabled\./) { - my $tag_i = $#tag; - while($tag[$tag_i] ne "-") { - if ($tag[$tag_i] eq "OPENSSL_NO_".$1) { - $tag{$tag[$tag_i]}=2; - print STDERR "DEBUG: $file: changed tag $1 = 2\n" if $debug; - } - $tag_i--; - } - } elsif (/^\#\s*endif/) { - my $tag_i = $#tag; - while($tag_i > 0 && $tag[$tag_i] ne "-") { - my $t=$tag[$tag_i]; - print STDERR "DEBUG: \$t=\"$t\"\n" if $debug; - if ($tag{$t}==2) { - $tag{$t}=-1; - } else { - $tag{$t}=0; - } - print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug; - pop(@tag); - if ($t =~ /^OPENSSL_NO_([A-Z0-9_]+)$/) { - $t=$1; - } elsif($t =~ /^OPENSSL_USE_([A-Z0-9_]+)$/) { - $t=$1; - } else { - $t=""; - } - if ($t ne "" - && !grep(/^$t$/, @known_algorithms)) { - $unknown_algorithms{$t} = 1; - #print STDERR "DEBUG: Added as unknown algorithm: $t\n" if $debug; - } - $tag_i--; - } - pop(@tag); - } elsif (/^\#\s*else/) { - my $tag_i = $#tag; - die "$file unmatched else\n" if $tag_i < 0; - while($tag[$tag_i] ne "-") { - my $t=$tag[$tag_i]; - $tag{$t}= -$tag{$t}; - print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug; - $tag_i--; - } - } elsif (/^\#\s*if\s+1/) { - push(@tag,"-"); - # Dummy tag - push(@tag,"TRUE"); - $tag{"TRUE"}=1; - print STDERR "DEBUG: $file: found 1\n" if $debug; - } elsif (/^\#\s*if\s+0/) { - push(@tag,"-"); - # Dummy tag - push(@tag,"TRUE"); - $tag{"TRUE"}=-1; - print STDERR "DEBUG: $file: found 0\n" if $debug; - } elsif (/^\#\s*if\s+/) { - #Some other unrecognized "if" style - push(@tag,"-"); - print STDERR "Warning: $file: ignoring unrecognized expression: $_\n" if $verbose; # because it is O... - } elsif (/^\#\s*define\s+(\w+)\s+(\w+)/ - && $symhacking && $tag{'TRUE'} != -1) { - # This is for aliasing. When we find an alias, - # we have to invert - &$make_variant($1,$2); - print STDERR "DEBUG: $file: defined $1 = $2\n" if $debug; - } - if (/^\#/) { - @current_platforms = - grep(!/^$/, - map { $tag{$_} == 1 ? $_ : - $tag{$_} == -1 ? "!".$_ : "" } - @known_platforms); - push @current_platforms - , grep(!/^$/, - map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ : - $tag{"OPENSSL_SYS_".$_} == -1 ? "!".$_ : "" } - @known_ossl_platforms); - @current_algorithms = (); - @current_algorithms = - grep(!/^$/, - map { $tag{"OPENSSL_NO_".$_} == -1 ? $_ : "" } - @known_algorithms); - push @current_algorithms - , grep(!/^$/, - map { $tag{"OPENSSL_USE_".$_} == 1 ? $_ : "" } - @known_algorithms); - push @current_algorithms, - grep { /^DEPRECATEDIN_/ && $tag{$_} == 1 } - @known_algorithms; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - next; - } - if ($tag{'TRUE'} != -1) { - if (/^\s*DEFINE_STACK_OF\s*\(\s*(\w*)\s*\)/ - || /^\s*DEFINE_STACK_OF_CONST\s*\(\s*(\w*)\s*\)/) { - next; - } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) { - $def .= "int d2i_$3(void);"; - $def .= "int i2d_$3(void);"; - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int $2_it;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("$2_it","$2_it", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - next; - } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_fname\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) { - $def .= "int d2i_$3(void);"; - $def .= "int i2d_$3(void);"; - $def .= "int $3_free(void);"; - $def .= "int $3_new(void);"; - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int $2_it;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("$2_it","$2_it", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - next; - } elsif (/^\s*DECLARE_ASN1_FUNCTIONS\s*\(\s*(\w*)\s*\)/ || - /^\s*DECLARE_ASN1_FUNCTIONS_const\s*\(\s*(\w*)\s*\)/) { - $def .= "int d2i_$1(void);"; - $def .= "int i2d_$1(void);"; - $def .= "int $1_free(void);"; - $def .= "int $1_new(void);"; - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int $1_it;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("$1_it","$1_it", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - next; - } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS_const\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { - $def .= "int d2i_$2(void);"; - $def .= "int i2d_$2(void);"; - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int $2_it;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("$2_it","$2_it", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - next; - } elsif (/^\s*DECLARE_ASN1_ALLOC_FUNCTIONS\s*\(\s*(\w*)\s*\)/) { - $def .= "int $1_free(void);"; - $def .= "int $1_new(void);"; - next; - } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { - $def .= "int d2i_$2(void);"; - $def .= "int i2d_$2(void);"; - $def .= "int $2_free(void);"; - $def .= "int $2_new(void);"; - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int $2_it;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("$2_it","$2_it", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - next; - } elsif (/^\s*DECLARE_ASN1_ITEM\s*\(\s*(\w*)\s*\)/) { - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int $1_it;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("$1_it","$1_it", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - next; - } elsif (/^\s*DECLARE_ASN1_NDEF_FUNCTION\s*\(\s*(\w*)\s*\)/) { - $def .= "int i2d_$1_NDEF(void);"; - } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) { - next; - } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION\s*\(\s*(\w*)\s*\)/) { - $def .= "int $1_print_ctx(void);"; - next; - } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { - $def .= "int $2_print_ctx(void);"; - next; - } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) { - next; - } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ || - /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ || - /^DECLARE_PEM_rw_const\s*\(\s*(\w*)\s*,/ ) { - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',',"STDIO", at current_algorithms).";"; - $def .= "int PEM_read_$1(void);"; - $def .= "int PEM_write_$1(void);"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Things that are everywhere - $def .= "int PEM_read_bio_$1(void);"; - $def .= "int PEM_write_bio_$1(void);"; - next; - } elsif (/^DECLARE_PEM_write\s*\(\s*(\w*)\s*,/ || - /^DECLARE_PEM_write_const\s*\(\s*(\w*)\s*,/ || - /^DECLARE_PEM_write_cb\s*\(\s*(\w*)\s*,/ ) { - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',',"STDIO", at current_algorithms).";"; - $def .= "int PEM_write_$1(void);"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Things that are everywhere - $def .= "int PEM_write_bio_$1(void);"; - next; - } elsif (/^DECLARE_PEM_read\s*\(\s*(\w*)\s*,/ || - /^DECLARE_PEM_read_cb\s*\(\s*(\w*)\s*,/ ) { - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',',"STDIO", at current_algorithms).";"; - $def .= "int PEM_read_$1(void);"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',',"STDIO", at current_algorithms).";"; - # Things that are everywhere - $def .= "int PEM_read_bio_$1(void);"; - next; - } elsif (/^OPENSSL_DECLARE_GLOBAL\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { - # Variant for platforms that do not - # have to access global variables - # in shared libraries through functions - $def .= - "#INFO:" - .join(',',"!EXPORT_VAR_AS_FUNCTION", at current_platforms).":" - .join(',', at current_algorithms).";"; - $def .= "OPENSSL_EXTERN int _shadow_$2;"; - $def .= - "#INFO:" - .join(',', at current_platforms).":" - .join(',', at current_algorithms).";"; - # Variant for platforms that have to - # access global variables in shared - # libraries through functions - &$make_variant("_shadow_$2","_shadow_$2", - "EXPORT_VAR_AS_FUNCTION", - "FUNCTION"); - } elsif (/^\s*DEPRECATEDIN/) { - $parens = count_parens($_); - if ($parens == 0) { - $def .= do_deprecated($_, - \@current_platforms, - \@current_algorithms); - } else { - $stored_multiline = $_; - print STDERR "DEBUG: Found multiline DEPRECATEDIN starting with: $stored_multiline\n" if $debug; - next; - } - } elsif ($tag{'CONST_STRICT'} != 1) { - if (/\{|\/\*|\([^\)]*$/) { - $line = $_; - } else { - $def .= $_; - } - } - } - } - close(IN); - die "$file: Unmatched tags\n" if $#tag >= 0; - - my $algs; - my $plays; - - print STDERR "DEBUG: postprocessing ----------\n" if $debug; - foreach (split /;/, $def) { - my $s; my $k = "FUNCTION"; my $p; my $a; - s/^[\n\s]*//g; - s/[\n\s]*$//g; - next if(/\#undef/); - next if(/typedef\W/); - next if(/\#define/); - - print STDERR "TRACE: processing $_\n" if $trace && !/^\#INFO:/; - # Reduce argument lists to empty () - # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {} - my $nsubst = 1; # prevent infinite loop, e.g., on int fn() - while($nsubst && /\(.*\)/s) { - $nsubst = s/\([^\(\)]+\)/\{\}/gs; - $nsubst+= s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs; #(*f{}) -> f - } - # pretend as we didn't use curly braces: {} -> () - s/\{\}/\(\)/gs; - - s/STACK_OF\(\)/void/gs; - s/LHASH_OF\(\)/void/gs; - - print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug; - if (/^\#INFO:([^:]*):(.*)$/) { - $plats = $1; - $algs = $2; - print STDERR "DEBUG: found info on platforms ($plats) and algorithms ($algs)\n" if $debug; - next; - } elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0-9]*\])*\s*$/) { - $s = $1; - $k = "VARIABLE"; - print STDERR "DEBUG: found external variable $s\n" if $debug; - } elsif (/TYPEDEF_\w+_OF/s) { - next; - } elsif (/(\w+)\s*\(\).*/s) { # first token prior [first] () is - $s = $1; # a function name! - print STDERR "DEBUG: found function $s\n" if $debug; - } elsif (/\(/ and not (/=/)) { - print STDERR "File $file: cannot parse: $_;\n"; - next; - } else { - next; - } - - $syms{$s} = 1; - $kind{$s} = $k; - - $p = $plats; - $a = $algs; - - $platform{$s} = - &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); - $algorithm{$s} .= ','.$a; - - if (defined($variant{$s})) { - foreach $v (split /;/,$variant{$s}) { - (my $r, my $p, my $k) = split(/:/,$v); - my $ip = join ',',map({ /^!(.*)$/ ? $1 : "!".$_ } split /,/, $p); - $syms{$r} = 1; - if (!defined($k)) { $k = $kind{$s}; } - $kind{$r} = $k."(".$s.")"; - $algorithm{$r} = $algorithm{$s}; - $platform{$r} = &reduce_platforms($platform{$s}.",".$p.",".$p); - $platform{$s} = &reduce_platforms($platform{$s}.','.$ip.','.$ip); - print STDERR "DEBUG: \$variant{\"$s\"} = ",$v,"; \$r = $r; \$p = ",$platform{$r},"; \$a = ",$algorithm{$r},"; \$kind = ",$kind{$r},"\n" if $debug; - } - } - print STDERR "DEBUG: \$s = $s; \$p = ",$platform{$s},"; \$a = ",$algorithm{$s},"; \$kind = ",$kind{$s},"\n" if $debug; - } - } - - # Info we know about - - push @ret, map { $_."\\".&info_string($_,"EXIST", - $platform{$_}, - $kind{$_}, - $algorithm{$_}) } keys %syms; +(my $SO_VARIANT = uc($target{"shlib_variant"} // '')) =~ s/\W/_/g; + +my $apiv = undef; +$apiv = sprintf "%x%02x%02x", split(/\./, $config{api}) + if $config{api}; + +my $libname = $unified_info{sharednames}->{$name} // $name; + +my %OS_data = ( + solaris => { writer => \&writer_linux, + sort => sorter_linux(), + platforms => { UNIX => 1, + EXPORT_VAR_AS_FUNCTION => 0 } }, + linux => 'solaris', # alias + aix => { writer => \&writer_aix, + sort => sorter_unix(), + platforms => { UNIX => 1, + EXPORT_VAR_AS_FUNCTION => 0 } }, + VMS => { writer => \&writer_VMS, + sort => OpenSSL::Ordinals::by_number(), + platforms => { VMS => 1, + EXPORT_VAR_AS_FUNCTION => 0 } }, + vms => 'VMS', # alias + WINDOWS => { writer => \&writer_windows, + sort => OpenSSL::Ordinals::by_name(), + platforms => { WIN32 => 1, + _WIN32 => 1, + EXPORT_VAR_AS_FUNCTION => 1 } }, + windows => 'WINDOWS', # alias + WIN32 => 'WINDOWS', # alias + win32 => 'WIN32', # alias + 32 => 'WIN32', # alias + NT => 'WIN32', # alias + nt => 'WIN32', # alias + mingw => 'WINDOWS', # alias + ); + +do { + die "Unknown operating system family $OS\n" + unless exists $OS_data{$OS}; + $OS = $OS_data{$OS}; +} while(ref($OS) eq ''); + +my %disabled_uc = map { my $x = uc $_; $x =~ s|-|_|g; $x => 1 } keys %disabled; + +my %ordinal_opts = (); +$ordinal_opts{sort} = $OS->{sort} if $OS->{sort}; +$ordinal_opts{filter} = + sub { + my $item = shift; + return + $item->exists() + && platform_filter($item) + && feature_filter($item); + }; +my $ordinals = OpenSSL::Ordinals->new(from => $ordinals_file); + +my $writer = $OS->{writer}; +$writer = \&writer_ctest if $ctest; + +$writer->($ordinals->items(%ordinal_opts)); + +exit 0; + +sub platform_filter { + my $item = shift; + my %platforms = ( $item->platforms() ); + + # True if no platforms are defined + return 1 if scalar keys %platforms == 0; + + # For any item platform tag, return the equivalence with the + # current platform settings if it exists there, return 0 otherwise + # if the item platform tag is true + for (keys %platforms) { + if (exists $OS->{platforms}->{$_}) { + return $platforms{$_} == $OS->{platforms}->{$_}; + } + if ($platforms{$_}) { + return 0; + } + } - if (keys %unknown_algorithms) { - print STDERR "WARNING: mkdef.pl doesn't know the following algorithms:\n"; - print STDERR "\t",join("\n\t",keys %unknown_algorithms),"\n"; - } - return(@ret); + # Found no match? Then it's a go + return 1; } -# Param: string of comma-separated platform-specs. -sub reduce_platforms -{ - my ($platforms) = @_; - my $pl = defined($platforms) ? $platforms : ""; - my %p = map { $_ => 0 } split /,/, $pl; - my $ret; - - print STDERR "DEBUG: Entered reduce_platforms with \"$platforms\"\n" - if $debug; - # We do this, because if there's code like the following, it really - # means the function exists in all cases and should therefore be - # everywhere. By increasing and decreasing, we may attain 0: - # - # ifndef WIN16 - # int foo(); - # else - # int _fat foo(); - # endif - foreach $platform (split /,/, $pl) { - if ($platform =~ /^!(.*)$/) { - $p{$1}--; - } else { - $p{$platform}++; - } - } - foreach $platform (keys %p) { - if ($p{$platform} == 0) { delete $p{$platform}; } - } +sub feature_filter { + my $item = shift; + my @features = ( $item->features() ); - delete $p{""}; + # True if no features are defined + return 1 if scalar @features == 0; - $ret = join(',',sort(map { $p{$_} < 0 ? "!".$_ : $_ } keys %p)); - print STDERR "DEBUG: Exiting reduce_platforms with \"$ret\"\n" - if $debug; - return $ret; -} - -sub info_string -{ - (my $symbol, my $exist, my $platforms, my $kind, my $algorithms) = @_; + my $verdict = ! grep { $disabled_uc{$_} } @features; - my %a = defined($algorithms) ? - map { $_ => 1 } split /,/, $algorithms : (); - my $k = defined($kind) ? $kind : "FUNCTION"; - my $ret; - my $p = &reduce_platforms($platforms); - - delete $a{""}; + if ($apiv) { + foreach (@features) { + next unless /^DEPRECATEDIN_(\d+)_(\d+)_(\d+)$/; + my $symdep = sprintf "%x%02x%02x", $1, $2, $3; + $verdict = 0 if $apiv ge $symdep; + } + } - $ret = $exist; - $ret .= ":".$p; - $ret .= ":".$k; - $ret .= ":".join(',',sort keys %a); - return $ret; + return $verdict; } -sub maybe_add_info -{ - (my $name, *nums, my @symbols) = @_; - my $sym; - my $new_info = 0; - my %syms=(); +sub sorter_unix { + my $by_name = OpenSSL::Ordinals::by_name(); + my %weight = ( + 'FUNCTION' => 1, + 'VARIABLE' => 2 + ); - foreach $sym (@symbols) { - (my $s, my $i) = split /\\/, $sym; - if (defined($nums{$s})) { - $i =~ s/^(.*?:.*?:\w+)(\(\w+\))?/$1/; - (my $n, my $vers, my $dummy) = split /\\/, $nums{$s}; - if (!defined($dummy) || $i ne $dummy) { - $nums{$s} = $n."\\".$vers."\\".$i; - $new_info++; - print STDERR "DEBUG: maybe_add_info for $s: \"$dummy\" => \"$i\"\n" if $debug; - } - } - $syms{$s} = 1; - } + return sub { + my $item1 = shift; + my $item2 = shift; - my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums; - foreach $sym (@s) { - (my $n, my $vers, my $i) = split /\\/, $nums{$sym}; - if (!defined($syms{$sym}) && $i !~ /^NOEXIST:/) { - $new_info++; - print STDERR "DEBUG: maybe_add_info for $sym: -> undefined\n" if $debug; - } - } - if ($new_info) { - print STDERR "$name: $new_info old symbols have updated info\n"; - if (!$do_rewrite) { - print STDERR "You should do a rewrite to fix this.\n"; - } - } else { - } + my $verdict = $weight{$item1->type()} <=> $weight{$item2->type()}; + if ($verdict == 0) { + $verdict = $by_name->($item1, $item2); + } + return $verdict; + }; } -# Param: string of comma-separated keywords, each possibly prefixed with a "!" -sub is_valid -{ - my ($keywords_txt,$platforms) = @_; - my (@keywords) = split /,/,$keywords_txt; - my ($falsesum, $truesum) = (0, 1); - - # Param: one keyword - sub recognise - { - my ($keyword,$platforms) = @_; - - if ($platforms) { - # platforms - if ($keyword eq "UNIX" && $UNIX) { return 1; } - if ($keyword eq "VMS" && $VMS) { return 1; } - if ($keyword eq "WIN32" && $W32) { return 1; } - if ($keyword eq "_WIN32" && $W32) { return 1; } - if ($keyword eq "WINNT" && $NT) { return 1; } - # Special platforms: - # EXPORT_VAR_AS_FUNCTION means that global variables - # will be represented as functions. - if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && $W32) { - return 1; - } - if ($keyword eq "ZLIB" && $zlib) { return 1; } - return 0; - } else { - # algorithms - if ($disabled_algorithms{$keyword}) { return 0;} +sub sorter_linux { + my $by_version = OpenSSL::Ordinals::by_version(); + my $by_unix = sorter_unix(); - # Nothing recognise as true - return 1; - } - } + return sub { + my $item1 = shift; + my $item2 = shift; - foreach $k (@keywords) { - if ($k =~ /^!(.*)$/) { - $falsesum += &recognise($1,$platforms); - } else { - $truesum *= &recognise($k,$platforms); - } - } - print STDERR "DEBUG: [",$#keywords,",",$#keywords < 0,"] is_valid($keywords_txt) => (\!$falsesum) && $truesum = ",(!$falsesum) && $truesum,"\n" if $debug; - return (!$falsesum) && $truesum; + my $verdict = $by_version->($item1, $item2); + if ($verdict == 0) { + $verdict = $by_unix->($item1, $item2); + } + return $verdict; + }; } -sub print_test_file -{ - (*OUT,my $name,*nums,my $testall,my @symbols)=@_; - my $n = 1; my @e; my @r; - my $sym; my $prev = ""; my $prefSSLeay; - - (@e)=grep(/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/, at symbols); - (@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:.*/ && !/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/, at symbols); - @symbols=((sort @e),(sort @r)); - - foreach $sym (@symbols) { - (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; - my $v = 0; - $v = 1 if $i=~ /^.*?:.*?:VARIABLE/; - my $p = ($i =~ /^[^:]*:([^:]*):/,$1); - my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1); - if (!defined($nums{$s})) { - print STDERR "Warning: $s does not have a number assigned\n" - if(!$do_update); - } elsif (is_valid($p,1) && is_valid($a,0)) { - my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1); - if ($prev eq $s2) { - print OUT "\t/* The following has already appeared previously */\n"; - print STDERR "Warning: Symbol '",$s2,"' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1),", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n"; - } - $prev = $s2; # To warn about duplicates... +sub writer_linux { + my $thisversion = ''; + my $prevversion = ''; + + for (@_) { + if ($thisversion && $_->version() ne $thisversion) { + print <<"_____"; +}$prevversion; +_____ + $prevversion = " OPENSSL${SO_VARIANT}_$thisversion"; + $thisversion = ''; # Trigger start of next section + } + unless ($thisversion) { + $thisversion = $_->version(); + print <<"_____"; +OPENSSL${SO_VARIANT}_$thisversion { + global: +_____ + } + print ' ', $_->name(), ";\n"; + } - (my $nn, my $vers, my $ni) = split /\\/, $nums{$s2}; - if ($v) { - print OUT "\textern int $s2; /* type unknown */ /* $nn $ni */\n"; - } else { - print OUT "\textern int $s2(); /* type unknown */ /* $nn $ni */\n"; - } - } - } + print <<"_____"; + local: *; +}$prevversion; +_____ } -sub get_version -{ - return $config{version}; +sub writer_aix { + for (@_) { + print $_->name(),"\n"; + } } -sub print_def_file -{ - (*OUT,my $name,*nums,my @symbols)=@_; - my $n = 1; my @e; my @r; my @v; my $prev=""; - my $liboptions=""; - my $libname = $name; - my $http_vendor = 'www.openssl.org/'; - my $version = get_version(); - my $what = "OpenSSL: implementation of Secure Socket Layer"; - my $description = "$what $version, $name - http://$http_vendor"; - my $prevsymversion = "", $prevprevsymversion = ""; - # For VMS - my $prevnum = 0; - my $symvtextcount = 0; - - if ($W32) - { - print OUT <<"EOF"; +sub writer_windows { + print <<"_____"; ; -; Definition file for the DLL version of the $name library from OpenSSL +; Definition file for the DLL version of the $libname library from OpenSSL ; -LIBRARY $libname $liboptions +LIBRARY $libname -EOF - - print "EXPORTS\n"; - } - elsif ($VMS) - { - print OUT <<"EOF"; -IDENTIFICATION=$version -CASE_SENSITIVE=YES -SYMBOL_VECTOR=(- -EOF - $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-" - } +EXPORTS +_____ + for (@_) { + print " ",$_->name(),"\n"; + } +} - (@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:FUNCTION/, at symbols); - (@v)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:VARIABLE/, at symbols); - if ($VMS) { - # VMS needs to have the symbols on slot number order - @symbols=(map { $_->[1] } - sort { $a->[0] <=> $b->[0] } - map { (my $s, my $i) = $_ =~ /^(.*?)\\(.*)$/; - die "Error: $s doesn't have a number assigned\n" - if !defined($nums{$s}); - (my $n, my @rest) = split /\\/, $nums{$s}; - [ $n, $_ ] } (@e, @r, @v)); +sub writer_VMS { + my @slot_collection = (); + my $write_vector_slot_pair = + sub { + my $slot1 = shift; + my $slot2 = shift; + my $slotpair_text = " $slot1, -\n $slot2, -\n" + }; + + my $last_num = 0; + foreach (@_) { + while (++$last_num < $_->number()) { + push @slot_collection, [ 'SPARE', 'SPARE' ]; + } + my $type = { + FUNCTION => 'PROCEDURE', + VARIABLE => 'DATA' + } -> {$_->type()}; + my $s = $_->name(); + my $s_uc = uc($s); + if ($s_uc eq $s) { + push @slot_collection, [ "$s=$type", 'SPARE' ]; } else { - @symbols=((sort @e),(sort @r), (sort @v)); + push @slot_collection, [ "$s_uc/$s=$type", "$s=$type" ]; } + } - my ($baseversion, $currversion) = get_openssl_version(); - my $thisversion; - do { - if (!defined($thisversion)) { - $thisversion = $baseversion; - } else { - $thisversion = get_next_version($thisversion); - } - foreach $sym (@symbols) { - (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; - my $v = 0; - $v = 1 if $i =~ /^.*?:.*?:VARIABLE/; - if (!defined($nums{$s})) { - die "Error: $s does not have a number assigned\n" - if(!$do_update); - } else { - (my $n, my $symversion, my $dummy) = split /\\/, $nums{$s}; - my %pf = (); - my $p = ($i =~ /^[^:]*:([^:]*):/,$1); - my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1); - if (is_valid($p,1) && is_valid($a,0)) { - my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1); - if ($prev eq $s2) { - print STDERR "Warning: Symbol '",$s2, - "' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1), - ", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n"; - } - $prev = $s2; # To warn about duplicates... - if($linux) { - next if $symversion ne $thisversion; - if ($symversion ne $prevsymversion) { - if ($prevsymversion ne "") { - if ($prevprevsymversion ne "") { - print OUT "} OPENSSL${SO_VARIANT}_" - ."$prevprevsymversion;\n\n"; - } else { - print OUT "};\n\n"; - } - } - print OUT "OPENSSL${SO_VARIANT}_$symversion {\n global:\n"; - $prevprevsymversion = $prevsymversion; - $prevsymversion = $symversion; - } - print OUT " $s2;\n"; - } elsif ($aix) { - print OUT "$s2\n"; - } elsif ($VMS) { - while(++$prevnum < $n) { - my $symline=" ,SPARE -\n ,SPARE -\n"; - if ($symvtextcount + length($symline) - 2 > 1024) { - print OUT ")\nSYMBOL_VECTOR=(-\n"; - $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-" - } - if ($symvtextcount == 16) { - # Take away first comma - $symline =~ s/,//; - } - print OUT $symline; - $symvtextcount += length($symline) - 2; - } - (my $s_uc = $s) =~ tr/a-z/A-Z/; - my $symtype= - $v ? "DATA" : "PROCEDURE"; - my $symline= - ($s_uc ne $s - ? " ,$s_uc/$s=$symtype -\n ,$s=$symtype -\n" - : " ,$s=$symtype -\n ,SPARE -\n"); - if ($symvtextcount + length($symline) - 2 > 1024) { - print OUT ")\nSYMBOL_VECTOR=(-\n"; - $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-" - } - if ($symvtextcount == 16) { - # Take away first comma - $symline =~ s/,//; - } - print OUT $symline; - $symvtextcount += length($symline) - 2; - } elsif($v) { - printf OUT " %s%-39s DATA\n", - ($W32)?"":"_",$s2; - } else { - printf OUT " %s%s\n", - ($W32)?"":"_",$s2; - } - } - } - } - } while ($linux && $thisversion ne $currversion); - if ($linux) { - if ($prevprevsymversion ne "") { - print OUT " local: *;\n} OPENSSL${SO_VARIANT}_$prevprevsymversion;\n\n"; - } else { - print OUT " local: *;\n};\n\n"; - } - } elsif ($VMS) { - print OUT ")\n"; - (my $libvmaj, my $libvmin, my $libvedit) = - $currversion =~ /^(\d+)_(\d+)_(\d+)[a-z]{0,2}$/; - # The reason to multiply the edit number with 100 is to make space - # for the possibility that we want to encode the patch letters - print OUT "GSMATCH=LEQUAL,",($libvmaj * 100 + $libvmin),",",($libvedit * 100),"\n"; + print <<"_____"; +IDENTIFICATION=$config{version} +CASE_SENSITIVE=YES +SYMBOL_VECTOR=(- +_____ + # It's uncertain how long aggregated lines the linker can handle, + # but it has been observed that at least 1024 characters is ok. + # Either way, this means that we need to keep track of the total + # line length of each "SYMBOL_VECTOR" statement. Fortunately, we + # can have more than one of those... + my $symvtextcount = 16; # The length of "SYMBOL_VECTOR=(" + while (@slot_collection) { + my $pair = shift @slot_collection; + my $pairtextlength = + 2 # one space indentation and comma + + length($pair->[0]) + + 1 # postdent + + 3 # two space indentation and comma + + length($pair->[1]) + + 1 # postdent + ; + my $firstcomma = ','; + + if ($symvtextcount + $pairtextlength > 1024) { + print <<"_____"; +) +SYMBOL_VECTOR=(- +_____ + $symvtextcount = 16; # The length of "SYMBOL_VECTOR=(" } - printf OUT "\n"; -} - -sub load_numbers -{ - my($name)=@_; - my(@a,%ret); - my $prevversion; - - $max_num = 0; - $num_noinfo = 0; - $prev = ""; - $prev_cnt = 0; - - my ($baseversion, $currversion) = get_openssl_version(); - - open(IN,"<$name") || die "unable to open $name:$!\n"; - while () { - s|\R$||; # Better chomp - s/#.*$//; - next if /^\s*$/; - @a=split; - if (defined $ret{$a[0]}) { - # This is actually perfectly OK - #print STDERR "Warning: Symbol '",$a[0],"' redefined. old=",$ret{$a[0]},", new=",$a[1],"\n"; - } - if ($max_num > $a[1]) { - print STDERR "Warning: Number decreased from ",$max_num," to ",$a[1],"\n"; - } - elsif ($max_num == $a[1]) { - # This is actually perfectly OK - #print STDERR "Warning: Symbol ",$a[0]," has same number as previous ",$prev,": ",$a[1],"\n"; - if ($a[0] eq $prev) { - $prev_cnt++; - $a[0] .= "{$prev_cnt}"; - } - } - else { - $prev_cnt = 0; - } - if ($#a < 2) { - # Existence will be proven later, in do_defs - $ret{$a[0]}=$a[1]; - $num_noinfo++; - } else { - #Sanity check the version number - if (defined $prevversion) { - check_version_lte($prevversion, $a[2]); - } - check_version_lte($a[2], $currversion); - $prevversion = $a[2]; - $ret{$a[0]}=$a[1]."\\".$a[2]."\\".$a[3]; # \\ is a special marker - } - $max_num = $a[1] if $a[1] > $max_num; - $prev=$a[0]; - } - if ($num_noinfo) { - print STDERR "Warning: $num_noinfo symbols were without info." if $verbose || !$do_rewrite; - if ($do_rewrite) { - printf STDERR " The rewrite will fix this.\n" if $verbose; - } else { - printf STDERR " You should do a rewrite to fix this.\n"; - } - } - close(IN); - return(%ret); -} - -sub parse_number -{ - (my $str, my $what) = @_; - (my $n, my $v, my $i) = split(/\\/,$str); - if ($what eq "n") { - return $n; - } else { - return $i; - } -} - -sub rewrite_numbers -{ - (*OUT,$name,*nums, at symbols)=@_; - my $thing; - - my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/, at symbols); - my $r; my %r; my %rsyms; - foreach $r (@r) { - (my $s, my $i) = split /\\/, $r; - my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/; - $i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/; - $r{$a} = $s."\\".$i; - $rsyms{$s} = 1; - } - - my %syms = (); - foreach $_ (@symbols) { - (my $n, my $i) = split /\\/; - $syms{$n} = 1; - } - - my @s=sort { - &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") - || $a cmp $b - } keys %nums; - foreach $sym (@s) { - (my $n, my $vers, my $i) = split /\\/, $nums{$sym}; - next if defined($i) && $i =~ /^.*?:.*?:\w+\(\w+\)/; - next if defined($rsyms{$sym}); - print STDERR "DEBUG: rewrite_numbers for sym = ",$sym,": i = ",$i,", n = ",$n,", rsym{sym} = ",$rsyms{$sym},"syms{sym} = ",$syms{$sym},"\n" if $debug; - $i="NOEXIST::FUNCTION:" - if !defined($i) || $i eq "" || !defined($syms{$sym}); - my $s2 = $sym; - $s2 =~ s/\{[0-9]+\}$//; - printf OUT "%s%-39s %d\t%s\t%s\n","",$s2,$n,$vers,$i; - if (exists $r{$sym}) { - (my $s, $i) = split /\\/,$r{$sym}; - my $s2 = $s; - $s2 =~ s/\{[0-9]+\}$//; - printf OUT "%s%-39s %d\t%s\t%s\n","",$s2,$n,$vers,$i; - } - } -} - -sub update_numbers -{ - (*OUT,$name,*nums,my $start_num, my @symbols)=@_; - my $new_syms = 0; - my $basevers; - my $vers; - - ($basevers, $vers) = get_openssl_version(); - - my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/, at symbols); - my $r; my %r; my %rsyms; - foreach $r (@r) { - (my $s, my $i) = split /\\/, $r; - my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/; - $i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/; - $r{$a} = $s."\\".$i; - $rsyms{$s} = 1; - } - - foreach $sym (@symbols) { - (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; - next if $i =~ /^.*?:.*?:\w+\(\w+\)/; - next if defined($rsyms{$sym}); - die "ERROR: Symbol $sym had no info attached to it." - if $i eq ""; - if (!exists $nums{$s}) { - $new_syms++; - my $s2 = $s; - $s2 =~ s/\{[0-9]+\}$//; - printf OUT "%s%-39s %d\t%s\t%s\n","",$s2, ++$start_num,$vers,$i; - if (exists $r{$s}) { - ($s, $i) = split /\\/,$r{$s}; - $s =~ s/\{[0-9]+\}$//; - printf OUT "%s%-39s %d\t%s\t%s\n","",$s, $start_num,$vers,$i; - } - } - } - if($new_syms) { - print STDERR "$name: Added $new_syms new symbols\n"; - } else { - print STDERR "$name: No new symbols added\n"; - } -} - -sub check_existing -{ - (*nums, my @symbols)=@_; - my %existing; my @remaining; - @remaining=(); - foreach $sym (@symbols) { - (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; - $existing{$s}=1; - } - foreach $sym (keys %nums) { - if (!exists $existing{$sym}) { - push @remaining, $sym; - } - } - if(@remaining) { - print STDERR "The following symbols do not seem to exist:\n"; - foreach $sym (@remaining) { - print STDERR "\t",$sym,"\n"; - } - } -} - -sub count_parens -{ - my $line = shift(@_); - - my $open = $line =~ tr/\(//; - my $close = $line =~ tr/\)//; - - return $open - $close; -} - -#Parse opensslv.h to get the current version number. Also work out the base -#version, i.e. the lowest version number that is binary compatible with this -#version -sub get_openssl_version() -{ - my $fn = catfile($config{sourcedir},"include","openssl","opensslv.h"); - open (IN, "$fn") || die "Can't open opensslv.h"; - - while() { - if (/OPENSSL_VERSION_TEXT\s+"OpenSSL (\d\.\d\.)(\d[a-z]*)(-| )/) { - my $suffix = $2; - (my $baseversion = $1) =~ s/\./_/g; - close IN; - return ($baseversion."0", $baseversion.$suffix); - } - } - die "Can't find OpenSSL version number\n"; -} - -#Given an OpenSSL version number, calculate the next version number. If the -#version number gets to a.b.czz then we go to a.b.(c+1) -sub get_next_version() -{ - my $thisversion = shift; - - my ($base, $letter) = $thisversion =~ /^(\d_\d_\d)([a-z]{0,2})$/; - - if ($letter eq "zz") { - my $lastnum = substr($base, -1); - return substr($base, 0, length($base)-1).(++$lastnum); - } - return $base.get_next_letter($letter); + if ($symvtextcount == 16) { + $firstcomma = ''; + } + print <<"_____"; + $firstcomma$pair->[0] - + ,$pair->[1] - +_____ + $symvtextcount += $pairtextlength; + } + print <<"_____"; +) +_____ + + my ($libvmajor, $libvminor, $libvedit, $libvpatch) = + $config{version} =~ /^(\d+)_(\d+)_(\d+)([a-z]{0,2})-.*$/; + my $libvpatchnum = 0; + for (split '', $libvpatch // '') { + $libvpatchnum += ord(lc($_)) - 96; + # To compensate because the letter 'z' is always followed by another, + # i.e. doesn't add any value on its own + $libvpatchnum-- if lc($_) eq 'z'; + } + my $match1 = $libvmajor * 100 + $libvminor; + my $match2 = $libvedit * 100 + $libvpatchnum; + print <<"_____"; +GSMATCH=LEQUAL,$match1,$match2 +_____ } -#Given the letters off the end of an OpenSSL version string, calculate what -#the letters for the next release would be. -sub get_next_letter() -{ - my $thisletter = shift; - my $baseletter = ""; - my $endletter; - - if ($thisletter eq "") { - return "a"; - } - if ((length $thisletter) > 1) { - ($baseletter, $endletter) = $thisletter =~ /([a-z]+)([a-z])/; - } else { - $endletter = $thisletter; - } - - if ($endletter eq "z") { - return $thisletter."a"; - } else { - return $baseletter.(++$endletter); - } -} +sub writer_ctest { + print <<'_____'; +/* + * Test file to check all DEF file symbols are present by trying + * to link to all of them. This is *not* intended to be run! + */ -#Check if a version is less than or equal to the current version. Its a fatal -#error if not. They must also only differ in letters, or the last number (i.e. -#the first two numbers must be the same) -sub check_version_lte() +int main() { - my ($testversion, $currversion) = @_; - my $lentv; - my $lencv; - my $cvbase; +_____ - my ($cvnums) = $currversion =~ /^(\d_\d_\d)[a-z]*$/; - my ($tvnums) = $testversion =~ /^(\d_\d_\d)[a-z]*$/; - - #Die if we can't parse the version numbers or they don't look sane - die "Invalid version number: $testversion and $currversion\n" - if (!defined($cvnums) || !defined($tvnums) - || length($cvnums) != 5 - || length($tvnums) != 5); - - #If the base versions (without letters) don't match check they only differ - #in the last number - if ($cvnums ne $tvnums) { - die "Invalid version number: $testversion " - ."for current version $currversion\n" - if (substr($cvnums, 0, 4) ne substr($tvnums, 0, 4)); - return; - } - #If we get here then the base version (i.e. the numbers) are the same - they - #only differ in the letters - - $lentv = length $testversion; - $lencv = length $currversion; - - #If the testversion has more letters than the current version then it must - #be later (or malformed) - if ($lentv > $lencv) { - die "Invalid version number: $testversion " - ."is greater than $currversion\n"; - } - - #Get the last letter from the current version - my ($cvletter) = $currversion =~ /([a-z])$/; - if (defined $cvletter) { - ($cvbase) = $currversion =~ /(\d_\d_\d[a-z]*)$cvletter$/; - } else { - $cvbase = $currversion; - } - die "Unable to parse version number $currversion" if (!defined $cvbase); - my $tvbase; - my ($tvletter) = $testversion =~ /([a-z])$/; - if (defined $tvletter) { - ($tvbase) = $testversion =~ /(\d_\d_\d[a-z]*)$tvletter$/; - } else { - $tvbase = $testversion; - } - die "Unable to parse version number $testversion" if (!defined $tvbase); - - if ($lencv > $lentv) { - #If current version has more letters than testversion then testversion - #minus the final letter must be a substring of the current version - die "Invalid version number $testversion " - ."is greater than $currversion or is invalid\n" - if (index($cvbase, $tvbase) != 0); - } else { - #If both versions have the same number of letters then they must be - #equal up to the last letter, and the last letter in testversion must - #be less than or equal to the last letter in current version. - die "Invalid version number $testversion " - ."is greater than $currversion\n" - if (($cvbase ne $tvbase) && ($tvletter gt $cvletter)); - } + for (@_) { + if ($_->type() eq 'VARIABLE') { + print "\textern int ", $_->name(), '; /* type unknown */ /* ', $_->number(), ' ', $_->version(), " */\n"; + } else { + print "\textern int ", $_->name(), '(); /* type unknown */ /* ', $_->number(), ' ', $_->version(), " */\n"; + } + } + print <<'_____'; } - -sub do_deprecated() -{ - my ($decl, $plats, $algs) = @_; - $decl =~ /^\s*(DEPRECATEDIN_\d+_\d+_\d+)\s*\((.*)\)\s*$/ - or die "Bad DEPRECATEDIN: $decl\n"; - my $info1 .= "#INFO:"; - $info1 .= join(',', @{$plats}) . ":"; - my $info2 = $info1; - $info1 .= join(',',@{$algs}, $1) . ";"; - $info2 .= join(',',@{$algs}) . ";"; - return $info1 . $2 . ";" . $info2; +_____ } diff --git a/util/mknum.pl b/util/mknum.pl new file mode 100644 index 0000000..a5f96b7 --- /dev/null +++ b/util/mknum.pl @@ -0,0 +1,125 @@ + +#! /usr/bin/env perl +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use Getopt::Long; +use FindBin; +use lib "$FindBin::Bin/perl"; + +use OpenSSL::Ordinals; +use OpenSSL::ParseC; + +my $ordinals_file = undef; # the ordinals file to use +my $symhacks_file = undef; # a symbol hacking file (optional) +my $version = undef; # the version to use for added symbols +my $checkexist = 0; # (unsure yet) +my $warnings = 1; +my $verbose = 0; +my $debug = 0; + +GetOptions('ordinals=s' => \$ordinals_file, + 'symhacks=s' => \$symhacks_file, + 'version=s' => \$version, + 'exist' => \$checkexist, + 'warnings!' => \$warnings, + 'verbose' => \$verbose, + 'debug' => \$debug) + or die "Error in command line arguments\n"; + +die "Please supply ordinals file\n" + unless $ordinals_file; + +my $ordinals = OpenSSL::Ordinals->new(from => $ordinals_file, + warnings => $warnings, + verbose => $verbose, + debug => $debug); +$ordinals->set_version($version); + +my %orig_names = (); +%orig_names = map { $_->name() => 1 } + $ordinals->items(comparator => sub { $_[0] cmp $_[1] }, + filter => sub { $_->exists() }) + if $checkexist; + +# Invalidate all entries, they get revalidated when we re-check below +$ordinals->invalidate(); + +foreach my $f (($symhacks_file // (), @ARGV)) { + print STDERR $f," ","-" x (69 - length($f)),"\n" if $verbose; + open IN, $f || die "Couldn't open $f: $!\n"; + foreach (parse(, { filename => $f, + warnings => $warnings, + verbose => $verbose, + debug => $debug })) { + $_->{value} = $_->{value}||""; + next if grep { $_ eq 'CONST_STRICT' } @{$_->{conds}}; + printf STDERR "%s> %s%s : %s\n", + $_->{type}, + $_->{name}, + ($_->{type} eq 'M' && defined $symhacks_file && $f eq $symhacks_file + ? ' = ' . $_->{value} + : ''), + join(', ', @{$_->{conds}}) + if $verbose; + if ($_->{type} eq 'M' + && defined $symhacks_file + && $f eq $symhacks_file + && $_->{value} =~ /^\w(?:\w|\d)*/) { + $ordinals->add_alias($_->{value}, $_->{name}, @{$_->{conds}}); + } else { + next if $_->{returntype} =~ /\b(?:ossl_)inline/; + my $type = { + F => 'FUNCTION', + V => 'VARIABLE', + } -> {$_->{type}}; + if ($type) { + $ordinals->add($_->{name}, $type, @{$_->{conds}}); + } + } + } + close IN; +} + +if ($checkexist) { + my %new_names = map { $_->name() => 1 } + $ordinals->items(comparator => sub { $_[0] cmp $_[1] }, + filter => sub { $_->exists() }); + # Eliminate common names + foreach (keys %orig_names) { + next unless exists $new_names{$_}; + delete $orig_names{$_}; + delete $new_names{$_}; + } + if (%orig_names) { + print "The following symbols do not seem to exist in code:\n"; + foreach (sort keys %orig_names) { + print "\t$_\n"; + } + } + if (%new_names) { + print "The following existing symbols are not in ordinals file:\n"; + foreach (sort keys %new_names) { + print "\t$_\n"; + } + } +} else { + $ordinals->rewrite(); + my %stats = $ordinals->stats(); + print STDERR + "${ordinals_file}: $stats{modified} old symbols have updated info\n" + if $stats{modified}; + if ($stats{new}) { + print STDERR "${ordinals_file}: Added $stats{new} new symbols\n"; + } else { + print STDERR "${ordinals_file}: No new symbols added\n"; + } + +} diff --git a/util/perl/OpenSSL/Ordinals.pm b/util/perl/OpenSSL/Ordinals.pm new file mode 100644 index 0000000..07bdf81 --- /dev/null +++ b/util/perl/OpenSSL/Ordinals.pm @@ -0,0 +1,946 @@ +#! /usr/bin/env perl +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package OpenSSL::Ordinals; + +use strict; +use warnings; +use Carp; +use Scalar::Util qw(blessed); + +use constant { + # "magic" filters, see the filters at the end of the file + F_NAME => 1, + F_NUMBER => 2, +}; + +=head1 NAME + +OpenSSL::Ordinals - a private module to read and walk through ordinals + +=head1 SYNOPSIS + + use OpenSSL::Ordinals; + + my $ordinals = OpenSSL::Ordinals->new(from => "foo.num"); + # or alternatively + my $ordinals = OpenSSL::Ordinals->new(); + $ordinals->load("foo.num"); + + foreach ($ordinals->items(comparator => by_name()) { + print $_->name(), "\n"; + } + +=head1 DESCRIPTION + +This is a OpenSSL private module to load an ordinals (F<.num>) file and +write out the data you want, sorted and filtered according to your rules. + +An ordinals file is a file that enumerates all the symbols that a shared +library or loadable module must export. Each of them have a unique +assigned number as well as other attributes to indicate if they only exist +on a subset of the supported platforms, or if they are specific to certain +features. + +The unique numbers each symbol gets assigned needs to be maintained for a +shared library or module to stay compatible with previous versions on +platforms that maintain a transfer vector indexed by position rather than +by name. They also help keep information on certain symbols that are +aliases for others for certain platforms, or that have different forms +on different platforms. + +=head2 Main methods + +=over 4 + +=cut + +=item B I<%options> + +Creates a new instance of the C class. It takes options +in keyed pair form, i.e. a series of C value> pairs. Available +options are: + +=over 4 + +=item B FILENAME> + +Not only create a new instance, but immediately load it with data from the +ordinals file FILENAME. + +=back + +=cut + +sub new { + my $class = shift; + my %opts = @_; + + my $instance = { + filename => undef, # File name registered when loading + loaded_maxnum => 0, # Highest allocated item number when loading + loaded_contents => [], # Loaded items, if loading there was + maxnum => 0, # Current highest allocated item number + contents => [], # Items, indexed by number + name2num => {}, # Name to number dictionary + aliases => {}, # Aliases cache. + stats => {}, # Statistics, see 'sub validate' + currversion => $opts{version} // '*', # '*' is for "we don't care" + debug => $opts{debug}, + }; + bless $instance, $class; + + $instance->load($opts{from}) if defined($opts{from}); + + return $instance; +} + +=item B<$ordinals-Eload FILENAME> + +Loads the data from FILENAME into the instance. Any previously loaded data +is dropped. + +Two internal databases are created. One database is simply a copy of the file +contents and is treated as read-only. The other database is an exact copy of +the first, but is treated as a work database, i.e. it can be modified and added +to. + +=cut + +sub load { + my $self = shift; + my $filename = shift; + + croak "Undefined filename" unless defined($filename); + + my @tmp_contents = (); + my %tmp_name2num = (); + my $max_num = 0; + open F, '<', $filename or croak "Unable to open $filename"; + while () { + s|\R$||; # Better chomp + s|#.*||; + next if /^\s*$/; + + my $item = OpenSSL::Ordinals::Item->new(from => $_); + + my $num = $item->number(); + croak "Disordered ordinals, $num < $max_num" + if $num < $max_num; + $max_num = $num; + + push @{$tmp_contents[$item->number()]}, $item; + $tmp_name2num{$item->name()} = $item->number(); + } + close F; + + $self->{contents} = [ @tmp_contents ]; + $self->{name2num} = { %tmp_name2num }; + $self->{maxnum} = $max_num; + $self->{filename} = $filename; + + # Make a deep copy, allowing {contents} to be an independent work array + foreach my $i (1..$max_num) { + if ($tmp_contents[$i]) { + $self->{loaded_contents}->[$i] = + [ map { OpenSSL::Ordinals::Item->new($_) } + @{$tmp_contents[$i]} ]; + } + } + $self->{loaded_maxnum} = $max_num; + return 1; +} + +=item B<$ordinals-Erewrite> + +If an ordinals file has been loaded, it gets rewritten with the data from +the current work database. + +=cut + +sub rewrite { + my $self = shift; + + $self->write($self->{filename}); +} + +=item B<$ordinals-Ewrite FILENAME> + +Writes the current work database data to the ordinals file FILENAME. +This also validates the data, see B<$ordinals-Evalidate> below. + +=cut + +sub write { + my $self = shift; + my $filename = shift; + + croak "Undefined filename" unless defined($filename); + + $self->validate(); + + open F, '>', $filename or croak "Unable to open $filename"; + foreach ($self->items(by => by_number())) { + print F $_->to_string(),"\n"; + } + close F; + $self->{filename} = $filename; + $self->{loaded_maxnum} = $self->{maxnum}; + return 1; +} + +=item B<$ordinals-Eitems> I<%options> + +Returns a list of items according to a set of criteria. The criteria is +given in form keyed pair form, i.e. a series of C value> pairs. +Available options are: + +=over 4 + +=item B SORTFUNCTION> + +SORTFUNCTION is a reference to a function that takes two arguments, which +correspond to the classic C<$a> and C<$b> that are available in a C +block. + +=item B FILTERFUNCTION> + +FILTERFUNTION is a reference to a function that takes one argument, which +is every OpenSSL::Ordinals::Item element available. + +=back + +=cut + +sub items { + my $self = shift; + my %opts = @_; + + my $comparator = $opts{sort}; + my $filter = $opts{filter} // sub { 1; }; + + my @l = undef; + if (ref($filter) eq 'ARRAY') { + # run a "magic" filter + if ($filter->[0] == F_NUMBER) { + my $index = $filter->[1]; + @l = $index ? @{$self->{contents}->[$index] // []} : (); + } elsif ($filter->[0] == F_NAME) { + my $index = $self->{name2num}->{$filter->[1]}; + @l = $index ? @{$self->{contents}->[$index] // []} : (); + } else { + croak __PACKAGE__."->items called with invalid filter"; + } + } elsif (ref($filter) eq 'CODE') { + @l = grep { $filter->($_) } + map { @{$_ // []} } + @{$self->{contents}}; + } else { + croak __PACKAGE__."->items called with invalid filter"; + } + + return sort { $comparator->($a, $b); } @l + if (defined $comparator); + return @l; +} + +# Put an array of items back into the object after having checked consistency +# If there are exactly two items: +# - They MUST have the same number +# - For platforms, both MUST hold the same ones, but with opposite values +# - For features, both MUST hold the same ones. +# If there's just one item, just put it in the slot of its number +# In all other cases, something is wrong +sub _putback { + my $self = shift; + my @items = @_; + + if (scalar @items < 1 || scalar @items > 2) { + croak "Wrong number of items: ", scalar @items, " : ", + join(", ", map { $_->name() } @items), "\n"; + } + if (scalar @items == 2) { + # Collect some data + my %numbers = (); + my %versions = (); + my %features = (); + foreach (@items) { + $numbers{$_->number()} = 1; + $versions{$_->version()} = 1; + foreach ($_->features()) { + $features{$_}++; + } + } + + # Check that all items we're trying to put back have the same number + croak "Items don't have the same numeral: ", + join(", ", map { $_->name()." => ".$_->number() } @items), "\n" + if (scalar keys %numbers > 1); + croak "Items don't have the same version: ", + join(", ", map { $_->name()." => ".$_->version() } @items), "\n" + if (scalar keys %versions > 1); + + # Check that both items run with the same features + foreach (@items) { + } + foreach (keys %features) { + delete $features{$_} if $features{$_} == 2; + } + croak "Features not in common between ", + $items[0]->name(), " and ", $items[1]->name(), ":", + join(", ", sort keys %features), "\n" + if %features; + + # Check that all platforms exist in both items, and have opposite values + my @platforms = ( { $items[0]->platforms() }, + { $items[1]->platforms() } ); + foreach my $platform (keys %{$platforms[0]}) { + if (exists $platforms[1]->{$platform}) { + if ($platforms[0]->{$platform} != !$platforms[1]->{$platform}) { + croak "Platforms aren't opposite: ", + join(", ", + map { my %tmp_h = $_->platforms(); + $_->name().":".$platform + ." => " + .$tmp_h{$platform} } @items), + "\n"; + } + + # We're done with these + delete $platforms[0]->{$platform}; + delete $platforms[1]->{$platform}; + } + } + # If there are any remaining platforms, something's wrong + if (%{$platforms[0]} || %{$platforms[0]}) { + croak "There are platforms not in common between ", + $items[0]->name(), " and ", $items[1]->name(), "\n"; + } + } + $self->{contents}->[$items[0]->number()] = [ @items ]; +} + +sub _parse_platforms { + my $self = shift; + my @defs = @_; + + my %platforms = (); + foreach (@defs) { + m{^(!)?}; + my $op = !(defined $1 && $1 eq '!'); + my $def = $'; + + if ($def =~ m{^_?WIN32$}) { $platforms{$&} = $op; } + if ($def =~ m{^__FreeBSD__$}) { $platforms{$&} = $op; } +# For future support +# if ($def =~ m{^__DragonFly__$}) { $platforms{$&} = $op; } +# if ($def =~ m{^__OpenBSD__$}) { $platforms{$&} = $op; } +# if ($def =~ m{^__NetBSD__$}) { $platforms{$&} = $op; } + if ($def =~ + m{^OPENSSL_(EXPORT_VAR_AS_FUNCTION)$}) { $platforms{$1} = $op; } + if ($def =~ m{^OPENSSL_SYS_}) { $platforms{$'} = $op; } + } + + return %platforms; +} + +sub _parse_features { + my $self = shift; + my @defs = @_; + + my %features = (); + foreach (@defs) { + m{^(!)?}; + my $op = !(defined $1 && $1 eq '!'); + my $def = $'; + + if ($def =~ m{^ZLIB$}) { $features{$&} = $op; } + if ($def =~ m{^OPENSSL_USE_}) { $features{$'} = $op; } + if ($def =~ m{^OPENSSL_NO_}) { $features{$'} = !$op; } + if ($def =~ m{^DEPRECATEDIN_(.*)$}) { $features{$&} = !$op; } + } + + return %features; +} + +=item B<$ordinals-Eadd NAME, TYPE, LIST> + +Adds a new item named NAME with the type TYPE, and a set of C macros in +LIST that are expected to be defined or undefined to use this symbol, if +any. For undefined macros, they each must be prefixed with a C. + +If this symbol already exists in loaded data, it will be rewritten using +the new input data, but will keep the same ordinal number and version. +If it's entirely new, it will get a new number and the current default +version. The new ordinal number is a simple increment from the last +maximum number. + +=cut + +sub add { + my $self = shift; + my $name = shift; + my $type = shift; # FUNCTION or VARIABLE + my @defs = @_; # Macros from #ifdef and #ifndef + # (the latter prefixed with a '!') + + # call signature for debug output + my $verbsig = "add('$name' , '$type' , [ " . join(', ', @defs) . " ])"; + + croak __PACKAGE__."->add got a bad type '$type'" + unless $type eq 'FUNCTION' || $type eq 'VARIABLE'; + + my %platforms = _parse_platforms(@defs); + my %features = _parse_features(@defs); + + my @items = $self->items(filter => f_name($name)); + my $version = @items ? $items[0]->version() : $self->{currversion}; + my $number = @items ? $items[0]->number() : ++$self->{maxnum}; + print STDERR "DEBUG[",__PACKAGE__,":add] $verbsig\n", + @items ? map { "\t".$_->to_string()."\n" } @items : "No previous items\n", + if $self->{debug}; + @items = grep { $_->exists() } @items; + + my $new_item = + OpenSSL::Ordinals::Item->new( name => $name, + type => $type, + number => $number, + version => $version, + exists => 1, + platforms => { %platforms }, + features => [ + grep { $features{$_} } keys %features + ] ); + + push @items, $new_item; + print STDERR "DEBUG[",__PACKAGE__,"::add] $verbsig\n", map { "\t".$_->to_string()."\n" } @items + if $self->{debug}; + $self->_putback(@items); + + # If an alias was defined beforehand, add an item for it now + my $alias = $self->{aliases}->{$name}; + delete $self->{aliases}->{$name}; + + # For the caller to show + my @returns = ( $new_item ); + push @returns, $self->add_alias($alias->{name}, $name, @{$alias->{defs}}) + if defined $alias; + return @returns; +} + +=item B<$ordinals-Eadd_alias ALIAS, NAME, LIST> + +Adds an alias ALIAS for the symbol NAME, and a set of C macros in LIST +that are expected to be defined or undefined to use this symbol, if any. +For undefined macros, they each must be prefixed with a C. + +If this symbol already exists in loaded data, it will be rewritten using +the new input data. Otherwise, the data will just be store away, to wait +that the symbol NAME shows up. + +=cut + +sub add_alias { + my $self = shift; + my $alias = shift; # This is the alias being added + my $name = shift; # For this name (assuming it exists) + my @defs = @_; # Platform attributes for the alias + + # call signature for debug output + my $verbsig = + "add_alias('$alias' , '$name' , [ " . join(', ', @defs) . " ])"; + + croak "You're kidding me..." if $alias eq $name; + + my %platforms = _parse_platforms(@defs); + my %features = _parse_features(@defs); + + croak "Alias with associated features is forbidden\n" + if %features; + + my $f_byalias = f_name($alias); + my $f_byname = f_name($name); + my @items = $self->items(filter => $f_byalias); + foreach my $item ($self->items(filter => $f_byname)) { + push @items, $item unless grep { $_ == $item } @items; + } + @items = grep { $_->exists() } @items; + + croak "Alias already exists ($alias => $name)" + if scalar @items > 1; + if (scalar @items == 0) { + # The item we want to alias for doesn't exist yet, so we cache the + # alias and hope the item we're making an alias of shows up later + $self->{aliases}->{$name} = { name => $alias, defs => [ @defs ] }; + + print STDERR "DEBUG[",__PACKAGE__,":add_alias] $verbsig\n", + "\tSet future alias $alias => $name\n" + if $self->{debug}; + return (); + } elsif (scalar @items == 1) { + # The rule is that an alias is more or less a copy of the original + # item, just with another name. Also, the platforms given here are + # given to the original item as well, with opposite values. + my %alias_platforms = $items[0]->platforms(); + foreach (keys %platforms) { + $alias_platforms{$_} = !$platforms{$_}; + } + # We supposedly do now know how to do this... *ahem* + $items[0]->{platforms} = { %alias_platforms }; + + my $alias_item = OpenSSL::Ordinals::Item->new( + name => $alias, + type => $items[0]->type(), + number => $items[0]->number(), + version => $items[0]->version(), + exists => $items[0]->exists(), + platforms => { %platforms }, + features => [ $items[0]->features() ] + ); + push @items, $alias_item; + + print STDERR "DEBUG[",__PACKAGE__,":add_alias] $verbsig\n", + map { "\t".$_->to_string()."\n" } @items + if $self->{debug}; + $self->_putback(@items); + + # For the caller to show + return ( $alias_item->to_string() ); + } + croak "$name has an alias already (trying to add alias $alias)\n", + "\t", join(", ", map { $_->name() } @items), "\n"; +} + +=item B<$ordinals-Eset_version VERSION> + +Sets the default version for new symbol to VERSION. + +=cut + +sub set_version { + my $self = shift; + my $version = shift; + + $version //= '*'; + $version =~ s|-.*||g; + $version =~ s|\.|_|g; + $self->{currversion} = $version; + foreach ($self->items(filter => sub { $_[0] eq '*' })) { + $_->{version} = $self->{currversion}; + } + return 1; +} + +=item B<$ordinals-Einvalidate> + +Invalidates the whole working database. The practical effect is that all +symbols are set to not exist, but are kept around in the database to retain +ordinal numbers and versions. + +=cut + +sub invalidate { + my $self = shift; + + foreach (@{$self->{contents}}) { + foreach (@{$_ // []}) { + $_->{exists} = 0; + } + } + $self->{stats} = {}; +} + +=item B<$ordinals-Evalidate> + +Validates the current working database by collection statistics on how many +symbols were added and how many were changed. These numbers can be retrieved +with B<$ordinals-Estats>. + +=cut + +sub validate { + my $self = shift; + + $self->{stats} = {}; + for my $i (1..$self->{maxnum}) { + if ($i > $self->{loaded_maxnum} + || (!@{$self->{loaded_contents}->[$i] // []} + && @{$self->{contents}->[$i] // []})) { + $self->{stats}->{new}++; + } + next if ($i > $self->{loaded_maxnum}); + + my @loaded_strings = + map { $_->to_string() } @{$self->{loaded_contents}->[$i] // []}; + my @current_strings = + map { $_->to_string() } @{$self->{contents}->[$i] // []}; + + foreach my $str (@current_strings) { + @loaded_strings = grep { $str ne $_ } @loaded_strings; + } + if (@loaded_strings) { + $self->{stats}->{modified}++; + } + } +} + +=item B<$ordinals-Estats> + +Returns the statistics that B calculate. + +=cut + +sub stats { + my $self = shift; + + return %{$self->{stats}}; +} + +=back + +=head2 Data elements + +Data elements, which is each line in an ordinals file, are instances +of a separate class, OpenSSL::Ordinals::Item, with its own methods: + +=over 4 + +=cut + +package OpenSSL::Ordinals::Item; + +use strict; +use warnings; +use Carp; + +=item B I<%options> + +Creates a new instance of the C class. It takes +options in keyed pair form, i.e. a series of C value> pairs. +Available options are: + +=over 4 + +=item B STRING> + +This will create a new item, filled with data coming from STRING. + +STRING must conform to the following EBNF description: + + ordinal string = symbol, spaces, ordinal, spaces, version, spaces, + exist, ":", platforms, ":", type, ":", features; + spaces = space, { space }; + space = " " | "\t"; + symbol = ( letter | "_"), { letter | digit | "_" }; + ordinal = number; + version = number, "_", number, "_", number, letter, [ letter ]; + exist = "EXIST" | "NOEXIST"; + platforms = platform, { ",", platform }; + platform = ( letter | "_" ) { letter | digit | "_" }; + type = "FUNCTION" | "VARIABLE"; + features = feature, { ",", feature }; + feature = ( letter | "_" ) { letter | digit | "_" }; + number = digit, { digit }; + +(C and C are assumed self evident) + +=item B STRING>, B NUMBER>, B STRING>, + B BOOLEAN>, B STRING>, + B HASHref>, B LISTref> + +This will create a new item with data coming from the arguments. + +=back + +=cut + +sub new { + my $class = shift; + + if (ref($_[0]) eq $class) { + return $class->new( map { $_ => $_[0]->{$_} } keys %{$_[0]} ); + } + + my %opts = @_; + + croak "No argument given" unless %opts; + + my $instance = undef; + if ($opts{from}) { + my @a = split /\s+/, $opts{from}; + + croak "Badly formatted ordinals string: $opts{from}" + unless ( scalar @a == 4 + && $a[0] =~ /^[A-Za-z_][A-Za-z_0-9]*$/ + && $a[1] =~ /^\d+$/ + && $a[2] =~ /^(?:\*|\d+_\d+_\d+(?:[a-z]{0,2}))$/ + && $a[3] =~ /^ + (?:NO)?EXIST: + [^:]*: + (?:FUNCTION|VARIABLE): + [^:]* + $ + /x ); + + my @b = split /:/, $a[3]; + %opts = ( name => $a[0], + number => $a[1], + version => $a[2], + exists => $b[0] eq 'EXIST', + platforms => { map { m|^(!)?|; $' => !$1 } + split /,/,$b[1] }, + type => $b[2], + features => [ split /,/,$b[3] // '' ] ); + } + + if ($opts{name} && $opts{version} && defined $opts{exists} && $opts{type} + && ref($opts{platforms} // {}) eq 'HASH' + && ref($opts{features} // []) eq 'ARRAY') { + $instance = { name => $opts{name}, + type => $opts{type}, + number => $opts{number}, + version => $opts{version}, + exists => !!$opts{exists}, + platforms => { %{$opts{platforms} // {}} }, + features => [ sort @{$opts{features} // []} ] }; + } else { + croak __PACKAGE__."->new() called with bad arguments\n". + join("", map { " $_\t=> ".$opts{$_}."\n" } sort keys %opts); + } + + return bless $instance, $class; +} + +sub DESTROY { +} + +=item B<$item-Ename> + +The symbol name for this item. + +=item B<$item-Enumber> + +The positional number for this item. + +=item B<$item-Eversion> + +The version number for this item. Please note that these version numbers +have underscore (C<_>) as a separator the the version parts. + +=item B<$item-Eexists> + +A boolean that tells if this symbol exists in code or not. + +=item B<$item-Eplatforms> + +A hash table reference. The keys of the hash table are the names of +the specified platforms, with a value of 0 to indicate that this symbol +isn't available on that platform, and 1 to indicate that it is. Platforms +that aren't mentioned default to 1. + +=item B<$item-Etype> + +C or C, depending on what the symbol represents. +Some platforms do not care about this, others do. + +=item B<$item-Efeatures> + +An array reference, where every item indicates a feature where this symbol +is available. If no features are mentioned, the symbol is always available. +If any feature is mentioned, this symbol is I available when those +features are enabled. + +=cut + +our $AUTOLOAD; + +# Generic getter +sub AUTOLOAD { + my $self = shift; + my $funcname = $AUTOLOAD; + (my $item = $funcname) =~ s|.*::||g; + + croak "$funcname called as setter" if @_; + croak "$funcname invalid" unless exists $self->{$item}; + return $self->{$item} if ref($self->{$item}) eq ''; + return @{$self->{$item}} if ref($self->{$item}) eq 'ARRAY'; + return %{$self->{$item}} if ref($self->{$item}) eq 'HASH'; +} + +=item B<$item-Eto_string> + +Converts the item to a string that can be saved in an ordinals file. + +=cut + +sub to_string { + my $self = shift; + + croak "Too many arguments" if @_; + my %platforms = $self->platforms(); + my @features = $self->features(); + return sprintf "%-39s %d\t%s\t%s:%s:%s:%s", + $self->name(), + $self->number(), + $self->version(), + $self->exists() ? 'EXIST' : 'NOEXIST', + join(',', (map { ($platforms{$_} ? '' : '!') . $_ } + sort keys %platforms)), + $self->type(), + join(',', @features); +} + +=back + +=head2 Comparators and filters + +For the B<$ordinals-Eitems> method, there are a few functions to create +comparators based on specific data: + +=over 4 + +=cut + +# Go back to the main package to create comparators and filters +package OpenSSL::Ordinals; + +# Comparators... + +=item B + +Returns a comparator that will compare the names of two OpenSSL::Ordinals::Item +objects. + +=cut + +sub by_name { + return sub { $_[0]->name() cmp $_[1]->name() }; +} + +=item B + +Returns a comparator that will compare the ordinal numbers of two +OpenSSL::Ordinals::Item objects. + +=cut + +sub by_number { + return sub { $_[0]->number() <=> $_[1]->number() }; +} + +=item B + +Returns a comparator that will compare the version of two +OpenSSL::Ordinals::Item objects. + +=cut + +sub by_version { + sub _ossl_versionsplit { + my $textversion = shift; + return $textversion if $textversion eq '*'; + my ($major,$minor,$edit,$patch) = + $textversion =~ /^(\d+)_(\d+)_(\d+)([a-z]{0,2})$/; + return ($major,$minor,$edit,$patch); + } + + return sub { + my @a_split = _ossl_versionsplit($_[0]->version()); + my @b_split = _ossl_versionsplit($_[1]->version()); + my $verdict = 0; + while (@a_split) { + # The last part is a letter sequence (or a '*') + if (scalar @a_split == 1) { + $verdict = $a_split[0] cmp $b_split[0]; + } else { + $verdict = $a_split[0] <=> $b_split[0]; + } + shift @a_split; + shift @b_split; + last unless $verdict == 0; + } + $verdict; + }; +} + +=back + +There are also the following filters: + +=over 4 + +=cut + +# Filters... these are called by grep, the return sub must use $_ for +# the item to check + +=item B + +Returns a filter that only lets through symbols with a version number +matching B. + +=cut + +sub f_version { + my $version = shift; + + $version =~ s|\.|_|g if $version; + croak "No version specified" + unless $version && $version =~ /^\d_\d_\d[a-z]{0,2}$/; + + return sub { $_[0]->version() eq $version }; +} + +=item B + +Returns a filter that only lets through symbols with the ordinal number +matching B. + +NOTE that this returns a "magic" value that can not be used as a function. +It's only useful when passed directly as a filter to B. + +=cut + +sub f_number { + my $number = shift; + + croak "No number specified" + unless $number && $number =~ /^\d+$/; + + return [ F_NUMBER, $number ]; +} + + +=item B + +Returns a filter that only lets through symbols with the symbol name +matching B. + +NOTE that this returns a "magic" value that can not be used as a function. +It's only useful when passed directly as a filter to B. + +=cut + +sub f_name { + my $name = shift; + + croak "No name specified" + unless $name; + + return [ F_NAME, $name ]; +} + +=back + +=head1 AUTHORS + +Richard Levitte Elevitte at openssl.orgE. + +=cut + +1; diff --git a/util/perl/OpenSSL/ParseC.pm b/util/perl/OpenSSL/ParseC.pm new file mode 100644 index 0000000..ba2427c --- /dev/null +++ b/util/perl/OpenSSL/ParseC.pm @@ -0,0 +1,1129 @@ +#! /usr/bin/env perl +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +package OpenSSL::ParseC; + +use strict; +use warnings; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +$VERSION = "0.9"; + at ISA = qw(Exporter); + at EXPORT = qw(parse); + +# Global handler data +my @preprocessor_conds; # A list of simple preprocessor conditions, + # each item being a list of macros defined + # or not defined. + +# Handler helpers +sub all_conds { + return map { ( @$_ ) } @preprocessor_conds; +} + +# A list of handlers that will look at a "complete" string and try to +# figure out what to make of it. +# Each handler is a hash with the following keys: +# +# regexp a regexp to compare the "complete" string with. +# checker a function that does a more complex comparison. +# Use this instead of regexp if that isn't enough. +# massager massages the "complete" string into an array with +# the following elements: +# +# [0] String that needs further processing (this +# applies to typedefs of structs), or empty. +# [1] The name of what was found. +# [2] A character that denotes what type of thing +# this is: 'F' for function, 'S' for struct, +# 'T' for typedef, 'M' for macro, 'V' for +# variable. +# [3] Return type (only for type 'F' and 'V') +# [4] Value (for type 'M') or signature (for type 'F', +# 'V', 'T' or 'S') +# [5...] The list of preprocessor conditions this is +# found in, as in checks for macro definitions +# (stored as the macro's name) or the absence +# of definition (stored as the macro's name +# prefixed with a '!' +# +# If the massager returns an empty list, it means the +# "complete" string has side effects but should otherwise +# be ignored. +# If the massager is undefined, the "complete" string +# should be ignored. +my @opensslcpphandlers = ( + ################################################################## + # OpenSSL CPP specials + # + # These are used to convert certain pre-precessor expressions into + # others that @cpphandlers have a better chance to understand. + + { regexp => qr/#if OPENSSL_API_COMPAT(\S+)(0x[0-9a-fA-F]{8})L$/, + massager => sub { + my $op = $1; + my $v = hex($2); + if ($op ne '<' && $op ne '>=') { + die "Error: unacceptable operator $op: $_[0]\n"; + } + my ($one, $major, $minor) = + ( ($v >> 28) & 0xf, + ($v >> 20) & 0xff, + ($v >> 12) & 0xff ); + my $t = "DEPRECATEDIN_${one}_${major}_${minor}"; + my $cond = $op eq '<' ? 'ifndef' : 'ifdef'; + return (<<"EOF"); +#$cond $t +EOF + } + } +); +my @cpphandlers = ( + ################################################################## + # CPP stuff + + { regexp => qr/#ifdef ?(.*)/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + push @preprocessor_conds, [ $1 ]; + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (); + }, + }, + { regexp => qr/#ifndef ?(.*)/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + push @preprocessor_conds, [ '!'.$1 ]; + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (); + }, + }, + { regexp => qr/#if (0|1)/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + if ($1 eq "1") { + push @preprocessor_conds, [ "TRUE" ]; + } else { + push @preprocessor_conds, [ "!TRUE" ]; + } + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (); + }, + }, + { regexp => qr/#if ?(.*)/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + my @results = (); + my $conds = $1; + if ($conds =~ m|^defined<<<\(([^\)]*)\)>>>(.*)$|) { + push @results, $1; # Handle the simple case + my $rest = $2; + my $re = qr/^(?:\|\|defined<<<\([^\)]*\)>>>)*$/; + print STDERR "DEBUG[",$opts{debug_type},"]: Matching '$rest' with '$re'\n" + if $opts{debug}; + if ($rest =~ m/$re/) { + my @rest = split /\|\|/, $rest; + shift @rest; + foreach (@rest) { + m|^defined<<<\(([^\)]*)\)>>>$|; + die "Something wrong...$opts{PLACE}" if $1 eq ""; + push @results, $1; + } + } else { + $conds =~ s/<<<|>>>//g; + warn "Warning: complicated #if expression(1): $conds$opts{PLACE}" + if $opts{warnings}; + } + } elsif ($conds =~ m|^!defined<<<\(([^\)]*)\)>>>(.*)$|) { + push @results, '!'.$1; # Handle the simple case + my $rest = $2; + my $re = qr/^(?:\&\&!defined<<<\([^\)]*\)>>>)*$/; + print STDERR "DEBUG[",$opts{debug_type},"]: Matching '$rest' with '$re'\n" + if $opts{debug}; + if ($rest =~ m/$re/) { + my @rest = split /\&\&/, $rest; + shift @rest; + foreach (@rest) { + m|^!defined<<<\(([^\)]*)\)>>>$|; + die "Something wrong...$opts{PLACE}" if $1 eq ""; + push @results, '!'.$1; + } + } else { + $conds =~ s/<<<|>>>//g; + warn "Warning: complicated #if expression(2): $conds$opts{PLACE}" + if $opts{warnings}; + } + } else { + $conds =~ s/<<<|>>>//g; + warn "Warning: complicated #if expression(3): $conds$opts{PLACE}" + if $opts{warnings}; + } + print STDERR "DEBUG[",$opts{debug_type},"]: Added preprocessor conds: '", join("', '", @results), "'\n" + if $opts{debug}; + push @preprocessor_conds, [ @results ]; + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (); + }, + }, + { regexp => qr/#elif (.*)/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + die "An #elif without corresponding condition$opts{PLACE}" + if !@preprocessor_conds; + pop @preprocessor_conds; + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (<<"EOF"); +#if $1 +EOF + }, + }, + { regexp => qr/#else/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + die "An #else without corresponding condition$opts{PLACE}" + if !@preprocessor_conds; + # Invert all conditions on the last level + my $stuff = pop @preprocessor_conds; + push @preprocessor_conds, [ + map { m|^!(.*)$| ? $1 : '!'.$_ } @$stuff + ]; + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (); + }, + }, + { regexp => qr/#endif ?/, + massager => sub { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + die "An #endif without corresponding condition$opts{PLACE}" + if !@preprocessor_conds; + pop @preprocessor_conds; + print STDERR "DEBUG[",$opts{debug_type},"]: preprocessor level: ", scalar(@preprocessor_conds), "\n" + if $opts{debug}; + return (); + }, + }, + { regexp => qr/#define ([[:alpha:]_]\w*)(<<<\(.*?\)>>>)?( (.*))?/, + massager => sub { + my $name = $1; + my $params = $2; + my $spaceval = $3||""; + my $val = $4||""; + return ("", + $1, 'M', "", $params ? "$name$params$spaceval" : $val, + all_conds()); } + }, + { regexp => qr/#.*/, + massager => sub { return (); } + }, + ); + +my @opensslchandlers = ( + ################################################################## + # OpenSSL C specials + # + # They are really preprocessor stuff, but they look like C stuff + # to this parser. All of these do replacements, anything else is + # an error. + + ##### + # Global variable stuff + { regexp => qr/OPENSSL_DECLARE_GLOBAL<<<\((.*),(.*)\)>>>;/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION +OPENSSL_EXPORT $1 _shadow_$2; +#else +$1 *_shadow_$2(void); +#endif +EOF + }, + }, + + ##### + # Deprecated stuff, by OpenSSL release. + + # We trick the parser by pretending that the declaration is wrapped in a + # check if the DEPRECATEDIN macro is defined or not. Callers of parse() + # will have to decide what to do with it. + { regexp => qr/(DEPRECATEDIN_\d+_\d+_\d+)<<<\((.*)\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef $1 +$2; +#endif +EOF + }, + }, + + ##### + # LHASH stuff + + # LHASH_OF(foo) is used as a type, but the chandlers won't take it + # gracefully, so we expand it here. + { regexp => qr/(.*)\bLHASH_OF<<<\((.*?)\)>>>(.*)/, + massager => sub { return ("$1struct lhash_st_$2$3"); } + }, + { regexp => qr/DEFINE_LHASH_OF<<<\((.*)\)>>>/, + massager => sub { + return (<<"EOF"); +static ossl_inline LHASH_OF($1) * lh_$1_new(unsigned long (*hfn)(const $1 *), + int (*cfn)(const $1 *, const $1 *)); +static ossl_inline void lh_$1_free(LHASH_OF($1) *lh); +static ossl_inline $1 *lh_$1_insert(LHASH_OF($1) *lh, $1 *d); +static ossl_inline $1 *lh_$1_delete(LHASH_OF($1) *lh, const $1 *d); +static ossl_inline $1 *lh_$1_retrieve(LHASH_OF($1) *lh, const $1 *d); +static ossl_inline int lh_$1_error(LHASH_OF($1) *lh); +static ossl_inline unsigned long lh_$1_num_items(LHASH_OF($1) *lh); +static ossl_inline void lh_$1_node_stats_bio(const LHASH_OF($1) *lh, BIO *out); +static ossl_inline void lh_$1_node_usage_stats_bio(const LHASH_OF($1) *lh, + BIO *out); +static ossl_inline void lh_$1_stats_bio(const LHASH_OF($1) *lh, BIO *out); +static ossl_inline unsigned long lh_$1_get_down_load(LHASH_OF($1) *lh); +static ossl_inline void lh_$1_set_down_load(LHASH_OF($1) *lh, unsigned long dl); +static ossl_inline void lh_$1_doall(LHASH_OF($1) *lh, void (*doall)($1 *)); +LHASH_OF($1) +EOF + } + }, + + ##### + # STACK stuff + + # STACK_OF(foo) is used as a type, but the chandlers won't take it + # gracefully, so we expand it here. + { regexp => qr/(.*)\bSTACK_OF<<<\((.*?)\)>>>(.*)/, + massager => sub { return ("$1struct stack_st_$2$3"); } + }, +# { regexp => qr/(.*)\bSTACK_OF\((.*?)\)(.*)/, +# massager => sub { +# my $before = $1; +# my $stack_of = "struct stack_st_$2"; +# my $after = $3; +# if ($after =~ m|^\w|) { $after = " ".$after; } +# return ("$before$stack_of$after"); +# } +# }, + { regexp => qr/SKM_DEFINE_STACK_OF<<<\((.*),(.*),(.*)\)>>>/, + massager => sub { + return (<<"EOF"); +STACK_OF($1); +typedef int (*sk_$1_compfunc)(const $3 * const *a, const $3 *const *b); +typedef void (*sk_$1_freefunc)($3 *a); +typedef $3 * (*sk_$1_copyfunc)(const $3 *a); +static ossl_inline int sk_$1_num(const STACK_OF($1) *sk); +static ossl_inline $2 *sk_$1_value(const STACK_OF($1) *sk, int idx); +static ossl_inline STACK_OF($1) *sk_$1_new(sk_$1_compfunc compare); +static ossl_inline STACK_OF($1) *sk_$1_new_null(void); +static ossl_inline STACK_OF($1) *sk_$1_new_reserve(sk_$1_compfunc compare, + int n); +static ossl_inline int sk_$1_reserve(STACK_OF($1) *sk, int n); +static ossl_inline void sk_$1_free(STACK_OF($1) *sk); +static ossl_inline void sk_$1_zero(STACK_OF($1) *sk); +static ossl_inline $2 *sk_$1_delete(STACK_OF($1) *sk, int i); +static ossl_inline $2 *sk_$1_delete_ptr(STACK_OF($1) *sk, $2 *ptr); +static ossl_inline int sk_$1_push(STACK_OF($1) *sk, $2 *ptr); +static ossl_inline int sk_$1_unshift(STACK_OF($1) *sk, $2 *ptr); +static ossl_inline $2 *sk_$1_pop(STACK_OF($1) *sk); +static ossl_inline $2 *sk_$1_shift(STACK_OF($1) *sk); +static ossl_inline void sk_$1_pop_free(STACK_OF($1) *sk, + sk_$1_freefunc freefunc); +static ossl_inline int sk_$1_insert(STACK_OF($1) *sk, $2 *ptr, int idx); +static ossl_inline $2 *sk_$1_set(STACK_OF($1) *sk, int idx, $2 *ptr); +static ossl_inline int sk_$1_find(STACK_OF($1) *sk, $2 *ptr); +static ossl_inline int sk_$1_find_ex(STACK_OF($1) *sk, $2 *ptr); +static ossl_inline void sk_$1_sort(STACK_OF($1) *sk); +static ossl_inline int sk_$1_is_sorted(const STACK_OF($1) *sk); +static ossl_inline STACK_OF($1) * sk_$1_dup(const STACK_OF($1) *sk); +static ossl_inline STACK_OF($1) *sk_$1_deep_copy(const STACK_OF($1) *sk, + sk_$1_copyfunc copyfunc, + sk_$1_freefunc freefunc); +static ossl_inline sk_$1_compfunc sk_$1_set_cmp_func(STACK_OF($1) *sk, + sk_$1_compfunc compare); +EOF + } + }, + { regexp => qr/DEFINE_SPECIAL_STACK_OF<<<\((.*),(.*)\)>>>/, + massager => sub { return ("SKM_DEFINE_STACK_OF($1,$2,$2)"); }, + }, + { regexp => qr/DEFINE_STACK_OF<<<\((.*)\)>>>/, + massager => sub { return ("SKM_DEFINE_STACK_OF($1,$1,$1)"); }, + }, + { regexp => qr/DEFINE_SPECIAL_STACK_OF_CONST<<<\((.*),(.*)\)>>>/, + massager => sub { return ("SKM_DEFINE_STACK_OF($1,const $2,$2)"); }, + }, + { regexp => qr/DEFINE_STACK_OF_CONST<<<\((.*)\)>>>/, + massager => sub { return ("SKM_DEFINE_STACK_OF($1,const $1,$1)"); }, + }, + { regexp => qr/PREDECLARE_STACK_OF<<<\((.*)\)>>>/, + massager => sub { return ("STACK_OF($1);"); } + }, + { regexp => qr/DECLARE_STACK_OF<<<\((.*)\)>>>/, + massager => sub { return ("STACK_OF($1);"); } + }, + { regexp => qr/DECLARE_SPECIAL_STACK_OF<<<\((.*?),(.*?)\)>>>/, + massager => sub { return ("STACK_OF($1);"); } + }, + + ##### + # ASN1 stuff + + { regexp => qr/TYPEDEF_D2I_OF<<<\((.*)\)>>>/, + massager => sub { + return ("typedef $1 *d2i_of_$1($1 **,const unsigned char **,long)"); + }, + }, + { regexp => qr/TYPEDEF_I2D_OF<<<\((.*)\)>>>/, + massager => sub { + return ("typedef $1 *i2d_of_$1($1 *,unsigned char **)"); + }, + }, + { regexp => qr/TYPEDEF_D2I2D_OF<<<\((.*)\)>>>/, + massager => sub { + return ("TYPEDEF_D2I_OF($1); TYPEDEF_I2D_OF($1)"); + }, + }, + { regexp => qr/DECLARE_ASN1_ITEM<<<\((.*)\)>>>/, + massager => sub { + return (<<"EOF"); +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION +OPENSSL_EXTERN const ASN1_ITEM *$1_it; +#else +const ASN1_ITEM *$1_it(void); +#endif +EOF + }, + }, + { regexp => qr/DECLARE_ASN1_ENCODE_FUNCTIONS<<<\((.*),(.*),(.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int d2i_$3(void); +int i2d_$3(void); +DECLARE_ASN1_ITEM($2) +EOF + }, + }, + { regexp => qr/DECLARE_ASN1_ENCODE_FUNCTIONS_const<<<\((.*),(.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int d2i_$2(void); +int i2d_$2(void); +DECLARE_ASN1_ITEM($2) +EOF + }, + }, + { regexp => qr/DECLARE_ASN1_ALLOC_FUNCTIONS<<<\((.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int $1_free(void); +int $1_new(void); +EOF + }, + }, + { regexp => qr/DECLARE_ASN1_FUNCTIONS_name<<<\((.*),(.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int d2i_$2(void); +int i2d_$2(void); +int $2_free(void); +int $2_new(void); +DECLARE_ASN1_ITEM($2) +EOF + }, + }, + { regexp => qr/DECLARE_ASN1_FUNCTIONS_fname<<<\((.*),(.*),(.*)\)>>>/, + massager => sub { return (<<"EOF"); +int d2i_$3(void); +int i2d_$3(void); +int $3_free(void); +int $3_new(void); +DECLARE_ASN1_ITEM($2) +EOF + } + }, + { regexp => qr/DECLARE_ASN1_FUNCTIONS(?:_const)?<<<\((.*)\)>>>/, + massager => sub { return (<<"EOF"); +int d2i_$1(void); +int i2d_$1(void); +int $1_free(void); +int $1_new(void); +DECLARE_ASN1_ITEM($1) +EOF + } + }, + { regexp => qr/DECLARE_ASN1_NDEF_FUNCTION<<<\((.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int i2d_$1_NDEF(void); +EOF + } + }, + { regexp => qr/DECLARE_ASN1_PRINT_FUNCTION<<<\((.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int $1_print_ctx(void); +EOF + } + }, + { regexp => qr/DECLARE_ASN1_PRINT_FUNCTION_name<<<\((.*),(.*)\)>>>/, + massager => sub { + return (<<"EOF"); +int $2_print_ctx(void); +EOF + } + }, + { regexp => qr/DECLARE_ASN1_SET_OF<<<\((.*)\)>>>/, + massager => sub { return (); } + }, + { regexp => qr/DECLARE_PKCS12_SET_OF<<<\((.*)\)>>>/, + massager => sub { return (); } + }, + { regexp => qr/DECLARE_PEM(?|_rw|_rw_cb|_rw_const)<<<\((.*?),.*\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_NO_STDIO +int PEM_read_$1(void); +int PEM_write_$1(void); +#endif +int PEM_read_bio_$1(void); +int PEM_write_bio_$1(void); +EOF + }, + }, + + ##### + # PEM stuff + { regexp => qr/DECLARE_PEM(?|_write|_write_cb|_write_const)<<<\((.*?),.*\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_NO_STDIO +int PEM_write_$1(void); +#endif +int PEM_write_bio_$1(void); +EOF + }, + }, + { regexp => qr/DECLARE_PEM(?|_read|_read_cb)<<<\((.*?),.*\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_NO_STDIO +int PEM_read_$1(void); +#endif +int PEM_read_bio_$1(void); +EOF + }, + }, + + # Spurious stuff found in the OpenSSL headers + # Usually, these are just macros that expand to, well, something + { regexp => qr/__NDK_FPABI__/, + massager => sub { return (); } + }, + ); + +my $anoncnt = 0; + +my @chandlers = ( + ################################################################## + # C stuff + + # extern "C" of individual items + # Note that the main parse function has a special hack for 'extern "C" {' + # which can't be done in handlers + # We simply ignore it. + { regexp => qr/extern "C" (.*;)/, + massager => sub { return ($1); }, + }, + # union, struct and enum definitions + # Because this one might appear a little everywhere within type + # definitions, we take it out and replace it with just + # 'union|struct|enum name' while registering it. + # This makes use of the parser trick to surround the outer braces + # with <<< and >>> + { regexp => qr/(.*) # Anything before ($1) + \b # word to non-word boundary + (union|struct|enum) # The word used ($2) + (?:\s([[:alpha:]_]\w*))? # Struct or enum name ($3) + <<<(\{.*?\})>>> # Struct or enum definition ($4) + (.*) # Anything after ($5) + ; + /x, + massager => sub { + my $before = $1; + my $word = $2; + my $name = $3 + || sprintf("__anon%03d", ++$anoncnt); # Anonymous struct + my $definition = $4; + my $after = $5; + my $type = $word eq "struct" ? 'S' : 'E'; + if ($before ne "" || $after ne ";") { + if ($after =~ m|^\w|) { $after = " ".$after; } + return ("$before$word $name$after;", + "$word $name", $type, "", "$word$definition", all_conds()); + } + # If there was no before nor after, make the return much simple + return ("", "$word $name", $type, "", "$word$definition", all_conds()); + } + }, + # Named struct and enum forward declarations + # We really just ignore them, but we need to parse them or the variable + # declaration handler further down will think it's a variable declaration. + { regexp => qr/^(union|struct|enum) ([[:alpha:]_]\w*);/, + massager => sub { return (); } + }, + # Function returning function pointer declaration + { regexp => qr/(?:(typedef)\s?)? # Possible typedef ($1) + ((?:\w|\*|\s)*?) # Return type ($2) + \s? # Possible space + <<<\(\* + ([[:alpha:]_]\w*) # Function name ($3) + (\(.*\)) # Parameters ($4) + \)>>> + <<<(\(.*\))>>> # F.p. parameters ($5) + ; + /x, + massager => sub { + return ("", $3, 'F', "", "$2(*$4)$5", all_conds()) + if defined $1; + return ("", $3, 'F', "$2(*)$5", "$2(*$4)$5", all_conds()); } + }, + # Function pointer declaration, or typedef thereof + { regexp => qr/(?:(typedef)\s?)? # Possible typedef ($1) + ((?:\w|\*|\s)*?) # Return type ($2) + <<<\(\*([[:alpha:]_]\w*)\)>>> # T.d. or var name ($3) + <<<(\(.*\))>>> # F.p. parameters ($4) + ; + /x, + massager => sub { + return ("", $3, 'T', "", "$2(*)$4", all_conds()) + if defined $1; + return ("", $3, 'V', "$2(*)$4", "$2(*)$4", all_conds()); + }, + }, + # Function declaration, or typedef thereof + { regexp => qr/(?:(typedef)\s?)? # Possible typedef ($1) + ((?:\w|\*|\s)*?) # Return type ($2) + \s? # Possible space + ([[:alpha:]_]\w*) # Function name ($3) + <<<(\(.*\))>>> # Parameters ($4) + ; + /x, + massager => sub { + return ("", $3, 'T', "", "$2$4", all_conds()) + if defined $1; + return ("", $3, 'F', $2, "$2$4", all_conds()); + }, + }, + # Variable declaration, including arrays, or typedef thereof + { regexp => qr/(?:(typedef)\s?)? # Possible typedef ($1) + ((?:\w|\*|\s)*?) # Type ($2) + \s? # Possible space + ([[:alpha:]_]\w*) # Variable name ($3) + ((?:<<<\[[^\]]*\]>>>)*) # Possible array declaration ($4) + ; + /x, + massager => sub { + return ("", $3, 'T', "", $2.($4||""), all_conds()) + if defined $1; + return ("", $3, 'V', $2.($4||""), $2.($4||""), all_conds()); + }, + }, +); + +# End handlers are almost the same as handlers, except they are run through +# ONCE when the input has been parsed through. These are used to check for +# remaining stuff, such as an unfinished #ifdef and stuff like that that the +# main parser can't check on its own. +my @endhandlers = ( + { massager => sub { + my %opts = %{$_[0]}; + + die "Unfinished preprocessor conditions levels: ",scalar(@preprocessor_conds),($opts{filename} ? " in file ".$opts{filename}: ""),$opts{PLACE} + if @preprocessor_conds; + } + } + ); + +# takes a list of strings that can each contain one or several lines of code +# also takes a hash of options as last argument. +# +# returns a list of hashes with information: +# +# name name of the thing +# type type, see the massage handler function +# returntype return type of functions and variables +# value value for macros, signature for functions, variables +# and structs +# conds preprocessor conditions (array ref) + +sub parse { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + my %state = ( + in_extern_C => 0, # An exception to parenthesis processing. + cpp_parens => [], # A list of ending parens and braces found in + # preprocessor directives + c_parens => [], # A list of ending parens and braces found in + # C statements + in_string => "", # empty string when outside a string, otherwise + # "'" or '"' depending on the starting quote. + in_comment => "", # empty string when outside a comment, otherwise + # "/*" or "//" depending on the type of comment + # found. The latter will never be multiline + # NOTE: in_string and in_comment will never be + # true (in perl semantics) at the same time. + current_line => 0, + ); + my @result = (); + my $normalized_line = ""; # $input_line, but normalized. In essence, this + # means that ALL whitespace is removed unless + # it absolutely has to be present, and in that + # case, there's only one space. + # The cases where a space needs to stay present + # are: + # 1. between words + # 2. between words and number + # 3. after the first word of a preprocessor + # directive. + # 4. for the #define directive, between the macro + # name/args and its value, so we end up with: + # #define FOO val + # #define BAR(x) something(x) + my $collected_stmt = ""; # Where we're building up a C line until it's a + # complete definition/declaration, as determined + # by any handler being capable of matching it. + + # We use $_ shamelessly when looking through @lines. + # In case we find a \ at the end, we keep filling it up with more lines. + $_ = undef; + + foreach my $line (@_) { + # split tries to be smart when a string ends with the thing we split on + $line .= "\n" unless $line =~ m|\R$|; + $line .= "#"; + + # We use ?undef? as a marker for a new line from the file. + # Since we convert one line to several and unshift that into @lines, + # that's the only safe way we have to track the original lines + my @lines = map { ( undef, $_ ) } split $/, $line; + + # Remember that extra # we added above? Now we remove it + pop @lines; + pop @lines; # Don't forget the undef + + while (@lines) { + if (!defined($lines[0])) { + shift @lines; + $state{current_line}++; + if (!defined($_)) { + $opts{PLACE} = " at ".$opts{filename}." line ".$state{current_line}."\n"; + $opts{PLACE2} = $opts{filename}.":".$state{current_line}; + } + next; + } + + $_ = "" unless defined $_; + $_ .= shift @lines; + + if (m|\\$|) { + $_ = $`; + next; + } + + if ($opts{debug}) { + print STDERR "DEBUG:----------------------------\n"; + print STDERR "DEBUG: \$_ = '$_'\n"; + } + + ########################################################## + # Now that we have a full line, let's process through it + while(1) { + unless ($state{in_comment}) { + # Begin with checking if the current $normalized_line + # contains a preprocessor directive + # This is only done if we're not inside a comment and + # if it's a preprocessor directive and it's finished. + if ($normalized_line =~ m|^#| && $_ eq "") { + print STDERR "DEBUG[OPENSSL CPP]: \$normalized_line = '$normalized_line'\n" + if $opts{debug}; + $opts{debug_type} = "OPENSSL CPP"; + my @r = ( _run_handlers($normalized_line, + @opensslcpphandlers, + \%opts) ); + if (shift @r) { + # Checking if there are lines to inject. + if (@r) { + @r = split $/, (pop @r).$_; + print STDERR "DEBUG[OPENSSL CPP]: injecting '", join("', '", @r),"'\n" + if $opts{debug} && @r; + @lines = ( @r, @lines ); + + $_ = ""; + } + } else { + print STDERR "DEBUG[CPP]: \$normalized_line = '$normalized_line'\n" + if $opts{debug}; + $opts{debug_type} = "CPP"; + my @r = ( _run_handlers($normalized_line, + @cpphandlers, + \%opts) ); + if (shift @r) { + if (ref($r[0]) eq "HASH") { + push @result, shift @r; + } + + # Now, check if there are lines to inject. + # Really, this should never happen, it IS a + # preprocessor directive after all... + if (@r) { + @r = split $/, pop @r; + print STDERR "DEBUG[CPP]: injecting '", join("', '", @r),"'\n" + if $opts{debug} && @r; + @lines = ( @r, @lines ); + $_ = ""; + } + } + } + + # Note: we simply ignore all directives that no + # handler matches + $normalized_line = ""; + } + + # If the two strings end and start with a character that + # shouldn't get concatenated, add a space + my $space = + ($collected_stmt =~ m/(?:"|')$/ + || ($collected_stmt =~ m/(?:\w|\d)$/ + && $normalized_line =~ m/^(?:\w|\d)/)) ? " " : ""; + + # Now, unless we're building up a preprocessor directive or + # are in the middle of a string, or the parens et al aren't + # balanced up yet, let's try and see if there's a OpenSSL + # or C handler that can make sense of what we have so far. + if ( $normalized_line !~ m|^#| + && ($collected_stmt ne "" || $normalized_line ne "") + && ! @{$state{c_parens}} + && ! $state{in_string} ) { + if ($opts{debug}) { + print STDERR "DEBUG[OPENSSL C]: \$collected_stmt = '$collected_stmt'\n"; + print STDERR "DEBUG[OPENSSL C]: \$normalized_line = '$normalized_line'\n"; + } + $opts{debug_type} = "OPENSSL C"; + my @r = ( _run_handlers($collected_stmt + .$space + .$normalized_line, + @opensslchandlers, + \%opts) ); + if (shift @r) { + # Checking if there are lines to inject. + if (@r) { + @r = split $/, (pop @r).$_; + print STDERR "DEBUG[OPENSSL]: injecting '", join("', '", @r),"'\n" + if $opts{debug} && @r; + @lines = ( @r, @lines ); + + $_ = ""; + } + $normalized_line = ""; + $collected_stmt = ""; + } else { + if ($opts{debug}) { + print STDERR "DEBUG[C]: \$collected_stmt = '$collected_stmt'\n"; + print STDERR "DEBUG[C]: \$normalized_line = '$normalized_line'\n"; + } + $opts{debug_type} = "C"; + my @r = ( _run_handlers($collected_stmt + .$space + .$normalized_line, + @chandlers, + \%opts) ); + if (shift @r) { + if (ref($r[0]) eq "HASH") { + push @result, shift @r; + } + + # Checking if there are lines to inject. + if (@r) { + @r = split $/, (pop @r).$_; + print STDERR "DEBUG[C]: injecting '", join("', '", @r),"'\n" + if $opts{debug} && @r; + @lines = ( @r, @lines ); + + $_ = ""; + } + $normalized_line = ""; + $collected_stmt = ""; + } + } + } + if ($_ eq "") { + $collected_stmt .= $space.$normalized_line; + $normalized_line = ""; + } + } + + if ($_ eq "") { + $_ = undef; + last; + } + + # Take care of inside string first. + if ($state{in_string}) { + if (m/ (?:^|(?>>)? + | \#[a-z]+ + $/x); + print STDERR "DEBUG: Processing leading spaces: \$normalized_line = '$normalized_line', \$space = '$space', \$rest = '$rest'\n" + if $opts{debug}; + $_ = $space.$rest; + } + + my $parens = + $normalized_line =~ m|^#| ? 'cpp_parens' : 'c_parens'; + (my $paren_singular = $parens) =~ s|s$||; + + # Now check for specific tokens, and if they are parens, + # check them against $state{$parens}. Note that we surround + # the outermost parens with extra "<<<" and ">>>". Those + # are for the benefit of handlers who to need to detect + # them, and they will be removed from the final output. + if (m|^[\{\[\(]|) { + my $body = $&; + $_ = $'; + if (!@{$state{$parens}}) { + if ("$normalized_line$body" =~ m|^extern "C"\{$|) { + $state{in_extern_C} = 1; + print STDERR "DEBUG: found start of 'extern \"C\"' ($normalized_line$body)\n" + if $opts{debug}; + $normalized_line = ""; + } else { + $normalized_line .= "<<<".$body; + } + } else { + $normalized_line .= $body; + } + + if ($normalized_line ne "") { + print STDERR "DEBUG: found $paren_singular start '$body'\n" + if $opts{debug}; + $body =~ tr|\{\[\(|\}\]\)|; + print STDERR "DEBUG: pushing $paren_singular end '$body'\n" + if $opts{debug}; + push @{$state{$parens}}, $body; + } + } elsif (m|^[\}\]\)]|) { + $_ = $'; + + if (!@{$state{$parens}} + && $& eq '}' && $state{in_extern_C}) { + print STDERR "DEBUG: found end of 'extern \"C\"'\n" + if $opts{debug}; + $state{in_extern_C} = 0; + } else { + print STDERR "DEBUG: Trying to match '$&' against '" + ,join("', '", @{$state{$parens}}) + ,"'\n" + if $opts{debug}; + die "Unmatched parentheses$opts{PLACE}\n" + unless (@{$state{$parens}} + && pop @{$state{$parens}} eq $&); + if (!@{$state{$parens}}) { + $normalized_line .= $&.">>>"; + } else { + $normalized_line .= $&; + } + } + } elsif (m|^["']|) { # string start + my $body = $&; + $_ = $'; + + # We want to separate strings from \w and \d with one space. + $normalized_line .= " " if $normalized_line =~ m/(\w|\d)$/; + $normalized_line .= $body; + $state{in_string} = $body; + } elsif (m|^\/\*|) { # C style comment + print STDERR "DEBUG: found start of C style comment\n" + if $opts{debug}; + $state{in_comment} = $&; + $_ = $'; + } elsif (m|^\/\/|) { # C++ style comment + print STDERR "DEBUG: found C++ style comment\n" + if $opts{debug}; + $_ = ""; # (just discard it entirely) + } elsif (m/^ (?| (?: 0[xX][[:xdigit:]]+ | 0[bB][01]+ | [0-9]+ ) + (?i: U | L | UL | LL | ULL )? + | [0-9]+\.[0-9]+(?:[eE][\-\+]\d+)? (?i: F | L)? + ) /x) { + print STDERR "DEBUG: Processing numbers: \$normalized_line = '$normalized_line', \$& = '$&', \$' = '$''\n" + if $opts{debug}; + $normalized_line .= $&; + $_ = $'; + } elsif (m/^[[:alpha:]_]\w*/) { + my $body = $&; + my $rest = $'; + my $space = ""; + + # Now, only add a space if it's needed to separate + # two \w characters, and we also surround strings with + # a space. In this case, that's if $normalized_line ends + # with a \w, \d, " or '. + $space = " " + if ($normalized_line =~ m/("|')$/ + || ($normalized_line =~ m/(\w|\d)$/ + && $body =~ m/^(\w|\d)/)); + + print STDERR "DEBUG: Processing words: \$normalized_line = '$normalized_line', \$space = '$space', \$body = '$body', \$rest = '$rest'\n" + if $opts{debug}; + $normalized_line .= $space.$body; + $_ = $rest; + } elsif (m|^(?:\\)?.|) { # Catch-all + $normalized_line .= $&; + $_ = $'; + } + } + } + } + foreach my $handler (@endhandlers) { + if ($handler->{massager}) { + $handler->{massager}->(\%opts); + } + } + return @result; +} + +# arg1: line to check +# arg2...: handlers to check +# return undef when no handler matched +sub _run_handlers { + my %opts; + if (ref($_[$#_]) eq "HASH") { + %opts = %{$_[$#_]}; + pop @_; + } + my $line = shift; + my @handlers = @_; + + foreach my $handler (@handlers) { + if ($handler->{regexp} + && $line =~ m|^$handler->{regexp}$|) { + if ($handler->{massager}) { + if ($opts{debug}) { + print STDERR "DEBUG[",$opts{debug_type},"]: Trying to handle '$line'\n"; + print STDERR "DEBUG[",$opts{debug_type},"]: (matches /\^",$handler->{regexp},"\$/)\n"; + } + my $saved_line = $line; + my @massaged = + map { s/(<<<|>>>)//g; $_ } + $handler->{massager}->($saved_line, \%opts); + print STDERR "DEBUG[",$opts{debug_type},"]: Got back '" + , join("', '", @massaged), "'\n" + if $opts{debug}; + + # Because we may get back new lines to be + # injected before whatever else that follows, + # and the injected stuff might include + # preprocessor lines, we need to inject them + # in @lines and set $_ to the empty string to + # break out from the inner loops + my $injected_lines = shift @massaged || ""; + + if (@massaged) { + return (1, + { + name => shift @massaged, + type => shift @massaged, + returntype => shift @massaged, + value => shift @massaged, + conds => [ @massaged ] + }, + $injected_lines + ); + } else { + print STDERR "DEBUG[",$opts{debug_type},"]: (ignore, possible side effects)\n" + if $opts{debug} && $injected_lines eq ""; + return (1, $injected_lines); + } + } + return (1); + } + } + return (0); +} From matt at openssl.org Thu Oct 4 13:25:01 2018 From: matt at openssl.org (Matt Caswell) Date: Thu, 04 Oct 2018 13:25:01 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538659501.591054.23630.nullmailer@dev.openssl.org> The branch master has been updated via 52d78cc5ebc1d4fc021cabbcb09f4efb4c6ae82d (commit) via d97ce8d9a0619c1d9d1222dc1b44dbebb58dd966 (commit) from 30699aa1943b10b265c52334d9f582c04c4eccba (commit) - Log ----------------------------------------------------------------- commit 52d78cc5ebc1d4fc021cabbcb09f4efb4c6ae82d Author: Matt Caswell Date: Wed Oct 3 15:29:47 2018 +0100 Extend the BIO callback tests to check the return value semantics Check that different return values passed to the BIO callback are correctly handled. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7344) commit d97ce8d9a0619c1d9d1222dc1b44dbebb58dd966 Author: Matt Caswell Date: Wed Oct 3 15:27:31 2018 +0100 Fix the BIO callback return code handling The BIO callback handling incorrectly wrote over the return code passed to the callback, meaning that an incorrect result was (eventually) returned to the caller. Fixes #7343 Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7344) ----------------------------------------------------------------------- Summary of changes: crypto/bio/bio_lib.c | 4 +- test/bio_callback_test.c | 117 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 91 insertions(+), 30 deletions(-) diff --git a/crypto/bio/bio_lib.c b/crypto/bio/bio_lib.c index 95eef7d..ca375b9 100644 --- a/crypto/bio/bio_lib.c +++ b/crypto/bio/bio_lib.c @@ -52,7 +52,7 @@ static long bio_call_callback(BIO *b, int oper, const char *argp, size_t len, argi = (int)len; } - if (inret && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { + if (inret > 0 && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { if (*processed > INT_MAX) return -1; inret = *processed; @@ -60,7 +60,7 @@ static long bio_call_callback(BIO *b, int oper, const char *argp, size_t len, ret = b->callback(b, oper, argp, argi, argl, inret); - if (ret >= 0 && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { + if (ret > 0 && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { *processed = (size_t)ret; ret = 1; } diff --git a/test/bio_callback_test.c b/test/bio_callback_test.c index f1712b3..8a17602 100644 --- a/test/bio_callback_test.c +++ b/test/bio_callback_test.c @@ -41,8 +41,11 @@ static int test_bio_callback(void) int ok = 0; BIO *bio; int i; - char *test1 = "test"; - char *test2 = "hello"; + char test1[] = "test"; + const int test1len = sizeof(test1) - 1; + char test2[] = "hello"; + const int test2len = sizeof(test2) - 1; + char buf[16]; my_param_count = 0; @@ -51,50 +54,108 @@ static int test_bio_callback(void) goto err; BIO_set_callback(bio, my_bio_callback); - i = BIO_write(bio, test1, 4); - if (!TEST_int_eq(i, 4) + i = BIO_write(bio, test1, test1len); + if (!TEST_int_eq(i, test1len) || !TEST_int_eq(my_param_count, 2) || !TEST_ptr_eq(my_param_b[0], bio) || !TEST_int_eq(my_param_oper[0], BIO_CB_WRITE) || !TEST_ptr_eq(my_param_argp[0], test1) - || !TEST_int_eq(my_param_argi[0], 4) + || !TEST_int_eq(my_param_argi[0], test1len) || !TEST_long_eq(my_param_argl[0], 0L) || !TEST_long_eq(my_param_ret[0], 1L) || !TEST_ptr_eq(my_param_b[1], bio) || !TEST_int_eq(my_param_oper[1], BIO_CB_WRITE | BIO_CB_RETURN) || !TEST_ptr_eq(my_param_argp[1], test1) - || !TEST_int_eq(my_param_argi[1], 4) + || !TEST_int_eq(my_param_argi[1], test1len) || !TEST_long_eq(my_param_argl[1], 0L) - || !TEST_long_eq(my_param_ret[1], 4L)) + || !TEST_long_eq(my_param_ret[1], (long)test1len)) goto err; + my_param_count = 0; + i = BIO_read(bio, buf, sizeof(buf)); + if (!TEST_mem_eq(buf, i, test1, test1len) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_READ) + || !TEST_ptr_eq(my_param_argp[0], buf) + || !TEST_int_eq(my_param_argi[0], sizeof(buf)) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], buf) + || !TEST_int_eq(my_param_argi[1], sizeof(buf)) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], (long)test1len)) + goto err; + + /* By default a mem bio returns -1 if it has run out of data */ + my_param_count = 0; + i = BIO_read(bio, buf, sizeof(buf)); + if (!TEST_int_eq(i, -1) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_READ) + || !TEST_ptr_eq(my_param_argp[0], buf) + || !TEST_int_eq(my_param_argi[0], sizeof(buf)) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], buf) + || !TEST_int_eq(my_param_argi[1], sizeof(buf)) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], -1L)) + goto err; + + /* Force the mem bio to return 0 if it has run out of data */ + BIO_set_mem_eof_return(bio, 0); + my_param_count = 0; + i = BIO_read(bio, buf, sizeof(buf)); + if (!TEST_int_eq(i, 0) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_READ) + || !TEST_ptr_eq(my_param_argp[0], buf) + || !TEST_int_eq(my_param_argi[0], sizeof(buf)) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], buf) + || !TEST_int_eq(my_param_argi[1], sizeof(buf)) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], 0L)) + goto err; + + my_param_count = 0; i = BIO_puts(bio, test2); if (!TEST_int_eq(i, 5) - || !TEST_int_eq(my_param_count, 4) - || !TEST_ptr_eq(my_param_b[2], bio) - || !TEST_int_eq(my_param_oper[2], BIO_CB_PUTS) - || !TEST_ptr_eq(my_param_argp[2], test2) - || !TEST_int_eq(my_param_argi[2], 0) - || !TEST_long_eq(my_param_argl[2], 0L) - || !TEST_long_eq(my_param_ret[2], 1L) - || !TEST_ptr_eq(my_param_b[3], bio) - || !TEST_int_eq(my_param_oper[3], BIO_CB_PUTS | BIO_CB_RETURN) - || !TEST_ptr_eq(my_param_argp[3], test2) - || !TEST_int_eq(my_param_argi[3], 0) - || !TEST_long_eq(my_param_argl[3], 0L) - || !TEST_long_eq(my_param_ret[3], 5L)) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_PUTS) + || !TEST_ptr_eq(my_param_argp[0], test2) + || !TEST_int_eq(my_param_argi[0], 0) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_PUTS | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], test2) + || !TEST_int_eq(my_param_argi[1], 0) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], (long)test2len)) goto err; + my_param_count = 0; i = BIO_free(bio); - if (!TEST_int_eq(i, 1) - || !TEST_int_eq(my_param_count, 5) - || !TEST_ptr_eq(my_param_b[4], bio) - || !TEST_int_eq(my_param_oper[4], BIO_CB_FREE) - || !TEST_ptr_eq(my_param_argp[4], NULL) - || !TEST_int_eq(my_param_argi[4], 0) - || !TEST_long_eq(my_param_argl[4], 0L) - || !TEST_long_eq(my_param_ret[4], 1L)) + || !TEST_int_eq(my_param_count, 1) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_FREE) + || !TEST_ptr_eq(my_param_argp[0], NULL) + || !TEST_int_eq(my_param_argi[0], 0) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L)) goto finish; ok = 1; From matt at openssl.org Thu Oct 4 13:26:17 2018 From: matt at openssl.org (Matt Caswell) Date: Thu, 04 Oct 2018 13:26:17 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1538659577.258713.24520.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via c11c28052f333ca2fdd921c7f356eebf98b8421a (commit) via 90893527fc72189b17f1319aa735ecd5762aa7ca (commit) from 236119c48ecaac933fc52d7cbfd8d9214d216122 (commit) - Log ----------------------------------------------------------------- commit c11c28052f333ca2fdd921c7f356eebf98b8421a Author: Matt Caswell Date: Wed Oct 3 15:29:47 2018 +0100 Extend the BIO callback tests to check the return value semantics Check that different return values passed to the BIO callback are correctly handled. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7344) (cherry picked from commit 52d78cc5ebc1d4fc021cabbcb09f4efb4c6ae82d) commit 90893527fc72189b17f1319aa735ecd5762aa7ca Author: Matt Caswell Date: Wed Oct 3 15:27:31 2018 +0100 Fix the BIO callback return code handling The BIO callback handling incorrectly wrote over the return code passed to the callback, meaning that an incorrect result was (eventually) returned to the caller. Fixes #7343 Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7344) (cherry picked from commit d97ce8d9a0619c1d9d1222dc1b44dbebb58dd966) ----------------------------------------------------------------------- Summary of changes: crypto/bio/bio_lib.c | 4 +- test/bio_callback_test.c | 117 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 91 insertions(+), 30 deletions(-) diff --git a/crypto/bio/bio_lib.c b/crypto/bio/bio_lib.c index 95eef7d..ca375b9 100644 --- a/crypto/bio/bio_lib.c +++ b/crypto/bio/bio_lib.c @@ -52,7 +52,7 @@ static long bio_call_callback(BIO *b, int oper, const char *argp, size_t len, argi = (int)len; } - if (inret && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { + if (inret > 0 && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { if (*processed > INT_MAX) return -1; inret = *processed; @@ -60,7 +60,7 @@ static long bio_call_callback(BIO *b, int oper, const char *argp, size_t len, ret = b->callback(b, oper, argp, argi, argl, inret); - if (ret >= 0 && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { + if (ret > 0 && (oper & BIO_CB_RETURN) && bareoper != BIO_CB_CTRL) { *processed = (size_t)ret; ret = 1; } diff --git a/test/bio_callback_test.c b/test/bio_callback_test.c index f1712b3..8a17602 100644 --- a/test/bio_callback_test.c +++ b/test/bio_callback_test.c @@ -41,8 +41,11 @@ static int test_bio_callback(void) int ok = 0; BIO *bio; int i; - char *test1 = "test"; - char *test2 = "hello"; + char test1[] = "test"; + const int test1len = sizeof(test1) - 1; + char test2[] = "hello"; + const int test2len = sizeof(test2) - 1; + char buf[16]; my_param_count = 0; @@ -51,50 +54,108 @@ static int test_bio_callback(void) goto err; BIO_set_callback(bio, my_bio_callback); - i = BIO_write(bio, test1, 4); - if (!TEST_int_eq(i, 4) + i = BIO_write(bio, test1, test1len); + if (!TEST_int_eq(i, test1len) || !TEST_int_eq(my_param_count, 2) || !TEST_ptr_eq(my_param_b[0], bio) || !TEST_int_eq(my_param_oper[0], BIO_CB_WRITE) || !TEST_ptr_eq(my_param_argp[0], test1) - || !TEST_int_eq(my_param_argi[0], 4) + || !TEST_int_eq(my_param_argi[0], test1len) || !TEST_long_eq(my_param_argl[0], 0L) || !TEST_long_eq(my_param_ret[0], 1L) || !TEST_ptr_eq(my_param_b[1], bio) || !TEST_int_eq(my_param_oper[1], BIO_CB_WRITE | BIO_CB_RETURN) || !TEST_ptr_eq(my_param_argp[1], test1) - || !TEST_int_eq(my_param_argi[1], 4) + || !TEST_int_eq(my_param_argi[1], test1len) || !TEST_long_eq(my_param_argl[1], 0L) - || !TEST_long_eq(my_param_ret[1], 4L)) + || !TEST_long_eq(my_param_ret[1], (long)test1len)) goto err; + my_param_count = 0; + i = BIO_read(bio, buf, sizeof(buf)); + if (!TEST_mem_eq(buf, i, test1, test1len) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_READ) + || !TEST_ptr_eq(my_param_argp[0], buf) + || !TEST_int_eq(my_param_argi[0], sizeof(buf)) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], buf) + || !TEST_int_eq(my_param_argi[1], sizeof(buf)) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], (long)test1len)) + goto err; + + /* By default a mem bio returns -1 if it has run out of data */ + my_param_count = 0; + i = BIO_read(bio, buf, sizeof(buf)); + if (!TEST_int_eq(i, -1) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_READ) + || !TEST_ptr_eq(my_param_argp[0], buf) + || !TEST_int_eq(my_param_argi[0], sizeof(buf)) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], buf) + || !TEST_int_eq(my_param_argi[1], sizeof(buf)) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], -1L)) + goto err; + + /* Force the mem bio to return 0 if it has run out of data */ + BIO_set_mem_eof_return(bio, 0); + my_param_count = 0; + i = BIO_read(bio, buf, sizeof(buf)); + if (!TEST_int_eq(i, 0) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_READ) + || !TEST_ptr_eq(my_param_argp[0], buf) + || !TEST_int_eq(my_param_argi[0], sizeof(buf)) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_READ | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], buf) + || !TEST_int_eq(my_param_argi[1], sizeof(buf)) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], 0L)) + goto err; + + my_param_count = 0; i = BIO_puts(bio, test2); if (!TEST_int_eq(i, 5) - || !TEST_int_eq(my_param_count, 4) - || !TEST_ptr_eq(my_param_b[2], bio) - || !TEST_int_eq(my_param_oper[2], BIO_CB_PUTS) - || !TEST_ptr_eq(my_param_argp[2], test2) - || !TEST_int_eq(my_param_argi[2], 0) - || !TEST_long_eq(my_param_argl[2], 0L) - || !TEST_long_eq(my_param_ret[2], 1L) - || !TEST_ptr_eq(my_param_b[3], bio) - || !TEST_int_eq(my_param_oper[3], BIO_CB_PUTS | BIO_CB_RETURN) - || !TEST_ptr_eq(my_param_argp[3], test2) - || !TEST_int_eq(my_param_argi[3], 0) - || !TEST_long_eq(my_param_argl[3], 0L) - || !TEST_long_eq(my_param_ret[3], 5L)) + || !TEST_int_eq(my_param_count, 2) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_PUTS) + || !TEST_ptr_eq(my_param_argp[0], test2) + || !TEST_int_eq(my_param_argi[0], 0) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L) + || !TEST_ptr_eq(my_param_b[1], bio) + || !TEST_int_eq(my_param_oper[1], BIO_CB_PUTS | BIO_CB_RETURN) + || !TEST_ptr_eq(my_param_argp[1], test2) + || !TEST_int_eq(my_param_argi[1], 0) + || !TEST_long_eq(my_param_argl[1], 0L) + || !TEST_long_eq(my_param_ret[1], (long)test2len)) goto err; + my_param_count = 0; i = BIO_free(bio); - if (!TEST_int_eq(i, 1) - || !TEST_int_eq(my_param_count, 5) - || !TEST_ptr_eq(my_param_b[4], bio) - || !TEST_int_eq(my_param_oper[4], BIO_CB_FREE) - || !TEST_ptr_eq(my_param_argp[4], NULL) - || !TEST_int_eq(my_param_argi[4], 0) - || !TEST_long_eq(my_param_argl[4], 0L) - || !TEST_long_eq(my_param_ret[4], 1L)) + || !TEST_int_eq(my_param_count, 1) + || !TEST_ptr_eq(my_param_b[0], bio) + || !TEST_int_eq(my_param_oper[0], BIO_CB_FREE) + || !TEST_ptr_eq(my_param_argp[0], NULL) + || !TEST_int_eq(my_param_argi[0], 0) + || !TEST_long_eq(my_param_argl[0], 0L) + || !TEST_long_eq(my_param_ret[0], 1L)) goto finish; ok = 1; From no-reply at appveyor.com Thu Oct 4 15:59:02 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 15:59:02 +0000 Subject: [openssl-commits] Build failed: openssl master.20199 Message-ID: <20181004155902.1.1968781A45227BC4@appveyor.com> An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Thu Oct 4 17:29:55 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 17:29:55 +0000 Subject: [openssl-commits] Build failed: openssl master.20200 Message-ID: <20181004172955.1.B053EC4F7C7C43AD@appveyor.com> An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Thu Oct 4 19:08:51 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 19:08:51 +0000 Subject: [openssl-commits] Build failed: openssl master.20201 Message-ID: <20181004190851.1.2CE0E6B25FDB436E@appveyor.com> An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Thu Oct 4 20:01:33 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 20:01:33 +0000 Subject: [openssl-commits] Build completed: openssl master.20202 Message-ID: <20181004200133.1.8CB766A2D863D39E@appveyor.com> An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Thu Oct 4 23:52:30 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 04 Oct 2018 23:52:30 +0000 Subject: [openssl-commits] Build failed: openssl master.20208 Message-ID: <20181004235230.1.099F97E39C2062CC@appveyor.com> An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Fri Oct 5 00:27:56 2018 From: no-reply at appveyor.com (AppVeyor) Date: Fri, 05 Oct 2018 00:27:56 +0000 Subject: [openssl-commits] Build completed: openssl master.20209 Message-ID: <20181005002756.1.3E1A3076F27FD2EB@appveyor.com> An HTML attachment was scrubbed... URL: From levitte at openssl.org Fri Oct 5 06:23:01 2018 From: levitte at openssl.org (Richard Levitte) Date: Fri, 05 Oct 2018 06:23:01 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538720581.245622.5062.nullmailer@dev.openssl.org> The branch master has been updated via 36d3acb91d5d2f0308ab93be9ce5609f784f95a2 (commit) via 05a72c28b20c665206a6c6793cbcc10b8d74a526 (commit) via 66a24ab86816c240279d238aca41c68d57ead35c (commit) via ed57d89bd18f6f4b3db52567f9a718c31d717aa8 (commit) via 97624638b02f056ac49517db93bb349b614cc810 (commit) from 52d78cc5ebc1d4fc021cabbcb09f4efb4c6ae82d (commit) - Log ----------------------------------------------------------------- commit 36d3acb91d5d2f0308ab93be9ce5609f784f95a2 Author: Richard Levitte Date: Fri Oct 5 00:10:35 2018 +0200 util/mkdef.pl: for VMS, allow generation of case insensitive symbol vector Some modules are built with case insensitive (uppercase) symbols on VMS. This needs to be reflected in the export symbol vector. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7347) commit 05a72c28b20c665206a6c6793cbcc10b8d74a526 Author: Richard Levitte Date: Thu Oct 4 17:41:51 2018 +0200 Configure: use correct variable to infer the .ld file location We didn't notice the error because it all happened in the top directory. Now that we use .ld files in subdirectories, the bug became apparent. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7347) commit 66a24ab86816c240279d238aca41c68d57ead35c Author: Richard Levitte Date: Thu Oct 4 17:41:12 2018 +0200 Add build file support for generic symbol exports with DSOs Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7347) commit ed57d89bd18f6f4b3db52567f9a718c31d717aa8 Author: Richard Levitte Date: Thu Oct 4 17:40:33 2018 +0200 Change the build of engines to use ordinal files for symbol export Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7347) commit 97624638b02f056ac49517db93bb349b614cc810 Author: Richard Levitte Date: Thu Oct 4 17:14:13 2018 +0200 util/mkdef.pl: Produce version scripts from unversioned symbols This allows setting up export maps for DSOs as well in a uniform way. This also means that util/mkdef.pl no longer picks up the target version from configdata.pm, and it has to be given on the command line instead. This may be used to give modules separate versions as well, if desirable. Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7347) ----------------------------------------------------------------------- Summary of changes: Configurations/common.tmpl | 9 ++- Configurations/descrip.mms.tmpl | 31 +++++--- Configurations/unix-Makefile.tmpl | 17 +++-- Configurations/windows-makefile.tmpl | 25 ++++--- Configure | 2 +- engines/build.info | 20 ++++++ util/engines.num | 2 + util/mkdef.pl | 134 ++++++++++++++++++++++------------- 8 files changed, 164 insertions(+), 76 deletions(-) create mode 100644 util/engines.num diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl index dffa513..c1c96a2 100644 --- a/Configurations/common.tmpl +++ b/Configurations/common.tmpl @@ -78,6 +78,7 @@ if ref $unified_info{generate}->{$src} eq ""; my $script = $unified_info{generate}->{$src}->[0]; $OUT .= generatesrc(src => $src, + product => $bin, generator => $unified_info{generate}->{$src}, generator_incs => $unified_info{includes}->{$script}, generator_deps => $unified_info{depends}->{$script}, @@ -159,7 +160,13 @@ deps => [ resolvedepends($lib) ], installed => is_installed($lib)); foreach (@{$unified_info{shared_sources}->{$lib}}) { - doobj($_, $lib, intent => "dso", installed => is_installed($lib)); + # If this is somehow a compiled object, take care of it that way + # Otherwise, it might simply be generated + if (defined $unified_info{sources}->{$_}) { + doobj($_, $lib, intent => "dso", installed => is_installed($lib)); + } else { + dogenerate($_, undef, $lib, intent => "dso"); + } } $cache{$lib} = 1; } diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index c5dee22..44b22ed 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -758,9 +758,15 @@ reconfigure reconf : if ($args{src} =~ /\.ld$/) { (my $target = $args{src}) =~ s/\.ld$/.OPT/; my $mkdef = sourcefile('util', 'mkdef.pl'); + my $ord_ver = $args{intent} eq 'lib' ? ' --version $(VERSION)' : ''; + my $ord_name = + $args{generator}->[1] || basename($args{product}, '.EXE'); + my $case_insensitive = + $target{$args{intent}.'_cflags'} =~ m|/NAMES=[^/]*AS_IS|i + ? '' : ' --case-insensitive'; return <<"EOF"; -$target : $args{generator}->[0] $deps - \$(PERL) $mkdef --ordinals $args{generator}->[0] --name $args{generator}->[1] "--OS" "VMS" > $target +$target : $args{generator}->[0] $deps $mkdef + \$(PERL) $mkdef$ord_ver --ordinals $args{generator}->[0] --name $ord_name "--OS" "VMS"$case_insensitive > $target EOF } elsif ($target !~ /\.[sS]$/) { my $target = $args{src}; @@ -925,7 +931,7 @@ EOF grep { $_ =~ m|\.o$| } @{$args{objs}}; my @defs = map { (my $x = $_) =~ s|\.ld$|.OPT|; $x } - grep { $_ =~ /\.ld$/ } + grep { $_ =~ m|\.ld$| } @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); die "More than one symbol vector" if scalar @defs > 1; @@ -971,13 +977,16 @@ EOF my $libd = dirname($lib); my $libn = basename($lib); (my $libn_nolib = $libn) =~ s/^lib//; - my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x } @{$args{objs}}; + my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x } + grep { $_ =~ m|\.o$| } + @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$|.OPT|; $x } + grep { $_ =~ m|\.ld$| } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); - my $deps = join(", -\n\t\t", @objs, @deps); + my $deps = join(", -\n\t\t", @objs, @defs, @deps); + die "More than one symbol vector" if scalar @defs > 1; my $shlib_target = $disabled{shared} ? "" : $target{shared_target}; - my $engine_opt = abs2rel(rel2abs(catfile($config{sourcedir}, - "VMS", "engine.opt")), - rel2abs($config{builddir})); # The "[]" hack is because in .OPT files, each line inherits the # previous line's file spec as default, so if no directory spec # is present in the current line and the previous line has one that @@ -994,12 +1003,12 @@ EOF || "\@ !"; return <<"EOF" $lib.EXE : $deps - OPEN/WRITE/SHARE=READ OPT_FILE $lib.OPT - TYPE $engine_opt /OUTPUT=OPT_FILE: + OPEN/WRITE/SHARE=READ OPT_FILE $lib-components.OPT $write_opt1 $write_opt2 CLOSE OPT_FILE - LINK \$(DSO_LDFLAGS)/SHARE=\$\@ $lib.OPT/OPT \$(DSO_EX_LIBS) + LINK \$(DSO_LDFLAGS)/SHARE=\$\@ $defs[0]/OPT,- + $lib-components.OPT/OPT \$(DSO_EX_LIBS) - PURGE $lib.EXE,$lib.OPT,$lib.MAP EOF . ($config{target} =~ m|alpha| ? "" : <<"EOF" diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 662fb05..3f76c59 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -1001,9 +1001,12 @@ reconfigure reconf: if ($args{src} =~ /\.ld$/) { (my $target = $args{src}) =~ s/\.ld$/${defext}/; (my $mkdef_os = $target{shared_target}) =~ s|-shared$||; + my $ord_ver = $args{intent} eq 'lib' ? ' --version $(VERSION)' : ''; + my $ord_name = + $args{generator}->[1] || basename($args{product}, $dsoext); return <<"EOF"; -$target: $args{generator}->[0] $deps - \$(PERL) \$(SRCDIR)/util/mkdef.pl --ordinals $args{generator}->[0] --name $args{generator}->[1] --OS $mkdef_os > $target +$target: $args{generator}->[0] $deps \$(SRCDIR)/util/mkdef.pl + \$(PERL) \$(SRCDIR)/util/mkdef.pl$ord_ver --ordinals $args{generator}->[0] --name $ord_name --OS $mkdef_os > $target EOF } elsif ($args{src} !~ /\.[sS]$/) { if ($args{generator}->[0] =~ m|^.*\.in$|) { @@ -1222,14 +1225,18 @@ EOF my @objs = map { (my $x = $_) =~ s|\.o$||; "$x$objext" } grep { $_ !~ m/\.ld$/ } @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$||; "$x$defext" } + grep { $_ =~ /\.ld$/ } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); my $objs = join(" ", @objs); - my $deps = join(" ", @deps); + my $deps = join(" ", @objs, @defs, @deps); my $target = dso($dso); + my $shared_def = join("", map { ' '.$target{shared_defflag}.$_ } @defs); return <<"EOF"; -$target: $objs $deps +$target: $deps \$(CC) \$(DSO_CFLAGS) $linkflags\$(DSO_LDFLAGS) \\ - -o $target $objs \\ + -o $target$shared_def $objs \\ $linklibs \$(DSO_EX_LIBS) EOF } diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 46f564d..6ab298e 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -512,9 +512,12 @@ reconfigure reconf: my $mkdef = abs2rel(rel2abs(catfile($config{sourcedir}, "util", "mkdef.pl")), rel2abs($config{builddir})); + my $ord_ver = $args{intent} eq 'lib' ? ' --version $(VERSION)' : ''; + my $ord_name = + $args{generator}->[1] || basename($args{product}, $dsoext); return <<"EOF"; -$target: $args{generator}->[0] $deps - \$(PERL) $mkdef --ordinals $args{generator}->[0] --name $args{generator}->[1] --OS windows > $target +$target: $args{generator}->[0] $deps $mkdef + \$(PERL) $mkdef$ord_ver --ordinals $args{generator}->[0] --name $ord_name --OS windows > $target EOF } elsif ($args{src} !~ /\.[sS]$/) { my $target = $args{src}; @@ -670,20 +673,22 @@ EOF my %args = @_; my $dso = $args{lib}; my $dso_n = basename($dso); - my @objs = map { (my $x = $_) =~ s|\.o$|$objext|; $x } @{$args{objs}}; + my @objs = map { (my $x = $_) =~ s|\.o$|$objext|; $x } + grep { $_ =~ m/\.(?:o|res)$/ } + @{$args{objs}}; + my @defs = map { (my $x = $_) =~ s|\.ld$|$defext|; $x } + grep { $_ =~ /\.ld$/ } + @{$args{objs}}; my @deps = compute_lib_depends(@{$args{deps}}); my $objs = join("\n", @objs); my $linklibs = join("", map { "$_\n" } @deps); - my $deps = join(" ", @objs, @deps); + my $deps = join(" ", @objs, @defs, @deps); + my $shared_def = join("", map { " /def:$_" } @defs); return <<"EOF"; $dso$dsoext: $deps IF EXIST $dso$dsoext.manifest DEL /F /Q $dso$dsoext.manifest - \$(LD) \$(LDFLAGS) \$(DSO_LDFLAGS) \$(LDOUTFLAG)$dso$dsoext /def:<< @<< -LIBRARY $dso_n -EXPORTS - bind_engine @1 - v_check @2 -<< + \$(LD) \$(LDFLAGS) \$(DSO_LDFLAGS) \\ + \$(LDOUTFLAG)$dso$dsoext$shared_def @<< || (DEL /Q \$(\@B).* $dso.* && EXIT 1) $objs $linklibs \$(DSO_EX_LIBS) << diff --git a/Configure b/Configure index de4ca68..2e81640 100755 --- a/Configure +++ b/Configure @@ -2079,7 +2079,7 @@ EOF } elsif ($s =~ /\.ld$/) { # We also recognise linker scripts (or corresponding) # We know they are generated files - my $ld = cleanfile($buildd, $s, $blddir); + my $ld = cleanfile($buildd, $_, $blddir); $unified_info{shared_sources}->{$ddest}->{$ld} = 1; } else { die "unrecognised source file type for shared library: $s\n"; diff --git a/engines/build.info b/engines/build.info index df173ea..5373006 100644 --- a/engines/build.info +++ b/engines/build.info @@ -15,26 +15,46 @@ IF[{- !$disabled{"engine"} -}] SOURCE[padlock]=e_padlock.c {- $target{padlock_asm_src} -} DEPEND[padlock]=../libcrypto INCLUDE[padlock]=../include + IF[{- defined $target{shared_defflag} -}] + SHARED_SOURCE[padlock]=padlock.ld + GENERATE[padlock.ld]=../util/engines.num + ENDIF IF[{- !$disabled{capieng} -}] ENGINES=capi SOURCE[capi]=e_capi.c DEPEND[capi]=../libcrypto INCLUDE[capi]=../include + IF[{- defined $target{shared_defflag} -}] + SHARED_SOURCE[capi]=capi.ld + GENERATE[capi.ld]=../util/engines.num + ENDIF ENDIF IF[{- !$disabled{afalgeng} -}] ENGINES=afalg SOURCE[afalg]=e_afalg.c DEPEND[afalg]=../libcrypto INCLUDE[afalg]= ../include + IF[{- defined $target{shared_defflag} -}] + SHARED_SOURCE[afalg]=afalg.ld + GENERATE[afalg.ld]=../util/engines.num + ENDIF ENDIF ENGINES_NO_INST=ossltest dasync SOURCE[dasync]=e_dasync.c DEPEND[dasync]=../libcrypto INCLUDE[dasync]=../include + IF[{- defined $target{shared_defflag} -}] + SHARED_SOURCE[dasync]=dasync.ld + GENERATE[dasync.ld]=../util/engines.num + ENDIF SOURCE[ossltest]=e_ossltest.c DEPEND[ossltest]=../libcrypto INCLUDE[ossltest]=../include + IF[{- defined $target{shared_defflag} -}] + SHARED_SOURCE[ossltest]=ossltest.ld + GENERATE[ossltest.ld]=../util/engines.num + ENDIF ENDIF GENERATE[e_padlock-x86.s]=asm/e_padlock-x86.pl \ diff --git a/util/engines.num b/util/engines.num new file mode 100644 index 0000000..4fc4e00 --- /dev/null +++ b/util/engines.num @@ -0,0 +1,2 @@ +bind_engine 1 * EXIST::FUNCTION: +v_check 2 * EXIST::FUNCTION: diff --git a/util/mkdef.pl b/util/mkdef.pl index 959a13d..635e3e9 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -23,15 +23,22 @@ use configdata; my $name = undef; # internal library/module name my $ordinals_file = undef; # the ordinals file to use +my $version = undef; # the version to use for the library my $OS = undef; # the operating system family my $verbose = 0; my $ctest = 0; +# For VMS, some modules may have case insensitive names +my $case_insensitive = 0; + GetOptions('name=s' => \$name, 'ordinals=s' => \$ordinals_file, + 'version=s' => \$version, 'OS=s' => \$OS, 'ctest' => \$ctest, - 'verbose' => \$verbose) + 'verbose' => \$verbose, + # For VMS + 'case-insensitive' => \$case_insensitive) or die "Error in command line arguments\n"; die "Please supply arguments\n" @@ -231,20 +238,29 @@ sub sorter_linux { sub writer_linux { my $thisversion = ''; - my $prevversion = ''; + my $currversion_s = ''; + my $prevversion_s = ''; + my $indent = 0; for (@_) { if ($thisversion && $_->version() ne $thisversion) { + die "$ordinals_file: It doesn't make sense to have both versioned ", + "and unversioned symbols" + if $thisversion eq '*'; print <<"_____"; -}$prevversion; +}${prevversion_s}; _____ - $prevversion = " OPENSSL${SO_VARIANT}_$thisversion"; + $prevversion_s = " OPENSSL${SO_VARIANT}_$thisversion"; $thisversion = ''; # Trigger start of next section } unless ($thisversion) { + $indent = 0; $thisversion = $_->version(); + $currversion_s = ''; + $currversion_s = "OPENSSL${SO_VARIANT}_$thisversion " + if $thisversion ne '*'; print <<"_____"; -OPENSSL${SO_VARIANT}_$thisversion { +${currversion_s}{ global: _____ } @@ -253,7 +269,7 @@ _____ print <<"_____"; local: *; -}$prevversion; +}${prevversion_s}; _____ } @@ -278,36 +294,51 @@ _____ } } +sub collect_VMS_mixedcase { + return [ 'SPARE', 'SPARE' ] unless @_; + + my $s = shift; + my $s_uc = uc($s); + my $type = shift; + + return [ "$s=$type", 'SPARE' ] if $s_uc eq $s; + return [ "$s_uc/$s=$type", "$s=$type" ]; +} + +sub collect_VMS_uppercase { + return [ 'SPARE' ] unless @_; + + my $s = shift; + my $s_uc = uc($s); + my $type = shift; + + return [ "$s_uc=$type" ]; +} + sub writer_VMS { my @slot_collection = (); - my $write_vector_slot_pair = - sub { - my $slot1 = shift; - my $slot2 = shift; - my $slotpair_text = " $slot1, -\n $slot2, -\n" - }; + my $collector = + $case_insensitive ? \&collect_VMS_uppercase : \&collect_VMS_mixedcase; my $last_num = 0; foreach (@_) { while (++$last_num < $_->number()) { - push @slot_collection, [ 'SPARE', 'SPARE' ]; + push @slot_collection, $collector->(); # Just occupy a slot } my $type = { FUNCTION => 'PROCEDURE', VARIABLE => 'DATA' } -> {$_->type()}; - my $s = $_->name(); - my $s_uc = uc($s); - if ($s_uc eq $s) { - push @slot_collection, [ "$s=$type", 'SPARE' ]; - } else { - push @slot_collection, [ "$s_uc/$s=$type", "$s=$type" ]; - } + push @slot_collection, $collector->($_->name(), $type); } - print <<"_____"; -IDENTIFICATION=$config{version} + print <<"_____" if defined $version; +IDENTIFICATION=$version +_____ + print <<"_____" unless $case_insensitive; CASE_SENSITIVE=YES +_____ + print <<"_____"; SYMBOL_VECTOR=(- _____ # It's uncertain how long aggregated lines the linker can handle, @@ -317,18 +348,19 @@ _____ # can have more than one of those... my $symvtextcount = 16; # The length of "SYMBOL_VECTOR=(" while (@slot_collection) { - my $pair = shift @slot_collection; - my $pairtextlength = - 2 # one space indentation and comma - + length($pair->[0]) - + 1 # postdent - + 3 # two space indentation and comma - + length($pair->[1]) - + 1 # postdent - ; + my $set = shift @slot_collection; + my $settextlength = 0; + foreach (@$set) { + $settextlength += + + 3 # two space indentation and comma + + length($_) + + 1 # postdent + ; + } + $settextlength--; # only one space indentation on the first one my $firstcomma = ','; - if ($symvtextcount + $pairtextlength > 1024) { + if ($symvtextcount + $settextlength > 1024) { print <<"_____"; ) SYMBOL_VECTOR=(- @@ -338,30 +370,36 @@ _____ if ($symvtextcount == 16) { $firstcomma = ''; } - print <<"_____"; - $firstcomma$pair->[0] - - ,$pair->[1] - + + my $indent = ' '.$firstcomma; + foreach (@$set) { + print <<"_____"; +$indent$_ - _____ - $symvtextcount += $pairtextlength; + $symvtextcount += length($indent) + length($_) + 1; + $indent = ' ,'; + } } print <<"_____"; ) _____ - my ($libvmajor, $libvminor, $libvedit, $libvpatch) = - $config{version} =~ /^(\d+)_(\d+)_(\d+)([a-z]{0,2})-.*$/; - my $libvpatchnum = 0; - for (split '', $libvpatch // '') { - $libvpatchnum += ord(lc($_)) - 96; - # To compensate because the letter 'z' is always followed by another, - # i.e. doesn't add any value on its own - $libvpatchnum-- if lc($_) eq 'z'; - } - my $match1 = $libvmajor * 100 + $libvminor; - my $match2 = $libvedit * 100 + $libvpatchnum; - print <<"_____"; + if (defined $version) { + my ($libvmajor, $libvminor, $libvedit, $libvpatch) = + $version =~ /^(\d+)_(\d+)_(\d+)([a-z]{0,2})(?:-.*)?$/; + my $libvpatchnum = 0; + for (split '', $libvpatch // '') { + $libvpatchnum += ord(lc($_)) - 96; + # To compensate because the letter 'z' is always followed by + # another, i.e. doesn't add any value on its own + $libvpatchnum-- if lc($_) eq 'z'; + } + my $match1 = $libvmajor * 100 + $libvminor; + my $match2 = $libvedit * 100 + $libvpatchnum; + print <<"_____"; GSMATCH=LEQUAL,$match1,$match2 _____ + } } sub writer_ctest { From matthias.st.pierre at ncp-e.com Fri Oct 5 10:22:46 2018 From: matthias.st.pierre at ncp-e.com (matthias.st.pierre at ncp-e.com) Date: Fri, 05 Oct 2018 10:22:46 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538734966.388414.26765.nullmailer@dev.openssl.org> The branch master has been updated via 8529b156421805415bc7b17758255394de580c61 (commit) from 36d3acb91d5d2f0308ab93be9ce5609f784f95a2 (commit) - Log ----------------------------------------------------------------- commit 8529b156421805415bc7b17758255394de580c61 Author: Dr. Matthias St. Pierre Date: Fri Oct 5 01:05:54 2018 +0200 test/secmemtest: test secure memory only if it is implemented Fixes #7322 Reviewed-by: Paul Dale Reviewed-by: Bernd Edlinger (Merged from https://github.com/openssl/openssl/pull/7351) ----------------------------------------------------------------------- Summary of changes: crypto/mem_sec.c | 50 +++++++++++++++++++++++--------------------------- e_os.h | 13 ++++++++++--- test/secmemtest.c | 9 ++++++--- 3 files changed, 39 insertions(+), 33 deletions(-) diff --git a/crypto/mem_sec.c b/crypto/mem_sec.c index c4190be..9e0f670 100644 --- a/crypto/mem_sec.c +++ b/crypto/mem_sec.c @@ -20,12 +20,8 @@ #include -/* e_os.h includes unistd.h, which defines _POSIX_VERSION */ -#if !defined(OPENSSL_NO_SECURE_MEMORY) && defined(OPENSSL_SYS_UNIX) \ - && ( (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) \ - || defined(__sun) || defined(__hpux) || defined(__sgi) \ - || defined(__osf__) ) -# define IMPLEMENTED +/* e_os.h defines OPENSSL_SECURE_MEMORY if secure memory can be implemented */ +#ifdef OPENSSL_SECURE_MEMORY # include # include # include @@ -51,7 +47,7 @@ # define MAP_ANON MAP_ANONYMOUS #endif -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY static size_t secure_mem_used; static int secure_mem_initialized; @@ -71,7 +67,7 @@ static int sh_allocated(const char *ptr); int CRYPTO_secure_malloc_init(size_t size, int minsize) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY int ret = 0; if (!secure_mem_initialized) { @@ -89,12 +85,12 @@ int CRYPTO_secure_malloc_init(size_t size, int minsize) return ret; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } int CRYPTO_secure_malloc_done(void) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY if (secure_mem_used == 0) { sh_done(); secure_mem_initialized = 0; @@ -102,22 +98,22 @@ int CRYPTO_secure_malloc_done(void) sec_malloc_lock = NULL; return 1; } -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ return 0; } int CRYPTO_secure_malloc_initialized(void) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY return secure_mem_initialized; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } void *CRYPTO_secure_malloc(size_t num, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY void *ret; size_t actual_size; @@ -132,12 +128,12 @@ void *CRYPTO_secure_malloc(size_t num, const char *file, int line) return ret; #else return CRYPTO_malloc(num, file, line); -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } void *CRYPTO_secure_zalloc(size_t num, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY if (secure_mem_initialized) /* CRYPTO_secure_malloc() zeroes allocations when it is implemented */ return CRYPTO_secure_malloc(num, file, line); @@ -147,7 +143,7 @@ void *CRYPTO_secure_zalloc(size_t num, const char *file, int line) void CRYPTO_secure_free(void *ptr, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY size_t actual_size; if (ptr == NULL) @@ -164,13 +160,13 @@ void CRYPTO_secure_free(void *ptr, const char *file, int line) CRYPTO_THREAD_unlock(sec_malloc_lock); #else CRYPTO_free(ptr, file, line); -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY size_t actual_size; if (ptr == NULL) @@ -191,12 +187,12 @@ void CRYPTO_secure_clear_free(void *ptr, size_t num, return; OPENSSL_cleanse(ptr, num); CRYPTO_free(ptr, file, line); -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } int CRYPTO_secure_allocated(const void *ptr) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY int ret; if (!secure_mem_initialized) @@ -207,21 +203,21 @@ int CRYPTO_secure_allocated(const void *ptr) return ret; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } size_t CRYPTO_secure_used(void) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY return secure_mem_used; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } size_t CRYPTO_secure_actual_size(void *ptr) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY size_t actual_size; CRYPTO_THREAD_write_lock(sec_malloc_lock); @@ -239,7 +235,7 @@ size_t CRYPTO_secure_actual_size(void *ptr) /* * SECURE HEAP IMPLEMENTATION */ -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY /* @@ -647,4 +643,4 @@ static size_t sh_actual_size(char *ptr) OPENSSL_assert(sh_testbit(ptr, list, sh.bittable)); return sh.arena_size / (ONE << list); } -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ diff --git a/e_os.h b/e_os.h index 8991e62..5340593 100644 --- a/e_os.h +++ b/e_os.h @@ -317,8 +317,15 @@ struct servent *getservbyname(const char *name, const char *proto); # endif /* end vxworks */ -#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -# define CRYPTO_memcmp memcmp -#endif +# ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define CRYPTO_memcmp memcmp +# endif +/* unistd.h defines _POSIX_VERSION */ +# if !defined(OPENSSL_NO_SECURE_MEMORY) && defined(OPENSSL_SYS_UNIX) \ + && ( (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) \ + || defined(__sun) || defined(__hpux) || defined(__sgi) \ + || defined(__osf__) ) +# define OPENSSL_SECURE_MEMORY /* secure memory is implemented */ +# endif #endif diff --git a/test/secmemtest.c b/test/secmemtest.c index 37c4b8f..42aeb5d 100644 --- a/test/secmemtest.c +++ b/test/secmemtest.c @@ -10,13 +10,16 @@ #include #include "testutil.h" +#include "../e_os.h" static int test_sec_mem(void) { -#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX) +#ifdef OPENSSL_SECURE_MEMORY int testresult = 0; char *p = NULL, *q = NULL, *r = NULL, *s = NULL; + TEST_info("Secure memory is implemented."); + s = OPENSSL_secure_malloc(20); /* s = non-secure 20 */ if (!TEST_ptr(s) @@ -124,6 +127,7 @@ static int test_sec_mem(void) OPENSSL_secure_free(s); return testresult; #else + TEST_info("Secure memory is *not* implemented."); /* Should fail. */ return TEST_false(CRYPTO_secure_malloc_init(4096, 32)); #endif @@ -131,7 +135,7 @@ static int test_sec_mem(void) static int test_sec_mem_clear(void) { -#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX) +#ifdef OPENSSL_SECURE_MEMORY const int size = 64; unsigned char *p = NULL; int i, res = 0; @@ -162,7 +166,6 @@ static int test_sec_mem_clear(void) res = 1; p = NULL; - err: OPENSSL_secure_free(p); CRYPTO_secure_malloc_done(); From matthias.st.pierre at ncp-e.com Fri Oct 5 10:23:53 2018 From: matthias.st.pierre at ncp-e.com (matthias.st.pierre at ncp-e.com) Date: Fri, 05 Oct 2018 10:23:53 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1538735033.277049.27700.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via 5e130ae6328a4553eaafd7df22a3dcbca1b818b3 (commit) from c11c28052f333ca2fdd921c7f356eebf98b8421a (commit) - Log ----------------------------------------------------------------- commit 5e130ae6328a4553eaafd7df22a3dcbca1b818b3 Author: Dr. Matthias St. Pierre Date: Fri Oct 5 01:05:54 2018 +0200 test/secmemtest: test secure memory only if it is implemented Fixes #7322 Reviewed-by: Paul Dale Reviewed-by: Bernd Edlinger (Merged from https://github.com/openssl/openssl/pull/7351) (cherry picked from commit 8529b156421805415bc7b17758255394de580c61) ----------------------------------------------------------------------- Summary of changes: crypto/mem_sec.c | 50 +++++++++++++++++++++++--------------------------- e_os.h | 13 ++++++++++--- test/secmemtest.c | 9 ++++++--- 3 files changed, 39 insertions(+), 33 deletions(-) diff --git a/crypto/mem_sec.c b/crypto/mem_sec.c index c4190be..9e0f670 100644 --- a/crypto/mem_sec.c +++ b/crypto/mem_sec.c @@ -20,12 +20,8 @@ #include -/* e_os.h includes unistd.h, which defines _POSIX_VERSION */ -#if !defined(OPENSSL_NO_SECURE_MEMORY) && defined(OPENSSL_SYS_UNIX) \ - && ( (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) \ - || defined(__sun) || defined(__hpux) || defined(__sgi) \ - || defined(__osf__) ) -# define IMPLEMENTED +/* e_os.h defines OPENSSL_SECURE_MEMORY if secure memory can be implemented */ +#ifdef OPENSSL_SECURE_MEMORY # include # include # include @@ -51,7 +47,7 @@ # define MAP_ANON MAP_ANONYMOUS #endif -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY static size_t secure_mem_used; static int secure_mem_initialized; @@ -71,7 +67,7 @@ static int sh_allocated(const char *ptr); int CRYPTO_secure_malloc_init(size_t size, int minsize) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY int ret = 0; if (!secure_mem_initialized) { @@ -89,12 +85,12 @@ int CRYPTO_secure_malloc_init(size_t size, int minsize) return ret; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } int CRYPTO_secure_malloc_done(void) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY if (secure_mem_used == 0) { sh_done(); secure_mem_initialized = 0; @@ -102,22 +98,22 @@ int CRYPTO_secure_malloc_done(void) sec_malloc_lock = NULL; return 1; } -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ return 0; } int CRYPTO_secure_malloc_initialized(void) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY return secure_mem_initialized; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } void *CRYPTO_secure_malloc(size_t num, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY void *ret; size_t actual_size; @@ -132,12 +128,12 @@ void *CRYPTO_secure_malloc(size_t num, const char *file, int line) return ret; #else return CRYPTO_malloc(num, file, line); -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } void *CRYPTO_secure_zalloc(size_t num, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY if (secure_mem_initialized) /* CRYPTO_secure_malloc() zeroes allocations when it is implemented */ return CRYPTO_secure_malloc(num, file, line); @@ -147,7 +143,7 @@ void *CRYPTO_secure_zalloc(size_t num, const char *file, int line) void CRYPTO_secure_free(void *ptr, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY size_t actual_size; if (ptr == NULL) @@ -164,13 +160,13 @@ void CRYPTO_secure_free(void *ptr, const char *file, int line) CRYPTO_THREAD_unlock(sec_malloc_lock); #else CRYPTO_free(ptr, file, line); -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY size_t actual_size; if (ptr == NULL) @@ -191,12 +187,12 @@ void CRYPTO_secure_clear_free(void *ptr, size_t num, return; OPENSSL_cleanse(ptr, num); CRYPTO_free(ptr, file, line); -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } int CRYPTO_secure_allocated(const void *ptr) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY int ret; if (!secure_mem_initialized) @@ -207,21 +203,21 @@ int CRYPTO_secure_allocated(const void *ptr) return ret; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } size_t CRYPTO_secure_used(void) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY return secure_mem_used; #else return 0; -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ } size_t CRYPTO_secure_actual_size(void *ptr) { -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY size_t actual_size; CRYPTO_THREAD_write_lock(sec_malloc_lock); @@ -239,7 +235,7 @@ size_t CRYPTO_secure_actual_size(void *ptr) /* * SECURE HEAP IMPLEMENTATION */ -#ifdef IMPLEMENTED +#ifdef OPENSSL_SECURE_MEMORY /* @@ -647,4 +643,4 @@ static size_t sh_actual_size(char *ptr) OPENSSL_assert(sh_testbit(ptr, list, sh.bittable)); return sh.arena_size / (ONE << list); } -#endif /* IMPLEMENTED */ +#endif /* OPENSSL_SECURE_MEMORY */ diff --git a/e_os.h b/e_os.h index 8991e62..5340593 100644 --- a/e_os.h +++ b/e_os.h @@ -317,8 +317,15 @@ struct servent *getservbyname(const char *name, const char *proto); # endif /* end vxworks */ -#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -# define CRYPTO_memcmp memcmp -#endif +# ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define CRYPTO_memcmp memcmp +# endif +/* unistd.h defines _POSIX_VERSION */ +# if !defined(OPENSSL_NO_SECURE_MEMORY) && defined(OPENSSL_SYS_UNIX) \ + && ( (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) \ + || defined(__sun) || defined(__hpux) || defined(__sgi) \ + || defined(__osf__) ) +# define OPENSSL_SECURE_MEMORY /* secure memory is implemented */ +# endif #endif diff --git a/test/secmemtest.c b/test/secmemtest.c index 37c4b8f..42aeb5d 100644 --- a/test/secmemtest.c +++ b/test/secmemtest.c @@ -10,13 +10,16 @@ #include #include "testutil.h" +#include "../e_os.h" static int test_sec_mem(void) { -#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX) +#ifdef OPENSSL_SECURE_MEMORY int testresult = 0; char *p = NULL, *q = NULL, *r = NULL, *s = NULL; + TEST_info("Secure memory is implemented."); + s = OPENSSL_secure_malloc(20); /* s = non-secure 20 */ if (!TEST_ptr(s) @@ -124,6 +127,7 @@ static int test_sec_mem(void) OPENSSL_secure_free(s); return testresult; #else + TEST_info("Secure memory is *not* implemented."); /* Should fail. */ return TEST_false(CRYPTO_secure_malloc_init(4096, 32)); #endif @@ -131,7 +135,7 @@ static int test_sec_mem(void) static int test_sec_mem_clear(void) { -#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX) +#ifdef OPENSSL_SECURE_MEMORY const int size = 64; unsigned char *p = NULL; int i, res = 0; @@ -162,7 +166,6 @@ static int test_sec_mem_clear(void) res = 1; p = NULL; - err: OPENSSL_secure_free(p); CRYPTO_secure_malloc_done(); From levitte at openssl.org Fri Oct 5 19:54:54 2018 From: levitte at openssl.org (Richard Levitte) Date: Fri, 05 Oct 2018 19:54:54 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538769294.848423.24160.nullmailer@dev.openssl.org> The branch master has been updated via 470096e576941566fd094f2fd793dc2948804ea8 (commit) from 8529b156421805415bc7b17758255394de580c61 (commit) - Log ----------------------------------------------------------------- commit 470096e576941566fd094f2fd793dc2948804ea8 Author: Richard Levitte Date: Mon Sep 24 12:18:31 2018 +0200 /dev/crypto engine: give CIOCFSESSION the actual sess-id We passed that ioctl a pointer to the whole session_op structure, which wasn't quite right. Notified by David Legault. Fixes #7302 Reviewed-by: Kurt Roeckx (Merged from https://github.com/openssl/openssl/pull/7304) ----------------------------------------------------------------------- Summary of changes: crypto/engine/eng_devcrypto.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c index 6d97e99..51105ec 100644 --- a/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c @@ -212,7 +212,7 @@ static int cipher_cleanup(EVP_CIPHER_CTX *ctx) struct cipher_ctx *cipher_ctx = (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); - if (ioctl(cipher_ctx->cfd, CIOCFSESSION, &cipher_ctx->sess) < 0) { + if (ioctl(cipher_ctx->cfd, CIOCFSESSION, &cipher_ctx->sess.ses) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; } @@ -255,7 +255,7 @@ static void prepare_cipher_methods() sess.cipher = cipher_data[i].devcryptoid; sess.keylen = cipher_data[i].keylen; if (ioctl(cfd, CIOCGSESSION, &sess) < 0 - || ioctl(cfd, CIOCFSESSION, &sess) < 0) + || ioctl(cfd, CIOCFSESSION, &sess.ses) < 0) continue; if ((known_cipher_methods[i] = @@ -472,7 +472,7 @@ static int digest_final(EVP_MD_CTX *ctx, unsigned char *md) SYSerr(SYS_F_IOCTL, errno); return 0; } - if (ioctl(digest_ctx->cfd, CIOCFSESSION, &digest_ctx->sess) < 0) { + if (ioctl(digest_ctx->cfd, CIOCFSESSION, &digest_ctx->sess.ses) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; } @@ -522,7 +522,7 @@ static void prepare_digest_methods() */ sess.mac = digest_data[i].devcryptoid; if (ioctl(cfd, CIOCGSESSION, &sess) < 0 - || ioctl(cfd, CIOCFSESSION, &sess) < 0) + || ioctl(cfd, CIOCFSESSION, &sess.ses) < 0) continue; if ((known_digest_methods[i] = EVP_MD_meth_new(digest_data[i].nid, From levitte at openssl.org Fri Oct 5 19:55:44 2018 From: levitte at openssl.org (Richard Levitte) Date: Fri, 05 Oct 2018 19:55:44 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1538769344.526460.25044.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via e9a4fb49977858d4f687b138ed68970afc646aa6 (commit) from 5e130ae6328a4553eaafd7df22a3dcbca1b818b3 (commit) - Log ----------------------------------------------------------------- commit e9a4fb49977858d4f687b138ed68970afc646aa6 Author: Richard Levitte Date: Mon Sep 24 12:18:31 2018 +0200 /dev/crypto engine: give CIOCFSESSION the actual sess-id We passed that ioctl a pointer to the whole session_op structure, which wasn't quite right. Notified by David Legault. Fixes #7302 Reviewed-by: Kurt Roeckx (Merged from https://github.com/openssl/openssl/pull/7304) (cherry picked from commit 470096e576941566fd094f2fd793dc2948804ea8) ----------------------------------------------------------------------- Summary of changes: crypto/engine/eng_devcrypto.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c index 6d97e99..51105ec 100644 --- a/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c @@ -212,7 +212,7 @@ static int cipher_cleanup(EVP_CIPHER_CTX *ctx) struct cipher_ctx *cipher_ctx = (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); - if (ioctl(cipher_ctx->cfd, CIOCFSESSION, &cipher_ctx->sess) < 0) { + if (ioctl(cipher_ctx->cfd, CIOCFSESSION, &cipher_ctx->sess.ses) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; } @@ -255,7 +255,7 @@ static void prepare_cipher_methods() sess.cipher = cipher_data[i].devcryptoid; sess.keylen = cipher_data[i].keylen; if (ioctl(cfd, CIOCGSESSION, &sess) < 0 - || ioctl(cfd, CIOCFSESSION, &sess) < 0) + || ioctl(cfd, CIOCFSESSION, &sess.ses) < 0) continue; if ((known_cipher_methods[i] = @@ -472,7 +472,7 @@ static int digest_final(EVP_MD_CTX *ctx, unsigned char *md) SYSerr(SYS_F_IOCTL, errno); return 0; } - if (ioctl(digest_ctx->cfd, CIOCFSESSION, &digest_ctx->sess) < 0) { + if (ioctl(digest_ctx->cfd, CIOCFSESSION, &digest_ctx->sess.ses) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; } @@ -522,7 +522,7 @@ static void prepare_digest_methods() */ sess.mac = digest_data[i].devcryptoid; if (ioctl(cfd, CIOCGSESSION, &sess) < 0 - || ioctl(cfd, CIOCFSESSION, &sess) < 0) + || ioctl(cfd, CIOCFSESSION, &sess.ses) < 0) continue; if ((known_digest_methods[i] = EVP_MD_meth_new(digest_data[i].nid, From builds at travis-ci.org Fri Oct 5 20:14:35 2018 From: builds at travis-ci.org (Travis CI) Date: Fri, 05 Oct 2018 20:14:35 +0000 Subject: [openssl-commits] Errored: openssl/openssl#20962 (master - 470096e) In-Reply-To: Message-ID: <5bb7c62b47446_43ff3c6ddf00014555a@c1de4838-2c08-4b52-9344-f3ef1444e510.mail> Build Update for openssl/openssl ------------------------------------- Build: #20962 Status: Errored Duration: 18 mins and 48 secs Commit: 470096e (master) Author: Richard Levitte Message: /dev/crypto engine: give CIOCFSESSION the actual sess-id We passed that ioctl a pointer to the whole session_op structure, which wasn't quite right. Notified by David Legault. Fixes #7302 Reviewed-by: Kurt Roeckx (Merged from https://github.com/openssl/openssl/pull/7304) View the changeset: https://github.com/openssl/openssl/compare/8529b1564218...470096e57694 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/437794010?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From scan-admin at coverity.com Sun Oct 7 09:40:00 2018 From: scan-admin at coverity.com (scan-admin at coverity.com) Date: Sun, 07 Oct 2018 09:40:00 +0000 (UTC) Subject: [openssl-commits] Coverity Scan: Analysis completed for openssl/openssl Message-ID: <5bb9d47087c34_89032ab1dd750f5871461@node1.mail> Your request for analysis of openssl/openssl has been completed successfully. The results are available at https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRakUl6QyjujEohY7rPpoYUEcf-2B75FkFkxwwFKGZV8c1xA-3D-3D_19DGMz38yO7VfzGQuXkecdlEmzBoDG4v8Dvyanv-2F1I2kPO1GYFVsOZ4TxHKb0SjZfUqUq28p2NVUnZr-2FJU2HNrbyppAcsQWZxPh75Dhn63-2B8q44XsFRqsxNX83fgK1IFi0iA7mdaFboV1EpAValINnuG9tXrNhGoK4LztT8CkQAYU5c3i-2FDjDvCHLBVp9VTS7lzpBNoYhOhVkxovp1QjeTCH3ZN-2BBsuoLLZr8W50C7w-3D Build ID: 231184 Analysis Summary: New defects found: 1 Defects eliminated: 3 If you have difficulty understanding any defects, email us at scan-admin at coverity.com, or post your question to StackOverflow at https://u2389337.ct.sendgrid.net/wf/click?upn=OgIsEqWzmIl4S-2FzEUMxLXL-2BukuZt9UUdRZhgmgzAKchwAzH1nH3073xDEXNRgHN6q227lMNIWoOb8ZgSjAjKcg-3D-3D_19DGMz38yO7VfzGQuXkecdlEmzBoDG4v8Dvyanv-2F1I2kPO1GYFVsOZ4TxHKb0SjZfUqUq28p2NVUnZr-2FJU2HNrfejYXmrsqooHc8LV-2FQFCHM2F5liUqPfTT-2B7vjU1IKgy-2B6kmBt-2BZB-2F5Z-2Buaa1XYqgge5FxPxZgwJfLGtiDw91L9v6Xgo0u6as1-2B9ERiwUWD8Upy3m1HVAFQ0mh1TpKXhRy8-2BoHSPsXQnGFj37cNIPs-3D From scan-admin at coverity.com Sun Oct 7 09:44:07 2018 From: scan-admin at coverity.com (scan-admin at coverity.com) Date: Sun, 07 Oct 2018 09:44:07 +0000 (UTC) Subject: [openssl-commits] Coverity Scan: Analysis completed for OpenSSL-1.0.2 Message-ID: <5bb9d56643d7a_8c242ab1dd750f5871416@node1.mail> Your request for analysis of OpenSSL-1.0.2 has been completed successfully. The results are available at https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRakUl6QyjujEohY7rPpoYUEeuRTZVWU4ku8PUBnVPw8PQ-3D-3D_19DGMz38yO7VfzGQuXkecdlEmzBoDG4v8Dvyanv-2F1I0Dt-2Fx9-2BeWboGAL6ABZoNs2cvWb9tIfTGgd5tuePqRn2pMEnOh4hXYC857gi8WwC-2Bon4ArINsWgeF7Zt2hVnL7FvJVhm5rVaqulw2o7J-2B6Tl-2BvuxbYAuxdWPCPJgi5MPQAS0kBdpIbtd1DxjTQMQqpZ9280GloYx9pvdsknFGTLyHQMqiecVT8EEtjdfpNFzUw-3D Build ID: 231186 Analysis Summary: New defects found: 0 Defects eliminated: 0 From pauli at openssl.org Sun Oct 7 21:15:00 2018 From: pauli at openssl.org (Paul I. Dale) Date: Sun, 07 Oct 2018 21:15:00 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538946900.075862.28880.nullmailer@dev.openssl.org> The branch master has been updated via b770a80f6d0b08659cd03f26388b45512adb84f3 (commit) from 470096e576941566fd094f2fd793dc2948804ea8 (commit) - Log ----------------------------------------------------------------- commit b770a80f6d0b08659cd03f26388b45512adb84f3 Author: Mykola Baibuz Date: Mon Oct 8 07:14:08 2018 +1000 Remove useless check. Hash can be longer than EC group degree and it will be truncated. CLA: trivial Reviewed-by: Paul Yang Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7329) ----------------------------------------------------------------------- Summary of changes: test/ecdsatest.c | 60 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/test/ecdsatest.c b/test/ecdsatest.c index c4bcb8e..95b642b 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c @@ -13,7 +13,7 @@ #include #include /* To see if OPENSSL_NO_EC is defined */ -# include "testutil.h" +#include "testutil.h" #ifndef OPENSSL_NO_EC @@ -103,7 +103,7 @@ static int x9_62_test_internal(int nid, const char *r_in, const char *s_in) { int ret = 0; const char message[] = "abc"; - unsigned char digest[20]; + unsigned char digest[SHA_DIGEST_LENGTH]; unsigned int dgst_len = 0; EVP_MD_CTX *md_ctx; EC_KEY *key = NULL; @@ -135,7 +135,8 @@ static int x9_62_test_internal(int nid, const char *r_in, const char *s_in) /* Use ECDSA_sign_setup to avoid use of ECDSA nonces */ if (!TEST_true(ECDSA_sign_setup(key, NULL, &kinv, &rp))) goto x962_int_err; - if (!TEST_ptr(signature = ECDSA_do_sign_ex(digest, 20, kinv, rp, key))) + if (!TEST_ptr(signature = + ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) goto x962_int_err; /* compare the created signature with the expected signature */ @@ -149,7 +150,8 @@ static int x9_62_test_internal(int nid, const char *r_in, const char *s_in) goto x962_int_err; /* verify the signature */ - if (!TEST_int_eq(ECDSA_do_verify(digest, 20, signature, key), 1)) + if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, + signature, key), 1)) goto x962_int_err; ret = 1; @@ -211,7 +213,8 @@ static int test_builtin(void) EC_KEY *eckey = NULL, *wrong_eckey = NULL; EC_GROUP *group; ECDSA_SIG *ecdsa_sig = NULL, *modified_sig = NULL; - unsigned char digest[20], wrong_digest[20]; + unsigned char digest[SHA512_DIGEST_LENGTH], + wrong_digest[SHA512_DIGEST_LENGTH]; unsigned char *signature = NULL; const unsigned char *sig_ptr; unsigned char *sig_ptr2; @@ -223,8 +226,8 @@ static int test_builtin(void) int nid, ret = 0; /* fill digest values with some random data */ - if (!TEST_true(RAND_bytes(digest, 20)) - || !TEST_true(RAND_bytes(wrong_digest, 20))) + if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) + || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) goto builtin_err; /* create and verify a ecdsa signature with every available curve */ @@ -239,7 +242,7 @@ static int test_builtin(void) unsigned char dirt, offset; nid = curves[n].nid; - if (nid == NID_ipsec4) + if (nid == NID_ipsec4 || nid == NID_ipsec3) continue; /* create new ecdsa key (== EC_KEY) */ if (!TEST_ptr(eckey = EC_KEY_new()) @@ -248,12 +251,7 @@ static int test_builtin(void) goto builtin_err; EC_GROUP_free(group); degree = EC_GROUP_get_degree(EC_KEY_get0_group(eckey)); - if (degree < 160) { - /* drop the curve */ - EC_KEY_free(eckey); - eckey = NULL; - continue; - } + TEST_info("testing %s", OBJ_nid2sn(nid)); /* create key */ @@ -275,28 +273,32 @@ static int test_builtin(void) /* create signature */ sig_len = ECDSA_size(eckey); if (!TEST_ptr(signature = OPENSSL_malloc(sig_len)) - || !TEST_true(ECDSA_sign(0, digest, 20, signature, &sig_len, - eckey))) + || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, + signature, &sig_len, eckey))) goto builtin_err; /* verify signature */ - if (!TEST_int_eq(ECDSA_verify(0, digest, 20, signature, sig_len, - eckey), 1)) + if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, + signature, sig_len, eckey), + 1)) goto builtin_err; /* verify signature with the wrong key */ - if (!TEST_int_ne(ECDSA_verify(0, digest, 20, signature, sig_len, - wrong_eckey), 1)) + if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, + signature, sig_len, wrong_eckey), + 1)) goto builtin_err; /* wrong digest */ - if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, 20, signature, - sig_len, eckey), 1)) + if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, + signature, sig_len, eckey), + 1)) goto builtin_err; /* wrong length */ - if (!TEST_int_ne(ECDSA_verify(0, digest, 20, signature, - sig_len - 1, eckey), 1)) + if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, + signature, sig_len - 1, eckey), + 1)) goto builtin_err; /* @@ -333,7 +335,7 @@ static int test_builtin(void) goto builtin_err; if (!TEST_ptr(modified_r = BN_bin2bn(raw_buf, bn_len, NULL)) || !TEST_ptr(modified_s = BN_bin2bn(raw_buf + bn_len, - bn_len, NULL)) + bn_len, NULL)) || !TEST_true(ECDSA_SIG_set0(modified_sig, modified_r, modified_s))) { BN_free(modified_r); @@ -342,14 +344,15 @@ static int test_builtin(void) } sig_ptr2 = signature; sig_len = i2d_ECDSA_SIG(modified_sig, &sig_ptr2); - if (!TEST_false(ECDSA_verify(0, digest, 20, signature, sig_len, eckey))) + if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, + signature, sig_len, eckey))) goto builtin_err; /* Sanity check: undo the modification and verify signature. */ raw_buf[offset] ^= dirt; if (!TEST_ptr(unmodified_r = BN_bin2bn(raw_buf, bn_len, NULL)) || !TEST_ptr(unmodified_s = BN_bin2bn(raw_buf + bn_len, - bn_len, NULL)) + bn_len, NULL)) || !TEST_true(ECDSA_SIG_set0(modified_sig, unmodified_r, unmodified_s))) { BN_free(unmodified_r); @@ -359,7 +362,8 @@ static int test_builtin(void) sig_ptr2 = signature; sig_len = i2d_ECDSA_SIG(modified_sig, &sig_ptr2); - if (!TEST_true(ECDSA_verify(0, digest, 20, signature, sig_len, eckey))) + if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, + signature, sig_len, eckey))) goto builtin_err; /* cleanup */ From builds at travis-ci.org Sun Oct 7 21:58:37 2018 From: builds at travis-ci.org (Travis CI) Date: Sun, 07 Oct 2018 21:58:37 +0000 Subject: [openssl-commits] Failed: openssl/openssl#20969 (master - b770a80) In-Reply-To: Message-ID: <5bba818d7e41b_43f83176e4d242631b0@7a7a4ff6-a63f-413d-a0e2-bd03e6ef995f.mail> Build Update for openssl/openssl ------------------------------------- Build: #20969 Status: Failed Duration: 42 mins and 46 secs Commit: b770a80 (master) Author: Mykola Baibuz Message: Remove useless check. Hash can be longer than EC group degree and it will be truncated. CLA: trivial Reviewed-by: Paul Yang Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/7329) View the changeset: https://github.com/openssl/openssl/compare/470096e57694...b770a80f6d0b View the full build log and details: https://travis-ci.org/openssl/openssl/builds/438377572?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From openssl at openssl.org Mon Oct 8 01:57:30 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Mon, 08 Oct 2018 01:57:30 +0000 Subject: [openssl-commits] FAILED build of OpenSSL branch master with options -d --strict-warnings no-engine Message-ID: <1538963850.123016.8037.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine Commit log since last time: b770a80f6d Remove useless check. Hash can be longer than EC group degree and it will be truncated. 470096e576 /dev/crypto engine: give CIOCFSESSION the actual sess-id 8529b15642 test/secmemtest: test secure memory only if it is implemented 36d3acb91d util/mkdef.pl: for VMS, allow generation of case insensitive symbol vector 05a72c28b2 Configure: use correct variable to infer the .ld file location 66a24ab868 Add build file support for generic symbol exports with DSOs ed57d89bd1 Change the build of engines to use ordinal files for symbol export 97624638b0 util/mkdef.pl: Produce version scripts from unversioned symbols Build log ended with (last 100 lines): /usr/bin/perl ../openssl/test/generate_buildtest.pl symhacks > test/buildtest_symhacks.c /usr/bin/perl ../openssl/test/generate_buildtest.pl tls1 > test/buildtest_tls1.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ts > test/buildtest_ts.c /usr/bin/perl ../openssl/test/generate_buildtest.pl txt_db > test/buildtest_txt_db.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ui > test/buildtest_ui.c /usr/bin/perl ../openssl/test/generate_buildtest.pl whrlpool > test/buildtest_whrlpool.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509 > test/buildtest_x509.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509_vfy > test/buildtest_x509_vfy.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509v3 > test/buildtest_x509v3.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/casttest-bin-casttest.d.tmp -MT test/casttest-bin-casttest.o -c -o test/casttest-bin-casttest.o ../openssl/test/casttest.c clang -I. -Iinclude -Icrypto/include -I../openssl -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/chacha_internal_test-bin-chacha_internal_test.d.tmp -MT test/chacha_internal_test-bin-chacha_internal_test.o -c -o test/chacha_internal_test-bin-chacha_internal_test.o ../openssl/test/chacha_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherbytes_test-bin-cipherbytes_test.d.tmp -MT test/cipherbytes_test-bin-cipherbytes_test.o -c -o test/cipherbytes_test-bin-cipherbytes_test.o ../openssl/test/cipherbytes_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherlist_test-bin-cipherlist_test.d.tmp -MT test/cipherlist_test-bin-cipherlist_test.o -c -o test/cipherlist_test-bin-cipherlist_test.o ../openssl/test/cipherlist_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ciphername_test-bin-ciphername_test.d.tmp -MT test/ciphername_test-bin-ciphername_test.o -c -o test/ciphername_test-bin-ciphername_test.o ../openssl/test/ciphername_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/clienthellotest-bin-clienthellotest.d.tmp -MT test/clienthellotest-bin-clienthellotest.o -c -o test/clienthellotest-bin-clienthellotest.o ../openssl/test/clienthellotest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cmsapitest-bin-cmsapitest.d.tmp -MT test/cmsapitest-bin-cmsapitest.o -c -o test/cmsapitest-bin-cmsapitest.o ../openssl/test/cmsapitest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/conf_include_test-bin-conf_include_test.d.tmp -MT test/conf_include_test-bin-conf_include_test.o -c -o test/conf_include_test-bin-conf_include_test.o ../openssl/test/conf_include_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/constant_time_test-bin-constant_time_test.d.tmp -MT test/constant_time_test-bin-constant_time_test.o -c -o test/constant_time_test-bin-constant_time_test.o ../openssl/test/constant_time_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/crltest-bin-crltest.d.tmp -MT test/crltest-bin-crltest.o -c -o test/crltest-bin-crltest.o ../openssl/test/crltest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ct_test-bin-ct_test.d.tmp -MT test/ct_test-bin-ct_test.o -c -o test/ct_test-bin-ct_test.o ../openssl/test/ct_test.c clang -I. -Icrypto/include -Iinclude -I../openssl -I../openssl/crypto/include -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ctype_internal_test-bin-ctype_internal_test.d.tmp -MT test/ctype_internal_test-bin-ctype_internal_test.o -c -o test/ctype_internal_test-bin-ctype_internal_test.o ../openssl/test/ctype_internal_test.c clang -I. -Iinclude -Icrypto/ec/curve448 -I../openssl -I../openssl/include -I../openssl/crypto/ec/curve448 -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/curve448_internal_test-bin-curve448_internal_test.d.tmp -MT test/curve448_internal_test-bin-curve448_internal_test.o -c -o test/curve448_internal_test-bin-curve448_internal_test.o ../openssl/test/curve448_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/d2i_test-bin-d2i_test.d.tmp -MT test/d2i_test-bin-d2i_test.o -c -o test/d2i_test-bin-d2i_test.o ../openssl/test/d2i_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/danetest-bin-danetest.d.tmp -MT test/danetest-bin-danetest.o -c -o test/danetest-bin-danetest.o ../openssl/test/danetest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/destest-bin-destest.d.tmp -MT test/destest-bin-destest.o -c -o test/destest-bin-destest.o ../openssl/test/destest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dhtest-bin-dhtest.d.tmp -MT test/dhtest-bin-dhtest.o -c -o test/dhtest-bin-dhtest.o ../openssl/test/dhtest.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_ctr.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o ../openssl/test/drbg_cavs_data_ctr.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hash.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hash.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hash.o ../openssl/test/drbg_cavs_data_hash.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hmac.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o ../openssl/test/drbg_cavs_data_hmac.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_test.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_test.o -c -o test/drbg_cavs_test-bin-drbg_cavs_test.o ../openssl/test/drbg_cavs_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbgtest-bin-drbgtest.d.tmp -MT test/drbgtest-bin-drbgtest.o -c -o test/drbgtest-bin-drbgtest.o ../openssl/test/drbgtest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.d.tmp -MT test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o -c -o test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o ../openssl/test/dsa_no_digest_size_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsatest-bin-dsatest.d.tmp -MT test/dsatest-bin-dsatest.o -c -o test/dsatest-bin-dsatest.o ../openssl/test/dsatest.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-dtls_mtu_test.d.tmp -MT test/dtls_mtu_test-bin-dtls_mtu_test.o -c -o test/dtls_mtu_test-bin-dtls_mtu_test.o ../openssl/test/dtls_mtu_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-ssltestlib.d.tmp -MT test/dtls_mtu_test-bin-ssltestlib.o -c -o test/dtls_mtu_test-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-dtlstest.d.tmp -MT test/dtlstest-bin-dtlstest.o -c -o test/dtlstest-bin-dtlstest.o ../openssl/test/dtlstest.c clang -I. -Iinclude -I../openssl -I../openssl/include -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-ssltestlib.d.tmp -MT test/dtlstest-bin-ssltestlib.o -c -o test/dtlstest-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlsv1listentest-bin-dtlsv1listentest.d.tmp -MT test/dtlsv1listentest-bin-dtlsv1listentest.o -c -o test/dtlsv1listentest-bin-dtlsv1listentest.o ../openssl/test/dtlsv1listentest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecdsatest-bin-ecdsatest.d.tmp -MT test/ecdsatest-bin-ecdsatest.o -c -o test/ecdsatest-bin-ecdsatest.o ../openssl/test/ecdsatest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecstresstest-bin-ecstresstest.d.tmp -MT test/ecstresstest-bin-ecstresstest.o -c -o test/ecstresstest-bin-ecstresstest.o ../openssl/test/ecstresstest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ectest-bin-ectest.d.tmp -MT test/ectest-bin-ectest.o -c -o test/ectest-bin-ectest.o ../openssl/test/ectest.c ../openssl/test/ecdsatest.c:106:26: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' unsigned char digest[SHA_DIGEST_LENGTH]; ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/enginetest-bin-enginetest.d.tmp -MT test/enginetest-bin-enginetest.o -c -o test/enginetest-bin-enginetest.o ../openssl/test/enginetest.c ../openssl/test/ecdsatest.c:139:44: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) ^ ../openssl/test/ecdsatest.c:153:46: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:216:26: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char digest[SHA512_DIGEST_LENGTH], ^ ../openssl/test/ecdsatest.c:217:27: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' wrong_digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:229:39: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/errtest-bin-errtest.d.tmp -MT test/errtest-bin-errtest.o -c -o test/errtest-bin-errtest.o ../openssl/test/errtest.c ../openssl/test/ecdsatest.c:230:38: error: use of undeclared identifier 'wrong_digest' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:230:52: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:276:40: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:281:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:287:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:293:42: error: use of undeclared identifier 'wrong_digest' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:293:56: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -Icrypto/include -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_extra_test-bin-evp_extra_test.d.tmp -MT test/evp_extra_test-bin-evp_extra_test.o -c -o test/evp_extra_test-bin-evp_extra_test.o ../openssl/test/evp_extra_test.c ../openssl/test/ecdsatest.c:299:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_test-bin-evp_test.d.tmp -MT test/evp_test-bin-evp_test.o -c -o test/evp_test-bin-evp_test.o ../openssl/test/evp_test.c ../openssl/test/ecdsatest.c:347:49: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:365:48: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ 16 errors generated. Makefile:13845: recipe for target 'test/ecdsatest-bin-ecdsatest.o' failed make[1]: *** [test/ecdsatest-bin-ecdsatest.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/openssl/run-checker/no-engine' Makefile:171: recipe for target 'all' failed make: *** [all] Error 2 From openssl at openssl.org Mon Oct 8 01:58:23 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Mon, 08 Oct 2018 01:58:23 +0000 Subject: [openssl-commits] FAILED build of OpenSSL branch master with options -d --strict-warnings no-engine no-shared Message-ID: <1538963903.007446.13629.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine no-shared Commit log since last time: b770a80f6d Remove useless check. Hash can be longer than EC group degree and it will be truncated. 470096e576 /dev/crypto engine: give CIOCFSESSION the actual sess-id 8529b15642 test/secmemtest: test secure memory only if it is implemented 36d3acb91d util/mkdef.pl: for VMS, allow generation of case insensitive symbol vector 05a72c28b2 Configure: use correct variable to infer the .ld file location 66a24ab868 Add build file support for generic symbol exports with DSOs ed57d89bd1 Change the build of engines to use ordinal files for symbol export 97624638b0 util/mkdef.pl: Produce version scripts from unversioned symbols Build log ended with (last 100 lines): /usr/bin/perl ../openssl/test/generate_buildtest.pl ts > test/buildtest_ts.c /usr/bin/perl ../openssl/test/generate_buildtest.pl txt_db > test/buildtest_txt_db.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ui > test/buildtest_ui.c /usr/bin/perl ../openssl/test/generate_buildtest.pl whrlpool > test/buildtest_whrlpool.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509 > test/buildtest_x509.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509_vfy > test/buildtest_x509_vfy.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509v3 > test/buildtest_x509v3.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/casttest-bin-casttest.d.tmp -MT test/casttest-bin-casttest.o -c -o test/casttest-bin-casttest.o ../openssl/test/casttest.c clang -I. -Iinclude -Icrypto/include -I../openssl -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/chacha_internal_test-bin-chacha_internal_test.d.tmp -MT test/chacha_internal_test-bin-chacha_internal_test.o -c -o test/chacha_internal_test-bin-chacha_internal_test.o ../openssl/test/chacha_internal_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipher_overhead_test-bin-cipher_overhead_test.d.tmp -MT test/cipher_overhead_test-bin-cipher_overhead_test.o -c -o test/cipher_overhead_test-bin-cipher_overhead_test.o ../openssl/test/cipher_overhead_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherbytes_test-bin-cipherbytes_test.d.tmp -MT test/cipherbytes_test-bin-cipherbytes_test.o -c -o test/cipherbytes_test-bin-cipherbytes_test.o ../openssl/test/cipherbytes_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherlist_test-bin-cipherlist_test.d.tmp -MT test/cipherlist_test-bin-cipherlist_test.o -c -o test/cipherlist_test-bin-cipherlist_test.o ../openssl/test/cipherlist_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ciphername_test-bin-ciphername_test.d.tmp -MT test/ciphername_test-bin-ciphername_test.o -c -o test/ciphername_test-bin-ciphername_test.o ../openssl/test/ciphername_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/clienthellotest-bin-clienthellotest.d.tmp -MT test/clienthellotest-bin-clienthellotest.o -c -o test/clienthellotest-bin-clienthellotest.o ../openssl/test/clienthellotest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cmsapitest-bin-cmsapitest.d.tmp -MT test/cmsapitest-bin-cmsapitest.o -c -o test/cmsapitest-bin-cmsapitest.o ../openssl/test/cmsapitest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/conf_include_test-bin-conf_include_test.d.tmp -MT test/conf_include_test-bin-conf_include_test.o -c -o test/conf_include_test-bin-conf_include_test.o ../openssl/test/conf_include_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/constant_time_test-bin-constant_time_test.d.tmp -MT test/constant_time_test-bin-constant_time_test.o -c -o test/constant_time_test-bin-constant_time_test.o ../openssl/test/constant_time_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/crltest-bin-crltest.d.tmp -MT test/crltest-bin-crltest.o -c -o test/crltest-bin-crltest.o ../openssl/test/crltest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ct_test-bin-ct_test.d.tmp -MT test/ct_test-bin-ct_test.o -c -o test/ct_test-bin-ct_test.o ../openssl/test/ct_test.c clang -I. -Icrypto/include -Iinclude -I../openssl -I../openssl/crypto/include -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ctype_internal_test-bin-ctype_internal_test.d.tmp -MT test/ctype_internal_test-bin-ctype_internal_test.o -c -o test/ctype_internal_test-bin-ctype_internal_test.o ../openssl/test/ctype_internal_test.c clang -I. -Iinclude -Icrypto/ec/curve448 -I../openssl -I../openssl/include -I../openssl/crypto/ec/curve448 -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/curve448_internal_test-bin-curve448_internal_test.d.tmp -MT test/curve448_internal_test-bin-curve448_internal_test.o -c -o test/curve448_internal_test-bin-curve448_internal_test.o ../openssl/test/curve448_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/d2i_test-bin-d2i_test.d.tmp -MT test/d2i_test-bin-d2i_test.o -c -o test/d2i_test-bin-d2i_test.o ../openssl/test/d2i_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/danetest-bin-danetest.d.tmp -MT test/danetest-bin-danetest.o -c -o test/danetest-bin-danetest.o ../openssl/test/danetest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/destest-bin-destest.d.tmp -MT test/destest-bin-destest.o -c -o test/destest-bin-destest.o ../openssl/test/destest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dhtest-bin-dhtest.d.tmp -MT test/dhtest-bin-dhtest.o -c -o test/dhtest-bin-dhtest.o ../openssl/test/dhtest.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_ctr.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o ../openssl/test/drbg_cavs_data_ctr.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hash.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hash.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hash.o ../openssl/test/drbg_cavs_data_hash.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hmac.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o ../openssl/test/drbg_cavs_data_hmac.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_test.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_test.o -c -o test/drbg_cavs_test-bin-drbg_cavs_test.o ../openssl/test/drbg_cavs_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbgtest-bin-drbgtest.d.tmp -MT test/drbgtest-bin-drbgtest.o -c -o test/drbgtest-bin-drbgtest.o ../openssl/test/drbgtest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.d.tmp -MT test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o -c -o test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o ../openssl/test/dsa_no_digest_size_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsatest-bin-dsatest.d.tmp -MT test/dsatest-bin-dsatest.o -c -o test/dsatest-bin-dsatest.o ../openssl/test/dsatest.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-dtls_mtu_test.d.tmp -MT test/dtls_mtu_test-bin-dtls_mtu_test.o -c -o test/dtls_mtu_test-bin-dtls_mtu_test.o ../openssl/test/dtls_mtu_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-ssltestlib.d.tmp -MT test/dtls_mtu_test-bin-ssltestlib.o -c -o test/dtls_mtu_test-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-dtlstest.d.tmp -MT test/dtlstest-bin-dtlstest.o -c -o test/dtlstest-bin-dtlstest.o ../openssl/test/dtlstest.c clang -I. -Iinclude -I../openssl -I../openssl/include -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-ssltestlib.d.tmp -MT test/dtlstest-bin-ssltestlib.o -c -o test/dtlstest-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlsv1listentest-bin-dtlsv1listentest.d.tmp -MT test/dtlsv1listentest-bin-dtlsv1listentest.o -c -o test/dtlsv1listentest-bin-dtlsv1listentest.o ../openssl/test/dtlsv1listentest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecdsatest-bin-ecdsatest.d.tmp -MT test/ecdsatest-bin-ecdsatest.o -c -o test/ecdsatest-bin-ecdsatest.o ../openssl/test/ecdsatest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecstresstest-bin-ecstresstest.d.tmp -MT test/ecstresstest-bin-ecstresstest.o -c -o test/ecstresstest-bin-ecstresstest.o ../openssl/test/ecstresstest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ectest-bin-ectest.d.tmp -MT test/ectest-bin-ectest.o -c -o test/ectest-bin-ectest.o ../openssl/test/ectest.c ../openssl/test/ecdsatest.c:106:26: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' unsigned char digest[SHA_DIGEST_LENGTH]; ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/enginetest-bin-enginetest.d.tmp -MT test/enginetest-bin-enginetest.o -c -o test/enginetest-bin-enginetest.o ../openssl/test/enginetest.c ../openssl/test/ecdsatest.c:139:44: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) ^ ../openssl/test/ecdsatest.c:153:46: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:216:26: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char digest[SHA512_DIGEST_LENGTH], ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/errtest-bin-errtest.d.tmp -MT test/errtest-bin-errtest.o -c -o test/errtest-bin-errtest.o ../openssl/test/errtest.c ../openssl/test/ecdsatest.c:217:27: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' wrong_digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:229:39: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) ^ ../openssl/test/ecdsatest.c:230:38: error: use of undeclared identifier 'wrong_digest' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:230:52: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:276:40: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:281:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:287:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -Icrypto/include -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_extra_test-bin-evp_extra_test.d.tmp -MT test/evp_extra_test-bin-evp_extra_test.o -c -o test/evp_extra_test-bin-evp_extra_test.o ../openssl/test/evp_extra_test.c ../openssl/test/ecdsatest.c:293:42: error: use of undeclared identifier 'wrong_digest' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:293:56: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:299:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:347:49: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_test-bin-evp_test.d.tmp -MT test/evp_test-bin-evp_test.o -c -o test/evp_test-bin-evp_test.o ../openssl/test/evp_test.c ../openssl/test/ecdsatest.c:365:48: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ 16 errors generated. clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/exdatatest-bin-exdatatest.d.tmp -MT test/exdatatest-bin-exdatatest.o -c -o test/exdatatest-bin-exdatatest.o ../openssl/test/exdatatest.c Makefile:8507: recipe for target 'test/ecdsatest-bin-ecdsatest.o' failed make[1]: *** [test/ecdsatest-bin-ecdsatest.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/openssl/run-checker/no-engine_no-shared' Makefile:171: recipe for target 'all' failed make: *** [all] Error 2 From pauli at openssl.org Mon Oct 8 03:16:58 2018 From: pauli at openssl.org (Paul I. Dale) Date: Mon, 08 Oct 2018 03:16:58 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538968618.844243.2858.nullmailer@dev.openssl.org> The branch master has been updated via 5b639d4cb3b9a33536e2ebadf6a03149ea26ba32 (commit) from b770a80f6d0b08659cd03f26388b45512adb84f3 (commit) - Log ----------------------------------------------------------------- commit 5b639d4cb3b9a33536e2ebadf6a03149ea26ba32 Author: Pauli Date: Mon Oct 8 07:23:44 2018 +1000 Indentation fixes. The PR #7329 left some indentation slightly off. This fixes it. Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7360) ----------------------------------------------------------------------- Summary of changes: test/ecdsatest.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/ecdsatest.c b/test/ecdsatest.c index 95b642b..01a19ce 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c @@ -135,7 +135,7 @@ static int x9_62_test_internal(int nid, const char *r_in, const char *s_in) /* Use ECDSA_sign_setup to avoid use of ECDSA nonces */ if (!TEST_true(ECDSA_sign_setup(key, NULL, &kinv, &rp))) goto x962_int_err; - if (!TEST_ptr(signature = + if (!TEST_ptr(signature = ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) goto x962_int_err; @@ -151,7 +151,7 @@ static int x9_62_test_internal(int nid, const char *r_in, const char *s_in) /* verify the signature */ if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, - signature, key), 1)) + signature, key), 1)) goto x962_int_err; ret = 1; @@ -213,8 +213,8 @@ static int test_builtin(void) EC_KEY *eckey = NULL, *wrong_eckey = NULL; EC_GROUP *group; ECDSA_SIG *ecdsa_sig = NULL, *modified_sig = NULL; - unsigned char digest[SHA512_DIGEST_LENGTH], - wrong_digest[SHA512_DIGEST_LENGTH]; + unsigned char digest[SHA512_DIGEST_LENGTH]; + unsigned char wrong_digest[SHA512_DIGEST_LENGTH]; unsigned char *signature = NULL; const unsigned char *sig_ptr; unsigned char *sig_ptr2; @@ -273,8 +273,8 @@ static int test_builtin(void) /* create signature */ sig_len = ECDSA_size(eckey); if (!TEST_ptr(signature = OPENSSL_malloc(sig_len)) - || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, - signature, &sig_len, eckey))) + || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, + signature, &sig_len, eckey))) goto builtin_err; /* verify signature */ @@ -335,7 +335,7 @@ static int test_builtin(void) goto builtin_err; if (!TEST_ptr(modified_r = BN_bin2bn(raw_buf, bn_len, NULL)) || !TEST_ptr(modified_s = BN_bin2bn(raw_buf + bn_len, - bn_len, NULL)) + bn_len, NULL)) || !TEST_true(ECDSA_SIG_set0(modified_sig, modified_r, modified_s))) { BN_free(modified_r); @@ -352,7 +352,7 @@ static int test_builtin(void) raw_buf[offset] ^= dirt; if (!TEST_ptr(unmodified_r = BN_bin2bn(raw_buf, bn_len, NULL)) || !TEST_ptr(unmodified_s = BN_bin2bn(raw_buf + bn_len, - bn_len, NULL)) + bn_len, NULL)) || !TEST_true(ECDSA_SIG_set0(modified_sig, unmodified_r, unmodified_s))) { BN_free(unmodified_r); From builds at travis-ci.org Mon Oct 8 03:36:34 2018 From: builds at travis-ci.org (Travis CI) Date: Mon, 08 Oct 2018 03:36:34 +0000 Subject: [openssl-commits] Fixed: openssl/openssl#20973 (master - 5b639d4) In-Reply-To: Message-ID: <5bbad0c1ce101_43f99aeab4a3c66353@ae4f584f-7fdd-454a-8c2b-b783248f7ef1.mail> Build Update for openssl/openssl ------------------------------------- Build: #20973 Status: Fixed Duration: 18 mins and 40 secs Commit: 5b639d4 (master) Author: Pauli Message: Indentation fixes. The PR #7329 left some indentation slightly off. This fixes it. Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7360) View the changeset: https://github.com/openssl/openssl/compare/b770a80f6d0b...5b639d4cb3b9 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/438439159?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias.st.pierre at ncp-e.com Mon Oct 8 07:09:54 2018 From: matthias.st.pierre at ncp-e.com (matthias.st.pierre at ncp-e.com) Date: Mon, 08 Oct 2018 07:09:54 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1538982594.938115.27003.nullmailer@dev.openssl.org> The branch master has been updated via 4fef4981f8cc614559b86a06532b0eeac6ffd0d9 (commit) from 5b639d4cb3b9a33536e2ebadf6a03149ea26ba32 (commit) - Log ----------------------------------------------------------------- commit 4fef4981f8cc614559b86a06532b0eeac6ffd0d9 Author: ??? <5124946+wesinator at users.noreply.github.com> Date: Fri Oct 5 14:58:30 2018 -0400 Cleanup typos and grammar in DES_random_key.pod CLA: trivial Reviewed-by: Paul Dale Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/7356) ----------------------------------------------------------------------- Summary of changes: doc/man3/DES_random_key.pod | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/man3/DES_random_key.pod b/doc/man3/DES_random_key.pod index f543bea..6e0394d 100644 --- a/doc/man3/DES_random_key.pod +++ b/doc/man3/DES_random_key.pod @@ -99,7 +99,7 @@ algorithm. There are two phases to the use of DES encryption. The first is the generation of a I from a key, the second is the -actual encryption. A DES key is of type I. This type is +actual encryption. A DES key is of type I. This type consists of 8 bytes with odd parity. The least significant bit in each byte is the parity bit. The key schedule is an expanded form of the key; it is used to speed the encryption process. @@ -170,42 +170,42 @@ of 24 bytes. This is much better than CBC DES. DES_ede3_cbc_encrypt() implements outer triple CBC DES encryption with three keys. This means that each DES operation inside the CBC mode is -an C. This mode is used by SSL. +C. This mode is used by SSL. The DES_ede2_cbc_encrypt() macro implements two-key Triple-DES by reusing I for the final encryption. C. This form of Triple-DES is used by the RSAREF library. -DES_pcbc_encrypt() encrypt/decrypts using the propagating cipher block +DES_pcbc_encrypt() encrypts/decrypts using the propagating cipher block chaining mode used by Kerberos v4. Its parameters are the same as DES_ncbc_encrypt(). -DES_cfb_encrypt() encrypt/decrypts using cipher feedback mode. This -method takes an array of characters as input and outputs and array of +DES_cfb_encrypt() encrypts/decrypts using cipher feedback mode. This +method takes an array of characters as input and outputs an array of characters. It does not require any padding to 8 character groups. Note: the I variable is changed and the new changed value needs to be passed to the next call to this function. Since this function runs a complete DES ECB encryption per I, this function is only -suggested for use when sending small numbers of characters. +suggested for use when sending a small number of characters. DES_cfb64_encrypt() -implements CFB mode of DES with 64bit feedback. Why is this +implements CFB mode of DES with 64-bit feedback. Why is this useful you ask? Because this routine will allow you to encrypt an -arbitrary number of bytes, no 8 byte padding. Each call to this +arbitrary number of bytes, without 8 byte padding. Each call to this routine will encrypt the input bytes to output and then update ivec and num. num contains 'how far' we are though ivec. If this does -not make much sense, read more about cfb mode of DES :-). +not make much sense, read more about CFB mode of DES. DES_ede3_cfb64_encrypt() and DES_ede2_cfb64_encrypt() is the same as DES_cfb64_encrypt() except that Triple-DES is used. DES_ofb_encrypt() encrypts using output feedback mode. This method -takes an array of characters as input and outputs and array of +takes an array of characters as input and outputs an array of characters. It does not require any padding to 8 character groups. Note: the I variable is changed and the new changed value needs to be passed to the next call to this function. Since this function runs -a complete DES ECB encryption per numbits, this function is only -suggested for use when sending small numbers of characters. +a complete DES ECB encryption per I, this function is only +suggested for use when sending a small number of characters. DES_ofb64_encrypt() is the same as DES_cfb64_encrypt() using Output Feed Back mode. @@ -232,10 +232,10 @@ The following are DES-based transformations: DES_fcrypt() is a fast version of the Unix crypt(3) function. This version takes only a small amount of space relative to other fast -crypt() implementations. This is different to the normal crypt in +crypt() implementations. This is different to the normal crypt() in that the third parameter is the buffer that the return value is written into. It needs to be at least 14 bytes long. This function -is thread safe, unlike the normal crypt. +is thread safe, unlike the normal crypt(). DES_crypt() is a faster replacement for the normal system crypt(). This function calls DES_fcrypt() with a static array passed as the From matthias.st.pierre at ncp-e.com Mon Oct 8 07:10:42 2018 From: matthias.st.pierre at ncp-e.com (matthias.st.pierre at ncp-e.com) Date: Mon, 08 Oct 2018 07:10:42 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1538982642.908040.28102.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via 521738e990a5ef36334ee0296706697b49b48e4a (commit) from e9a4fb49977858d4f687b138ed68970afc646aa6 (commit) - Log ----------------------------------------------------------------- commit 521738e990a5ef36334ee0296706697b49b48e4a Author: ??? <5124946+wesinator at users.noreply.github.com> Date: Fri Oct 5 14:58:30 2018 -0400 Cleanup typos and grammar in DES_random_key.pod CLA: trivial Reviewed-by: Paul Dale Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/7356) (cherry picked from commit 4fef4981f8cc614559b86a06532b0eeac6ffd0d9) ----------------------------------------------------------------------- Summary of changes: doc/man3/DES_random_key.pod | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/man3/DES_random_key.pod b/doc/man3/DES_random_key.pod index f543bea..6e0394d 100644 --- a/doc/man3/DES_random_key.pod +++ b/doc/man3/DES_random_key.pod @@ -99,7 +99,7 @@ algorithm. There are two phases to the use of DES encryption. The first is the generation of a I from a key, the second is the -actual encryption. A DES key is of type I. This type is +actual encryption. A DES key is of type I. This type consists of 8 bytes with odd parity. The least significant bit in each byte is the parity bit. The key schedule is an expanded form of the key; it is used to speed the encryption process. @@ -170,42 +170,42 @@ of 24 bytes. This is much better than CBC DES. DES_ede3_cbc_encrypt() implements outer triple CBC DES encryption with three keys. This means that each DES operation inside the CBC mode is -an C. This mode is used by SSL. +C. This mode is used by SSL. The DES_ede2_cbc_encrypt() macro implements two-key Triple-DES by reusing I for the final encryption. C. This form of Triple-DES is used by the RSAREF library. -DES_pcbc_encrypt() encrypt/decrypts using the propagating cipher block +DES_pcbc_encrypt() encrypts/decrypts using the propagating cipher block chaining mode used by Kerberos v4. Its parameters are the same as DES_ncbc_encrypt(). -DES_cfb_encrypt() encrypt/decrypts using cipher feedback mode. This -method takes an array of characters as input and outputs and array of +DES_cfb_encrypt() encrypts/decrypts using cipher feedback mode. This +method takes an array of characters as input and outputs an array of characters. It does not require any padding to 8 character groups. Note: the I variable is changed and the new changed value needs to be passed to the next call to this function. Since this function runs a complete DES ECB encryption per I, this function is only -suggested for use when sending small numbers of characters. +suggested for use when sending a small number of characters. DES_cfb64_encrypt() -implements CFB mode of DES with 64bit feedback. Why is this +implements CFB mode of DES with 64-bit feedback. Why is this useful you ask? Because this routine will allow you to encrypt an -arbitrary number of bytes, no 8 byte padding. Each call to this +arbitrary number of bytes, without 8 byte padding. Each call to this routine will encrypt the input bytes to output and then update ivec and num. num contains 'how far' we are though ivec. If this does -not make much sense, read more about cfb mode of DES :-). +not make much sense, read more about CFB mode of DES. DES_ede3_cfb64_encrypt() and DES_ede2_cfb64_encrypt() is the same as DES_cfb64_encrypt() except that Triple-DES is used. DES_ofb_encrypt() encrypts using output feedback mode. This method -takes an array of characters as input and outputs and array of +takes an array of characters as input and outputs an array of characters. It does not require any padding to 8 character groups. Note: the I variable is changed and the new changed value needs to be passed to the next call to this function. Since this function runs -a complete DES ECB encryption per numbits, this function is only -suggested for use when sending small numbers of characters. +a complete DES ECB encryption per I, this function is only +suggested for use when sending a small number of characters. DES_ofb64_encrypt() is the same as DES_cfb64_encrypt() using Output Feed Back mode. @@ -232,10 +232,10 @@ The following are DES-based transformations: DES_fcrypt() is a fast version of the Unix crypt(3) function. This version takes only a small amount of space relative to other fast -crypt() implementations. This is different to the normal crypt in +crypt() implementations. This is different to the normal crypt() in that the third parameter is the buffer that the return value is written into. It needs to be at least 14 bytes long. This function -is thread safe, unlike the normal crypt. +is thread safe, unlike the normal crypt(). DES_crypt() is a faster replacement for the normal system crypt(). This function calls DES_fcrypt() with a static array passed as the From kaduk at mit.edu Mon Oct 8 21:41:15 2018 From: kaduk at mit.edu (kaduk at mit.edu) Date: Mon, 08 Oct 2018 21:41:15 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539034875.172906.3727.nullmailer@dev.openssl.org> The branch master has been updated via 3d362f190306b62a17aa2fd475b2bc8b3faa8142 (commit) from 4fef4981f8cc614559b86a06532b0eeac6ffd0d9 (commit) - Log ----------------------------------------------------------------- commit 3d362f190306b62a17aa2fd475b2bc8b3faa8142 Author: Benjamin Kaduk Date: Thu Oct 4 13:49:21 2018 -0500 apps: allow empty attribute values with -subj Historically (i.e., OpenSSL 1.0.x), the openssl applications would allow for empty subject attributes to be passed via the -subj argument, e.g., `opensl req -subj '/CN=joe/O=/OU=local' ...`. Commit db4c08f0194d58c6192f0d8311bf3f20e251cf4f applied a badly needed rewrite to the parse_name() helper function that parses these strings, but in the process dropped a check that would skip attributes with no associated value. As a result, such strings are now treated as hard errors and the operation fails. Restore the check to skip empty attribute values and restore the historical behavior. Document the behavior for empty subject attribute values in the corresponding applications' manual pages. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7349) ----------------------------------------------------------------------- Summary of changes: apps/apps.c | 6 ++++++ doc/man1/ca.pod | 6 ++++-- doc/man1/req.pod | 6 ++++-- doc/man1/storeutl.pod | 7 +++++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/apps/apps.c b/apps/apps.c index 9be6560..653e397 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -1831,6 +1831,12 @@ X509_NAME *parse_name(const char *cp, long chtype, int canmulti) opt_getprog(), typestr); continue; } + if (*valstr == '\0') { + BIO_printf(bio_err, + "%s: No value provided for Subject Attribute %s, skipped\n", + opt_getprog(), typestr); + continue; + } if (!X509_NAME_add_entry_by_NID(n, nid, chtype, valstr, strlen((char *)valstr), -1, ismulti ? -1 : 0)) diff --git a/doc/man1/ca.pod b/doc/man1/ca.pod index 9b282e6..e998eab 100644 --- a/doc/man1/ca.pod +++ b/doc/man1/ca.pod @@ -250,8 +250,10 @@ for all available algorithms. =item B<-subj arg> Supersedes subject name given in the request. -The arg must be formatted as I, -characters may be escaped by \ (backslash), no spaces are skipped. +The arg must be formatted as I. +Keyword characters may be escaped by \ (backslash), and whitespace is retained. +Empty values are permitted, but the corresponding type will not be included +in the resulting certificate. =item B<-utf8> diff --git a/doc/man1/req.pod b/doc/man1/req.pod index 113cd9b..c76d63d 100644 --- a/doc/man1/req.pod +++ b/doc/man1/req.pod @@ -221,8 +221,10 @@ see L. Sets subject name for new request or supersedes the subject name when processing a request. -The arg must be formatted as I, -characters may be escaped by \ (backslash), no spaces are skipped. +The arg must be formatted as I. +Keyword characters may be escaped by \ (backslash), and whitespace is retained. +Empty values are permitted, but the corresponding type will not be included +in the request. =item B<-multivalue-rdn> diff --git a/doc/man1/storeutl.pod b/doc/man1/storeutl.pod index 3f26ab5..083f028 100644 --- a/doc/man1/storeutl.pod +++ b/doc/man1/storeutl.pod @@ -82,8 +82,11 @@ returned. =item B<-subject arg> Search for an object having the subject name B. -The arg must be formatted as I, -characters may be escaped by \ (backslash), no spaces are skipped. +The arg must be formatted as I. +Keyword characters may be escaped by \ (backslash), and whitespace is retained. +Empty values are permitted but are ignored for the search. That is, +a search with an empty value will have the same effect as not specifying +the type at all. =item B<-issuer arg> From kaduk at mit.edu Mon Oct 8 21:46:10 2018 From: kaduk at mit.edu (kaduk at mit.edu) Date: Mon, 08 Oct 2018 21:46:10 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1539035170.152869.5316.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via a7ee1ef61b1893038008691a4a6979cf2da91439 (commit) from 521738e990a5ef36334ee0296706697b49b48e4a (commit) - Log ----------------------------------------------------------------- commit a7ee1ef61b1893038008691a4a6979cf2da91439 Author: Benjamin Kaduk Date: Thu Oct 4 13:49:21 2018 -0500 apps: allow empty attribute values with -subj Historically (i.e., OpenSSL 1.0.x), the openssl applications would allow for empty subject attributes to be passed via the -subj argument, e.g., `opensl req -subj '/CN=joe/O=/OU=local' ...`. Commit db4c08f0194d58c6192f0d8311bf3f20e251cf4f applied a badly needed rewrite to the parse_name() helper function that parses these strings, but in the process dropped a check that would skip attributes with no associated value. As a result, such strings are now treated as hard errors and the operation fails. Restore the check to skip empty attribute values and restore the historical behavior. Document the behavior for empty subject attribute values in the corresponding applications' manual pages. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7349) (cherry picked from commit 3d362f190306b62a17aa2fd475b2bc8b3faa8142) ----------------------------------------------------------------------- Summary of changes: apps/apps.c | 6 ++++++ doc/man1/ca.pod | 6 ++++-- doc/man1/req.pod | 6 ++++-- doc/man1/storeutl.pod | 7 +++++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/apps/apps.c b/apps/apps.c index 9be6560..653e397 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -1831,6 +1831,12 @@ X509_NAME *parse_name(const char *cp, long chtype, int canmulti) opt_getprog(), typestr); continue; } + if (*valstr == '\0') { + BIO_printf(bio_err, + "%s: No value provided for Subject Attribute %s, skipped\n", + opt_getprog(), typestr); + continue; + } if (!X509_NAME_add_entry_by_NID(n, nid, chtype, valstr, strlen((char *)valstr), -1, ismulti ? -1 : 0)) diff --git a/doc/man1/ca.pod b/doc/man1/ca.pod index 9b282e6..e998eab 100644 --- a/doc/man1/ca.pod +++ b/doc/man1/ca.pod @@ -250,8 +250,10 @@ for all available algorithms. =item B<-subj arg> Supersedes subject name given in the request. -The arg must be formatted as I, -characters may be escaped by \ (backslash), no spaces are skipped. +The arg must be formatted as I. +Keyword characters may be escaped by \ (backslash), and whitespace is retained. +Empty values are permitted, but the corresponding type will not be included +in the resulting certificate. =item B<-utf8> diff --git a/doc/man1/req.pod b/doc/man1/req.pod index 113cd9b..c76d63d 100644 --- a/doc/man1/req.pod +++ b/doc/man1/req.pod @@ -221,8 +221,10 @@ see L. Sets subject name for new request or supersedes the subject name when processing a request. -The arg must be formatted as I, -characters may be escaped by \ (backslash), no spaces are skipped. +The arg must be formatted as I. +Keyword characters may be escaped by \ (backslash), and whitespace is retained. +Empty values are permitted, but the corresponding type will not be included +in the request. =item B<-multivalue-rdn> diff --git a/doc/man1/storeutl.pod b/doc/man1/storeutl.pod index 3f26ab5..083f028 100644 --- a/doc/man1/storeutl.pod +++ b/doc/man1/storeutl.pod @@ -82,8 +82,11 @@ returned. =item B<-subject arg> Search for an object having the subject name B. -The arg must be formatted as I, -characters may be escaped by \ (backslash), no spaces are skipped. +The arg must be formatted as I. +Keyword characters may be escaped by \ (backslash), and whitespace is retained. +Empty values are permitted but are ignored for the search. That is, +a search with an empty value will have the same effect as not specifying +the type at all. =item B<-issuer arg> From builds at travis-ci.org Mon Oct 8 22:48:24 2018 From: builds at travis-ci.org (Travis CI) Date: Mon, 08 Oct 2018 22:48:24 +0000 Subject: [openssl-commits] Errored: openssl/openssl#20986 (OpenSSL_1_1_1-stable - a7ee1ef) In-Reply-To: Message-ID: <5bbbdeb7c1551_43fbb67a8aa7c203741@cd18cb32-4860-42f0-8ea7-1d24374da021.mail> Build Update for openssl/openssl ------------------------------------- Build: #20986 Status: Errored Duration: 1 hr, 1 min, and 16 secs Commit: a7ee1ef (OpenSSL_1_1_1-stable) Author: Benjamin Kaduk Message: apps: allow empty attribute values with -subj Historically (i.e., OpenSSL 1.0.x), the openssl applications would allow for empty subject attributes to be passed via the -subj argument, e.g., `opensl req -subj '/CN=joe/O=/OU=local' ...`. Commit db4c08f0194d58c6192f0d8311bf3f20e251cf4f applied a badly needed rewrite to the parse_name() helper function that parses these strings, but in the process dropped a check that would skip attributes with no associated value. As a result, such strings are now treated as hard errors and the operation fails. Restore the check to skip empty attribute values and restore the historical behavior. Document the behavior for empty subject attribute values in the corresponding applications' manual pages. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7349) (cherry picked from commit 3d362f190306b62a17aa2fd475b2bc8b3faa8142) View the changeset: https://github.com/openssl/openssl/compare/521738e990a5...a7ee1ef61b18 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/438857964?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From openssl at openssl.org Tue Oct 9 01:51:24 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Tue, 09 Oct 2018 01:51:24 +0000 Subject: [openssl-commits] Still FAILED build of OpenSSL branch master with options -d --strict-warnings no-engine Message-ID: <1539049884.704826.16177.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine Commit log since last time: 3d362f1903 apps: allow empty attribute values with -subj 4fef4981f8 Cleanup typos and grammar in DES_random_key.pod 5b639d4cb3 Indentation fixes. Build log ended with (last 100 lines): /usr/bin/perl ../openssl/test/generate_buildtest.pl sha > test/buildtest_sha.c /usr/bin/perl ../openssl/test/generate_buildtest.pl srp > test/buildtest_srp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl srtp > test/buildtest_srtp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl > test/buildtest_ssl.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl2 > test/buildtest_ssl2.c /usr/bin/perl ../openssl/test/generate_buildtest.pl stack > test/buildtest_stack.c /usr/bin/perl ../openssl/test/generate_buildtest.pl store > test/buildtest_store.c /usr/bin/perl ../openssl/test/generate_buildtest.pl symhacks > test/buildtest_symhacks.c /usr/bin/perl ../openssl/test/generate_buildtest.pl tls1 > test/buildtest_tls1.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ts > test/buildtest_ts.c /usr/bin/perl ../openssl/test/generate_buildtest.pl txt_db > test/buildtest_txt_db.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ui > test/buildtest_ui.c /usr/bin/perl ../openssl/test/generate_buildtest.pl whrlpool > test/buildtest_whrlpool.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509 > test/buildtest_x509.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509_vfy > test/buildtest_x509_vfy.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509v3 > test/buildtest_x509v3.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/casttest-bin-casttest.d.tmp -MT test/casttest-bin-casttest.o -c -o test/casttest-bin-casttest.o ../openssl/test/casttest.c clang -I. -Iinclude -Icrypto/include -I../openssl -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/chacha_internal_test-bin-chacha_internal_test.d.tmp -MT test/chacha_internal_test-bin-chacha_internal_test.o -c -o test/chacha_internal_test-bin-chacha_internal_test.o ../openssl/test/chacha_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherbytes_test-bin-cipherbytes_test.d.tmp -MT test/cipherbytes_test-bin-cipherbytes_test.o -c -o test/cipherbytes_test-bin-cipherbytes_test.o ../openssl/test/cipherbytes_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherlist_test-bin-cipherlist_test.d.tmp -MT test/cipherlist_test-bin-cipherlist_test.o -c -o test/cipherlist_test-bin-cipherlist_test.o ../openssl/test/cipherlist_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ciphername_test-bin-ciphername_test.d.tmp -MT test/ciphername_test-bin-ciphername_test.o -c -o test/ciphername_test-bin-ciphername_test.o ../openssl/test/ciphername_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/clienthellotest-bin-clienthellotest.d.tmp -MT test/clienthellotest-bin-clienthellotest.o -c -o test/clienthellotest-bin-clienthellotest.o ../openssl/test/clienthellotest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cmsapitest-bin-cmsapitest.d.tmp -MT test/cmsapitest-bin-cmsapitest.o -c -o test/cmsapitest-bin-cmsapitest.o ../openssl/test/cmsapitest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/conf_include_test-bin-conf_include_test.d.tmp -MT test/conf_include_test-bin-conf_include_test.o -c -o test/conf_include_test-bin-conf_include_test.o ../openssl/test/conf_include_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/constant_time_test-bin-constant_time_test.d.tmp -MT test/constant_time_test-bin-constant_time_test.o -c -o test/constant_time_test-bin-constant_time_test.o ../openssl/test/constant_time_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/crltest-bin-crltest.d.tmp -MT test/crltest-bin-crltest.o -c -o test/crltest-bin-crltest.o ../openssl/test/crltest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ct_test-bin-ct_test.d.tmp -MT test/ct_test-bin-ct_test.o -c -o test/ct_test-bin-ct_test.o ../openssl/test/ct_test.c clang -I. -Icrypto/include -Iinclude -I../openssl -I../openssl/crypto/include -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ctype_internal_test-bin-ctype_internal_test.d.tmp -MT test/ctype_internal_test-bin-ctype_internal_test.o -c -o test/ctype_internal_test-bin-ctype_internal_test.o ../openssl/test/ctype_internal_test.c clang -I. -Iinclude -Icrypto/ec/curve448 -I../openssl -I../openssl/include -I../openssl/crypto/ec/curve448 -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/curve448_internal_test-bin-curve448_internal_test.d.tmp -MT test/curve448_internal_test-bin-curve448_internal_test.o -c -o test/curve448_internal_test-bin-curve448_internal_test.o ../openssl/test/curve448_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/d2i_test-bin-d2i_test.d.tmp -MT test/d2i_test-bin-d2i_test.o -c -o test/d2i_test-bin-d2i_test.o ../openssl/test/d2i_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/danetest-bin-danetest.d.tmp -MT test/danetest-bin-danetest.o -c -o test/danetest-bin-danetest.o ../openssl/test/danetest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/destest-bin-destest.d.tmp -MT test/destest-bin-destest.o -c -o test/destest-bin-destest.o ../openssl/test/destest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dhtest-bin-dhtest.d.tmp -MT test/dhtest-bin-dhtest.o -c -o test/dhtest-bin-dhtest.o ../openssl/test/dhtest.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_ctr.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o ../openssl/test/drbg_cavs_data_ctr.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hash.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hash.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hash.o ../openssl/test/drbg_cavs_data_hash.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hmac.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o ../openssl/test/drbg_cavs_data_hmac.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_test.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_test.o -c -o test/drbg_cavs_test-bin-drbg_cavs_test.o ../openssl/test/drbg_cavs_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbgtest-bin-drbgtest.d.tmp -MT test/drbgtest-bin-drbgtest.o -c -o test/drbgtest-bin-drbgtest.o ../openssl/test/drbgtest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.d.tmp -MT test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o -c -o test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o ../openssl/test/dsa_no_digest_size_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsatest-bin-dsatest.d.tmp -MT test/dsatest-bin-dsatest.o -c -o test/dsatest-bin-dsatest.o ../openssl/test/dsatest.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-dtls_mtu_test.d.tmp -MT test/dtls_mtu_test-bin-dtls_mtu_test.o -c -o test/dtls_mtu_test-bin-dtls_mtu_test.o ../openssl/test/dtls_mtu_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-ssltestlib.d.tmp -MT test/dtls_mtu_test-bin-ssltestlib.o -c -o test/dtls_mtu_test-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-dtlstest.d.tmp -MT test/dtlstest-bin-dtlstest.o -c -o test/dtlstest-bin-dtlstest.o ../openssl/test/dtlstest.c clang -I. -Iinclude -I../openssl -I../openssl/include -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-ssltestlib.d.tmp -MT test/dtlstest-bin-ssltestlib.o -c -o test/dtlstest-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlsv1listentest-bin-dtlsv1listentest.d.tmp -MT test/dtlsv1listentest-bin-dtlsv1listentest.o -c -o test/dtlsv1listentest-bin-dtlsv1listentest.o ../openssl/test/dtlsv1listentest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecdsatest-bin-ecdsatest.d.tmp -MT test/ecdsatest-bin-ecdsatest.o -c -o test/ecdsatest-bin-ecdsatest.o ../openssl/test/ecdsatest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecstresstest-bin-ecstresstest.d.tmp -MT test/ecstresstest-bin-ecstresstest.o -c -o test/ecstresstest-bin-ecstresstest.o ../openssl/test/ecstresstest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ectest-bin-ectest.d.tmp -MT test/ectest-bin-ectest.o -c -o test/ectest-bin-ectest.o ../openssl/test/ectest.c ../openssl/test/ecdsatest.c:106:26: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' unsigned char digest[SHA_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:139:44: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) ^ ../openssl/test/ecdsatest.c:153:46: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/enginetest-bin-enginetest.d.tmp -MT test/enginetest-bin-enginetest.o -c -o test/enginetest-bin-enginetest.o ../openssl/test/enginetest.c ../openssl/test/ecdsatest.c:216:26: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:217:32: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char wrong_digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:229:39: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) ^ ../openssl/test/ecdsatest.c:230:52: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:276:53: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:281:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:287:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/errtest-bin-errtest.d.tmp -MT test/errtest-bin-errtest.o -c -o test/errtest-bin-errtest.o ../openssl/test/errtest.c ../openssl/test/ecdsatest.c:293:56: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:299:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -Icrypto/include -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_extra_test-bin-evp_extra_test.d.tmp -MT test/evp_extra_test-bin-evp_extra_test.o -c -o test/evp_extra_test-bin-evp_extra_test.o ../openssl/test/evp_extra_test.c ../openssl/test/ecdsatest.c:347:49: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:365:48: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ 14 errors generated. Makefile:13845: recipe for target 'test/ecdsatest-bin-ecdsatest.o' failed make[1]: *** [test/ecdsatest-bin-ecdsatest.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/openssl/run-checker/no-engine' Makefile:171: recipe for target 'all' failed make: *** [all] Error 2 From openssl at openssl.org Tue Oct 9 01:52:19 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Tue, 09 Oct 2018 01:52:19 +0000 Subject: [openssl-commits] Still FAILED build of OpenSSL branch master with options -d --strict-warnings no-engine no-shared Message-ID: <1539049939.101700.21778.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine no-shared Commit log since last time: 3d362f1903 apps: allow empty attribute values with -subj 4fef4981f8 Cleanup typos and grammar in DES_random_key.pod 5b639d4cb3 Indentation fixes. Build log ended with (last 100 lines): /usr/bin/perl ../openssl/test/generate_buildtest.pl srtp > test/buildtest_srtp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl > test/buildtest_ssl.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl2 > test/buildtest_ssl2.c /usr/bin/perl ../openssl/test/generate_buildtest.pl stack > test/buildtest_stack.c /usr/bin/perl ../openssl/test/generate_buildtest.pl store > test/buildtest_store.c /usr/bin/perl ../openssl/test/generate_buildtest.pl symhacks > test/buildtest_symhacks.c /usr/bin/perl ../openssl/test/generate_buildtest.pl tls1 > test/buildtest_tls1.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ts > test/buildtest_ts.c /usr/bin/perl ../openssl/test/generate_buildtest.pl txt_db > test/buildtest_txt_db.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ui > test/buildtest_ui.c /usr/bin/perl ../openssl/test/generate_buildtest.pl whrlpool > test/buildtest_whrlpool.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509 > test/buildtest_x509.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509_vfy > test/buildtest_x509_vfy.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509v3 > test/buildtest_x509v3.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/casttest-bin-casttest.d.tmp -MT test/casttest-bin-casttest.o -c -o test/casttest-bin-casttest.o ../openssl/test/casttest.c clang -I. -Iinclude -Icrypto/include -I../openssl -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/chacha_internal_test-bin-chacha_internal_test.d.tmp -MT test/chacha_internal_test-bin-chacha_internal_test.o -c -o test/chacha_internal_test-bin-chacha_internal_test.o ../openssl/test/chacha_internal_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipher_overhead_test-bin-cipher_overhead_test.d.tmp -MT test/cipher_overhead_test-bin-cipher_overhead_test.o -c -o test/cipher_overhead_test-bin-cipher_overhead_test.o ../openssl/test/cipher_overhead_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherbytes_test-bin-cipherbytes_test.d.tmp -MT test/cipherbytes_test-bin-cipherbytes_test.o -c -o test/cipherbytes_test-bin-cipherbytes_test.o ../openssl/test/cipherbytes_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherlist_test-bin-cipherlist_test.d.tmp -MT test/cipherlist_test-bin-cipherlist_test.o -c -o test/cipherlist_test-bin-cipherlist_test.o ../openssl/test/cipherlist_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ciphername_test-bin-ciphername_test.d.tmp -MT test/ciphername_test-bin-ciphername_test.o -c -o test/ciphername_test-bin-ciphername_test.o ../openssl/test/ciphername_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/clienthellotest-bin-clienthellotest.d.tmp -MT test/clienthellotest-bin-clienthellotest.o -c -o test/clienthellotest-bin-clienthellotest.o ../openssl/test/clienthellotest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cmsapitest-bin-cmsapitest.d.tmp -MT test/cmsapitest-bin-cmsapitest.o -c -o test/cmsapitest-bin-cmsapitest.o ../openssl/test/cmsapitest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/conf_include_test-bin-conf_include_test.d.tmp -MT test/conf_include_test-bin-conf_include_test.o -c -o test/conf_include_test-bin-conf_include_test.o ../openssl/test/conf_include_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/constant_time_test-bin-constant_time_test.d.tmp -MT test/constant_time_test-bin-constant_time_test.o -c -o test/constant_time_test-bin-constant_time_test.o ../openssl/test/constant_time_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/crltest-bin-crltest.d.tmp -MT test/crltest-bin-crltest.o -c -o test/crltest-bin-crltest.o ../openssl/test/crltest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ct_test-bin-ct_test.d.tmp -MT test/ct_test-bin-ct_test.o -c -o test/ct_test-bin-ct_test.o ../openssl/test/ct_test.c clang -I. -Icrypto/include -Iinclude -I../openssl -I../openssl/crypto/include -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ctype_internal_test-bin-ctype_internal_test.d.tmp -MT test/ctype_internal_test-bin-ctype_internal_test.o -c -o test/ctype_internal_test-bin-ctype_internal_test.o ../openssl/test/ctype_internal_test.c clang -I. -Iinclude -Icrypto/ec/curve448 -I../openssl -I../openssl/include -I../openssl/crypto/ec/curve448 -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/curve448_internal_test-bin-curve448_internal_test.d.tmp -MT test/curve448_internal_test-bin-curve448_internal_test.o -c -o test/curve448_internal_test-bin-curve448_internal_test.o ../openssl/test/curve448_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/d2i_test-bin-d2i_test.d.tmp -MT test/d2i_test-bin-d2i_test.o -c -o test/d2i_test-bin-d2i_test.o ../openssl/test/d2i_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/danetest-bin-danetest.d.tmp -MT test/danetest-bin-danetest.o -c -o test/danetest-bin-danetest.o ../openssl/test/danetest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/destest-bin-destest.d.tmp -MT test/destest-bin-destest.o -c -o test/destest-bin-destest.o ../openssl/test/destest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dhtest-bin-dhtest.d.tmp -MT test/dhtest-bin-dhtest.o -c -o test/dhtest-bin-dhtest.o ../openssl/test/dhtest.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_ctr.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o ../openssl/test/drbg_cavs_data_ctr.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hash.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hash.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hash.o ../openssl/test/drbg_cavs_data_hash.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hmac.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o ../openssl/test/drbg_cavs_data_hmac.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_test.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_test.o -c -o test/drbg_cavs_test-bin-drbg_cavs_test.o ../openssl/test/drbg_cavs_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbgtest-bin-drbgtest.d.tmp -MT test/drbgtest-bin-drbgtest.o -c -o test/drbgtest-bin-drbgtest.o ../openssl/test/drbgtest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.d.tmp -MT test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o -c -o test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o ../openssl/test/dsa_no_digest_size_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsatest-bin-dsatest.d.tmp -MT test/dsatest-bin-dsatest.o -c -o test/dsatest-bin-dsatest.o ../openssl/test/dsatest.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-dtls_mtu_test.d.tmp -MT test/dtls_mtu_test-bin-dtls_mtu_test.o -c -o test/dtls_mtu_test-bin-dtls_mtu_test.o ../openssl/test/dtls_mtu_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-ssltestlib.d.tmp -MT test/dtls_mtu_test-bin-ssltestlib.o -c -o test/dtls_mtu_test-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-dtlstest.d.tmp -MT test/dtlstest-bin-dtlstest.o -c -o test/dtlstest-bin-dtlstest.o ../openssl/test/dtlstest.c clang -I. -Iinclude -I../openssl -I../openssl/include -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-ssltestlib.d.tmp -MT test/dtlstest-bin-ssltestlib.o -c -o test/dtlstest-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlsv1listentest-bin-dtlsv1listentest.d.tmp -MT test/dtlsv1listentest-bin-dtlsv1listentest.o -c -o test/dtlsv1listentest-bin-dtlsv1listentest.o ../openssl/test/dtlsv1listentest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecdsatest-bin-ecdsatest.d.tmp -MT test/ecdsatest-bin-ecdsatest.o -c -o test/ecdsatest-bin-ecdsatest.o ../openssl/test/ecdsatest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecstresstest-bin-ecstresstest.d.tmp -MT test/ecstresstest-bin-ecstresstest.o -c -o test/ecstresstest-bin-ecstresstest.o ../openssl/test/ecstresstest.c ../openssl/test/ecdsatest.c:106:26: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' unsigned char digest[SHA_DIGEST_LENGTH]; ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ectest-bin-ectest.d.tmp -MT test/ectest-bin-ectest.o -c -o test/ectest-bin-ectest.o ../openssl/test/ectest.c ../openssl/test/ecdsatest.c:139:44: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) ^ ../openssl/test/ecdsatest.c:153:46: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/enginetest-bin-enginetest.d.tmp -MT test/enginetest-bin-enginetest.o -c -o test/enginetest-bin-enginetest.o ../openssl/test/enginetest.c ../openssl/test/ecdsatest.c:216:26: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:217:32: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char wrong_digest[SHA512_DIGEST_LENGTH]; ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/errtest-bin-errtest.d.tmp -MT test/errtest-bin-errtest.o -c -o test/errtest-bin-errtest.o ../openssl/test/errtest.c ../openssl/test/ecdsatest.c:229:39: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) ^ ../openssl/test/ecdsatest.c:230:52: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:276:53: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:281:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:287:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:293:56: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:299:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -Icrypto/include -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_extra_test-bin-evp_extra_test.d.tmp -MT test/evp_extra_test-bin-evp_extra_test.o -c -o test/evp_extra_test-bin-evp_extra_test.o ../openssl/test/evp_extra_test.c ../openssl/test/ecdsatest.c:347:49: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:365:48: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ 14 errors generated. clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/evp_test-bin-evp_test.d.tmp -MT test/evp_test-bin-evp_test.o -c -o test/evp_test-bin-evp_test.o ../openssl/test/evp_test.c Makefile:8507: recipe for target 'test/ecdsatest-bin-ecdsatest.o' failed make[1]: *** [test/ecdsatest-bin-ecdsatest.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/openssl/run-checker/no-engine_no-shared' Makefile:171: recipe for target 'all' failed make: *** [all] Error 2 From yang.yang at baishancloud.com Tue Oct 9 05:10:12 2018 From: yang.yang at baishancloud.com (yang.yang at baishancloud.com) Date: Tue, 09 Oct 2018 05:10:12 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539061812.889440.14240.nullmailer@dev.openssl.org> The branch master has been updated via 5c1bd555d3c81cbd46d5032e84c29d16bb4a8f06 (commit) from 3d362f190306b62a17aa2fd475b2bc8b3faa8142 (commit) - Log ----------------------------------------------------------------- commit 5c1bd555d3c81cbd46d5032e84c29d16bb4a8f06 Author: Paul Yang Date: Mon Oct 8 17:04:14 2018 +0800 Fix a nit of copyright date range Should be 2018 instead of 20018. Reviewed-by: Tim Hudson Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7364) ----------------------------------------------------------------------- Summary of changes: crypto/poly1305/poly1305_ieee754.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/poly1305/poly1305_ieee754.c b/crypto/poly1305/poly1305_ieee754.c index 995a02e..7cfd968 100644 --- a/crypto/poly1305/poly1305_ieee754.c +++ b/crypto/poly1305/poly1305_ieee754.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-20018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy From builds at travis-ci.org Tue Oct 9 05:29:11 2018 From: builds at travis-ci.org (Travis CI) Date: Tue, 09 Oct 2018 05:29:11 +0000 Subject: [openssl-commits] Broken: openssl/openssl#20989 (master - 5c1bd55) In-Reply-To: Message-ID: <5bbc3ca74ad91_43ff43821d4c0430043@cc34a069-45c3-4c5d-bedf-02fee20c9575.mail> Build Update for openssl/openssl ------------------------------------- Build: #20989 Status: Broken Duration: 18 mins and 9 secs Commit: 5c1bd55 (master) Author: Paul Yang Message: Fix a nit of copyright date range Should be 2018 instead of 20018. Reviewed-by: Tim Hudson Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7364) View the changeset: https://github.com/openssl/openssl/compare/3d362f190306...5c1bd555d3c8 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/438970135?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Tue Oct 9 14:21:53 2018 From: no-reply at appveyor.com (AppVeyor) Date: Tue, 09 Oct 2018 14:21:53 +0000 Subject: [openssl-commits] Build failed: openssl decouple-reseed-code.20260 Message-ID: <20181009142153.1.EF0CCB2E5741DECD@appveyor.com> An HTML attachment was scrubbed... URL: From builds at travis-ci.org Tue Oct 9 14:40:10 2018 From: builds at travis-ci.org (Travis CI) Date: Tue, 09 Oct 2018 14:40:10 +0000 Subject: [openssl-commits] Errored: openssl/openssl#20991 (decouple-reseed-code - 7a6a26a) In-Reply-To: Message-ID: <5bbcbdca13397_43f8e044151645125e7@68352d2e-6bb2-4adc-bae2-0130c68d884a.mail> Build Update for openssl/openssl ------------------------------------- Build: #20991 Status: Errored Duration: 27 mins and 24 secs Commit: 7a6a26a (decouple-reseed-code) Author: Dr. Matthias St. Pierre Message: Decouple the reseeding code from the RNG - add a new RAND_POOL interface independent of the two RNG APIs - reorganize drbg_get_entropy() and RAND_poll() using RAND_POOL - replace 'RAND_poll_ex()' by 'RAND_POOL_fill()' View the changeset: https://github.com/openssl/openssl/compare/a8eb9b31cca4^...7a6a26a02841 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/439159040?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From no-reply at appveyor.com Tue Oct 9 16:55:09 2018 From: no-reply at appveyor.com (AppVeyor) Date: Tue, 09 Oct 2018 16:55:09 +0000 Subject: [openssl-commits] Build completed: openssl master.20261 Message-ID: <20181009165509.1.52D076492BD9FD04@appveyor.com> An HTML attachment was scrubbed... URL: From kaduk at mit.edu Tue Oct 9 20:24:44 2018 From: kaduk at mit.edu (kaduk at mit.edu) Date: Tue, 09 Oct 2018 20:24:44 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539116684.995478.12497.nullmailer@dev.openssl.org> The branch master has been updated via a5fcce6b953458a0f06a76d74c5fabfc355a1a41 (commit) from 5c1bd555d3c81cbd46d5032e84c29d16bb4a8f06 (commit) - Log ----------------------------------------------------------------- commit a5fcce6b953458a0f06a76d74c5fabfc355a1a41 Author: Benjamin Kaduk Date: Tue Oct 9 09:27:11 2018 -0500 mkdef: bsd-gcc uses solaris symbol version scripts As for linux, make bsd-gcc an alias to the solaris semantics for shared library symbol version handling. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7376) ----------------------------------------------------------------------- Summary of changes: util/mkdef.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/util/mkdef.pl b/util/mkdef.pl index 635e3e9..b40fd26 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -108,6 +108,7 @@ my %OS_data = ( platforms => { UNIX => 1, EXPORT_VAR_AS_FUNCTION => 0 } }, linux => 'solaris', # alias + "bsd-gcc" => 'solaris', # alias aix => { writer => \&writer_aix, sort => sorter_unix(), platforms => { UNIX => 1, From builds at travis-ci.org Tue Oct 9 20:43:36 2018 From: builds at travis-ci.org (Travis CI) Date: Tue, 09 Oct 2018 20:43:36 +0000 Subject: [openssl-commits] Fixed: openssl/openssl#20997 (master - a5fcce6) In-Reply-To: Message-ID: <5bbd12f824f6d_43fb4f2390e681283a0@eb40adcd-f27d-409e-9cc7-11af9dfe220e.mail> Build Update for openssl/openssl ------------------------------------- Build: #20997 Status: Fixed Duration: 17 mins and 52 secs Commit: a5fcce6 (master) Author: Benjamin Kaduk Message: mkdef: bsd-gcc uses solaris symbol version scripts As for linux, make bsd-gcc an alias to the solaris semantics for shared library symbol version handling. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7376) View the changeset: https://github.com/openssl/openssl/compare/5c1bd555d3c8...a5fcce6b9534 View the full build log and details: https://travis-ci.org/openssl/openssl/builds/439334386?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From yang.yang at baishancloud.com Wed Oct 10 01:51:58 2018 From: yang.yang at baishancloud.com (yang.yang at baishancloud.com) Date: Wed, 10 Oct 2018 01:51:58 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1539136318.282509.7330.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via 8848b14fda7eded1c5a88f9f84eb13dcf69c3960 (commit) from a7ee1ef61b1893038008691a4a6979cf2da91439 (commit) - Log ----------------------------------------------------------------- commit 8848b14fda7eded1c5a88f9f84eb13dcf69c3960 Author: Paul Yang Date: Mon Oct 8 17:04:14 2018 +0800 Fix a nit of copyright date range Should be 2018 instead of 20018. Reviewed-by: Tim Hudson Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7364) ----------------------------------------------------------------------- Summary of changes: crypto/poly1305/poly1305_ieee754.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/poly1305/poly1305_ieee754.c b/crypto/poly1305/poly1305_ieee754.c index 995a02e..7cfd968 100644 --- a/crypto/poly1305/poly1305_ieee754.c +++ b/crypto/poly1305/poly1305_ieee754.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-20018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy From openssl at openssl.org Wed Oct 10 01:55:43 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Wed, 10 Oct 2018 01:55:43 +0000 Subject: [openssl-commits] Still FAILED build of OpenSSL branch master with options -d --strict-warnings no-engine Message-ID: <1539136543.953781.24934.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine Commit log since last time: a5fcce6b95 mkdef: bsd-gcc uses solaris symbol version scripts 5c1bd555d3 Fix a nit of copyright date range Build log ended with (last 100 lines): /usr/bin/perl ../openssl/test/generate_buildtest.pl seed > test/buildtest_seed.c /usr/bin/perl ../openssl/test/generate_buildtest.pl sha > test/buildtest_sha.c /usr/bin/perl ../openssl/test/generate_buildtest.pl srp > test/buildtest_srp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl srtp > test/buildtest_srtp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl > test/buildtest_ssl.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl2 > test/buildtest_ssl2.c /usr/bin/perl ../openssl/test/generate_buildtest.pl stack > test/buildtest_stack.c /usr/bin/perl ../openssl/test/generate_buildtest.pl store > test/buildtest_store.c /usr/bin/perl ../openssl/test/generate_buildtest.pl symhacks > test/buildtest_symhacks.c /usr/bin/perl ../openssl/test/generate_buildtest.pl tls1 > test/buildtest_tls1.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ts > test/buildtest_ts.c /usr/bin/perl ../openssl/test/generate_buildtest.pl txt_db > test/buildtest_txt_db.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ui > test/buildtest_ui.c /usr/bin/perl ../openssl/test/generate_buildtest.pl whrlpool > test/buildtest_whrlpool.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509 > test/buildtest_x509.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509_vfy > test/buildtest_x509_vfy.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509v3 > test/buildtest_x509v3.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/casttest-bin-casttest.d.tmp -MT test/casttest-bin-casttest.o -c -o test/casttest-bin-casttest.o ../openssl/test/casttest.c clang -I. -Iinclude -Icrypto/include -I../openssl -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/chacha_internal_test-bin-chacha_internal_test.d.tmp -MT test/chacha_internal_test-bin-chacha_internal_test.o -c -o test/chacha_internal_test-bin-chacha_internal_test.o ../openssl/test/chacha_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherbytes_test-bin-cipherbytes_test.d.tmp -MT test/cipherbytes_test-bin-cipherbytes_test.o -c -o test/cipherbytes_test-bin-cipherbytes_test.o ../openssl/test/cipherbytes_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherlist_test-bin-cipherlist_test.d.tmp -MT test/cipherlist_test-bin-cipherlist_test.o -c -o test/cipherlist_test-bin-cipherlist_test.o ../openssl/test/cipherlist_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ciphername_test-bin-ciphername_test.d.tmp -MT test/ciphername_test-bin-ciphername_test.o -c -o test/ciphername_test-bin-ciphername_test.o ../openssl/test/ciphername_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/clienthellotest-bin-clienthellotest.d.tmp -MT test/clienthellotest-bin-clienthellotest.o -c -o test/clienthellotest-bin-clienthellotest.o ../openssl/test/clienthellotest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cmsapitest-bin-cmsapitest.d.tmp -MT test/cmsapitest-bin-cmsapitest.o -c -o test/cmsapitest-bin-cmsapitest.o ../openssl/test/cmsapitest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/conf_include_test-bin-conf_include_test.d.tmp -MT test/conf_include_test-bin-conf_include_test.o -c -o test/conf_include_test-bin-conf_include_test.o ../openssl/test/conf_include_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/constant_time_test-bin-constant_time_test.d.tmp -MT test/constant_time_test-bin-constant_time_test.o -c -o test/constant_time_test-bin-constant_time_test.o ../openssl/test/constant_time_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/crltest-bin-crltest.d.tmp -MT test/crltest-bin-crltest.o -c -o test/crltest-bin-crltest.o ../openssl/test/crltest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ct_test-bin-ct_test.d.tmp -MT test/ct_test-bin-ct_test.o -c -o test/ct_test-bin-ct_test.o ../openssl/test/ct_test.c clang -I. -Icrypto/include -Iinclude -I../openssl -I../openssl/crypto/include -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ctype_internal_test-bin-ctype_internal_test.d.tmp -MT test/ctype_internal_test-bin-ctype_internal_test.o -c -o test/ctype_internal_test-bin-ctype_internal_test.o ../openssl/test/ctype_internal_test.c clang -I. -Iinclude -Icrypto/ec/curve448 -I../openssl -I../openssl/include -I../openssl/crypto/ec/curve448 -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/curve448_internal_test-bin-curve448_internal_test.d.tmp -MT test/curve448_internal_test-bin-curve448_internal_test.o -c -o test/curve448_internal_test-bin-curve448_internal_test.o ../openssl/test/curve448_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/d2i_test-bin-d2i_test.d.tmp -MT test/d2i_test-bin-d2i_test.o -c -o test/d2i_test-bin-d2i_test.o ../openssl/test/d2i_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/danetest-bin-danetest.d.tmp -MT test/danetest-bin-danetest.o -c -o test/danetest-bin-danetest.o ../openssl/test/danetest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/destest-bin-destest.d.tmp -MT test/destest-bin-destest.o -c -o test/destest-bin-destest.o ../openssl/test/destest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dhtest-bin-dhtest.d.tmp -MT test/dhtest-bin-dhtest.o -c -o test/dhtest-bin-dhtest.o ../openssl/test/dhtest.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_ctr.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o ../openssl/test/drbg_cavs_data_ctr.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hash.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hash.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hash.o ../openssl/test/drbg_cavs_data_hash.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hmac.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o ../openssl/test/drbg_cavs_data_hmac.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_test.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_test.o -c -o test/drbg_cavs_test-bin-drbg_cavs_test.o ../openssl/test/drbg_cavs_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbgtest-bin-drbgtest.d.tmp -MT test/drbgtest-bin-drbgtest.o -c -o test/drbgtest-bin-drbgtest.o ../openssl/test/drbgtest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.d.tmp -MT test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o -c -o test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o ../openssl/test/dsa_no_digest_size_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsatest-bin-dsatest.d.tmp -MT test/dsatest-bin-dsatest.o -c -o test/dsatest-bin-dsatest.o ../openssl/test/dsatest.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-dtls_mtu_test.d.tmp -MT test/dtls_mtu_test-bin-dtls_mtu_test.o -c -o test/dtls_mtu_test-bin-dtls_mtu_test.o ../openssl/test/dtls_mtu_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-ssltestlib.d.tmp -MT test/dtls_mtu_test-bin-ssltestlib.o -c -o test/dtls_mtu_test-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-dtlstest.d.tmp -MT test/dtlstest-bin-dtlstest.o -c -o test/dtlstest-bin-dtlstest.o ../openssl/test/dtlstest.c clang -I. -Iinclude -I../openssl -I../openssl/include -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-ssltestlib.d.tmp -MT test/dtlstest-bin-ssltestlib.o -c -o test/dtlstest-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlsv1listentest-bin-dtlsv1listentest.d.tmp -MT test/dtlsv1listentest-bin-dtlsv1listentest.o -c -o test/dtlsv1listentest-bin-dtlsv1listentest.o ../openssl/test/dtlsv1listentest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecdsatest-bin-ecdsatest.d.tmp -MT test/ecdsatest-bin-ecdsatest.o -c -o test/ecdsatest-bin-ecdsatest.o ../openssl/test/ecdsatest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecstresstest-bin-ecstresstest.d.tmp -MT test/ecstresstest-bin-ecstresstest.o -c -o test/ecstresstest-bin-ecstresstest.o ../openssl/test/ecstresstest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ectest-bin-ectest.d.tmp -MT test/ectest-bin-ectest.o -c -o test/ectest-bin-ectest.o ../openssl/test/ectest.c ../openssl/test/ecdsatest.c:106:26: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' unsigned char digest[SHA_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:139:44: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) ^ ../openssl/test/ecdsatest.c:153:46: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:216:26: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char digest[SHA512_DIGEST_LENGTH]; ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/enginetest-bin-enginetest.d.tmp -MT test/enginetest-bin-enginetest.o -c -o test/enginetest-bin-enginetest.o ../openssl/test/enginetest.c ../openssl/test/ecdsatest.c:217:32: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char wrong_digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:229:39: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) ^ ../openssl/test/ecdsatest.c:230:52: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/errtest-bin-errtest.d.tmp -MT test/errtest-bin-errtest.o -c -o test/errtest-bin-errtest.o ../openssl/test/errtest.c ../openssl/test/ecdsatest.c:276:53: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:281:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:287:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:293:56: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:299:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:347:49: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:365:48: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ 14 errors generated. Makefile:13845: recipe for target 'test/ecdsatest-bin-ecdsatest.o' failed make[1]: *** [test/ecdsatest-bin-ecdsatest.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/openssl/run-checker/no-engine' Makefile:171: recipe for target 'all' failed make: *** [all] Error 2 From openssl at openssl.org Wed Oct 10 01:56:46 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Wed, 10 Oct 2018 01:56:46 +0000 Subject: [openssl-commits] Still FAILED build of OpenSSL branch master with options -d --strict-warnings no-engine no-shared Message-ID: <1539136606.736857.30497.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine no-shared Commit log since last time: a5fcce6b95 mkdef: bsd-gcc uses solaris symbol version scripts 5c1bd555d3 Fix a nit of copyright date range Build log ended with (last 100 lines): /usr/bin/perl ../openssl/test/generate_buildtest.pl safestack > test/buildtest_safestack.c /usr/bin/perl ../openssl/test/generate_buildtest.pl seed > test/buildtest_seed.c /usr/bin/perl ../openssl/test/generate_buildtest.pl sha > test/buildtest_sha.c /usr/bin/perl ../openssl/test/generate_buildtest.pl srp > test/buildtest_srp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl srtp > test/buildtest_srtp.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl > test/buildtest_ssl.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ssl2 > test/buildtest_ssl2.c /usr/bin/perl ../openssl/test/generate_buildtest.pl stack > test/buildtest_stack.c /usr/bin/perl ../openssl/test/generate_buildtest.pl store > test/buildtest_store.c /usr/bin/perl ../openssl/test/generate_buildtest.pl symhacks > test/buildtest_symhacks.c /usr/bin/perl ../openssl/test/generate_buildtest.pl tls1 > test/buildtest_tls1.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ts > test/buildtest_ts.c /usr/bin/perl ../openssl/test/generate_buildtest.pl txt_db > test/buildtest_txt_db.c /usr/bin/perl ../openssl/test/generate_buildtest.pl ui > test/buildtest_ui.c /usr/bin/perl ../openssl/test/generate_buildtest.pl whrlpool > test/buildtest_whrlpool.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509 > test/buildtest_x509.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509_vfy > test/buildtest_x509_vfy.c /usr/bin/perl ../openssl/test/generate_buildtest.pl x509v3 > test/buildtest_x509v3.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/casttest-bin-casttest.d.tmp -MT test/casttest-bin-casttest.o -c -o test/casttest-bin-casttest.o ../openssl/test/casttest.c clang -I. -Iinclude -Icrypto/include -I../openssl -I../openssl/include -I../openssl/crypto/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/chacha_internal_test-bin-chacha_internal_test.d.tmp -MT test/chacha_internal_test-bin-chacha_internal_test.o -c -o test/chacha_internal_test-bin-chacha_internal_test.o ../openssl/test/chacha_internal_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipher_overhead_test-bin-cipher_overhead_test.d.tmp -MT test/cipher_overhead_test-bin-cipher_overhead_test.o -c -o test/cipher_overhead_test-bin-cipher_overhead_test.o ../openssl/test/cipher_overhead_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherbytes_test-bin-cipherbytes_test.d.tmp -MT test/cipherbytes_test-bin-cipherbytes_test.o -c -o test/cipherbytes_test-bin-cipherbytes_test.o ../openssl/test/cipherbytes_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cipherlist_test-bin-cipherlist_test.d.tmp -MT test/cipherlist_test-bin-cipherlist_test.o -c -o test/cipherlist_test-bin-cipherlist_test.o ../openssl/test/cipherlist_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ciphername_test-bin-ciphername_test.d.tmp -MT test/ciphername_test-bin-ciphername_test.o -c -o test/ciphername_test-bin-ciphername_test.o ../openssl/test/ciphername_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/clienthellotest-bin-clienthellotest.d.tmp -MT test/clienthellotest-bin-clienthellotest.o -c -o test/clienthellotest-bin-clienthellotest.o ../openssl/test/clienthellotest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/cmsapitest-bin-cmsapitest.d.tmp -MT test/cmsapitest-bin-cmsapitest.o -c -o test/cmsapitest-bin-cmsapitest.o ../openssl/test/cmsapitest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/conf_include_test-bin-conf_include_test.d.tmp -MT test/conf_include_test-bin-conf_include_test.o -c -o test/conf_include_test-bin-conf_include_test.o ../openssl/test/conf_include_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/constant_time_test-bin-constant_time_test.d.tmp -MT test/constant_time_test-bin-constant_time_test.o -c -o test/constant_time_test-bin-constant_time_test.o ../openssl/test/constant_time_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/crltest-bin-crltest.d.tmp -MT test/crltest-bin-crltest.o -c -o test/crltest-bin-crltest.o ../openssl/test/crltest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ct_test-bin-ct_test.d.tmp -MT test/ct_test-bin-ct_test.o -c -o test/ct_test-bin-ct_test.o ../openssl/test/ct_test.c clang -I. -Icrypto/include -Iinclude -I../openssl -I../openssl/crypto/include -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ctype_internal_test-bin-ctype_internal_test.d.tmp -MT test/ctype_internal_test-bin-ctype_internal_test.o -c -o test/ctype_internal_test-bin-ctype_internal_test.o ../openssl/test/ctype_internal_test.c clang -I. -Iinclude -Icrypto/ec/curve448 -I../openssl -I../openssl/include -I../openssl/crypto/ec/curve448 -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/curve448_internal_test-bin-curve448_internal_test.d.tmp -MT test/curve448_internal_test-bin-curve448_internal_test.o -c -o test/curve448_internal_test-bin-curve448_internal_test.o ../openssl/test/curve448_internal_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/d2i_test-bin-d2i_test.d.tmp -MT test/d2i_test-bin-d2i_test.o -c -o test/d2i_test-bin-d2i_test.o ../openssl/test/d2i_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/danetest-bin-danetest.d.tmp -MT test/danetest-bin-danetest.o -c -o test/danetest-bin-danetest.o ../openssl/test/danetest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/destest-bin-destest.d.tmp -MT test/destest-bin-destest.o -c -o test/destest-bin-destest.o ../openssl/test/destest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dhtest-bin-dhtest.d.tmp -MT test/dhtest-bin-dhtest.o -c -o test/dhtest-bin-dhtest.o ../openssl/test/dhtest.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_ctr.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_ctr.o ../openssl/test/drbg_cavs_data_ctr.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hash.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hash.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hash.o ../openssl/test/drbg_cavs_data_hash.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_data_hmac.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o -c -o test/drbg_cavs_test-bin-drbg_cavs_data_hmac.o ../openssl/test/drbg_cavs_data_hmac.c clang -Iinclude -Itest -I. -I../openssl/include -I../openssl/test -I../openssl -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbg_cavs_test-bin-drbg_cavs_test.d.tmp -MT test/drbg_cavs_test-bin-drbg_cavs_test.o -c -o test/drbg_cavs_test-bin-drbg_cavs_test.o ../openssl/test/drbg_cavs_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/drbgtest-bin-drbgtest.d.tmp -MT test/drbgtest-bin-drbgtest.o -c -o test/drbgtest-bin-drbgtest.o ../openssl/test/drbgtest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.d.tmp -MT test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o -c -o test/dsa_no_digest_size_test-bin-dsa_no_digest_size_test.o ../openssl/test/dsa_no_digest_size_test.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dsatest-bin-dsatest.d.tmp -MT test/dsatest-bin-dsatest.o -c -o test/dsatest-bin-dsatest.o ../openssl/test/dsatest.c clang -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-dtls_mtu_test.d.tmp -MT test/dtls_mtu_test-bin-dtls_mtu_test.o -c -o test/dtls_mtu_test-bin-dtls_mtu_test.o ../openssl/test/dtls_mtu_test.c clang -I. -Iinclude -I../openssl -I../openssl/include -I. -Iinclude -I../openssl -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtls_mtu_test-bin-ssltestlib.d.tmp -MT test/dtls_mtu_test-bin-ssltestlib.o -c -o test/dtls_mtu_test-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-dtlstest.d.tmp -MT test/dtlstest-bin-dtlstest.o -c -o test/dtlstest-bin-dtlstest.o ../openssl/test/dtlstest.c clang -I. -Iinclude -I../openssl -I../openssl/include -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlstest-bin-ssltestlib.d.tmp -MT test/dtlstest-bin-ssltestlib.o -c -o test/dtlstest-bin-ssltestlib.o ../openssl/test/ssltestlib.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/dtlsv1listentest-bin-dtlsv1listentest.d.tmp -MT test/dtlsv1listentest-bin-dtlsv1listentest.o -c -o test/dtlsv1listentest-bin-dtlsv1listentest.o ../openssl/test/dtlsv1listentest.c clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecdsatest-bin-ecdsatest.d.tmp -MT test/ecdsatest-bin-ecdsatest.o -c -o test/ecdsatest-bin-ecdsatest.o ../openssl/test/ecdsatest.c ../openssl/test/ecdsatest.c:106:26: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' unsigned char digest[SHA_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:139:44: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) ^ ../openssl/test/ecdsatest.c:153:46: error: use of undeclared identifier 'SHA_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:216:26: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char digest[SHA512_DIGEST_LENGTH]; ^ ../openssl/test/ecdsatest.c:217:32: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' unsigned char wrong_digest[SHA512_DIGEST_LENGTH]; ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ecstresstest-bin-ecstresstest.d.tmp -MT test/ecstresstest-bin-ecstresstest.o -c -o test/ecstresstest-bin-ecstresstest.o ../openssl/test/ecstresstest.c ../openssl/test/ecdsatest.c:229:39: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) ^ ../openssl/test/ecdsatest.c:230:52: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) ^ ../openssl/test/ecdsatest.c:276:53: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, ^ clang -Iinclude -I../openssl/include -pthread -m64 -Wa,--noexecstack -Qunused-arguments -DDEBUG_UNUSED -DPEDANTIC -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wswitch -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wformat -Wtype-limits -Wundef -Werror -Wswitch-default -Wno-parentheses-equality -Wno-language-extension-token -Wno-extended-offsetof -Wconditional-uninitialized -Wincompatible-pointer-types-discards-qualifiers -Wmissing-variable-declarations -Wno-unknown-warning-option -Wall -O0 -g -MMD -MF test/ectest-bin-ectest.d.tmp -MT test/ectest-bin-ectest.o -c -o test/ectest-bin-ectest.o ../openssl/test/ectest.c ../openssl/test/ecdsatest.c:281:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:287:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:293:56: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:299:50: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:347:49: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ ../openssl/test/ecdsatest.c:365:48: error: use of undeclared identifier 'SHA512_DIGEST_LENGTH' if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, ^ 14 errors generated. Makefile:8507: recipe for target 'test/ecdsatest-bin-ecdsatest.o' failed make[1]: *** [test/ecdsatest-bin-ecdsatest.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/openssl/run-checker/no-engine_no-shared' Makefile:171: recipe for target 'all' failed make: *** [all] Error 2 From builds at travis-ci.org Wed Oct 10 02:10:43 2018 From: builds at travis-ci.org (Travis CI) Date: Wed, 10 Oct 2018 02:10:43 +0000 Subject: [openssl-commits] Passed: openssl/openssl#21000 (OpenSSL_1_1_1-stable - 8848b14) In-Reply-To: Message-ID: <5bbd5fa36c9de_43fb4f23962dc19798@eb40adcd-f27d-409e-9cc7-11af9dfe220e.mail> Build Update for openssl/openssl ------------------------------------- Build: #21000 Status: Passed Duration: 17 mins and 56 secs Commit: 8848b14 (OpenSSL_1_1_1-stable) Author: Paul Yang Message: Fix a nit of copyright date range Should be 2018 instead of 20018. Reviewed-by: Tim Hudson Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7364) View the changeset: https://github.com/openssl/openssl/compare/a7ee1ef61b18...8848b14fda7e View the full build log and details: https://travis-ci.org/openssl/openssl/builds/439434514?utm_medium=notification&utm_source=email -- You can unsubscribe from build emails from the openssl/openssl repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=5849220&utm_medium=notification&utm_source=email. Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications. -------------- next part -------------- An HTML attachment was scrubbed... URL: From osslsanity at gmail.com Wed Oct 10 03:01:06 2018 From: osslsanity at gmail.com (osslsanity at gmail.com) Date: Wed, 10 Oct 2018 03:01:06 +0000 (UTC) Subject: [openssl-commits] Build failed in Jenkins: 1_0_2_abi #542 Message-ID: <1101156375.196.1539140466552.JavaMail.jenkins@ip-172-31-34-99> See ------------------------------------------ [...truncated 408.17 KB...] make[4]: Leaving directory ` make[3]: Leaving directory ` make[3]: Entering directory ` make[4]: Entering directory ` make[4]: Leaving directory ` make[4]: Entering directory ` make[4]: Leaving directory ` make[3]: Leaving directory ` make[2]: Leaving directory ` make[1]: Leaving directory ` making all in apps... make[1]: Entering directory ` gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o verify.o verify.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o asn1pars.o asn1pars.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o req.o req.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dgst.o dgst.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dh.o dh.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dhparam.o dhparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o enc.o enc.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o passwd.o passwd.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o gendh.o gendh.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o errstr.o errstr.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ca.o ca.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkcs7.o pkcs7.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o crl2p7.o crl2p7.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o crl.o crl.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rsa.o rsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rsautl.o rsautl.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dsa.o dsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dsaparam.o dsaparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ec.o ec.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ecparam.o ecparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o x509.o x509.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o genrsa.o genrsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o gendsa.o gendsa.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o genpkey.o genpkey.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_server.o s_server.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_client.o s_client.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o speed.o speed.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_time.o s_time.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o apps.o apps.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_cb.o s_cb.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o s_socket.o s_socket.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o app_rand.o app_rand.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o version.o version.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sess_id.o sess_id.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ciphers.o ciphers.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o nseq.o nseq.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkcs12.o pkcs12.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkcs8.o pkcs8.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkey.o pkey.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkeyparam.o pkeyparam.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o pkeyutl.o pkeyutl.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o spkac.o spkac.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o smime.o smime.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o cms.o cms.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rand.o rand.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o engine.o engine.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ocsp.o ocsp.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o prime.o prime.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ts.o ts.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o srp.o srp.c gcc -DMONOLITH -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o openssl.o openssl.c rm -f openssl shlib_target=; if [ -n "libcrypto.so.1.0.0 libssl.so.1.0.0" ]; then \ shlib_target="linux-shared"; \ elif [ -n "" ]; then \ FIPSLD_CC="gcc"; CC=/usr/local/ssl/fips-2.0/bin/fipsld; export CC FIPSLD_CC; \ fi; \ LIBRARIES="-L.. -lssl -L.. -lcrypto" ; \ make -f ../Makefile.shared -e \ APPNAME=openssl OBJECTS="openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o" \ LIBDEPS=" $LIBRARIES -ldl" \ link_app.${shlib_target} make[2]: Entering directory ` make[2]: Leaving directory ` make[2]: Entering directory ` Doing certs/demo make[2]: Leaving directory ` make[1]: Leaving directory ` making all in test... make[1]: Entering directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o bntest.o bntest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ectest.o ectest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ecdsatest.o ecdsatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ecdhtest.o ecdhtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ideatest.o ideatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o md2test.o md2test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o md4test.o md4test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o md5test.o md5test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o hmactest.o hmactest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o wp_test.o wp_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rc2test.o rc2test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rc4test.o rc4test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rc5test.o rc5test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o destest.o destest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o shatest.o shatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sha1test.o sha1test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sha256t.o sha256t.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sha512t.o sha512t.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o mdc2test.o mdc2test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rmdtest.o rmdtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o randtest.o randtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dhtest.o dhtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o enginetest.o enginetest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o bftest.o bftest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o casttest.o casttest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ssltest.o ssltest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o exptest.o exptest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dsatest.o dsatest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o rsa_test.o rsa_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o evp_test.o evp_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o evp_extra_test.o evp_extra_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o igetest.o igetest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o jpaketest.o jpaketest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o srptest.o srptest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o asn1test.o asn1test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o v3nametest.o v3nametest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o heartbeat_test.o heartbeat_test.c make[2]: Entering directory ` ( :; LIBDEPS="${LIBDEPS:-../libssl.a ../libcrypto.a -ldl}"; LDCMD="${LDCMD:-gcc}"; LDFLAGS="${LDFLAGS:--fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM}"; LIBPATH=`for x in $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=heartbeat_test} heartbeat_test.o ${LIBDEPS} ) make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o constant_time_test.o constant_time_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o verify_extra_test.o verify_extra_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o clienthellotest.o clienthellotest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o sslv2conftest.o sslv2conftest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dtlstest.o dtlstest.c gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o ssltestlib.o ssltestlib.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o bad_dtls_test.o bad_dtls_test.c bad_dtls_test.c: In function 'PACKET_get_length_prefixed_1': bad_dtls_test.c:245:18: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] subpkt->curr = data; ^ bad_dtls_test.c:240:26: warning: 'length' may be used uninitialized in this function [-Wmaybe-uninitialized] !PACKET_get_bytes(&tmp, &data, (size_t)length)) { ^ bad_dtls_test.c: In function 'validate_ccs': bad_dtls_test.c:696:33: warning: 'u' may be used uninitialized in this function [-Wmaybe-uninitialized] if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_CHANGE_CIPHER_SPEC) ^ bad_dtls_test.c: In function 'validate_client_hello': bad_dtls_test.c:429:33: warning: 'u' may be used uninitialized in this function [-Wmaybe-uninitialized] if (!PACKET_get_1(&pkt, &u) || u != SSL3_RT_HANDSHAKE) ^ make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o fatalerrtest.o fatalerrtest.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o x509_time_test.o x509_time_test.c make[2]: Entering directory ` make[2]: Leaving directory ` gcc -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g -Wa,--noexecstack -m64 -DL_ENDIAN -Og -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o dummytest.o dummytest.c make[2]: Entering directory ` make[2]: Leaving directory ` make[1]: Leaving directory ` making all in tools... make[1]: Entering directory ` make[1]: Nothing to be done for `all'. make[1]: Leaving directory ` [1_0_2_abi] $ /bin/sh -xe /tmp/jenkins5174902169610264844.sh + export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/bin + abi-dumper libcrypto.so.1.0.0 -o libcrypto.dump -lver 1 Reading debug-info Killed Build step 'Execute shell' marked build as failure Archiving artifacts From matt at openssl.org Wed Oct 10 08:45:31 2018 From: matt at openssl.org (Matt Caswell) Date: Wed, 10 Oct 2018 08:45:31 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539161131.700658.14546.nullmailer@dev.openssl.org> The branch master has been updated via 5f9f67b9d494e26941aa8d66d28a6a993c557643 (commit) from a5fcce6b953458a0f06a76d74c5fabfc355a1a41 (commit) - Log ----------------------------------------------------------------- commit 5f9f67b9d494e26941aa8d66d28a6a993c557643 Author: Matt Caswell Date: Mon Oct 8 12:16:22 2018 +0100 Fix no-engine Reviewed-by: Nicola Tuveri (Merged from https://github.com/openssl/openssl/pull/7365) ----------------------------------------------------------------------- Summary of changes: test/ecdsatest.c | 1 + 1 file changed, 1 insertion(+) diff --git a/test/ecdsatest.c b/test/ecdsatest.c index 01a19ce..96939a5 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c @@ -25,6 +25,7 @@ # ifndef OPENSSL_NO_ENGINE # include # endif +# include # include # include From matthias.st.pierre at ncp-e.com Wed Oct 10 10:40:31 2018 From: matthias.st.pierre at ncp-e.com (matthias.st.pierre at ncp-e.com) Date: Wed, 10 Oct 2018 10:40:31 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539168031.438115.27901.nullmailer@dev.openssl.org> The branch master has been updated via d90e128be6e584d319931c78cb8f8f68d17b6a34 (commit) from 5f9f67b9d494e26941aa8d66d28a6a993c557643 (commit) - Log ----------------------------------------------------------------- commit d90e128be6e584d319931c78cb8f8f68d17b6a34 Author: Dr. Matthias St. Pierre Date: Wed Oct 10 02:31:37 2018 +0200 rand_unix.c: fix --with-rand-seed=none build Fixes a compiler warning about an unused syscall_random() and cleans up the OPENSSL_RAND_SEED preprocessor logic. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/779) ----------------------------------------------------------------------- Summary of changes: crypto/rand/rand_unix.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c index f781961..e53b876 100644 --- a/crypto/rand/rand_unix.c +++ b/crypto/rand/rand_unix.c @@ -77,6 +77,17 @@ static uint64_t get_timer_bits(void); # endif #endif /* defined(OPENSSL_SYS_UNIX) || defined(__DJGPP__) */ +#if defined(OPENSSL_RAND_SEED_NONE) +/* none means none. this simplifies the following logic */ +# undef OPENSSL_RAND_SEED_OS +# undef OPENSSL_RAND_SEED_GETRANDOM +# undef OPENSSL_RAND_SEED_LIBRANDOM +# undef OPENSSL_RAND_SEED_DEVRANDOM +# undef OPENSSL_RAND_SEED_RDTSC +# undef OPENSSL_RAND_SEED_RDCPU +# undef OPENSSL_RAND_SEED_EGD +#endif + #if (defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI)) && \ !defined(OPENSSL_RAND_SEED_NONE) # error "UEFI and VXWorks only support seeding NONE" @@ -86,8 +97,6 @@ static uint64_t get_timer_bits(void); || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) \ || defined(OPENSSL_SYS_UEFI)) -static ssize_t syscall_random(void *buf, size_t buflen); - # if defined(OPENSSL_SYS_VOS) # ifndef OPENSSL_RAND_SEED_OS @@ -244,6 +253,7 @@ static ssize_t sysctl_random(char *buf, size_t buflen) } # endif +# if defined(OPENSSL_RAND_SEED_GETRANDOM) /* * syscall_random(): Try to get random data using a system call * returns the number of bytes returned in buf, or < 0 on error. @@ -302,8 +312,9 @@ static ssize_t syscall_random(void *buf, size_t buflen) return -1; # endif } +# endif /* defined(OPENSSL_RAND_SEED_GETRANDOM) */ -#if !defined(OPENSSL_RAND_SEED_NONE) && defined(OPENSSL_RAND_SEED_DEVRANDOM) +# if defined(OPENSSL_RAND_SEED_DEVRANDOM) static const char *random_device_paths[] = { DEVRANDOM }; static struct random_device { int fd; @@ -410,9 +421,7 @@ void rand_pool_keep_random_devices_open(int keep) keep_random_devices_open = keep; } -# else /* defined(OPENSSL_RAND_SEED_NONE) - * || !defined(OPENSSL_RAND_SEED_DEVRANDOM) - */ +# else /* !defined(OPENSSL_RAND_SEED_DEVRANDOM) */ int rand_pool_init(void) { @@ -427,9 +436,7 @@ void rand_pool_keep_random_devices_open(int keep) { } -# endif /* !defined(OPENSSL_RAND_SEED_NONE) - * && defined(OPENSSL_RAND_SEED_DEVRANDOM) - */ +# endif /* defined(OPENSSL_RAND_SEED_DEVRANDOM) */ /* * Try the various seeding methods in turn, exit when successful. @@ -450,14 +457,14 @@ void rand_pool_keep_random_devices_open(int keep) */ size_t rand_pool_acquire_entropy(RAND_POOL *pool) { -# ifdef OPENSSL_RAND_SEED_NONE +# if defined(OPENSSL_RAND_SEED_NONE) return rand_pool_entropy_available(pool); # else size_t bytes_needed; size_t entropy_available = 0; unsigned char *buffer; -# ifdef OPENSSL_RAND_SEED_GETRANDOM +# if defined(OPENSSL_RAND_SEED_GETRANDOM) { ssize_t bytes; /* Maximum allowed number of consecutive unsuccessful attempts */ @@ -487,7 +494,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) } # endif -# ifdef OPENSSL_RAND_SEED_DEVRANDOM +# if defined(OPENSSL_RAND_SEED_DEVRANDOM) bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/); { size_t i; @@ -524,19 +531,19 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) } # endif -# ifdef OPENSSL_RAND_SEED_RDTSC +# if defined(OPENSSL_RAND_SEED_RDTSC) entropy_available = rand_acquire_entropy_from_tsc(pool); if (entropy_available > 0) return entropy_available; # endif -# ifdef OPENSSL_RAND_SEED_RDCPU +# if defined(OPENSSL_RAND_SEED_RDCPU) entropy_available = rand_acquire_entropy_from_cpu(pool); if (entropy_available > 0) return entropy_available; # endif -# ifdef OPENSSL_RAND_SEED_EGD +# if defined(OPENSSL_RAND_SEED_EGD) bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/); if (bytes_needed > 0) { static const char *paths[] = { DEVRANDOM_EGD, NULL }; From matthias.st.pierre at ncp-e.com Wed Oct 10 10:41:06 2018 From: matthias.st.pierre at ncp-e.com (matthias.st.pierre at ncp-e.com) Date: Wed, 10 Oct 2018 10:41:06 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1539168066.934297.28773.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via b99f047f3f3bd3d98decc3fd8a5eb593fb2fe4dd (commit) from 8848b14fda7eded1c5a88f9f84eb13dcf69c3960 (commit) - Log ----------------------------------------------------------------- commit b99f047f3f3bd3d98decc3fd8a5eb593fb2fe4dd Author: Dr. Matthias St. Pierre Date: Wed Oct 10 02:31:37 2018 +0200 rand_unix.c: fix --with-rand-seed=none build Fixes a compiler warning about an unused syscall_random() and cleans up the OPENSSL_RAND_SEED preprocessor logic. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/779) (cherry picked from commit d90e128be6e584d319931c78cb8f8f68d17b6a34) ----------------------------------------------------------------------- Summary of changes: crypto/rand/rand_unix.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c index 9c62a04..fc2e929 100644 --- a/crypto/rand/rand_unix.c +++ b/crypto/rand/rand_unix.c @@ -77,6 +77,17 @@ static uint64_t get_timer_bits(void); # endif #endif /* defined(OPENSSL_SYS_UNIX) || defined(__DJGPP__) */ +#if defined(OPENSSL_RAND_SEED_NONE) +/* none means none. this simplifies the following logic */ +# undef OPENSSL_RAND_SEED_OS +# undef OPENSSL_RAND_SEED_GETRANDOM +# undef OPENSSL_RAND_SEED_LIBRANDOM +# undef OPENSSL_RAND_SEED_DEVRANDOM +# undef OPENSSL_RAND_SEED_RDTSC +# undef OPENSSL_RAND_SEED_RDCPU +# undef OPENSSL_RAND_SEED_EGD +#endif + #if (defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI)) && \ !defined(OPENSSL_RAND_SEED_NONE) # error "UEFI and VXWorks only support seeding NONE" @@ -86,8 +97,6 @@ static uint64_t get_timer_bits(void); || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) \ || defined(OPENSSL_SYS_UEFI)) -static ssize_t syscall_random(void *buf, size_t buflen); - # if defined(OPENSSL_SYS_VOS) # ifndef OPENSSL_RAND_SEED_OS @@ -244,6 +253,7 @@ static ssize_t sysctl_random(char *buf, size_t buflen) } # endif +# if defined(OPENSSL_RAND_SEED_GETRANDOM) /* * syscall_random(): Try to get random data using a system call * returns the number of bytes returned in buf, or < 0 on error. @@ -302,8 +312,9 @@ static ssize_t syscall_random(void *buf, size_t buflen) return -1; # endif } +# endif /* defined(OPENSSL_RAND_SEED_GETRANDOM) */ -#if !defined(OPENSSL_RAND_SEED_NONE) && defined(OPENSSL_RAND_SEED_DEVRANDOM) +# if defined(OPENSSL_RAND_SEED_DEVRANDOM) static const char *random_device_paths[] = { DEVRANDOM }; static struct random_device { int fd; @@ -410,9 +421,7 @@ void rand_pool_keep_random_devices_open(int keep) keep_random_devices_open = keep; } -# else /* defined(OPENSSL_RAND_SEED_NONE) - * || !defined(OPENSSL_RAND_SEED_DEVRANDOM) - */ +# else /* !defined(OPENSSL_RAND_SEED_DEVRANDOM) */ int rand_pool_init(void) { @@ -427,9 +436,7 @@ void rand_pool_keep_random_devices_open(int keep) { } -# endif /* !defined(OPENSSL_RAND_SEED_NONE) - * && defined(OPENSSL_RAND_SEED_DEVRANDOM) - */ +# endif /* defined(OPENSSL_RAND_SEED_DEVRANDOM) */ /* * Try the various seeding methods in turn, exit when successful. @@ -450,14 +457,14 @@ void rand_pool_keep_random_devices_open(int keep) */ size_t rand_pool_acquire_entropy(RAND_POOL *pool) { -# ifdef OPENSSL_RAND_SEED_NONE +# if defined(OPENSSL_RAND_SEED_NONE) return rand_pool_entropy_available(pool); # else size_t bytes_needed; size_t entropy_available = 0; unsigned char *buffer; -# ifdef OPENSSL_RAND_SEED_GETRANDOM +# if defined(OPENSSL_RAND_SEED_GETRANDOM) { ssize_t bytes; /* Maximum allowed number of consecutive unsuccessful attempts */ @@ -487,7 +494,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) } # endif -# ifdef OPENSSL_RAND_SEED_DEVRANDOM +# if defined(OPENSSL_RAND_SEED_DEVRANDOM) bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/); { size_t i; @@ -524,19 +531,19 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) } # endif -# ifdef OPENSSL_RAND_SEED_RDTSC +# if defined(OPENSSL_RAND_SEED_RDTSC) entropy_available = rand_acquire_entropy_from_tsc(pool); if (entropy_available > 0) return entropy_available; # endif -# ifdef OPENSSL_RAND_SEED_RDCPU +# if defined(OPENSSL_RAND_SEED_RDCPU) entropy_available = rand_acquire_entropy_from_cpu(pool); if (entropy_available > 0) return entropy_available; # endif -# ifdef OPENSSL_RAND_SEED_EGD +# if defined(OPENSSL_RAND_SEED_EGD) bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/); if (bytes_needed > 0) { static const char *paths[] = { DEVRANDOM_EGD, NULL }; From levitte at openssl.org Wed Oct 10 12:01:42 2018 From: levitte at openssl.org (Richard Levitte) Date: Wed, 10 Oct 2018 12:01:42 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539172902.813725.8616.nullmailer@dev.openssl.org> The branch master has been updated via c2e33a05b1eb9dda988aebdeaa529973d7c22142 (commit) from d90e128be6e584d319931c78cb8f8f68d17b6a34 (commit) - Log ----------------------------------------------------------------- commit c2e33a05b1eb9dda988aebdeaa529973d7c22142 Author: FdaSilvaYY Date: Fri Sep 15 21:14:34 2017 +0200 crypto/rand: fix some style nit's Reviewed-by: Matthias St. Pierre Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7378) ----------------------------------------------------------------------- Summary of changes: crypto/rand/drbg_ctr.c | 8 ++++---- crypto/rand/drbg_lib.c | 12 ++++++------ crypto/rand/rand_win.c | 4 ++-- util/indent.pro | 4 ++++ 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/crypto/rand/drbg_ctr.c b/crypto/rand/drbg_ctr.c index 97378be..0548237 100644 --- a/crypto/rand/drbg_ctr.c +++ b/crypto/rand/drbg_ctr.c @@ -401,10 +401,10 @@ int drbg_ctr_init(RAND_DRBG *drbg) if ((drbg->flags & RAND_DRBG_FLAG_CTR_NO_DF) == 0) { /* df initialisation */ static const unsigned char df_key[32] = { - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }; if (ctr->ctx_df == NULL) diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c index 10a17a9..c59f3f0 100644 --- a/crypto/rand/drbg_lib.c +++ b/crypto/rand/drbg_lib.c @@ -286,7 +286,7 @@ static RAND_DRBG *rand_drbg_new(int secure, return drbg; -err: + err: if (drbg->secure) OPENSSL_secure_free(drbg); else @@ -378,7 +378,7 @@ int RAND_DRBG_instantiate(RAND_DRBG *drbg, entropylen = drbg->get_entropy(drbg, &entropy, min_entropy, min_entropylen, max_entropylen, 0); if (entropylen < min_entropylen - || entropylen > max_entropylen) { + || entropylen > max_entropylen) { RANDerr(RAND_F_RAND_DRBG_INSTANTIATE, RAND_R_ERROR_RETRIEVING_ENTROPY); goto end; } @@ -408,10 +408,10 @@ int RAND_DRBG_instantiate(RAND_DRBG *drbg, drbg->reseed_prop_counter = drbg->parent->reseed_prop_counter; } -end: + end: if (entropy != NULL && drbg->cleanup_entropy != NULL) drbg->cleanup_entropy(drbg, entropy, entropylen); - if (nonce != NULL && drbg->cleanup_nonce!= NULL ) + if (nonce != NULL && drbg->cleanup_nonce != NULL) drbg->cleanup_nonce(drbg, nonce, noncelen); if (drbg->pool != NULL) { if (drbg->state == DRBG_READY) { @@ -504,7 +504,7 @@ int RAND_DRBG_reseed(RAND_DRBG *drbg, drbg->max_entropylen, prediction_resistance); if (entropylen < drbg->min_entropylen - || entropylen > drbg->max_entropylen) { + || entropylen > drbg->max_entropylen) { RANDerr(RAND_F_RAND_DRBG_RESEED, RAND_R_ERROR_RETRIEVING_ENTROPY); goto end; } @@ -522,7 +522,7 @@ int RAND_DRBG_reseed(RAND_DRBG *drbg, drbg->reseed_prop_counter = drbg->parent->reseed_prop_counter; } -end: + end: if (entropy != NULL && drbg->cleanup_entropy != NULL) drbg->cleanup_entropy(drbg, entropy, entropylen); if (drbg->state == DRBG_READY) diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c index 34c2a8b..d2039eb 100644 --- a/crypto/rand/rand_win.c +++ b/crypto/rand/rand_win.c @@ -67,7 +67,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) if (buffer != NULL) { size_t bytes = 0; if (BCryptGenRandom(NULL, buffer, bytes_needed, - BCRYPT_USE_SYSTEM_PREFERRED_RNG) == STATUS_SUCCESS) + BCRYPT_USE_SYSTEM_PREFERRED_RNG) == STATUS_SUCCESS) bytes = bytes_needed; rand_pool_add_end(pool, bytes, 8 * bytes); @@ -82,7 +82,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) size_t bytes = 0; /* poll the CryptoAPI PRNG */ if (CryptAcquireContextW(&hProvider, NULL, NULL, PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT | CRYPT_SILENT) != 0) { + CRYPT_VERIFYCONTEXT | CRYPT_SILENT) != 0) { if (CryptGenRandom(hProvider, bytes_needed, buffer) != 0) bytes = bytes_needed; diff --git a/util/indent.pro b/util/indent.pro index 1802646..443bddb 100644 --- a/util/indent.pro +++ b/util/indent.pro @@ -637,3 +637,7 @@ -T ossl_uintmax_t -T ossl_uintmax_t -T CT_POLICY_EVAL_CTX +-T RAND_DRBG +-T RAND_DRBG_CTR +-T RAND_POOL +-T RAND_METHOD From levitte at openssl.org Wed Oct 10 12:02:55 2018 From: levitte at openssl.org (Richard Levitte) Date: Wed, 10 Oct 2018 12:02:55 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1539172975.998104.10822.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via 7f0e220f4d842a7694ed0f8ff9675745977ce9a0 (commit) from b99f047f3f3bd3d98decc3fd8a5eb593fb2fe4dd (commit) - Log ----------------------------------------------------------------- commit 7f0e220f4d842a7694ed0f8ff9675745977ce9a0 Author: FdaSilvaYY Date: Fri Sep 15 21:14:34 2017 +0200 crypto/rand: fix some style nit's Reviewed-by: Matthias St. Pierre Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7378) (cherry picked from commit c2e33a05b1eb9dda988aebdeaa529973d7c22142) ----------------------------------------------------------------------- Summary of changes: crypto/rand/drbg_ctr.c | 8 ++++---- crypto/rand/drbg_lib.c | 12 ++++++------ crypto/rand/rand_win.c | 4 ++-- util/indent.pro | 4 ++++ 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/crypto/rand/drbg_ctr.c b/crypto/rand/drbg_ctr.c index fe15164..2b1925f 100644 --- a/crypto/rand/drbg_ctr.c +++ b/crypto/rand/drbg_ctr.c @@ -402,10 +402,10 @@ int drbg_ctr_init(RAND_DRBG *drbg) if ((drbg->flags & RAND_DRBG_FLAG_CTR_NO_DF) == 0) { /* df initialisation */ static const unsigned char df_key[32] = { - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }; if (ctr->ctx_df == NULL) diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c index 9c315ed..6b1e251 100644 --- a/crypto/rand/drbg_lib.c +++ b/crypto/rand/drbg_lib.c @@ -228,7 +228,7 @@ static RAND_DRBG *rand_drbg_new(int secure, return drbg; -err: + err: if (drbg->secure) OPENSSL_secure_free(drbg); else @@ -320,7 +320,7 @@ int RAND_DRBG_instantiate(RAND_DRBG *drbg, entropylen = drbg->get_entropy(drbg, &entropy, min_entropy, min_entropylen, max_entropylen, 0); if (entropylen < min_entropylen - || entropylen > max_entropylen) { + || entropylen > max_entropylen) { RANDerr(RAND_F_RAND_DRBG_INSTANTIATE, RAND_R_ERROR_RETRIEVING_ENTROPY); goto end; } @@ -350,10 +350,10 @@ int RAND_DRBG_instantiate(RAND_DRBG *drbg, drbg->reseed_counter = drbg->parent->reseed_counter; } -end: + end: if (entropy != NULL && drbg->cleanup_entropy != NULL) drbg->cleanup_entropy(drbg, entropy, entropylen); - if (nonce != NULL && drbg->cleanup_nonce!= NULL ) + if (nonce != NULL && drbg->cleanup_nonce != NULL) drbg->cleanup_nonce(drbg, nonce, noncelen); if (drbg->pool != NULL) { if (drbg->state == DRBG_READY) { @@ -429,7 +429,7 @@ int RAND_DRBG_reseed(RAND_DRBG *drbg, drbg->max_entropylen, prediction_resistance); if (entropylen < drbg->min_entropylen - || entropylen > drbg->max_entropylen) { + || entropylen > drbg->max_entropylen) { RANDerr(RAND_F_RAND_DRBG_RESEED, RAND_R_ERROR_RETRIEVING_ENTROPY); goto end; } @@ -447,7 +447,7 @@ int RAND_DRBG_reseed(RAND_DRBG *drbg, drbg->reseed_counter = drbg->parent->reseed_counter; } -end: + end: if (entropy != NULL && drbg->cleanup_entropy != NULL) drbg->cleanup_entropy(drbg, entropy, entropylen); if (drbg->state == DRBG_READY) diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c index 34c2a8b..d2039eb 100644 --- a/crypto/rand/rand_win.c +++ b/crypto/rand/rand_win.c @@ -67,7 +67,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) if (buffer != NULL) { size_t bytes = 0; if (BCryptGenRandom(NULL, buffer, bytes_needed, - BCRYPT_USE_SYSTEM_PREFERRED_RNG) == STATUS_SUCCESS) + BCRYPT_USE_SYSTEM_PREFERRED_RNG) == STATUS_SUCCESS) bytes = bytes_needed; rand_pool_add_end(pool, bytes, 8 * bytes); @@ -82,7 +82,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) size_t bytes = 0; /* poll the CryptoAPI PRNG */ if (CryptAcquireContextW(&hProvider, NULL, NULL, PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT | CRYPT_SILENT) != 0) { + CRYPT_VERIFYCONTEXT | CRYPT_SILENT) != 0) { if (CryptGenRandom(hProvider, bytes_needed, buffer) != 0) bytes = bytes_needed; diff --git a/util/indent.pro b/util/indent.pro index 1802646..443bddb 100644 --- a/util/indent.pro +++ b/util/indent.pro @@ -637,3 +637,7 @@ -T ossl_uintmax_t -T ossl_uintmax_t -T CT_POLICY_EVAL_CTX +-T RAND_DRBG +-T RAND_DRBG_CTR +-T RAND_POOL +-T RAND_METHOD From openssl at openssl.org Thu Oct 11 02:00:12 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Thu, 11 Oct 2018 02:00:12 +0000 Subject: [openssl-commits] SUCCESSFUL build of OpenSSL branch master with options -d --strict-warnings no-engine Message-ID: <1539223212.600376.20130.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine Commit log since last time: c2e33a05b1 crypto/rand: fix some style nit's d90e128be6 rand_unix.c: fix --with-rand-seed=none build 5f9f67b9d4 Fix no-engine From openssl at openssl.org Thu Oct 11 02:09:44 2018 From: openssl at openssl.org (OpenSSL run-checker) Date: Thu, 11 Oct 2018 02:09:44 +0000 Subject: [openssl-commits] SUCCESSFUL build of OpenSSL branch master with options -d --strict-warnings no-engine no-shared Message-ID: <1539223784.575748.8941.nullmailer@run.openssl.org> Platform and configuration command: $ uname -a Linux run 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ CC=clang ../openssl/config -d --strict-warnings no-engine no-shared Commit log since last time: c2e33a05b1 crypto/rand: fix some style nit's d90e128be6 rand_unix.c: fix --with-rand-seed=none build 5f9f67b9d4 Fix no-engine From osslsanity at gmail.com Thu Oct 11 03:01:25 2018 From: osslsanity at gmail.com (osslsanity at gmail.com) Date: Thu, 11 Oct 2018 03:01:25 +0000 (UTC) Subject: [openssl-commits] Jenkins build is back to normal : 1_0_2_abi #543 In-Reply-To: <1101156375.196.1539140466552.JavaMail.jenkins@ip-172-31-34-99> References: <1101156375.196.1539140466552.JavaMail.jenkins@ip-172-31-34-99> Message-ID: <2135041217.199.1539226885572.JavaMail.jenkins@ip-172-31-34-99> See From yang.yang at baishancloud.com Thu Oct 11 03:23:17 2018 From: yang.yang at baishancloud.com (yang.yang at baishancloud.com) Date: Thu, 11 Oct 2018 03:23:17 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539228197.310387.31097.nullmailer@dev.openssl.org> The branch master has been updated via 19ac1bf2de07214ee7ee6d2e118fa3aa8e5850f3 (commit) from c2e33a05b1eb9dda988aebdeaa529973d7c22142 (commit) - Log ----------------------------------------------------------------- commit 19ac1bf2de07214ee7ee6d2e118fa3aa8e5850f3 Author: Paul Yang Date: Mon Oct 8 16:36:49 2018 +0800 Fix compiling warnings in example code The example code in EVP_DigestInit.pod generates warnings if users try to compile it. [skip ci] Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7362) ----------------------------------------------------------------------- Summary of changes: doc/man3/EVP_DigestInit.pod | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/man3/EVP_DigestInit.pod b/doc/man3/EVP_DigestInit.pod index 0fedd17..5ecbcc5 100644 --- a/doc/man3/EVP_DigestInit.pod +++ b/doc/man3/EVP_DigestInit.pod @@ -310,16 +310,17 @@ This example digests the data "Test Message\n" and "Hello World\n", using the digest name passed on the command line. #include + #include #include - main(int argc, char *argv[]) + int main(int argc, char *argv[]) { EVP_MD_CTX *mdctx; const EVP_MD *md; char mess1[] = "Test Message\n"; char mess2[] = "Hello World\n"; unsigned char md_value[EVP_MAX_MD_SIZE]; - int md_len, i; + unsigned int md_len, i; if (argv[1] == NULL) { printf("Usage: mdtest digestname\n"); From yang.yang at baishancloud.com Thu Oct 11 03:23:30 2018 From: yang.yang at baishancloud.com (yang.yang at baishancloud.com) Date: Thu, 11 Oct 2018 03:23:30 +0000 Subject: [openssl-commits] [openssl] OpenSSL_1_1_1-stable update Message-ID: <1539228210.848969.32005.nullmailer@dev.openssl.org> The branch OpenSSL_1_1_1-stable has been updated via a53561e822f151071a834ddeb3870b1363ac9e1e (commit) from 7f0e220f4d842a7694ed0f8ff9675745977ce9a0 (commit) - Log ----------------------------------------------------------------- commit a53561e822f151071a834ddeb3870b1363ac9e1e Author: Paul Yang Date: Mon Oct 8 16:36:49 2018 +0800 Fix compiling warnings in example code The example code in EVP_DigestInit.pod generates warnings if users try to compile it. [skip ci] Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7362) (cherry picked from commit 19ac1bf2de07214ee7ee6d2e118fa3aa8e5850f3) ----------------------------------------------------------------------- Summary of changes: doc/man3/EVP_DigestInit.pod | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/man3/EVP_DigestInit.pod b/doc/man3/EVP_DigestInit.pod index 0fedd17..5ecbcc5 100644 --- a/doc/man3/EVP_DigestInit.pod +++ b/doc/man3/EVP_DigestInit.pod @@ -310,16 +310,17 @@ This example digests the data "Test Message\n" and "Hello World\n", using the digest name passed on the command line. #include + #include #include - main(int argc, char *argv[]) + int main(int argc, char *argv[]) { EVP_MD_CTX *mdctx; const EVP_MD *md; char mess1[] = "Test Message\n"; char mess2[] = "Hello World\n"; unsigned char md_value[EVP_MAX_MD_SIZE]; - int md_len, i; + unsigned int md_len, i; if (argv[1] == NULL) { printf("Usage: mdtest digestname\n"); From yang.yang at baishancloud.com Thu Oct 11 04:16:48 2018 From: yang.yang at baishancloud.com (yang.yang at baishancloud.com) Date: Thu, 11 Oct 2018 04:16:48 +0000 Subject: [openssl-commits] [openssl] master update Message-ID: <1539231408.345431.6446.nullmailer@dev.openssl.org> The branch master has been updated via c033101db39c93cf41d80dfee4357f2617ede1a0 (commit) from 19ac1bf2de07214ee7ee6d2e118fa3aa8e5850f3 (commit) - Log ----------------------------------------------------------------- commit c033101db39c93cf41d80dfee4357f2617ede1a0 Author: Mykola Baibuz Date: Thu Oct 11 12:07:26 2018 +0800 Safer memory cleanup in (crypto/rsa/rsa_lib.c) We don't need to use secure clean for public key. CLA: trivial Reviewed-by: Paul Dale Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/7363) ----------------------------------------------------------------------- Summary of changes: crypto/rsa/rsa_lib.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crypto/rsa/rsa_lib.c b/crypto/rsa/rsa_lib.c index 72d1b5e..49c34b7 100644 --- a/crypto/rsa/rsa_lib.c +++ b/crypto/rsa/rsa_lib.c @@ -125,8 +125,8 @@ void RSA_free(RSA *r) CRYPTO_THREAD_lock_free(r->lock); - BN_clear_free(r->n); - BN_clear_free(r->e); + BN_free(r->n); + BN_free(r->e); BN_clear_free(r->d); BN_clear_free(r->p); BN_clear_free(r->q); @@ -196,7 +196,7 @@ int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) r->e = e; } if (d != NULL) { - BN_free(r->d); + BN_clear_free(r->d); r->d = d; } @@ -213,11 +213,11 @@ int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q) return 0; if (p != NULL) { - BN_free(r->p); + BN_clear_free(r->p); r->p = p; } if (q != NULL) { - BN_free(r->q); + BN_clear_free(r->q); r->q = q; } @@ -235,15 +235,15 @@ int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) return 0; if (dmp1 != NULL) { - BN_free(r->dmp1); + BN_clear_free(r->dmp1); r->dmp1 = dmp1; } if (dmq1 != NULL) { - BN_free(r->dmq1); + BN_clear_free(r->dmq1); r->dmq1 = dmq1; } if (iqmp != NULL) { - BN_free(r->iqmp); + BN_clear_free(r->iqmp); r->iqmp = iqmp; } From matt at openssl.org Thu Oct 11 08:35:03 2018 From: matt at openssl.org (Matt Caswell) Date: Thu, 11 Oct 2018 08:35:03 +0000 Subject: [openssl-commits] [web] master update Message-ID: <1539246903.450671.31194.nullmailer@dev.openssl.org> The branch master has been updated via 0fdc26a3da6206efb38025e5f2d94a97760f0614 (commit) from 39045b9f57b5ff168bb646f44119bf4dc55ba37c (commit) - Log ----------------------------------------------------------------- commit 0fdc26a3da6206efb38025e5f2d94a97760f0614 Author: Matt Caswell Date: Wed Oct 10 17:19:54 2018 +0100 Correct the contact email on the trademark page Reviewed-by: Mark J. Cox (Merged from https://github.com/openssl/web/pull/87) ----------------------------------------------------------------------- Summary of changes: policies/trademark.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/policies/trademark.html b/policies/trademark.html index f669e46..39ecab7 100644 --- a/policies/trademark.html +++ b/policies/trademark.html @@ -134,7 +134,7 @@

When in doubt about the use of OpenSSL trademarks, or to request permission for uses not allowed by this policy, please send an email to - contact at openssl.org. + osf-contact at openssl.org. Be sure to include the following information in the body of your message: