FIPS module checksums: add scripts and Makefile rule

This adds the following scripts:

util/lang-compress.pl:

Compress source code, which language is determined by the first argument.
For the moment, we know 'perl' (perlasm source code), 'C' (C source code)
and 'S' (Assembler with C preprocessor directives).
This removes comments and empty lines, and compresses series of horizontal
spaces to one single space in the languages where that's appropriate.

util/fips-checksums.sh:

Takes source file names as arguments, pushes them through
util/lang-compress.pl and unifdef with FIPS_MODE defined, and calculates
the checksum on the result.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8871)
This commit is contained in:
Richard Levitte 2019-05-03 13:12:59 +02:00
parent 27ca03ea82
commit be22315235
6 changed files with 751 additions and 0 deletions

View File

@ -1055,6 +1055,9 @@ uninstall_html_docs:
# It's important that generate_buildinfo comes after ordinals, as ordinals
# is sensitive to build.info changes.
update: generate errors ordinals generate_buildinfo
{- output_off() if $disabled{fips}; "" -}
update: fips-checksums
{- output_on() if $disabled{fips}; "" -}
generate: generate_apps generate_crypto_bn generate_crypto_objects \
generate_crypto_conf generate_crypto_asn1 generate_fuzz_oids
@ -1267,6 +1270,20 @@ tags TAGS: FORCE
-ctags -R .
-etags `find . -name '*.[ch]' -o -name '*.pm'`
{- output_off() if $disabled{fips}; "" -}
fips-checksums: generate_fips_sources
if which unifdef > /dev/null; then \
( cd $(SRCDIR) \
&& cat providers/fips.module.sources \
| xargs ./util/fips-checksums.sh \
> providers/fips-sources.checksums \
&& sha256sum providers/fips-sources.checksums \
> providers/fips.checksum ); \
else \
echo >&2 "WARNING: unifdef not in your \$$PATH, FIPS checksums not calculated"; \
fi
{- output_on() if $disabled{fips}; "" -}
# Release targets (note: only available on Unix) #####################
tar:

View File

