From 94a0a96cd8db717381f0c57af4782f385029fa89 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 21 Feb 2011 19:36:55 +0000 Subject: [PATCH] Initial perl script to filter out unneeded files for a fips tarball. --- util/fipsdist.pl | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 util/fipsdist.pl diff --git a/util/fipsdist.pl b/util/fipsdist.pl new file mode 100644 index 0000000000..86ceab02ab --- /dev/null +++ b/util/fipsdist.pl @@ -0,0 +1,44 @@ + +# FIPS distribution filter. +# Takes tarball listing and removes unnecessary files and directories. +# + + +my $objs = ""; +foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_OBJ") + { + $objs .= " $ENV{$_}"; + } + + +my @objlist = split / /, $objs; + +foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o$/}; + +$tarobjs{"ncbc_enc.c"} = 1; + +foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 }; + +$cdirs{perlasm} = 1; + +foreach (keys %cdirs) { print STDERR "CDIR: $_\n";} + +while () + { + chomp; + # Skip directories but leave top level files. + next unless (/^(fips\/|crypto|util|test|include)/ || (!/\// && -f $_)); + if (/^crypto\/([^\/]+)/) + { + # Skip unused directories under crypto/ + next if -d "crypto/$1" && !exists $cdirs{$1}; + # Keep assembly language dir, Makefile or certain extensions + if (!/\/asm\// && !/\/Makefile$/ && && !/\.(in|pl|h)$/) + { + # If C source file must be on list. + next if !/(\w+\.c)$/ || !exists $tarobjs{$1}; + } + } + print "$_\n"; + } +exit 1; -- 2.25.1