2 # FIPS distribution filter.
3 # Takes tarball listing and removes unnecessary files and directories.
8 foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_OBJ")
16 my @objlist = split / /, $objs;
18 foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o
$/};
20 $tarobjs{"ncbc_enc.c"} = 1;
21 $tarobjs{"mem_clr.c"} = 1;
22 $tarobjs{"ppccap.c"} = 1;
23 $tarobjs{"sparcv9cap.c"} = 1;
24 $tarobjs{"armcap.c"} = 1;
26 foreach (split / /, $ENV{LINKDIRS
} ) { $cdirs{$_} = 1 };
30 $noec2m = 1 if (exists $ENV{NOEC2M
});
34 delete $tarobjs{"bn_gf2m.c"};
35 delete $tarobjs{"ec2_mult.c"};
36 delete $tarobjs{"ec2_smpl.c"};
42 "Makefile.shared" => 1,
54 # Keep top level files in list
57 next unless exists $keep{$_};
61 next unless (/^(fips\/|crypto
|util
|test
|include
|ms
)/);
63 if (/^crypto\/([^\
/]+)/)
65 # Skip unused directories under crypto/
66 next if -d
"crypto/$1" && !exists $cdirs{$1};
67 # Skip GF2m assembly language perl scripts
68 next if $noec2m && /gf2m\.pl/;
69 next if /vpaes-\w*\.pl/;
70 # Keep assembly language dir, Makefile or certain extensions
71 if (!/\/asm\
// && !/\/Makefile
$/ && !/\
.(in|pl
|h
|S
)$/)
73 # If C source file must be on list.
74 next if !/(\w+\.c)$/ || !exists $tarobjs{$1};
79 next unless /Makefile/ || /dummytest.c/;