@ -0,0 +1,459 @@
0e22ea0cf34ef3871e30df0bc302dc29352d38001d1622ddb78a27a374b6aee8 crypto/aes/aes_cbc.c
6028cd3c2e466625cc0b8b9b6a12278e5935aec3bff1eab006c6f13a1e248260 crypto/aes/aes_core.c
3fac41ce96acb9189eac2d5571425c3ff33a34c884ae7e275e1fd3068b5fc662 crypto/aes/aes_ecb.c
a2466f18da5847c7d9fbced17524633c10ce024671a72f53f9c9c55b9b9923dd crypto/aes/aes_misc.c
6979c133f76f4623e62e6e970deae70fa025e713a72b71aead5a048d49e47f6f crypto/aes/asm/aes-586.pl
92be9ff608331a432e95247a8f4fb9e46897d0cb76f2b6db809b61d44287964a crypto/aes/asm/aes-armv4.pl
953897f86e2de9fa27ef411155ab3aed133af94885f1507e76449c142da78656 crypto/aes/asm/aes-c64xplus.pl
00196f01f5218ad731e6a058d406078f7228a9756d9d73f51c0d0c2a68f885af crypto/aes/asm/aes-ia64.S
88b6f8396cd9d86004743d5c3b0f72b7b8c3d5a2b00b0bbb761ba91ae5a7cdc8 crypto/aes/asm/aes-mips.pl
7ff9c96ef3d591d45d776fa4b244601ea0d9328e289aeab1e1b92436ce7d02ad crypto/aes/asm/aes-parisc.pl
f1244cdeadcb4e48f35bc5df19d4cfaf07e0086ad951b84f07ff6966501faa5b crypto/aes/asm/aes-ppc.pl
ecbfe826f4c514810c3ee20e265f4f621149694c298554b2682e5de4f029f14f crypto/aes/asm/aes-s390x.pl
01f60ddf86f97eae22559e4b5a79855296100a1ec04c527567ba5c52e4f64f9b crypto/aes/asm/aes-sparcv9.pl
2b3b9ac56bf54334d053857a24bdb08592151e8a7a60b89b8195846b7f8ee7b5 crypto/aes/asm/aes-x86_64.pl
cb429f1e92cb7d8397497a149161b10f05420031ba7d501e8b0c79ab7faaeb57 crypto/aes/asm/aesfx-sparcv9.pl
14359dc32b7f4e5c08227fb9ac8f9232c1287399463b233fec4a2ab0c19f68d1 crypto/aes/asm/aesni-mb-x86_64.pl
2fe016e8098d1c959b6199ce98e91dfed9a3a543d6b068daf88d4c4c402701ec crypto/aes/asm/aesni-sha1-x86_64.pl
1d3acabadedb88d1327eeb76201ea9b3f4814f44898018ffae6c73e3f400b89b crypto/aes/asm/aesni-sha256-x86_64.pl
3f4a0cc23cd55f9f2603abfdc33b08323ad599cbf84e50d7c39db82723b54c4a crypto/aes/asm/aesni-x86.pl
c7c6694480bb5319690f94826139a93f5c460ebea6dba101b520a76cb956ec93 crypto/aes/asm/aesni-x86_64.pl
f3a8f3c960c0f47aaa8fc2633d18b14e7c7feeccc536b0115a08bc58333122b6 crypto/aes/asm/aesp8-ppc.pl
0b0ff9898edbe069320979eadb0114cb37761416750d983520af7ae47bb0fb48 crypto/aes/asm/aest4-sparcv9.pl
fbee40f89882019c0f03072f92fccd5cfc79bfebea2ff675909e731d0e71d622 crypto/aes/asm/aesv8-armx.pl
d643cf9f1c5641c8b72d9d738233e246ada3d7cc663ed0185a963b1f6ca4a2c5 crypto/aes/asm/bsaes-armv7.pl
88534cd35647eab07838cd005c04c8051236d4afca6df6f2b47e30b2a2e5c5a9 crypto/aes/asm/bsaes-x86_64.pl
1ff94d6bf6c8ae4809f64657eb89260fe3cb22137f649d3c73f72cb190258196 crypto/aes/asm/vpaes-armv8.pl
c3541865cd02d81101cdbab4877ed82772e6980d2c677b9008b38fa1b26d36d4 crypto/aes/asm/vpaes-ppc.pl
3ec24185750a995377516bc2fb2eae8b1c52094c6fff093bff591837fc12d6c3 crypto/aes/asm/vpaes-x86.pl
060bb6620f50af9afecdf97df051b45b9a50be9daf343dfec1cbb29693ce00a4 crypto/aes/asm/vpaes-x86_64.pl
fdabbeafcb4b351a13ec92f04a4427ff94e51909d3773e02ff526b4d77ded8dc crypto/asn1_dsa.c
819c9fd2b0cae9aab81c3cbd1815c2e22949d75f132f649b5883812d0bbaa39a crypto/bn/asm/alpha-mont.pl
0070595128b250b9ebdebe48ce53d2d27ca16ec4f7c6c8bd169ab2e4a913b2d1 crypto/bn/asm/armv4-gf2m.pl
8c1c53a725b8a4f92b8a353bfeeb393be94198df41c912e3270f9e654417b250 crypto/bn/asm/armv4-mont.pl
320a3feafffafc05a00a56202958abc258cff596c602604d6c878fa0ca3023d6 crypto/bn/asm/armv8-mont.pl
cb4ad7b7461fcb8e2a0d52881158d0211b79544842d4eae36fc566869a2d62c8 crypto/bn/asm/bn-586.pl
636da7e2a66272a81f9c99e90b36c6f132ad6236c739e8b9f2e7315f30b72edd crypto/bn/asm/c64xplus-gf2m.pl
c86664fb974362ee52a454c83c2c4b23fd5b7d64b3c9e23ef1e0dfd130a46ee5 crypto/bn/asm/co-586.pl
199b9b100f194a2a128c14f2a71be5a04d50d069666d90ca5b69baee1318ccb7 crypto/bn/asm/ia64-mont.pl
a511aafbf76647a0c83705d4491c898a5584d300aa449fa6166c8803372946eb crypto/bn/asm/ia64.S
687c5d6606fdfd0e242005972d15db74a9cbac2b8a9a54a56fcb1e99d3880ff3 crypto/bn/asm/mips-mont.pl
eb240c1f72063048abe026ab7fab340361a329d5cd355276a25950be446cc091 crypto/bn/asm/mips.pl
b27ec5181e387e812925bb26823b830f49d7a6e4971b6d11ea583f5632a1504b crypto/bn/asm/parisc-mont.pl
9973523b361db963eea4938a7a8a3adc692e1a4e1aec4fa1f1e57dc93da37921 crypto/bn/asm/ppc-mont.pl
59cd27e1e10c4984b7fb684b27f491e7634473b1bcff197a07e0ca653124aa9a crypto/bn/asm/ppc.pl
a25be64867ab837d93855af232e2bfa71b85b2c6f00e35e620fdc5618187fb6f crypto/bn/asm/ppc64-mont.pl
231579e532443665020d4d522d9f11713d9c5d5c814b95b434b0f65452e16de4 crypto/bn/asm/rsaz-avx2.pl
c9bd8679a5104affd9f3f0bcda726f823a1a53cac872e4a21a6f2370489dae08 crypto/bn/asm/rsaz-avx512.pl
31e84dc905b13e38850071528d3abbfcaf8910bbc8b46f38d19c2b386a5f838e crypto/bn/asm/rsaz-x86_64.pl
30fedf48dfc5fec1c2044b6c226dd9fc42a92522cc589797a23a79d452bdd2cf crypto/bn/asm/s390x-gf2m.pl
590388d69d7ac3a0e9af4014792f4f0fdb9552719e8fb48ebc7e5dfca2a491d4 crypto/bn/asm/s390x-mont.pl
aa02597f3dc09cfbc190aedb75711859ba0f3efff87067ebfba1ec78ebee40d7 crypto/bn/asm/s390x.S
458ecb209d5c2daf79b1d3abadc62e34809beed8be87a9c46f358850503045b8 crypto/bn/asm/sparct4-mont.pl
ca21a9ccbc54e19fb7c2e6cdf286ce7cb08b0fba960c777c6edce5c57ccc2101 crypto/bn/asm/sparcv8.S
fbc93c8dbbecefe66086f58fe9719ed87b13b2cdc61454a10e841228296fecef crypto/bn/asm/sparcv8plus.S
62105f8f1eb54778b52923f6d24f41392d0ede8804d7fb587bda2bc1af302560 crypto/bn/asm/sparcv9-gf2m.pl
115af57cbd6024fd88b6f56e656bdf44f8243ce4984d3f2ab8ecfad2af327db0 crypto/bn/asm/sparcv9-mont.pl
96cc20651e5e9dc8d87047a739ad4863a2bf2afee868c3337684bcd2241b7462 crypto/bn/asm/sparcv9a-mont.pl
d404375a21d33396824a3da212d6646d4f3150dd141ee4b4a250aefae3482efb crypto/bn/asm/via-mont.pl
da709b73914f9d43a46c699b8ec68c67c52fe853a76f531bfccb542470d97ae0 crypto/bn/asm/vis3-mont.pl
89278854f44d95be916516609ce6f79dcd346bab52574b9b6336a9952aa94bee crypto/bn/asm/x86-gf2m.pl
90d4ae234c08267adce9ed38d56e0edc223f7480cb9605f5d7399d0b3914c6be crypto/bn/asm/x86-mont.pl
66fca12f9829eac00ad86552307f084595835501a11971e68b4e319373afea3b crypto/bn/asm/x86_64-gcc.c
709ddee92e9222ee0ed27bfb90db556e85e2d302e4a9131afa25fdc14c4d858f crypto/bn/asm/x86_64-gf2m.pl
da7f7780d27eed164797e5334cd45b35d9c113e86afaca051463aef9a8fd787c crypto/bn/asm/x86_64-mont.pl
70efd46dc5f95312433dc6709ae33667897e6b132c57d7afff2dfd5adb836e86 crypto/bn/asm/x86_64-mont5.pl
d95277a3d7635a1f6a2613ba954606ae3c4bb260d11c85612ae83a05a726d03c crypto/bn/bn_add.c
6baa367447c968066e25934b0d00d3525b78ba00f733a5597988e810941dff88 crypto/bn/bn_asm.c
e263280dcd108a479b0ec60069ae7e74893135f6253bac4094279d2cf30557a8 crypto/bn/bn_blind.c
7b761d541e3b7f6a3f2b14a09b2b3836a079a845cf67a54db4853e3fd38277c6 crypto/bn/bn_const.c
354b467799488fabfc15597b0b16cfde805826ba1b7ab6ba78ac2d1606337f1a crypto/bn/bn_conv.c
ac212b69f4958abaedae9a830fd5084a8e9e166b748b9f3cacfaa2dae77a5570 crypto/bn/bn_ctx.c
55349393c0a3f73edfe8a8b9953bd13cbda6186dbeb097e71748885947f672ed crypto/bn/bn_dh.c
034baac767c911705235da9507e0b9d029ec3746c5469069a110ed899cf7ddff crypto/bn/bn_div.c
fb4104aa82438b5dda1592a7d41e8936356734801b26f864c22264615cb4df4d crypto/bn/bn_exp.c
4a0295e30ac91bfbfdcd3f2d0cbd5eaf4f5a44b4bba3135b137a692394a2f897 crypto/bn/bn_exp2.c
ad162484e30b1961f8326ee1cb2c71b77ea55e8383c609d7d3ee210c01a3fbd8 crypto/bn/bn_gcd.c
36314758440ce2ce20e22ff9b75f4689728c1c99cd51399a441c751502218074 crypto/bn/bn_gf2m.c
a4087c6c57d38fa7db0c6f4e203a4c21af836cfb6cac10b4841ef3bbd724f67d crypto/bn/bn_intern.c
dc213ef490a96c5e199e06058c32ae599825c668fc08d815d6384f57600df21d crypto/bn/bn_kron.c
805da9886392dde1419c0a2e2cf202a10c21dcdca2d9b7a38ac3d47036dc0b36 crypto/bn/bn_lib.c
07247dc2ccc55f3be525baed92fd20031bbaa80fd0bc56155e80ee0da3fc943d crypto/bn/bn_mod.c
80fb6afcf66958883d8ea06e63645c2b3eab0b8626a39fd7ea64d1c1768867c8 crypto/bn/bn_mont.c
2da73a76b746a47d8cf8ec8b3e0708c2a34e810abde4b4f1241a49e7f5bb2b60 crypto/bn/bn_mpi.c
02bf294bad18d12542fbe60a5ab0eea36dbc914b6d445ad8f4dd03324ee2a33e crypto/bn/bn_mul.c
0d4a2c25a3acd4adb45234837d427574bcb1e6800b69f8dfe68478d831491cf1 crypto/bn/bn_nist.c
b5ef389b9dd161d72d3e1c09ed8994112b6fe186294fd83139ed45729a7f5e64 crypto/bn/bn_prime.c
27c2196707a7b08cf2f04ee1a79212754196eeae5af2fa5048adac3072616399 crypto/bn/bn_rand.c
2a47b990bc53fec79013e0b2d1a9ee3512019705d6ec3a2625c43b0fb42d41aa crypto/bn/bn_recp.c
4e3d0ebda2d250887634ab491b398a71778431b3db4bc1eb329542f4bd0798cc crypto/bn/bn_rsa_fips186_4.c
9bbad44e0007a2a7f6caaa1a9c6a9d4e667afdac898b32598483ae336479cb72 crypto/bn/bn_shift.c
da5479cd30898cf455f2844478f2bf3993a5bfb612937a437976d7987867ee6f crypto/bn/bn_sqr.c
8815f85240c3af08ef421f83569c70ba68cdc7ad2ea5e6ab8079b40cdc2e1357 crypto/bn/bn_sqrt.c
0618c7368688ca73ffac5baecac36192c428c0fda4d1d473ef65ce64a0ffb75b crypto/bn/bn_word.c
ae840ec19a4e86f2b3a65f4d0c878c3885bac6ca6b24ab8c03b73c45c12e4d05 crypto/bn/rsaz_exp.c
135b85278d00b241eb2fc6714b3418e071618ec9dbbd2a6658a6291d71e7f393 crypto/bn/rsaz_exp_x2.c
834db8ff36006e5cb53e09ca6c44290124bd23692f4341ea6563b66fcade4cea crypto/bsearch.c
c39334b70e1394e43f378ae8d31b6e6dc125e4d9181e6536d38e649c4eaadb75 crypto/buffer/buffer.c
35e3ad090adedc8e5873e2831bf713e1f52846b4cbdd232e01692ebe35318c3c crypto/cmac/cmac.c
7f530e7d0fc7953aa6b70749796d31c1a03aa34e79a7dfd8b625a786e44c6171 crypto/context.c
0a27ead487bd4775cece449dab53ca5aa9d1997012c85b1dcd2178d3b851dd94 crypto/core_algorithm.c
2185a7d136ee77725fc1b8a6b401bebceeeddc067eea0482e0ab2916ce550e78 crypto/core_fetch.c
4ccc57e4bbd46b56c481a3e3c0c105ee27e82a87909637b75e605274e7f3cb44 crypto/core_namemap.c
469e2f53b5f76cd487a60d3d4c44c8fc3a6c4d08405597ba664661ba485508d3 crypto/cpuid.c
7c5237bdc26eca21d4ccb25f13569e217103fe21574157b813c2aecd05983472 crypto/cryptlib.c
53529f4e0575dd83b45a53e852fcec512ada53dd6979268e473885f139b8e0b9 crypto/ctype.c
8e61d79299003917ac409d129d291f0a63e4ed417811a8b21169b2b918355335 crypto/der_writer.c
b8272245e1a3bc813aeb48a1155ac37bc979ad4a6ff55baa8c97e62115abb0d1 crypto/des/des_enc.c
eeef5722ad56bf1af2ff71681bcc8b8525bc7077e973c98cee920ce9bcc66c81 crypto/des/ecb3_enc.c
cb363ba00f38e84c43af4802d8477a8877db3cea2fdc75299fec16f451ef1c69 crypto/des/fcrypt_b.c
5771c2e517df1dfa35e0cc06ce1d9808e3a5ab21110020d4bdf77284fedb41e1 crypto/des/set_key.c
47035cde6151da2aaabd614990d47de63550fed2561900559bd75305dd3856c8 crypto/dh/dh_backend.c
3f4f990509263483f3c0a57c2d40809eb5680d57197370314f94bc79f0389bed crypto/dh/dh_check.c
e6aa1e0379f298dd4250a376f3854db5d919d8b9557f3935b764b4b8ccd24de9 crypto/dh/dh_gen.c
ffe31cb7c0cd887d051867dfc37cce18a406c78c446f2a186d1f20247a5c914d crypto/dh/dh_group_params.c
6cbd1c6126feacd033e31412b3f38b1ef6909d44696864a2a63e86b8154fc1f4 crypto/dh/dh_kdf.c
2081bc70acd44998e750fa0f128fee7eed7a0e8745b45297e447a2e9dc95382e crypto/dh/dh_key.c
ce4d65315a746e1a65d3d151eec1c7fd39a9ddf445f2677a413ca1a7ecee6d7b crypto/dh/dh_lib.c
7d13f96896d5ba05342ab6913ceff3c1d0bab84b2e8fef1efa21bb155d5089af crypto/dsa/dsa_backend.c
b9c5992089203123c3fae46e39bb4d05e19854087bca7a30ad1f82a3505deec7 crypto/dsa/dsa_check.c
655b5bbc0bc5994ff5f1a77e86a396c4f7dfc9a46a8d9ac0aa8075ff85342233 crypto/dsa/dsa_gen.c
baa0b1c0a1f08975b2210926aeec7b98413f1d3467b490a3a0680496bd988cb0 crypto/dsa/dsa_key.c
5f27ca73fc4c11fb7f88d4874de22e525ce5f5e41bdd10e035453333c5190712 crypto/dsa/dsa_lib.c
fcbed2c442029ce1cdb2a3ea84aab9c70df7b43a65013edb30f7d3bc060e34c6 crypto/dsa/dsa_ossl.c
b57b648524bc7dd98f8e2737f4e87b5578c7921df59b1df4a03a34e23e977e8a crypto/dsa/dsa_sign.c
53fa10cc87ac63e35df661882852dc46ae68e6fee83b842f1aeefe00b8900ee1 crypto/dsa/dsa_vrf.c
78ad06b88fcc8689a3a846b82f9ee01546e5734acd1bccf2494e523b71dc74d1 crypto/ec/asm/ecp_nistz256-armv4.pl
4617351d2de4d0b2abfd358c58050cee00702d0b4c1acca09312ec870e351c7d crypto/ec/asm/ecp_nistz256-armv8.pl
3715ddd921425f3018741037f01455ed26a840ace08691a800708170a66cf4d2 crypto/ec/asm/ecp_nistz256-ppc64.pl
7aeade641bf28d9cfdc43dc20da0378df5225377dcf52835c7e76aab64d3af77 crypto/ec/asm/ecp_nistz256-sparcv9.pl
922725c4761cfa567af6ed9ecab04f2c7729ae2595f2fc0fa46dc67879dc87b0 crypto/ec/asm/ecp_nistz256-x86.pl
ac327475c7ec828d11aa05628b4e3b81ec3b1400f30fe7bec01daf3cf71f2dc9 crypto/ec/asm/ecp_nistz256-x86_64.pl
cc727533130f5f1a29229929b3d4e8454585d647be25d6344f3c6a0240998368 crypto/ec/asm/x25519-ppc64.pl
ee897e230964511baa0d1bf95fb938312407a40a88ebe01476879c2763e5f732 crypto/ec/asm/x25519-x86_64.pl
a33b6a29af8d9fcde009c17d0c2172a1212b111d7ad57def9ef23ab9c462072d crypto/ec/curve25519.c
2ab01341b36aecfd639d78609069229e51d3ebb1c678e8e9871b351d494bab8c crypto/ec/curve448/arch_32/f_impl32.c
f9ff1d9c68fee883fbb42978302d51404c2b5874cf3ba06b3e95cadd4b3e6bf5 crypto/ec/curve448/arch_64/f_impl64.c
eaa940893610f5ec1cc04f5b1842bfa0ba65bf048039e6cc2d2b83bbb575bb51 crypto/ec/curve448/curve448.c
178fb9863c33174b633c2e7607160b1bedb506d66cc06d53382d87431441f306 crypto/ec/curve448/curve448_tables.c
a1211ed3991af967c728b9f6d0774b9ea098d43cef0631ff88984a2580d2ac4f crypto/ec/curve448/eddsa.c
d4969259e4fa5b71d8abbf5e736e658bd1daad6e46d272a9b88e190e2de96b61 crypto/ec/curve448/f_generic.c
7aeddfe47959556f50856cb387d74b51d222c65f891acb83742313ddc49c0e93 crypto/ec/curve448/scalar.c
183589a8b496a07262821ce0bc49ffb35d0c4a6079d6845a9ce9cc360fda1d3d crypto/ec/ec2_oct.c
2488744af4b5ea50bcd1fb4419f2baf780b23b2077f11ebd16ff5cfeb3cb6820 crypto/ec/ec2_smpl.c
fb58b7de435bd680a5d8c8ccee332e2bc6732fad714bb3ff672985b9c28bb6c7 crypto/ec/ec_asn1.c
35a99d84388d7140084e565cbc0a7f57f1636d26e31fab342613d2c658b7cc7d crypto/ec/ec_backend.c
b54f29cafcc823b7ae1e3b7b52c4499c0d128a3c125bde5bcb245f6d441dcbee crypto/ec/ec_check.c
40d58e55ad3a54716b4c4d4c1c3730b07c07918f0ff3c5be965b4c5f47190b4b crypto/ec/ec_curve.c
8cfd0dcfb5acbf6105691a2d5e2826dba1ff3906707bc9dd6ff9bffcc306468f crypto/ec/ec_cvt.c
06fa7c8f23374ab9c1006d6fd65ee95dac3a3fae036ea6f14399c1a5cc0c7d00 crypto/ec/ec_deprecated.c
4802e8ff248ed63721e662ac03dd691824f1ef169af8d64001a57e99edec2133 crypto/ec/ec_key.c
25ec40a6ac424eef88bceb5375b91a289b1b0f68c00513d7e1f3b656825e4560 crypto/ec/ec_kmeth.c
6e88bdfe4e20583caf1c5748bccfec75815d7fc96c8c506410a8279e344be1a0 crypto/ec/ec_lib.c
a2aeb54b55b5ccc52e2a9b6410df395a6f41e1cb277253a38e86252479e62ed6 crypto/ec/ec_mult.c
129c6b42417bfcf582f4a959cfd65433e6f85b158274f4fa38f9c62615ac9166 crypto/ec/ec_oct.c
ccbf1f7dcba81cb40c07619120e9c330e06e1e7c788ca8912f0f4b1d25bd3f7c crypto/ec/ec_print.c
4341615ac00e3e42c41acd3b36af10250995fb919febc5289122b785c5eccf73 crypto/ec/ecdh_kdf.c
b2cf8f052a5716137da7b0e857ed7a5df5fb513b6d14534199a05e32f2b5a866 crypto/ec/ecdh_ossl.c
49bf1a4dd3d53a5c0e4e05d71be0f6fcbeb5d013c70084ad8111e2d46b7e0f58 crypto/ec/ecdsa_ossl.c
b6baa42b16e8df69a12e0ab101033100cddc808ec2682ba1574373e6ec86ae93 crypto/ec/ecdsa_sign.c
f686cea8c8a3259d95c1e6142813d9da47b6d624c62f26c7e4a16d5607cddb35 crypto/ec/ecdsa_vrf.c
c07f9f7cfb27ce2735cad06f16d3e5f270b79ac31a0f9b6e44945f2c040f6258 crypto/ec/ecp_mont.c
f679269eec6f67ab7f859eca39cad7cc5ff2ba70e2f884eed9eadc9057c01272 crypto/ec/ecp_nist.c
03f7a0e38ce53a90b388b5c3e6d33629ed650b9ad6f5f722e8993e045ef31e27 crypto/ec/ecp_nistz256.c
3f1b74a2e0dc8ff1665cf780e0d7ff40ed7f4315fa94dcbbd0b9fc58d4fadac0 crypto/ec/ecp_oct.c
fa39906519062932adafb63cbf05b5dfa7563673576d421c80ec6b889d024e84 crypto/ec/ecp_smpl.c
a43d63e981bdd6c470832bd2eb83164ed1f668d95bc47fc8710f7ee18f43b860 crypto/ec/ecx_backend.c
22c44f561ab42d1bd7fd3a3c538ebaba375a704f98056b035e7949d73963c580 crypto/ec/ecx_key.c
7c7f3e2a19a95d62942790e525f00cccc87e46da099a0c96d101787d68c75128 crypto/evp/asymcipher.c
2aacf20d2b9ff0d11b0b4869c530685558ad8898da11391978322b606a0133ba crypto/evp/cmeth_lib.c
0e75a058dcbbb62cfe39fec6c4a85385dc1a8fce794e4278ce6cebb29763b82b crypto/evp/dh_support.c
4b2cc019a6a924d277ebce6565b5110d32a12199f471ccfae6fbbd1bbdbe53cd crypto/evp/digest.c
87599335b61f97362799170d7b19cbbf775bfecc0fab570b267c7622241cfad8 crypto/evp/ec_support.c
7c00d1b38b18d0bd92be2b0577e44e9d4ebc6603689f77da7e7702a042b0a8e5 crypto/evp/evp_enc.c
9b4956b5c28db987001b33421aacf3b9f352181f874c768ad1b034e083483561 crypto/evp/evp_fetch.c
22a08831e55565d9d52be80a6622b4d471340cf135b7247db77492e4fc3bd2b5 crypto/evp/evp_lib.c
b628bc6fb92bb6fb27a05c368a03b933e7004cae17371cd996f4eacaf2144809 crypto/evp/evp_rand.c
c0f87865be8dab6ea909fd976e5a46e4e8343b18403090c4a59b2af90f9a1329 crypto/evp/evp_utils.c
abd4c5f0521f2a422c5e7bb68023e5a6fb46958ceeb5f407d964ac7163043261 crypto/evp/exchange.c
58d0d29f105ef3cd38b790644b608f58e08289c4c52597769144be96c3e9cd26 crypto/evp/kdf_lib.c
3fdce072607e5060d91fd1ba3d70ae75a13590051072b6010be0ab62b00ddd6f crypto/evp/kdf_meth.c
9627b89aa6a27fa96116964cbbe377ae283c46445887e4e8c2a5183aeb102789 crypto/evp/kem.c
2d657d8de8c2441693d54ef3730d83ca4b5d76c3b3405ece89bff9e46149d670 crypto/evp/keymgmt_lib.c
56d3ed4313cb811a3c2d062ff8b2a0fd67c4b0d28fe0562a57555b3a95907535 crypto/evp/keymgmt_meth.c
39ae1143109929faf7c85e9fe6e01fac2d6a16a76a9ff597e03f83b5eea30b89 crypto/evp/m_sigver.c
a661a25d70af7eb79d1dd76ea1595c370c266307e20ee2e60074216672286a71 crypto/evp/mac_lib.c
5f4b933a479d7cd589c47388aebfd8d6ffa3943ec2883049fc929e6ca37e26b5 crypto/evp/mac_meth.c
bec9337e5c1ff13890285285570ee56f661bacac6ca49c6dec95dc55d713b435 crypto/evp/p_lib.c
cdce204a7d27adfb1695a88907046c98df91daf2a8820efbdedc01a646e9f10d crypto/evp/pmeth_check.c
c2202e859552cf3bcdead90215c69ca339133b60d4878b7e5a601d4596d9eab6 crypto/evp/pmeth_gn.c
8f572b1a89729282c835072fc578549ca648d64d7a1590b016f7e23139f861ec crypto/evp/pmeth_lib.c
9b1c860edb2e589fb9e90fd2c9c1f80d98258c97aacc8f298f760e1222f8eb9b crypto/evp/signature.c
e0a58ecf268c6bec531898d8fe6b148601b0bed8324fa8d5668de643c027606b crypto/ex_data.c
ae496cbb92b8664bb729997a241d12cc515a3944d66fe87b0c6e24f1011e061f crypto/ffc/ffc_backend.c
bb6d97150e6b03e684b044e396b60826b6ca47554e2c477e2c26479dcbaefd03 crypto/ffc/ffc_dh.c
8390c3015b5bb7f65a5cde533390788e7e61e381823c58c2e7caf8e50ca63a3b crypto/ffc/ffc_key_generate.c
084ae8e68a9df5785376bb961a998036336ed13092ffd1c4258b56e6a7e0478b crypto/ffc/ffc_key_validate.c
9c55a46ef9c08b8fa1b03b98f5424f44e411963578ae97488270dde393ea894f crypto/ffc/ffc_params.c
643b2798486dfdd70472590541407fa22714b73022f2666a297c09c94656b501 crypto/ffc/ffc_params_generate.c
aff884b4b7e48bacce4312fa2a7f9f07e2c6a8d9698ebbdab91af0f0fb1384dd crypto/ffc/ffc_params_validate.c
84d8ae0141a79548ad65b31fe4673e8603930f942f21f3a7623e23f539799764 crypto/hmac/hmac.c
1bede3da0f157d766132693f679cef49b02af2601406b04eecfab1fbd8d469bf crypto/initthread.c
c6c83f826eb6465f2a1b186ea692ff6fe32dbfb821d18d254625b69083d68fb0 crypto/lhash/lhash.c
b0662fd0dddbac0379be51cee8ccb0384d819f52780a5c7b0b3fcdde145fa7bf crypto/md5/asm/md5-586.pl
2a31a7f88d948192d6b7c10822c72cf40f215f32909014a2babc3955dafa1593 crypto/md5/asm/md5-sparcv9.pl
33a402414b3f08e2325bbcb07edff42c553a4400da4ec89d583b29360a3483ed crypto/md5/asm/md5-x86_64.pl
6926a95504413b5b29b2fa89a6c8cec5406ae7044cefe28c577279c8bb56291b crypto/md5/md5_dgst.c
5d07872812807c385daea71df1d4569dcba03fabce646878f9f338947528fe1f crypto/md5/md5_one.c
8641fbe434f769a9d70981963870ceb4dcc3aadbe4f4fa2e7a8bf70e1c47fba0 crypto/md5/md5_sha1.c
f866aafae928db1b439ac950dc90744a2397dfe222672fe68b3798396190c8b0 crypto/mem_clr.c
183bdca6f855182d7d2c78a5c961b34283f85ea69ac828b700605ee82546397d crypto/modes/asm/aes-gcm-armv8_64.pl
1d686af304f94743038f916125effcb51790c025f3165d8d37b526bbeee781f0 crypto/modes/asm/aesni-gcm-x86_64.pl
c2e874a8deb418b5d8c935b2e256370566a5150e040c9fa008cdb5b463c26904 crypto/modes/asm/ghash-alpha.pl
6bc7d63569c73d7020ede481f2de05221ac92403c7cc11e7263ada7644f6aa9b crypto/modes/asm/ghash-armv4.pl
097975df63370de7ebea012d17de14fc1f361fb83acf03b432a99ae7d5bceb24 crypto/modes/asm/ghash-c64xplus.pl
fdde3bc48b37790c6e0006014da71e7a831bbb4fdbfcda2d01dbe0ceb0ba88fa crypto/modes/asm/ghash-ia64.pl
e472d73d06933667a51a0af973479993eed333c71b43af03095450acb36dbeb4 crypto/modes/asm/ghash-parisc.pl
6fb4332ac88113a20915ad4de1931ef88b0114b5379b16e1d967820e1229fbb0 crypto/modes/asm/ghash-s390x.pl
fcab204033126699be826a850d098c6d84f44b377de66f15d303ebd31ee77397 crypto/modes/asm/ghash-sparcv9.pl
26f55a57e77f774d17dfba93d757f78edfa3a03f68a71ffa37ccf3bfc468b1e2 crypto/modes/asm/ghash-x86.pl
72744131007d2389c09665a59a862f5f6bb61b64bd3456e9b400985cb56586b8 crypto/modes/asm/ghash-x86_64.pl
a4e9f2e496bd9362b17a1b5989aa4682647cefcff6117f0607122a9e11a9dfd9 crypto/modes/asm/ghashp8-ppc.pl
0029b5beb1d4cd4c5ad47164c23f3e7c9d1eaff66ef54af025ee26795b11a1c7 crypto/modes/asm/ghashv8-armx.pl
42f1e3c05b6407e127ec03c4855b53cc2a1964eeeeebb86c000e2ac6effa4d61 crypto/modes/cbc128.c
ca33ab64e99814049ae47ccfe530c33db3d19d081eb4812354518366af923396 crypto/modes/ccm128.c
a20ed2feea4ecfbb2d3dba9618ed39b2da296e521e49fd3cfb17b74be51bf916 crypto/modes/cfb128.c
819a468b2caec10c0c82bcf25377c4ff45742e8c4f0328350a26af9b146eb8ac crypto/modes/ctr128.c
05ffb22b983de282dd924357a77f4e7156ada1936fbb77bc40694ca66317721c crypto/modes/gcm128.c
171218d5159e898c8f20e58e55d2c02bb04a9a9148d399c2670cf4181ed83c15 crypto/modes/ofb128.c
d4c25a330c8865672cda59fcc3d537222439daeb2298515bdae71bb44cf8fb61 crypto/modes/wrap128.c
608a04f387be2a509b4d4ad414b7015ab833e56b85020e692e193160f36883a2 crypto/modes/xts128.c
ca8f63ee71797f51c2bf5629190897306b3308882feb3d64c982239f18e8b738 crypto/o_str.c
5e3b9e03839582d4cf1e3f7f6fc661f2531bf99b189bdcf4654c56fee1d7ecf9 crypto/packet.c
e30c9e30e4356621236136caf001ee60d51aac492a5bf0fb7f1022b973aec425 crypto/param_build.c
c2fe815fb3fd5efe9a6544cae55f9469063a0f6fb728361737b927f6182ae0bb crypto/param_build_set.c
2be41081c49661d54fb294f8adcb3174403ff0fca599304dd604811642f66828 crypto/params.c
1164175c2259bc104ec315d39a4f80fa67604f40e55036044d18ccf94da71a76 crypto/params_dup.c
d0f6af3e89a693f0327e1bf073666cbec6786220ef3b3688ef0be9539d5ab6bf crypto/params_from_text.c
0dd202ec1def47c12852a8ae4bfaadb74f7fe968d68def631fe3ac671aac943f crypto/passphrase.c
098d0722daac442b8b6a6fc0aa6c4a4c49f9329426c3e2db9ebf71fe32376e4c crypto/property/defn_cache.c
f0fe76d4f70ecdba0206ec68ef57758f4482575ccdd7d9d3354681f37f795d4a crypto/property/property.c
51bc907d992893f03f35774178d2c8dc98cf3cf9503ff839ee1561640e6b274a crypto/property/property_parse.c
4941717698573a86d589fbec5002471cb4011e9a1840111a3ddccecc861a3af5 crypto/property/property_string.c
4bcf05e8736b64c9c4b4862513e48d788f8278681b6c9fef978788c3064a3f3d crypto/provider_core.c
dde1c2cd0cb5f4b9a76dc86d217926ceb3a92ba419a0c5cd1c215c9db445dd4e crypto/provider_predefined.c
707149c9fde50e1857bafbd0ca289062fd7d74db26f00399ba2243c56c89ef23 crypto/rand/rand_lib.c
048affe680e74a225faa152ea703a9168de6d6074887ff5978c1878efaac3041 crypto/rand/rand_meth.c
13604b9c58fff70249eca4399da00a61141ea38ac30feeff7ecbd84b65ee43e9 crypto/rsa/rsa_backend.c
89085cbed306409d519ab9fba596dcbb5bcad02837855e35a64577acf33df79d crypto/rsa/rsa_chk.c
e32cfa04221a2a3ea33f7bcb93ee51b84cbeba97e94c1fbf6e420b24f97fc9ce crypto/rsa/rsa_crpt.c
fbeb40c9fa91fc05e667b7f00a21e1d8ee6b0dae55771485d9f813230a2b5a32 crypto/rsa/rsa_gen.c
3d9f454620d0a5cccad93ef25e8c55151db3a44af2960a880f3e5622c9cea2b3 crypto/rsa/rsa_lib.c
5a3052ced3dabebc6b9d53cf22aeaf13bd52e9fdb69d84c4f0ea79c1f5b3f8d7 crypto/rsa/rsa_mp_names.c
5c60f6e05db82e13178d805deb1947b8eee4a905e6e77523d3b288da70a46bb5 crypto/rsa/rsa_none.c
bd98b457bf8926e8277065faa12e240c93ad0589daf243e441b7301e8d455f6b crypto/rsa/rsa_oaep.c
cfa0e6689e68ff21cf261af48560b0a50e12c1960514d562c95f8fd5aa49a9d7 crypto/rsa/rsa_ossl.c
c0f3c29c9ca213a04f3538514c85dd4186e07bb8dbefb3e16751218b97496ddb crypto/rsa/rsa_pk1.c
0c2e3fea08af73404d348293aa62652bc93feade424f3516e06e86ba64518236 crypto/rsa/rsa_pss.c
bf6d300b7e7e9e512a47c5bd1f8713806ae3033a140d83dfae4a16ad58d11170 crypto/rsa/rsa_schemes.c
abfbd8a1bc7b5b7c20eda1cb0fddeca6e3f14201a5188778a36e456097eaf45b crypto/rsa/rsa_sign.c
47752d347d794fb0bdb659068c3f39094c5dee76081b92a553d4e6a69ededdea crypto/rsa/rsa_sp800_56b_check.c
14585ae4ac2902beea057bfc91111f5c523b28a5a53b558689697e666602f9f3 crypto/rsa/rsa_sp800_56b_gen.c
1c1c2aeeb18bf1d69e8f134315b7e50d8f43d30eb1aa5bf42983eec9136a2fdc crypto/rsa/rsa_x931.c
4e9483f8cd8d78a7098ff014bb7fd3093f2032db88bf6dac753c7502dd70aeac crypto/self_test_core.c
05c533fde7fdba0c76103e97d881b7224c8427451b453e2f6413552996063e31 crypto/sha/asm/keccak1600-armv4.pl
ca3b2b654f9a8c4bc2fa2538c1f19d17acd4a6b9e0df6a4b81df04efa697e67e crypto/sha/asm/keccak1600-armv8.pl
ef575a7fb4956cc3be4ef10a6aeaa10702eadfc92c86167880690320ce942b26 crypto/sha/asm/keccak1600-avx2.pl
f1dcf75789dfb0c5d7cd35988cb8046f60097bbaf1fbdab32a9269fa5492214c crypto/sha/asm/keccak1600-avx512.pl
63e547b100562d1142512d5b54e16efc276ecb6c743c27873dbcdd7cb917c828 crypto/sha/asm/keccak1600-avx512vl.pl
33bdcc6f7668460c3bdf779633e43bfad62b937042a73acb007b462fc5b0a034 crypto/sha/asm/keccak1600-c64x.pl
09fc831dd39bd90a701e9b16d9e9987cc215252a22e1e0355f5da6c495fca35a crypto/sha/asm/keccak1600-mmx.pl
ce4a58129e5ee3ac4c9dfec5ecc010440570ebf7bf869e3e9977f2121a64b27a crypto/sha/asm/keccak1600-ppc64.pl
a859fc8cb073b2d0012a93f3155a75fb6eb677441462b0de4f8cf8df1445e970 crypto/sha/asm/keccak1600-s390x.pl
618dcd4891b4064d3b8aa6dcd74bea7ef55f4962a64957b05a05448f6e3e0f17 crypto/sha/asm/keccak1600-x86_64.pl
831b8b02ab25d78ba6300ce960d96c13439bfba5844e13061e19c4e25cbacc3d crypto/sha/asm/keccak1600p8-ppc.pl
75d832db9bf0e98e7a5c522169060a6dd276c5118cfb297fc3f1111f55cd4007 crypto/sha/asm/sha1-586.pl
c96e87d4f5311cd73bbdf499acc03418588be12426d878e157dd67e0099e0219 crypto/sha/asm/sha1-alpha.pl
4ba6d1c7f12fe76bf39babea966f0a4b7f8769e0c0510cbfc2c46a65dd62d45c crypto/sha/asm/sha1-armv4-large.pl
efc69cb0d867b7fac6b3fa8985c343d1f984d552bc8e75bbbbace0adf9ee5f15 crypto/sha/asm/sha1-armv8.pl
11d332b4e058e9fa418d6633316d2e9f9bf520a08b2d933e877bdf38b2edefcf crypto/sha/asm/sha1-c64xplus.pl
32ff0e701a7b8f25bcfe8477b20795de54f536527bd87d3ce694fd9aaae356d4 crypto/sha/asm/sha1-ia64.pl
471c27efca685b2a82ad7fefe329ca54172df9f49b9785da6d706b913b75e693 crypto/sha/asm/sha1-mb-x86_64.pl
0f5c63cf09e950d1b488935ab3b5562e3e9d5cd1a563fb88a41e3dae90a35e6d crypto/sha/asm/sha1-mips.pl
b5ffd7b6dbb04c05de7efa2945adb67ea845e7e61a3bf163a532f7b6acdf4267 crypto/sha/asm/sha1-parisc.pl
482cd23ca6ec38d6f62b90c68f9f20643579c50f2c0fbb0dab1c10a0e35efe77 crypto/sha/asm/sha1-ppc.pl
28cf69efd53d7a5a8c32e0f8db32c193f41b91faf44f5f59944334bc3f5aa337 crypto/sha/asm/sha1-s390x.pl
2613188936687dfc93e3a6588c279d7113bb10d307fc690aec909c5a2b65bf18 crypto/sha/asm/sha1-sparcv9.pl
24554e68b0e7b7db7b635ff149549015f623ca0bcd9ae90439586a2076f6ae80 crypto/sha/asm/sha1-sparcv9a.pl
74d197cdd72400cabbff7e173f72c8976723081508b095dc995e8cd1abf3daa6 crypto/sha/asm/sha1-thumb.pl
a59a86293e28f5600609dc8af2b39c5285580ae8636520990b000eeeb67bb889 crypto/sha/asm/sha1-x86_64.pl
c099059ef107f548ea2c2bab64a4eb8c277070ce6d74c4d32bb9808dc19c5fa3 crypto/sha/asm/sha256-586.pl
b9cee5c5a283f61f601d2dba68a7a76e7aba10bfafffc1a5c4987f9c0aa6f87d crypto/sha/asm/sha256-armv4.pl
93ddc97651ee3e779144a3c6b3e46a1bc4aa81e75cd7b9df068a2aef8743d25f crypto/sha/asm/sha256-c64xplus.pl
8be5c5d69733ecb16774aa8410b4bcb3623a9f060d2be103d8aa67bf6e4c5843 crypto/sha/asm/sha256-mb-x86_64.pl
dd82e1311703abb019975fc7b61fb87d67e1ed916dddd065aced051e851114b9 crypto/sha/asm/sha512-586.pl
8d84164f3cfd53290c0c14bb5655510b7a9238857866328c0604d64b4e76fe21 crypto/sha/asm/sha512-armv4.pl
dadacb6d66b160913bffb4e1a6c3e5f7be6509b26e2c099701d8d3fdb92c1be0 crypto/sha/asm/sha512-armv8.pl
6f548a088feae3b6faa179653ba449df9d3f5cda1e0561e5b5f120b32274d1eb crypto/sha/asm/sha512-c64xplus.pl
f999dbef1f95004b7dd926208dd942dc4106750de7a7ccfb70c6487e9916feac crypto/sha/asm/sha512-ia64.pl
fb06844e7c3b014a58dccc8ec6020c71843cfdc5be08288bc7d204f0a840c474 crypto/sha/asm/sha512-mips.pl
11548f06d213947104a80898e000218ec0d6ff3f6913f6582de498476482ce9f crypto/sha/asm/sha512-parisc.pl
7c0c490ce6bb11a228853aecad5e164ce84e5bdabb8a6658ae7184782076c7d3 crypto/sha/asm/sha512-ppc.pl
38e0455fd6a2b93a7a5385379ca92bc6526585ca1eb4af365fac4c78f7285c72 crypto/sha/asm/sha512-s390x.pl
94fc64338a8b1642782f68c9e3f45813617daa42a7dcc9917fe4053b2d0a5c5c crypto/sha/asm/sha512-sparcv9.pl
f64d16c1e5c3fa4a7969de494a8372127502171a517c14be7a1e3a43a7308699 crypto/sha/asm/sha512-x86_64.pl
8725cabb8d695c576619f19283b034074a3fa0f1c0be952a9dbe9793be15b907 crypto/sha/asm/sha512p8-ppc.pl
4d13c5020a92190d43721018c50776fd4df858fe92f3cce1d465ed98dfb142d1 crypto/sha/keccak1600.c
306cacd3f86e5cacaca74c58ef862516515e5c0cafaff48636d537fd84f1c2fb crypto/sha/sha1dgst.c
b40bd40b91a2ecdba63777758f84c5405a92e673636dba2cb83512c34aae3882 crypto/sha/sha256.c
01aff75580e47ee880f411a319ed5d86198df464e3b8056b8734698e3c8d4d07 crypto/sha/sha3.c
7598a626c55fb6505cc234cb438c78846756cde95c4400ca07bf9460b9bec834 crypto/sha/sha512.c
86913a593b55c759a3824eeede398f966278d79c148bef41986c5ac4e48f0bd7 crypto/sparse_array.c
32b48ac523d69b65d46b5588cd75697c473eec0b97bdefc820f436f25403a1df crypto/stack/stack.c
7b4efa594d8d1f3ecbf4605cf54f72fb296a3b1d951bdc69e415aaa08f34e5c8 crypto/threads_lib.c
a41ae93a755e2ec89b3cb5b4932e2b508fdda92ace2e025a2650a6da0e9e972c crypto/threads_none.c
9ad1649f07fbe4475a91472d056ab5e355973a1d92998220a0d4489e3d857463 crypto/threads_pthread.c
60bdd9213c67c4d9a287cb57517eca63913c134ef57fcb102b641eb56ddce19a crypto/threads_win.c
fd6c27cf7c6b5449b17f2b725f4203c4c10207f1973db09fd41571efe5de08fd crypto/x86_64cpuid.pl
df47f11a262e8c68abd885f291083f1ae4e7de965c654704b8589543d71c34d2 providers/common/bio_prov.c
c972a49b5b9100fb220c8693c2b83c6f20fcd9ca7c69dc5a7db15936999f19b0 providers/common/capabilities.c
27ff361a5fbfc97cd41690ab26639708961d0507b60912f55f5919649842c6ae providers/common/der/der_dsa_key.c
2529d253b3e45c33249461fdedb2c32b3c16a7a305fe4920f2a79e7b3f16ed3f providers/common/der/der_dsa_sig.c
b8f2f94daeaf20c636c90e386284c246cfded0c8275411fa02fe68b534520b95 providers/common/der/der_ec_key.c
9104cd39dddd6e1a6e8f267656482131f4d0765e96fdced1f7344817a1c8ed7e providers/common/der/der_ec_sig.c
f3b089fd3dcccc8e3ebfbbdbf87c47d58330f82bd0e2a1223da74977930cccf1 providers/common/der/der_ecx_key.c
3ba47f32b30f5540a34b3a8df7a4fd966aab9abcbb2b643af75a83a9ccda1df0 providers/common/der/der_rsa_key.c
a7becfc857365e64336a98bdb3565697caa4f6cc6692b298f56b530f5e2e0d81 providers/common/der/der_rsa_sig.c
9c9572d26ec41df0418547352dbdef353ecf9a2a633889dc494084ee9fe6b1d3 providers/common/der/der_sm2_key.c
390b2b6ba321bddc416688d4a51d9e04db7d84d4f398947d496d043e8fb22a01 providers/common/der/der_sm2_sig.c
d447cd774869da68a2cc0bbb19c547ee6ed4858c7aee1f3d5bba7796f97823a9 providers/common/digest_to_nid.c
737cc1228106e555e9bab24e3c2438982e04e05b0d5b9ee6995d71df16c49143 providers/common/provider_ctx.c
fcbb0f2859f28ea1eb3922447bb96588d2097695f9ce23c3c64025bfbe9d2bad providers/common/provider_err.c
9eae3e2cac89c7b63d091fdca1b6d80c5c5d52aa79c8ba4ce0158c5437ad62f3 providers/common/provider_seeding.c
fee6720c5f6afe041103dfdbc9e4fef346c32afc0a1d34beb7a1d67d22f9e1e3 providers/common/provider_util.c
494723d55bc6ecdb70f59499a2c42260cabc5fa30681ac3b48267dfa242158b3 providers/common/securitycheck.c
eaa448a029b592c0bb947ba98b8888b059c487078be10b28d3c7cbe73cf5a8c7 providers/common/securitycheck_default.c
50a0e01e877ae818cf874f4515a130db0e869d4e9e8ce882bff1255695aba789 providers/common/securitycheck_fips.c
fd92f958755683dda449a45f82ecdff342574a9536f6e8727decf5be9a5b747a providers/fips/fipsprov.c
c69e60c29711d55cd5672dab9ff051f3c093d54e63a0ec575baa899e6bbf9c2b providers/fips/self_test.c
fb56f801613642f6b497803890b528a643024e3cdb5bd5dd619a2981afb2f3b0 providers/fips/self_test_kats.c
08b287621158afb67e61e52fc34efbb9f9fe22ee6709c7ed6c937d5feb2b7fd8 providers/implementations/asymciphers/rsa_enc.c
60f1d5a19025784698cd67ac54fd9625f4be2149e85cb31d58aea516df22ee12 providers/implementations/asymciphers/sm2_enc.c
4db1826ecce8b60cb641bcd7a61430ec8cef73d2fe3cbc06aa33526afe1c954a providers/implementations/ciphers/cipher_aes.c
5b7d6a1d0df42c082c3731a3d2a0fe2d0034874e0fbb2f4916efb72da4fe6b66 providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.c
10f5bee481daad40609b04743de5ea364f4a2d25bba6d901213294dd966ae786 providers/implementations/ciphers/cipher_aes_cbc_hmac_sha1_hw.c
b9026b88005f2719f1836877b2baddadec97cb1d8e20eeaf012abffb6dfc004e providers/implementations/ciphers/cipher_aes_cbc_hmac_sha256_hw.c
6d6bf36329af3b77f457898294be05fea3940a61cdaf0ed60cfb8d091a94186e providers/implementations/ciphers/cipher_aes_ccm.c
6337b570e0dc4e98af07aa9704254d3ab958cf605584e250fbd76cd1d2a25ac7 providers/implementations/ciphers/cipher_aes_ccm_hw.c
e63b682f97b424167e4feb28e0103ad3c2859c57056284de2999236d07663eed providers/implementations/ciphers/cipher_aes_cts.c
e540092e34896a0f75622365a8d97473dfc7c3036ef6ef6f8ce343922ac03f56 providers/implementations/ciphers/cipher_aes_gcm.c
9f2303e103b4eb8244bdf97a2bb71d8a76c9e9adf09195acc2e42af72fab3250 providers/implementations/ciphers/cipher_aes_gcm_hw.c
33144c78ad050b2f9976946c67cbc593442d9a215c5f3d678ac56b504169fe18 providers/implementations/ciphers/cipher_aes_hw.c
0264d1ea3ece6f730b342586fb1fe00e3f0ff01e47d53f552864df986bf35573 providers/implementations/ciphers/cipher_aes_ocb.c
855869ab5a8d7a61a11674cfe5d503dfa67f59e7e393730835d1d8cf0ab85c70 providers/implementations/ciphers/cipher_aes_ocb_hw.c
d088dd386950df04b5ad5a68d529fa36b2fa6b808d7cc7da6de96cdd91ecb92f providers/implementations/ciphers/cipher_aes_siv.c
47edbfb9bca49df0d1e36b1bf06367ff31762545e7087bea159ad60e0f684a48 providers/implementations/ciphers/cipher_aes_siv_hw.c
d07e18786256f3a069fe83e6fdc79e53fdc1f99b3e6bbe5d2f3fc559bc737eb2 providers/implementations/ciphers/cipher_aes_wrp.c
527ff9277b92606517ee7af13225a9d5fcffbbc36eb18bce39f59d594cbe4931 providers/implementations/ciphers/cipher_aes_xts.c
83ffb01000f3620ab3251b42b2af98a80612b182968d2742a5d8480efcc22d43 providers/implementations/ciphers/cipher_aes_xts_fips.c
f12bf83d8fffa833fed6d82d74709c7a0563ea0fe291988149d7c85bda8366e7 providers/implementations/ciphers/cipher_aes_xts_hw.c
e292ec9b6e760b6bec12753a65f9a19bcc05afb6e56399c3561e63281bda4191 providers/implementations/ciphers/cipher_aria.c
73a9c37bf73b32c98085deaec8a197cab8a6fcdc602593dbbb6b585dd2391bc3 providers/implementations/ciphers/cipher_aria_ccm.c
1b9832f78203f3badf98f574cfee56c7b782709d68265237fe4c9479e6063172 providers/implementations/ciphers/cipher_aria_ccm_hw.c
976c1ca4767e4442bb22ce055d756336e0693866e406ae62dd0dc1929ac43c14 providers/implementations/ciphers/cipher_aria_gcm.c
d4ec3b09d49b7b5ac2941230a2c49b4ede55deeb284366ac26642a3ecbe64e5e providers/implementations/ciphers/cipher_aria_gcm_hw.c
cb6985bbec1a885e5fc51dd4df27bb2ef5c201abc88609fe26899fd5ed14e1fd providers/implementations/ciphers/cipher_aria_hw.c
8b4ddee713455a1cc8417d2dbe6c28f5a2c9c4d5497af44bc562814eb7fe7911 providers/implementations/ciphers/cipher_camellia.c
755b686613b311e7d40403926284e0c91704f99b9fea91f5bae6c4c03fc20389 providers/implementations/ciphers/cipher_camellia_hw.c
090f4035e6fa6566a3cd39301789d2cffa3853b1408326a7dd12f33c3fa12603 providers/implementations/ciphers/cipher_chacha20.c
cb7839e081f1d86664f152f982062e81a0c365382a123edb08fb7b443398dfe6 providers/implementations/ciphers/cipher_chacha20_hw.c
fd879ed73c85cb7900a6732eb06ee080c6a0d956cc514b2413dfcb850d831855 providers/implementations/ciphers/cipher_chacha20_poly1305.c
23bd426356db5afa4df530ed1992777f1d8213c6740b0bdc39590dcd5c4de376 providers/implementations/ciphers/cipher_chacha20_poly1305_hw.c
d3098f6ded4c6b6f6d4e1bf9f641c2bb6499bb76b386a3658527a35b484ce381 providers/implementations/ciphers/cipher_null.c
4ae134ee0c4113670a7d09c9a5f5a289b1a4a9350bca74d7c2ef6c71d5a5e051 providers/implementations/ciphers/cipher_sm4.c
61d2796a4dbf1f82dadf86219de5b762016d2e606f636b98b70f888227957c2d providers/implementations/ciphers/cipher_sm4_hw.c
06d8f86ec724075e7f72dabfb675b5c85a93c01997e4142fbaa8482e617f4ae5 providers/implementations/ciphers/cipher_tdes.c
7b7172e7e5d646e07c1ac07036716c67d9a821de7c0dfd41f8243610215a61c4 providers/implementations/ciphers/cipher_tdes_common.c
39be7651ea83263815cd48c649a54af56279879361fe91573800d84fbaf40bd9 providers/implementations/ciphers/cipher_tdes_default.c
c3a9a1fca4416e4ecdeecc3e83cbd24ff3f3185f5c1fea8c5fb8346f3b0e9a67 providers/implementations/ciphers/cipher_tdes_default_hw.c
50645122f08ef4891cd96cace833bd550be7f5278ab785515fd61fe8993c8c25 providers/implementations/ciphers/cipher_tdes_hw.c
9bf68e5921f780cb489e8e19a0fd02e5285cea67381b2f55367c65ad0e65ecc3 providers/implementations/ciphers/cipher_tdes_wrap.c
b98c8a9eb256008fb335084531dd5422563651a5a2d4cbe97f62fba49254a954 providers/implementations/ciphers/cipher_tdes_wrap_hw.c
db110866cede3d97d352fb94f13832bef7349f2c7c1d271bc87e640fc36beed0 providers/implementations/ciphers/ciphercommon.c
697e9f2254574cc93f0737456d0f3a275946296466a179bb5d0fea607c7a92fa providers/implementations/ciphers/ciphercommon_block.c
4b4106f85e36eb2c07acc5a3ca5ccd77b736b3ac46cc4af786cf57405ecd54b2 providers/implementations/ciphers/ciphercommon_ccm.c
8b6828f188c2590c7d9c6cac13fa0eb6d38a522b0f2859e7c8a766580fa9b66e providers/implementations/ciphers/ciphercommon_ccm_hw.c
1a6377698528eb24943c7616b55e43305a98569497279df8c6e6e411ed009424 providers/implementations/ciphers/ciphercommon_gcm.c
bb67eaa7a98494ca938726f9218213870fc97dd87b56bda950626cc794baf20b providers/implementations/ciphers/ciphercommon_gcm_hw.c
23fd89e3239e596c325a8c5d23eb1fe157a8d23aa4d90ed2c574bf06dfabd693 providers/implementations/ciphers/ciphercommon_hw.c
6b292cf7b2de5e7edb50ab4fedc4adcde2e17aeb30a7c5e4502a4c3994a446cf providers/implementations/digests/blake2_prov.c
0dd0cb9e70c5e339c8540aece6be4be1ee328fdc7d32d54e049ff708c981f2d4 providers/implementations/digests/blake2b_prov.c
6e18c13f50a291de8a4241f8cb9b6b6b1200f3cc4eee0d8d7ffabf0f36daa652 providers/implementations/digests/blake2s_prov.c
39b47b6ef9d71852964c26e07ef0e9b23f04c7493b1b16ba7c3dba7074b6b70d providers/implementations/digests/digestcommon.c
4e6dd0d5343117ee5b3b61326e14e2aad035ae4f2bb0a1cc4b4be708371a9fe3 providers/implementations/digests/md5_prov.c
322887272619e335b3157128d772d4f7851eef7314ab65ce8b742c5ab8ac5d63 providers/implementations/digests/md5_sha1_prov.c
80551b53302d95faea257df3edbdbd02d48427ce42da2c4335f998456400d057 providers/implementations/digests/sha2_prov.c
de342d04be6af69037922d5c97bdc40c0c27f6740636e72786a765d0d8ad9173 providers/implementations/digests/sha3_prov.c
320eb5deda82a3c052d0d0530fc27a66a402cbf3ddcf6640c5911d0e8d145e0c providers/implementations/digests/sm3_prov.c
e7660e887b3a98789b09645c7b8b3a0d94bef80837a30c750c1c3fd0c8de3d60 providers/implementations/encode_decode/decode_der2key.c
130057ec5593166df25e0ece457e5623c218127d8b7714a7162604c22a420976 providers/implementations/encode_decode/decode_msblob2key.c
4ab7936e2bda93aec2083fb3545d261bd3ffbee62657a0c7118bd5fc4f02b5e0 providers/implementations/encode_decode/decode_pem2der.c
cebde4c1b7f333159daeec6ac014d3477bf4d3e25a3cccfb0bc7b55bdcf78498 providers/implementations/encode_decode/decode_pvk2key.c
a4a2c4f7e1c86cb194040db19c801d749fac52ff3dd59e3759524226b772178e providers/implementations/encode_decode/encode_key2any.c
8fe61023c2d19a43b1aaacf617f2d6098a525216e91622549c1bfabb80256de0 providers/implementations/encode_decode/encode_key2blob.c
1412482218e6aadd0cc1eaac3d4a2aaf57be43705e2b4d2ba926b5493e7e1b55 providers/implementations/encode_decode/encode_key2ms.c
820e4501145f07e7f48d29e3124fdcdb834e7e6658fb2340a1f2d2ce373362a6 providers/implementations/encode_decode/encode_key2text.c
ecc88a83dc108b869e8d8223d466d49b829364bea0dae602c05e2b999aa5a02c providers/implementations/encode_decode/endecoder_common.c
2d3adc404341e3a8a3c29adf732cb740dc4c4b0cde1c422cbeb352c4509320db providers/implementations/exchange/dh_exch.c
427b9abee979f94371aa4aa99b48f08f1772965c93f9bce6f4531cc4cec136b6 providers/implementations/exchange/ecdh_exch.c
9bf87b8429398a6465c7e9f749a33b84974303a458736b56f3359b30726d3969 providers/implementations/exchange/ecx_exch.c
06ba83a8a8235bcdbda56f82b017cb19361469fe47c23cc6218a7e9b88ae6513 providers/implementations/exchange/kdf_exch.c
4f8049771ff0cb57944e1ffc9599a96023e36b424138e51b1466f9a133f03943 providers/implementations/kdfs/hkdf.c
115e13e152cfb7d729659cb26056414f719c5e7cb2a9b3df8b6ad0f232ce109a providers/implementations/kdfs/kbkdf.c
9625cab3ea0a1830838412d0ce6210c9a77eeebddb3cb1bee5198d90c33539ae providers/implementations/kdfs/krb5kdf.c
f93d3b32e7e3bc6bd4100559b15d392613797e1048010fdc70058ae9297a1125 providers/implementations/kdfs/pbkdf2.c
ce34beaa333d28a9c197ea60ed3dc37b319e3b96250941dd2fc0c944b76a6a51 providers/implementations/kdfs/pbkdf2_fips.c
43fae0685aa32e34545704fccd1f0ec3357ef28cc817c03960d649044420b368 providers/implementations/kdfs/pkcs12kdf.c
0994de1013c5b1a3007ce71150a28efdc791be96c8b8f7b6d25c8b593735f8f2 providers/implementations/kdfs/scrypt.c
6551c3354fb889cb429f850e0194a82d677528f65212d4ac345ab87352cec8a1 providers/implementations/kdfs/sshkdf.c
eb18f3fe62bb2a46a294b738de81a233bd2db00cc79ddc58622fc7c7021c3528 providers/implementations/kdfs/sskdf.c
3c46ec0e14be09a133d709c3a1c3d5ab05a4f1ed5385c3e7a1afb2f0ee47ef7a providers/implementations/kdfs/tls1_prf.c
f818a11f33dc1dd58f01b430c7d31ae51072b6713063885fc404eca397e4b9eb providers/implementations/kdfs/x942kdf.c
7d621555c4bd9dcdb324031c28f70d8d382ff0e5369ce1ade30180e8f525b2e8 providers/implementations/kem/rsa_kem.c
9a75571e8454e85a33c0bae2a37231b7f29d9e9df20a513508091a8cac74f6a1 providers/implementations/keymgmt/dh_kmgmt.c
36c27ca091024d87bd21edfd25916832cc8d4a021ad18e9d54ea6415bb49fbd5 providers/implementations/keymgmt/dsa_kmgmt.c
181a08f93f84f0797e9672b78c1a0edab3624fee48fe3451367e7e42e5e0ba1c providers/implementations/keymgmt/ec_kmgmt.c
1a6b7e37229e81eae3981ab2e0b7669eb24aaa6487738c4b44a970da212560b6 providers/implementations/keymgmt/ecx_kmgmt.c
053a2be39a87f50b877ebdbbf799cf5faf8b2de33b04311d819d212ee1ea329b providers/implementations/keymgmt/kdf_legacy_kmgmt.c
8064f919328b95c8f97e208ae4e3304209dd2e8d725ab3337cfad3c8972d5a0a providers/implementations/keymgmt/mac_legacy_kmgmt.c
1ea71e863be437958d75eb849b28505a43e3dbc660588b4080d70e82a39d52b7 providers/implementations/keymgmt/rsa_kmgmt.c
7d268a8d8179b35b6a9cb6b362976b3d861351c9ea076961f02a54ab37f3f5b0 providers/implementations/macs/blake2b_mac.c
3d50f84587431277bfb7af241485b150e02f7b30750f9faa40dd6e98927e5592 providers/implementations/macs/blake2s_mac.c
25d20ceb61cadb495ec890ae2c49c5c1c840b39ac77f20058ee87249cab341ef providers/implementations/macs/cmac_prov.c
f51b074d55028d3e24656da348d21ca79f6680fdb30383d936251f1b3467caab providers/implementations/macs/gmac_prov.c
35505704fda658c0911f95974913c1f2dd75c8f91c5d2ec597c70c52624bdfdf providers/implementations/macs/hmac_prov.c
3201d82d1e17c22a80b26dedae627be10b6dc1af623d1fd0c3c923e0125a42e7 providers/implementations/macs/kmac_prov.c
94d80682125b40ba694242fdfa978b802c6e70f2b0167215c9d689c0ccf5820f providers/implementations/macs/poly1305_prov.c
d594704aa3173afdb2b1e95253285cdb245a42078f9ca06b68aaeecb858b10fd providers/implementations/macs/siphash_prov.c
dcc1afbe2965de7c5ac0a17ab1b19b8ed512049376833cb410db30f8dc4e2064 providers/implementations/rands/crngt.c
bdabe11fe519f1852f3a3783b1e2c2fe4f51287ef6427d302308bf15a337026b providers/implementations/rands/drbg.c
a3caabf5fd73d52f4e40088ab4aee83e51348d0fd059609d1f5d8725baed6155 providers/implementations/rands/drbg_ctr.c
c36937930bcaecd6d5131d0317b9162a96cc956df164848dc53f423af838d04a providers/implementations/rands/drbg_hash.c
531c0ce4212570474b59a1b039e61a97ee5504e56e2f10de1f36578f1bca79d3 providers/implementations/rands/drbg_hmac.c
8075edbf4957b625301c85331bb4737cbefd334ee51e146fa15c3dc40bdd4973 providers/implementations/rands/seed_src.c
c440957b586c6dac6c0b695080f0f4147c81f3a269b2fb07a742e73b54b2fa64 providers/implementations/rands/seeding/rand_cpu_x86.c
c1a6007e76d21279e0b4eafef970c94cefad48a1a0d609aa9c359b5418486b95 providers/implementations/rands/seeding/rand_tsc.c
7cd4b532adf4eff8209c5eb7d7c1020840fc1728cb3179beb163639fc7aff285 providers/implementations/rands/seeding/rand_unix.c
38a0be4c03ea3c0e4761173a44ed421e3ec4f5c5eafafd8861b84a28c48d75f2 providers/implementations/rands/seeding/rand_win.c
888a671934abef4225956f9931cff842f245f90660e11f23a55228edca962e16 providers/implementations/rands/test_rng.c
a7f16a6480f5051d1197b992e042a73535d0922bdd3c962d2a96af780994e858 providers/implementations/signature/dsa.c
1edce687e950bec7c289cdac7c4c455e195942ccddfc38af0344277421afcc0f providers/implementations/signature/ecdsa.c
8074854e90be6a8266cc81ad722ef12213e9fc1360891822f109bfb03791f18e providers/implementations/signature/eddsa.c
40430250137bf6afffb9ca5a1c810947246169d3835912d26089fe86f405956d providers/implementations/signature/mac_legacy.c
31073a0bbcd27e1594040a39abfc04ff0f07fad2f25762def753724d330fe8b1 providers/implementations/signature/rsa.c
c0a862433e5da909cf0c614d3f982765b67821c7a4cc6257ceb8c490b4dcf732 providers/implementations/signature/sm2sig.c
c63cb744c26af304cf00006071d3ebd9325a4d65913b75a2bcb1d2e104c734fd providers/implementations/storemgmt/file_store.c
291288936fe321e3e85048366f790f6b7983561cd8f80eec4c0e01d7c43614ab providers/implementations/storemgmt/file_store_der2obj.c
04ea01e48b8fee822acb376ab8679b4c627b32ab75c137bf23ebb4fe2a1c0703 providers/prov_running.c
53a1e913fcc4a4e8e84009229cba60b9e29c7dc6536182fd290478331fad44b4 ssl/record/tls_pad.c
0143753184c1bddf47af3bd5b5e0d788fc757dac4b77f291627fc25d46eba05c ssl/s3_cbc.c

1
providers/fips.checksum Normal file
View File

@ -0,0 +1 @@
1106a14cf83a287e98bb7b7cde67aea32e75d523b4d568b2c5b352a3a17ee181 providers/fips-sources.checksums

54
util/c-compress-test.pl Executable file
View File

@ -0,0 +1,54 @@
#! /usr/bin/env perl
#
# TEST c-compress-pl with a number of examples and what should happen to them
use strict;
use warnings;
use File::Basename;
my @pairs =
(
[ <<'_____'
/* A hell of a program */
#def\
ine foo/* bar */ 3
#define bar /* haha "A /* comment */ that should /* remain" */
#define haha /* hoho */ "A /* comment */ that should /* remain" */
int main() {
int x;
/* one lonely comment */
}
_____
, <<'_____'
#define foo 3
#define bar that should
#define haha "A /* comment */ that should /* remain" */
int main() {
int x;
}
_____
]
);
my $here = dirname $0;
my $c_compress = "$here/lang-compress.pl";
use FileHandle;
use IPC::Open2;
use Text::Diff;
foreach (@pairs) {
my $source = $_->[0];
my $expected = $_->[1];
my $pid = open2(\*Reader, \*Writer, "perl $c_compress 'C'");
print Writer $source;
close Writer;
local $/ = undef; # slurp
my $got = <Reader>;
if ($got ne $expected) {
print "MISMATCH:\n", diff \$expected, \$got;
}
}

31
util/fips-checksums.sh Executable file
View File

@ -0,0 +1,31 @@
#! /bin/sh
HERE=`dirname $0`
for f in "$@"; do
# It's worth nothing that 'openssl sha256 -r' assumes that all input
# is binary. This isn't quite true, and we know better, so we convert
# the '*stdin' marker to the filename preceded by a space. See the
# sha1sum manual for a specification of the format.
case "$f" in
*.c | *.h )
cat "$f" \
| $HERE/lang-compress.pl 'C' \
| unifdef -DFIPS_MODE=1 \
| openssl sha256 -r \
| sed -e "s| \\*stdin| $f|"
;;
*.pl )
cat "$f" \
| $HERE/lang-compress.pl 'perl' \
| openssl sha256 -r \
| sed -e "s| \\*stdin| $f|"
;;
*.S )
cat "$f" \
| $HERE/lang-compress.pl 'S' \
| openssl sha256 -r \
| sed -e "s| \\*stdin| $f|"
;;
esac
done

189
util/lang-compress.pl Executable file
View File

@ -0,0 +1,189 @@
#! /usr/bin/env perl
#
# C source compressor. This:
#
# - merges continuation lines
# - removes comments (not in strings)
# - removes empty lines (not in strings)
use strict;
use warnings;
my $debug = defined $ENV{DEBUG};
my $lang = shift @ARGV;
# Slurp the file
$/ = undef;
$_ = <>;
if ($lang eq 'C') {
# Merge continuation lines
s{\\\n}{}g;
# Regexp for things that should be preserved
my $preserved =
qr{
(?:
" # String start
(?: \\. | [^\"])* # Any character, including escaped ones
" # String end
)
| # OR
(?:
' # Character start (multi-chars supported)
(?: \\. | [^\'])+ # Any character, including escaped ones
' # String end
)
}x;
# Remove comments while preserving strings
s{
(?| # All things preserved end up in $1
/\* # C comment start
.*? # Contents up until
\*/ # C comment end
| # OR
( # Grouping for the replacement
$preserved
)
)
}{
if ($debug) {
print STDERR "DEBUG: '$&' => '$1'\n" if defined $1;
print STDERR "DEBUG: '$&' removed\n" unless defined $1;
}
defined $1 ? $1 : ""
}gsxe;
# Remove empty lines
s{
(?| # All things preserved end up in $1
(^|\n)(?:\s*(?:\n|$))+ # Empty lines, preserve one newline
| # OR
( # Grouping for the replacement
$preserved
)
)
}{$1}gsx;
# Remove extra spaces
s{
(?| # All things preserved end up in $1
(\n)\h+ # Spaces at start of lines removed
|
\h+(\n) # Spaces at end of lines removed
|
\h+ # Other horizontal spaces replaced with one
| # OR
( # Grouping for the replacement
$preserved
)
)
}{
if ($debug) {
print STDERR "DEBUG: '$&' => '$1'\n" if defined $1;
print STDERR "DEBUG: '$&' => ' '\n" unless defined $1;
}
defined $1 ? $1 : " "
}gsxe;
} elsif ($lang eq 'S') {
# Because we use C++ style comments in our .S files, all we can do
# is to drop them
s{
^([^\n]*?)//[^\n]*?$ # Any line with a // comment
}{
if ($debug) {
print STDERR "DEBUG: '$&' => '$1'\n" if defined $1;
print STDERR "DEBUG: '$&' removed\n" unless defined $1;
}
defined $1 ? $1 : ""
}mgsxe;
# Drop all empty lines
s{
(^|\n)(?:\s*(?:\n|$))+ # Empty lines, preserve one newline
}{$1}gsx;
} elsif ($lang eq 'perl') {
# Merge continuation lines
s{\\\n}{}g;
# Regexp for things that should be preserved
my $preserved =
qr{
(?:
<<["']?(\w+)["']? # HERE document start
.*? # Its contents
^\g{-1}$
)
|
(?:
" # Double quoted string start
(?: \\. | [^\"])* # Any character, including escaped ones
" # Double quoted string end
)
| # OR
(?:
' # Single quoted string start
[^\']* # Any character
' # Single quoted string end
)
}msx;
# Remove comments while preserving strings
s{
(?| # All things preserved end up in $1
\#.*?(\n|$) # Perl comments
| # OR
( # Grouping for the replacement
$preserved
)
)
}{
if ($debug) {
print STDERR "DEBUG: '$&' => '$1'\n" if defined $1;
print STDERR "DEBUG: '$&' removed\n" unless defined $1;
}
defined $1 ? $1 : ""
}gsxe;
# Remove empty lines
s{
(?| # All things preserved end up in $1
(^|\n)(?:\s*(?:\n|$))+ # Empty lines, preserve one newline
| # OR
( # Grouping for the replacement
$preserved
)
)
}{$1}gsx;
}
print;