aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlloyd <[email protected]>2009-07-15 15:31:08 +0000
committerlloyd <[email protected]>2009-07-15 15:31:08 +0000
commit1172c616fa849af893c1935b8b1dee085f8aaac8 (patch)
tree48a5308fb8d40fbea9216f7007678543d7a59a4e
parent6fd01228840942ad122d1adabb3f7971a4e3b244 (diff)
Add a script that reads the output of print_deps.py and rewrites
the info.txt files with the right module dependencies. Apply it across the codebase.
-rwxr-xr-xdoc/scripts/update_deps.py37
-rw-r--r--src/algo_factory/info.txt13
-rw-r--r--src/alloc/alloc_mmap/info.txt4
-rw-r--r--src/alloc/mem_pool/info.txt8
-rw-r--r--src/alloc/system_alloc/info.txt9
-rw-r--r--src/asn1/info.txt10
-rw-r--r--src/benchmark/info.txt9
-rw-r--r--src/block/info.txt9
-rw-r--r--src/block/lion/info.txt5
-rw-r--r--src/block/lubyrack/info.txt4
-rw-r--r--src/block/serpent_ia32/info.txt11
-rw-r--r--src/cert/cvc/info.txt18
-rw-r--r--src/cert/x509/info.txt20
-rw-r--r--src/checksum/adler32/info.txt4
-rw-r--r--src/checksum/crc24/info.txt4
-rw-r--r--src/checksum/crc32/info.txt4
-rw-r--r--src/cms/info.txt23
-rw-r--r--src/codec/base64/info.txt8
-rw-r--r--src/codec/bzip2/info.txt8
-rw-r--r--src/codec/hex/info.txt8
-rw-r--r--src/codec/openpgp/info.txt1
-rw-r--r--src/codec/pem/info.txt1
-rw-r--r--src/codec/zlib/info.txt8
-rw-r--r--src/engine/def_engine/info.txt7
-rw-r--r--src/engine/gnump/info.txt4
-rw-r--r--src/engine/info.txt8
-rw-r--r--src/engine/openssl/info.txt4
-rw-r--r--src/filters/info.txt11
-rw-r--r--src/hash/md4_ia32/info.txt11
-rw-r--r--src/hash/md5_ia32/info.txt12
-rw-r--r--src/hash/sha1_amd64/info.txt12
-rw-r--r--src/hash/sha1_ia32/info.txt12
-rw-r--r--src/hash/sha1_sse2/info.txt10
-rw-r--r--src/kdf/kdf1/info.txt7
-rw-r--r--src/kdf/kdf2/info.txt8
-rw-r--r--src/kdf/mgf1/info.txt8
-rw-r--r--src/kdf/ssl_prf/info.txt12
-rw-r--r--src/kdf/tls_prf/info.txt12
-rw-r--r--src/kdf/x942_prf/info.txt12
-rw-r--r--src/libstate/info.txt31
-rw-r--r--src/libstate/oid_lookup/info.txt9
-rw-r--r--src/mac/cbc_mac/info.txt4
-rw-r--r--src/mac/cmac/info.txt4
-rw-r--r--src/mac/hmac/info.txt4
-rw-r--r--src/mac/info.txt8
-rw-r--r--src/mac/ssl3mac/info.txt4
-rw-r--r--src/mac/x919_mac/info.txt4
-rw-r--r--src/math/bigint/info.txt15
-rw-r--r--src/math/bigint/monty_amd64/info.txt8
-rw-r--r--src/math/bigint/monty_generic/info.txt5
-rw-r--r--src/math/bigint/mp_ia32_msvc/info.txt4
-rw-r--r--src/math/bigint/mulop_amd64/info.txt10
-rw-r--r--src/math/bigint/mulop_generic/info.txt5
-rw-r--r--src/math/bigint/mulop_ia32/info.txt8
-rw-r--r--src/math/gfpmath/info.txt12
-rw-r--r--src/math/numbertheory/info.txt12
-rw-r--r--src/modes/cbc/info.txt3
-rw-r--r--src/modes/cts/info.txt4
-rw-r--r--src/modes/eax/info.txt7
-rw-r--r--src/modes/ecb/info.txt4
-rw-r--r--src/modes/info.txt1
-rw-r--r--src/modes/ofb/info.txt4
-rw-r--r--src/modes/xts/info.txt5
-rw-r--r--src/pbe/info.txt12
-rw-r--r--src/pbe/pbes1/info.txt6
-rw-r--r--src/pbe/pbes2/info.txt19
-rw-r--r--src/pk_pad/eme1/info.txt11
-rw-r--r--src/pk_pad/emsa1/info.txt4
-rw-r--r--src/pk_pad/emsa1_bsi/info.txt8
-rw-r--r--src/pk_pad/emsa2/info.txt1
-rw-r--r--src/pk_pad/emsa3/info.txt1
-rw-r--r--src/pk_pad/emsa4/info.txt2
-rw-r--r--src/pk_pad/info.txt4
-rw-r--r--src/pubkey/dh/info.txt4
-rw-r--r--src/pubkey/dl_algo/info.txt4
-rw-r--r--src/pubkey/dl_group/info.txt4
-rw-r--r--src/pubkey/dlies/info.txt5
-rw-r--r--src/pubkey/dsa/info.txt16
-rw-r--r--src/pubkey/ec_dompar/info.txt3
-rw-r--r--src/pubkey/ecc_key/info.txt13
-rw-r--r--src/pubkey/ecdsa/info.txt19
-rw-r--r--src/pubkey/eckaeg/info.txt18
-rw-r--r--src/pubkey/elgamal/info.txt17
-rw-r--r--src/pubkey/if_algo/info.txt14
-rw-r--r--src/pubkey/info.txt22
-rw-r--r--src/pubkey/nr/info.txt4
-rw-r--r--src/pubkey/pk_codecs/info.txt18
-rw-r--r--src/pubkey/rsa/info.txt13
-rw-r--r--src/pubkey/rw/info.txt13
-rw-r--r--src/rng/auto_rng/info.txt12
-rw-r--r--src/rng/hmac_rng/info.txt4
-rw-r--r--src/rng/info.txt4
-rw-r--r--src/rng/randpool/info.txt5
-rw-r--r--src/rng/x931_rng/info.txt2
-rw-r--r--src/s2k/info.txt10
-rw-r--r--src/s2k/pbkdf1/info.txt4
-rw-r--r--src/s2k/pbkdf2/info.txt4
-rw-r--r--src/s2k/pgps2k/info.txt4
-rw-r--r--src/selftest/info.txt23
-rw-r--r--src/stream/info.txt9
-rw-r--r--src/sym_algo/info.txt10
-rw-r--r--src/timer/info.txt4
-rw-r--r--src/utils/info.txt10
103 files changed, 583 insertions, 328 deletions
diff --git a/doc/scripts/update_deps.py b/doc/scripts/update_deps.py
new file mode 100755
index 000000000..8bada9d7e
--- /dev/null
+++ b/doc/scripts/update_deps.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+
+import sys
+import re
+import os.path
+
+def update_requires(dir, deps):
+ lines = map(lambda x: x.strip(),
+ open(os.path.join(dir, 'info.txt')).readlines())
+
+ if '<requires>' in lines:
+ start = lines.index('<requires>')
+
+ while lines.pop(start) != '</requires>':
+ pass
+
+ lines.append('')
+ lines.append('<requires>')
+ for dep in deps:
+ lines.append(dep)
+ lines.append('</requires>')
+ lines.append('')
+
+ lines = "\n".join(lines).replace("\n\n\n", "\n\n")
+
+ output = open(os.path.join(dir, 'info.txt'), 'w')
+ output.write(lines)
+ output.close()
+
+def main():
+ for line in sys.stdin.readlines():
+ (dirname, deps) = line.split(':')
+ deps = deps.strip().split(' ')
+ update_requires(dirname, deps)
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/src/algo_factory/info.txt b/src/algo_factory/info.txt
index 937b91353..dfc42230a 100644
--- a/src/algo_factory/info.txt
+++ b/src/algo_factory/info.txt
@@ -4,13 +4,18 @@ load_on auto
define ALGORITHM_FACTORY
-<requires>
-utils
-</requires>
-
<add>
algo_factory.cpp
algo_factory.h
algo_cache.h
prov_weight.cpp
</add>
+
+<requires>
+block
+engine
+hash
+mac
+mutex
+stream
+</requires>
diff --git a/src/alloc/alloc_mmap/info.txt b/src/alloc/alloc_mmap/info.txt
index 8cc2b206e..d8c766d55 100644
--- a/src/alloc/alloc_mmap/info.txt
+++ b/src/alloc/alloc_mmap/info.txt
@@ -23,3 +23,7 @@ tru64
# Only without -ansi, otherwise can't get mkstemp
#cygwin
</os>
+
+<requires>
+mem_pool
+</requires>
diff --git a/src/alloc/mem_pool/info.txt b/src/alloc/mem_pool/info.txt
index ec987a0e0..0a762ccc4 100644
--- a/src/alloc/mem_pool/info.txt
+++ b/src/alloc/mem_pool/info.txt
@@ -2,11 +2,11 @@ realname "Memory Pool Allocator"
load_on auto
-<requires>
-utils
-</requires>
-
<add>
mem_pool.cpp
mem_pool.h
</add>
+
+<requires>
+mutex
+</requires>
diff --git a/src/alloc/system_alloc/info.txt b/src/alloc/system_alloc/info.txt
index 0e8de9ff7..5fade38cf 100644
--- a/src/alloc/system_alloc/info.txt
+++ b/src/alloc/system_alloc/info.txt
@@ -2,11 +2,12 @@ realname "Default (Malloc) Allocators"
load_on auto
-<requires>
-utils
-</requires>
-
<add>
defalloc.cpp
defalloc.h
</add>
+
+<requires>
+libstate
+mem_pool
+</requires>
diff --git a/src/asn1/info.txt b/src/asn1/info.txt
index 279cbb1e9..3c69319b8 100644
--- a/src/asn1/info.txt
+++ b/src/asn1/info.txt
@@ -4,11 +4,6 @@ define ASN1
load_on auto
-<requires>
-bigint
-oid_lookup
-</requires>
-
<add>
alg_id.cpp
asn1_alt.cpp
@@ -27,3 +22,8 @@ asn1_oid.h
ber_dec.h
der_enc.h
</add>
+
+<requires>
+bigint
+oid_lookup
+</requires>
diff --git a/src/benchmark/info.txt b/src/benchmark/info.txt
index e9718dbb3..958c19ebc 100644
--- a/src/benchmark/info.txt
+++ b/src/benchmark/info.txt
@@ -9,3 +9,12 @@ benchmark.cpp
benchmark.h
</add>
+<requires>
+algo_factory
+block
+hash
+mac
+rng
+stream
+timer
+</requires>
diff --git a/src/block/info.txt b/src/block/info.txt
index 5df789736..ff48fb04a 100644
--- a/src/block/info.txt
+++ b/src/block/info.txt
@@ -4,11 +4,10 @@ load_on auto
define BLOCK_CIPHER
-<requires>
-utils
-sym_algo
-</requires>
-
<add>
block_cipher.h
</add>
+
+<requires>
+sym_algo
+</requires>
diff --git a/src/block/lion/info.txt b/src/block/lion/info.txt
index 558d71d0c..81ef58511 100644
--- a/src/block/lion/info.txt
+++ b/src/block/lion/info.txt
@@ -8,3 +8,8 @@ load_on auto
lion.cpp
lion.h
</add>
+
+<requires>
+hash
+stream
+</requires>
diff --git a/src/block/lubyrack/info.txt b/src/block/lubyrack/info.txt
index d83df2409..a478526f4 100644
--- a/src/block/lubyrack/info.txt
+++ b/src/block/lubyrack/info.txt
@@ -8,3 +8,7 @@ load_on auto
lubyrack.cpp
lubyrack.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/block/serpent_ia32/info.txt b/src/block/serpent_ia32/info.txt
index 8aca9b2ba..13b171fe9 100644
--- a/src/block/serpent_ia32/info.txt
+++ b/src/block/serpent_ia32/info.txt
@@ -10,12 +10,6 @@ serp_ia32.cpp
serp_ia32.h
</add>
-<requires>
-ia32_eng
-asm_ia32
-utils
-</requires>
-
<arch>
ia32
</arch>
@@ -33,3 +27,8 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+serpent
+</requires>
diff --git a/src/cert/cvc/info.txt b/src/cert/cvc/info.txt
index 69f144340..e3e11f5fe 100644
--- a/src/cert/cvc/info.txt
+++ b/src/cert/cvc/info.txt
@@ -6,11 +6,6 @@ uses_tr1 yes
load_on auto
-<requires>
-asn1
-ecdsa
-</requires>
-
<add>
asn1_eac_str.cpp
asn1_eac_tm.cpp
@@ -34,3 +29,16 @@ signed_obj.cpp
signed_obj.h
freestore.h
</add>
+
+<requires>
+asn1
+bigint
+ecdsa
+filters
+libstate
+oid_lookup
+pem
+pk_codecs
+pubkey
+x509
+</requires>
diff --git a/src/cert/x509/info.txt b/src/cert/x509/info.txt
index 922aeae4d..726a4ad4f 100644
--- a/src/cert/x509/info.txt
+++ b/src/cert/x509/info.txt
@@ -4,13 +4,6 @@ define X509
load_on auto
-<requires>
-asn1
-bigint
-pk_codecs
-oid_lookup
-</requires>
-
<add>
certstor.h
certstor.cpp
@@ -36,3 +29,16 @@ x509self.h
x509stor.cpp
x509stor.h
</add>
+
+<requires>
+asn1
+bigint
+filters
+libstate
+oid_lookup
+pem
+pk_codecs
+pubkey
+rng
+sha1
+</requires>
diff --git a/src/checksum/adler32/info.txt b/src/checksum/adler32/info.txt
index fb0f3c9cb..76662cdec 100644
--- a/src/checksum/adler32/info.txt
+++ b/src/checksum/adler32/info.txt
@@ -8,3 +8,7 @@ load_on auto
adler32.cpp
adler32.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/checksum/crc24/info.txt b/src/checksum/crc24/info.txt
index b61cabbc8..33b86a9da 100644
--- a/src/checksum/crc24/info.txt
+++ b/src/checksum/crc24/info.txt
@@ -8,3 +8,7 @@ load_on auto
crc24.cpp
crc24.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/checksum/crc32/info.txt b/src/checksum/crc32/info.txt
index 17ccca0a3..15933b375 100644
--- a/src/checksum/crc32/info.txt
+++ b/src/checksum/crc32/info.txt
@@ -8,3 +8,7 @@ load_on auto
crc32.cpp
crc32.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/cms/info.txt b/src/cms/info.txt
index a85841e21..82c31b564 100644
--- a/src/cms/info.txt
+++ b/src/cms/info.txt
@@ -4,14 +4,6 @@ define CMS
load_on auto
-<requires>
-asn1
-filters
-oid_lookup
-pk_codecs
-x509
-</requires>
-
<add>
cms_algo.cpp
cms_comp.cpp
@@ -22,3 +14,18 @@ cms_ealg.cpp
cms_enc.cpp
cms_enc.h
</add>
+
+<requires>
+asn1
+bigint
+cbc
+filters
+hash
+libstate
+oid_lookup
+pem
+pk_codecs
+sha1
+sym_algo
+x509
+</requires>
diff --git a/src/codec/base64/info.txt b/src/codec/base64/info.txt
index 591581afb..d4ed80976 100644
--- a/src/codec/base64/info.txt
+++ b/src/codec/base64/info.txt
@@ -4,12 +4,12 @@ define BASE64_CODEC
load_on auto
-<requires>
-filters
-</requires>
-
<add>
base64.cpp
b64_char.cpp
base64.h
</add>
+
+<requires>
+filters
+</requires>
diff --git a/src/codec/bzip2/info.txt b/src/codec/bzip2/info.txt
index 51e1feed1..1be84e405 100644
--- a/src/codec/bzip2/info.txt
+++ b/src/codec/bzip2/info.txt
@@ -7,10 +7,6 @@ modset compression
load_on request
-<requires>
-filters
-</requires>
-
<add>
bzip2.h
bzip2.cpp
@@ -19,3 +15,7 @@ bzip2.cpp
<libs>
all -> bz2
</libs>
+
+<requires>
+filters
+</requires>
diff --git a/src/codec/hex/info.txt b/src/codec/hex/info.txt
index 71b33a6ad..512a5de8b 100644
--- a/src/codec/hex/info.txt
+++ b/src/codec/hex/info.txt
@@ -4,12 +4,12 @@ define HEX_CODEC
load_on auto
-<requires>
-filters
-</requires>
-
<add>
hex.cpp
hex_char.cpp
hex.h
</add>
+
+<requires>
+filters
+</requires>
diff --git a/src/codec/openpgp/info.txt b/src/codec/openpgp/info.txt
index d43c72843..6b30850d0 100644
--- a/src/codec/openpgp/info.txt
+++ b/src/codec/openpgp/info.txt
@@ -11,6 +11,5 @@ openpgp.h
<requires>
crc24
-base64
filters
</requires>
diff --git a/src/codec/pem/info.txt b/src/codec/pem/info.txt
index bbe8d4c70..b12dbf378 100644
--- a/src/codec/pem/info.txt
+++ b/src/codec/pem/info.txt
@@ -10,6 +10,5 @@ pem.h
</add>
<requires>
-base64
filters
</requires>
diff --git a/src/codec/zlib/info.txt b/src/codec/zlib/info.txt
index 49e9658a9..9b1c35d84 100644
--- a/src/codec/zlib/info.txt
+++ b/src/codec/zlib/info.txt
@@ -7,10 +7,6 @@ define COMPRESSOR_ZLIB
load_on request
modset compression
-<requires>
-filters
-</requires>
-
<add>
zlib.h
zlib.cpp
@@ -21,3 +17,7 @@ zlib.cpp
<libs>
all -> z
</libs>
+
+<requires>
+filters
+</requires>
diff --git a/src/engine/def_engine/info.txt b/src/engine/def_engine/info.txt
index 503a4392f..eb96b0dc5 100644
--- a/src/engine/def_engine/info.txt
+++ b/src/engine/def_engine/info.txt
@@ -14,3 +14,10 @@ lookup_hash.cpp
lookup_mac.cpp
lookup_stream.cpp
</add>
+
+<requires>
+algo_factory
+filters
+mode_pad
+numbertheory
+</requires>
diff --git a/src/engine/gnump/info.txt b/src/engine/gnump/info.txt
index 84c286bc8..67a9bcd70 100644
--- a/src/engine/gnump/info.txt
+++ b/src/engine/gnump/info.txt
@@ -20,3 +20,7 @@ gmp_powm.cpp
gmp_wrap.cpp
gmp_wrap.h
</add>
+
+<requires>
+bigint
+</requires>
diff --git a/src/engine/info.txt b/src/engine/info.txt
index 0a22ec285..bd962e4cf 100644
--- a/src/engine/info.txt
+++ b/src/engine/info.txt
@@ -7,3 +7,11 @@ load_on auto
<add>
engine.h
</add>
+
+<requires>
+block
+hash
+mac
+numbertheory
+stream
+</requires>
diff --git a/src/engine/openssl/info.txt b/src/engine/openssl/info.txt
index 67afcab74..3f2f1ab14 100644
--- a/src/engine/openssl/info.txt
+++ b/src/engine/openssl/info.txt
@@ -22,3 +22,7 @@ ossl_if.cpp
ossl_md.cpp
ossl_nr.cpp
</add>
+
+<requires>
+bigint
+</requires>
diff --git a/src/filters/info.txt b/src/filters/info.txt
index 947e36596..40d952b0d 100644
--- a/src/filters/info.txt
+++ b/src/filters/info.txt
@@ -25,3 +25,14 @@ pipe_rw.cpp
secqueue.cpp
secqueue.h
</add>
+
+<requires>
+asn1
+block
+hash
+libstate
+mac
+rng
+stream
+sym_algo
+</requires>
diff --git a/src/hash/md4_ia32/info.txt b/src/hash/md4_ia32/info.txt
index e7249ad5f..e5287dc5d 100644
--- a/src/hash/md4_ia32/info.txt
+++ b/src/hash/md4_ia32/info.txt
@@ -10,12 +10,6 @@ md4_ia32.cpp
md4_ia32.h
</add>
-<requires>
-ia32_eng
-asm_ia32
-md4
-</requires>
-
<arch>
ia32
</arch>
@@ -33,3 +27,8 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+md4
+</requires>
diff --git a/src/hash/md5_ia32/info.txt b/src/hash/md5_ia32/info.txt
index 7133e1ddd..f69ab82e6 100644
--- a/src/hash/md5_ia32/info.txt
+++ b/src/hash/md5_ia32/info.txt
@@ -10,13 +10,6 @@ md5_ia32.cpp
md5_ia32.h
</add>
-<requires>
-ia32_eng
-asm_ia32
-mdx_hash
-utils
-</requires>
-
<arch>
ia32
</arch>
@@ -34,3 +27,8 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+md5
+</requires>
diff --git a/src/hash/sha1_amd64/info.txt b/src/hash/sha1_amd64/info.txt
index 662d60c69..88e4ec6c0 100644
--- a/src/hash/sha1_amd64/info.txt
+++ b/src/hash/sha1_amd64/info.txt
@@ -10,13 +10,6 @@ sha1_amd64.cpp
sha1_amd64.h
</add>
-<requires>
-amd64_eng
-asm_amd64
-sha1
-utils
-</requires>
-
<arch>
amd64
</arch>
@@ -33,3 +26,8 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+sha1
+</requires>
diff --git a/src/hash/sha1_ia32/info.txt b/src/hash/sha1_ia32/info.txt
index 8c333dc57..ca14028b8 100644
--- a/src/hash/sha1_ia32/info.txt
+++ b/src/hash/sha1_ia32/info.txt
@@ -10,13 +10,6 @@ sha1_ia32.cpp
sha1_ia32.h
</add>
-<requires>
-ia32_eng
-asm_ia32
-sha1
-utils
-</requires>
-
<arch>
ia32
</arch>
@@ -34,3 +27,8 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+sha1
+</requires>
diff --git a/src/hash/sha1_sse2/info.txt b/src/hash/sha1_sse2/info.txt
index e33bb1859..d8dc069ad 100644
--- a/src/hash/sha1_sse2/info.txt
+++ b/src/hash/sha1_sse2/info.txt
@@ -10,12 +10,6 @@ sha1_sse2.cpp
sha1_sse2.h
</add>
-<requires>
-sse2_eng
-sha1
-utils
-</requires>
-
<arch>
pentium-m
pentium4
@@ -27,3 +21,7 @@ amd64
gcc
icc
</cc>
+
+<requires>
+sha1
+</requires>
diff --git a/src/kdf/kdf1/info.txt b/src/kdf/kdf1/info.txt
index 04d8db096..ede10017e 100644
--- a/src/kdf/kdf1/info.txt
+++ b/src/kdf/kdf1/info.txt
@@ -4,12 +4,11 @@ define KDF1
load_on auto
-<requires>
-kdf
-</requires>
-
<add>
kdf1.h
kdf1.cpp
</add>
+<requires>
+hash
+</requires>
diff --git a/src/kdf/kdf2/info.txt b/src/kdf/kdf2/info.txt
index 80b562824..1858f8929 100644
--- a/src/kdf/kdf2/info.txt
+++ b/src/kdf/kdf2/info.txt
@@ -4,11 +4,11 @@ define KDF2
load_on auto
-<requires>
-kdf
-</requires>
-
<add>
kdf2.cpp
kdf2.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/kdf/mgf1/info.txt b/src/kdf/mgf1/info.txt
index 0616f43b7..f9e952f82 100644
--- a/src/kdf/mgf1/info.txt
+++ b/src/kdf/mgf1/info.txt
@@ -4,11 +4,11 @@ define MGF1
load_on dep
-<requires>
-kdf
-</requires>
-
<add>
mgf1.h
mgf1.cpp
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/kdf/ssl_prf/info.txt b/src/kdf/ssl_prf/info.txt
index 890789988..f862905a2 100644
--- a/src/kdf/ssl_prf/info.txt
+++ b/src/kdf/ssl_prf/info.txt
@@ -4,13 +4,13 @@ define SSL_V3_PRF
load_on auto
-<requires>
-kdf
-md5
-sha1
-</requires>
-
<add>
prf_ssl3.h
prf_ssl3.cpp
</add>
+
+<requires>
+md5
+sha1
+sym_algo
+</requires>
diff --git a/src/kdf/tls_prf/info.txt b/src/kdf/tls_prf/info.txt
index c775c90ba..f95ef9c24 100644
--- a/src/kdf/tls_prf/info.txt
+++ b/src/kdf/tls_prf/info.txt
@@ -4,14 +4,14 @@ define TLS_V10_PRF
load_on auto
+<add>
+prf_tls.h
+prf_tls.cpp
+</add>
+
<requires>
hmac
-kdf
+mac
md5
sha1
</requires>
-
-<add>
-prf_tls.h
-prf_tls.cpp
-</add>
diff --git a/src/kdf/x942_prf/info.txt b/src/kdf/x942_prf/info.txt
index df5719de4..295c2cde6 100644
--- a/src/kdf/x942_prf/info.txt
+++ b/src/kdf/x942_prf/info.txt
@@ -4,13 +4,13 @@ define X942_PRF
load_on auto
-<requires>
-md5
-sha1
-#oid_lookup
-</requires>
-
<add>
prf_x942.cpp
prf_x942.h
</add>
+
+<requires>
+asn1
+oid_lookup
+sha1
+</requires>
diff --git a/src/libstate/info.txt b/src/libstate/info.txt
index f3111a31e..6e200ee3f 100644
--- a/src/libstate/info.txt
+++ b/src/libstate/info.txt
@@ -4,15 +4,6 @@ load_on auto
define LIBSTATE_MODULE
-<requires>
-algo_factory
-def_engine
-mode_pad
-pk_pad
-s2k
-system_alloc
-</requires>
-
<add>
botan.h
get_enc.cpp
@@ -28,3 +19,25 @@ pk_engine.cpp
pk_engine.h
policy.cpp
</add>
+
+<requires>
+algo_factory
+alloc
+bigint
+block
+def_engine
+engine
+filters
+hash
+kdf
+mac
+mode_pad
+mutex
+noop_mutex
+pk_pad
+pubkey
+rng
+s2k
+stream
+system_alloc
+</requires>
diff --git a/src/libstate/oid_lookup/info.txt b/src/libstate/oid_lookup/info.txt
index b5f4ef21f..609eb9199 100644
--- a/src/libstate/oid_lookup/info.txt
+++ b/src/libstate/oid_lookup/info.txt
@@ -4,12 +4,11 @@ load_on dep
define OID_LOOKUP
-<requires>
-#libstate
-#asn1
-</requires>
-
<add>
oids.cpp
oids.h
</add>
+
+<requires>
+asn1
+</requires>
diff --git a/src/mac/cbc_mac/info.txt b/src/mac/cbc_mac/info.txt
index 3a7a6e781..3a5434974 100644
--- a/src/mac/cbc_mac/info.txt
+++ b/src/mac/cbc_mac/info.txt
@@ -8,3 +8,7 @@ load_on auto
cbc_mac.cpp
cbc_mac.h
</add>
+
+<requires>
+block
+</requires>
diff --git a/src/mac/cmac/info.txt b/src/mac/cmac/info.txt
index 5188af0c0..b593c9d38 100644
--- a/src/mac/cmac/info.txt
+++ b/src/mac/cmac/info.txt
@@ -8,3 +8,7 @@ load_on auto
cmac.cpp
cmac.h
</add>
+
+<requires>
+block
+</requires>
diff --git a/src/mac/hmac/info.txt b/src/mac/hmac/info.txt
index 534d2e036..cdf2e67ab 100644
--- a/src/mac/hmac/info.txt
+++ b/src/mac/hmac/info.txt
@@ -8,3 +8,7 @@ load_on auto
hmac.cpp
hmac.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/mac/info.txt b/src/mac/info.txt
index 0e4dc11a2..4891d7498 100644
--- a/src/mac/info.txt
+++ b/src/mac/info.txt
@@ -2,11 +2,11 @@ realname "Message Authentication Codes"
load_on auto
-<requires>
-utils
-</requires>
-
<add>
mac.h
mac.cpp
</add>
+
+<requires>
+sym_algo
+</requires>
diff --git a/src/mac/ssl3mac/info.txt b/src/mac/ssl3mac/info.txt
index d7a86e571..f8791169c 100644
--- a/src/mac/ssl3mac/info.txt
+++ b/src/mac/ssl3mac/info.txt
@@ -8,3 +8,7 @@ load_on auto
ssl3_mac.cpp
ssl3_mac.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/mac/x919_mac/info.txt b/src/mac/x919_mac/info.txt
index 24c78b1c6..f2ebd5b35 100644
--- a/src/mac/x919_mac/info.txt
+++ b/src/mac/x919_mac/info.txt
@@ -8,3 +8,7 @@ load_on auto
x919_mac.cpp
x919_mac.h
</add>
+
+<requires>
+block
+</requires>
diff --git a/src/math/bigint/info.txt b/src/math/bigint/info.txt
index 908304c9f..9c8e1fa17 100644
--- a/src/math/bigint/info.txt
+++ b/src/math/bigint/info.txt
@@ -4,14 +4,6 @@ load_on auto
define BIGINT
-<requires>
-hex
-rng
-mp_amd64|mp_asm64|mp_ia32|mp_ia32_msvc|mp_generic
-monty_generic
-mulop_generic
-</requires>
-
<add>
bigint.h
divide.h
@@ -30,3 +22,10 @@ mp_karat.cpp
mp_misc.cpp
mp_shift.cpp
</add>
+
+<requires>
+hex
+mp_ia32
+mp_ia32_msvc
+rng
+</requires>
diff --git a/src/math/bigint/monty_amd64/info.txt b/src/math/bigint/monty_amd64/info.txt
index 5f80a0b1e..dff74c611 100644
--- a/src/math/bigint/monty_amd64/info.txt
+++ b/src/math/bigint/monty_amd64/info.txt
@@ -8,10 +8,6 @@ load_on never
mp_monty.S
</add>
-<requires>
-asm_amd64
-</requires>
-
<arch>
amd64
</arch>
@@ -29,3 +25,7 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+</requires>
diff --git a/src/math/bigint/monty_generic/info.txt b/src/math/bigint/monty_generic/info.txt
index 6f5f0e722..e99e5e083 100644
--- a/src/math/bigint/monty_generic/info.txt
+++ b/src/math/bigint/monty_generic/info.txt
@@ -5,3 +5,8 @@ load_on dep
<add>
mp_monty.cpp
</add>
+
+<requires>
+mp_ia32
+mp_ia32_msvc
+</requires>
diff --git a/src/math/bigint/mp_ia32_msvc/info.txt b/src/math/bigint/mp_ia32_msvc/info.txt
index 9c7ac9b43..9ca22a2da 100644
--- a/src/math/bigint/mp_ia32_msvc/info.txt
+++ b/src/math/bigint/mp_ia32_msvc/info.txt
@@ -16,3 +16,7 @@ ia32
<cc>
msvc
</cc>
+
+<requires>
+mp_ia32
+</requires>
diff --git a/src/math/bigint/mulop_amd64/info.txt b/src/math/bigint/mulop_amd64/info.txt
index 15bde7bf3..0f512251c 100644
--- a/src/math/bigint/mulop_amd64/info.txt
+++ b/src/math/bigint/mulop_amd64/info.txt
@@ -8,10 +8,6 @@ load_on never
mp_mulop_amd64.S
</add>
-<requires>
-asm_amd64
-</requires>
-
<arch>
amd64
</arch>
@@ -29,3 +25,9 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+mp_ia32
+mp_ia32_msvc
+</requires>
diff --git a/src/math/bigint/mulop_generic/info.txt b/src/math/bigint/mulop_generic/info.txt
index 28ebe41eb..8700e9332 100644
--- a/src/math/bigint/mulop_generic/info.txt
+++ b/src/math/bigint/mulop_generic/info.txt
@@ -5,3 +5,8 @@ load_on dep
<add>
mp_mulop.cpp
</add>
+
+<requires>
+mp_ia32
+mp_ia32_msvc
+</requires>
diff --git a/src/math/bigint/mulop_ia32/info.txt b/src/math/bigint/mulop_ia32/info.txt
index 1c89e95c1..a7b525bfb 100644
--- a/src/math/bigint/mulop_ia32/info.txt
+++ b/src/math/bigint/mulop_ia32/info.txt
@@ -10,10 +10,6 @@ load_on request
mp_mulop.S
</add>
-<requires>
-asm_ia32
-</requires>
-
<arch>
ia32
</arch>
@@ -31,3 +27,7 @@ netbsd
openbsd
solaris
</os>
+
+<requires>
+asm_ia32
+</requires>
diff --git a/src/math/gfpmath/info.txt b/src/math/gfpmath/info.txt
index e90569d26..0fadcc819 100644
--- a/src/math/gfpmath/info.txt
+++ b/src/math/gfpmath/info.txt
@@ -6,11 +6,6 @@ load_on auto
define BIGINT_GFP
-<requires>
-bigint
-numbertheory
-</requires>
-
<add>
curve_gfp.cpp
curve_gfp.h
@@ -20,3 +15,10 @@ gfp_modulus.h
point_gfp.cpp
point_gfp.h
</add>
+
+<requires>
+bigint
+mp_ia32
+mp_ia32_msvc
+numbertheory
+</requires>
diff --git a/src/math/numbertheory/info.txt b/src/math/numbertheory/info.txt
index 6ce3583c8..1595c7305 100644
--- a/src/math/numbertheory/info.txt
+++ b/src/math/numbertheory/info.txt
@@ -4,10 +4,6 @@ load_on auto
define BIGINT_MATH
-<requires>
-bigint
-</requires>
-
<add>
blinding.cpp
blinding.h
@@ -27,3 +23,11 @@ reducer.cpp
reducer.h
ressol.cpp
</add>
+
+<requires>
+algo_factory
+bigint
+hash
+libstate
+rng
+</requires>
diff --git a/src/modes/cbc/info.txt b/src/modes/cbc/info.txt
index 6cc0e1a14..9dd6d827e 100644
--- a/src/modes/cbc/info.txt
+++ b/src/modes/cbc/info.txt
@@ -9,8 +9,7 @@ cbc.cpp
cbc.h
</add>
+
<requires>
-modes
mode_pad
</requires>
-
diff --git a/src/modes/cts/info.txt b/src/modes/cts/info.txt
index bfb26c987..26f5cae52 100644
--- a/src/modes/cts/info.txt
+++ b/src/modes/cts/info.txt
@@ -9,7 +9,7 @@ cts.cpp
cts.h
</add>
+
<requires>
-modes
+block
</requires>
-
diff --git a/src/modes/eax/info.txt b/src/modes/eax/info.txt
index 54890d6a2..a1757cada 100644
--- a/src/modes/eax/info.txt
+++ b/src/modes/eax/info.txt
@@ -10,7 +10,10 @@ eax.h
eax_dec.cpp
</add>
+
<requires>
-modes
+block
+cmac
+filters
+mac
</requires>
-
diff --git a/src/modes/ecb/info.txt b/src/modes/ecb/info.txt
index 43ff1ac1c..6d4ce93a7 100644
--- a/src/modes/ecb/info.txt
+++ b/src/modes/ecb/info.txt
@@ -9,8 +9,8 @@ ecb.cpp
ecb.h
</add>
+
<requires>
-modes
+block
mode_pad
</requires>
-
diff --git a/src/modes/info.txt b/src/modes/info.txt
index 6fc874bd6..e089e74a9 100644
--- a/src/modes/info.txt
+++ b/src/modes/info.txt
@@ -10,5 +10,6 @@ modebase.h
</add>
<requires>
+block
filters
</requires>
diff --git a/src/modes/ofb/info.txt b/src/modes/ofb/info.txt
index 03cb23677..1b33c38d5 100644
--- a/src/modes/ofb/info.txt
+++ b/src/modes/ofb/info.txt
@@ -9,7 +9,7 @@ ofb.cpp
ofb.h
</add>
+
<requires>
-modes
+block
</requires>
-
diff --git a/src/modes/xts/info.txt b/src/modes/xts/info.txt
index 30d8f3496..6669c1184 100644
--- a/src/modes/xts/info.txt
+++ b/src/modes/xts/info.txt
@@ -9,7 +9,8 @@ xts.cpp
xts.h
</add>
+
<requires>
-modes
+block
+filters
</requires>
-
diff --git a/src/pbe/info.txt b/src/pbe/info.txt
index 9a46c3a11..c4210b2a7 100644
--- a/src/pbe/info.txt
+++ b/src/pbe/info.txt
@@ -4,13 +4,13 @@ load_on dep
define PASSWORD_BASED_ENCRYPTION
-<requires>
-filters
-asn1
-oid_lookup
-</requires>
-
<add>
get_pbe.cpp
get_pbe.h
</add>
+
+<requires>
+filters
+libstate
+oid_lookup
+</requires>
diff --git a/src/pbe/pbes1/info.txt b/src/pbe/pbes1/info.txt
index 9a5a3aa1a..70c6baeee 100644
--- a/src/pbe/pbes1/info.txt
+++ b/src/pbe/pbes1/info.txt
@@ -10,6 +10,10 @@ pbes1.h
</add>
<requires>
-pbe
+asn1
+block
+cbc
+filters
+hash
pbkdf1
</requires>
diff --git a/src/pbe/pbes2/info.txt b/src/pbe/pbes2/info.txt
index 42e5c42a0..cd37b1e69 100644
--- a/src/pbe/pbes2/info.txt
+++ b/src/pbe/pbes2/info.txt
@@ -4,13 +4,20 @@ define PBE_PKCS_V20
load_on auto
-<requires>
-oid_lookup
-pbe
-pbkdf2
-</requires>
-
<add>
pbes2.cpp
pbes2.h
</add>
+
+<requires>
+algo_factory
+asn1
+block
+cbc
+filters
+hash
+hmac
+libstate
+oid_lookup
+pbkdf2
+</requires>
diff --git a/src/pk_pad/eme1/info.txt b/src/pk_pad/eme1/info.txt
index 4e68aba4b..2f61265e2 100644
--- a/src/pk_pad/eme1/info.txt
+++ b/src/pk_pad/eme1/info.txt
@@ -4,12 +4,13 @@ define EME1
load_on auto
-<requires>
-mgf1
-utils
-</requires>
-
<add>
eme1.h
eme1.cpp
</add>
+
+<requires>
+hash
+kdf
+mgf1
+</requires>
diff --git a/src/pk_pad/emsa1/info.txt b/src/pk_pad/emsa1/info.txt
index 4040dd580..086270b96 100644
--- a/src/pk_pad/emsa1/info.txt
+++ b/src/pk_pad/emsa1/info.txt
@@ -8,3 +8,7 @@ load_on auto
emsa1.h
emsa1.cpp
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/pk_pad/emsa1_bsi/info.txt b/src/pk_pad/emsa1_bsi/info.txt
index 8a8c46abb..14a9fd396 100644
--- a/src/pk_pad/emsa1_bsi/info.txt
+++ b/src/pk_pad/emsa1_bsi/info.txt
@@ -4,11 +4,11 @@ define EMSA1_BSI
load_on auto
-<requires>
-emsa1
-</requires>
-
<add>
emsa1_bsi.h
emsa1_bsi.cpp
</add>
+
+<requires>
+emsa1
+</requires>
diff --git a/src/pk_pad/emsa2/info.txt b/src/pk_pad/emsa2/info.txt
index f0910d450..1c8161c5e 100644
--- a/src/pk_pad/emsa2/info.txt
+++ b/src/pk_pad/emsa2/info.txt
@@ -10,5 +10,6 @@ emsa2.cpp
</add>
<requires>
+hash
hash_id
</requires>
diff --git a/src/pk_pad/emsa3/info.txt b/src/pk_pad/emsa3/info.txt
index 284b9b07d..90e4b9bfc 100644
--- a/src/pk_pad/emsa3/info.txt
+++ b/src/pk_pad/emsa3/info.txt
@@ -10,5 +10,6 @@ emsa3.cpp
</add>
<requires>
+hash
hash_id
</requires>
diff --git a/src/pk_pad/emsa4/info.txt b/src/pk_pad/emsa4/info.txt
index e37d72d77..29ef4e0cf 100644
--- a/src/pk_pad/emsa4/info.txt
+++ b/src/pk_pad/emsa4/info.txt
@@ -10,5 +10,7 @@ emsa4.cpp
</add>
<requires>
+hash
+kdf
mgf1
</requires>
diff --git a/src/pk_pad/info.txt b/src/pk_pad/info.txt
index ff750a12c..ae773b440 100644
--- a/src/pk_pad/info.txt
+++ b/src/pk_pad/info.txt
@@ -9,3 +9,7 @@ emsa.h
eme.cpp
eme.h
</add>
+
+<requires>
+rng
+</requires>
diff --git a/src/pubkey/dh/info.txt b/src/pubkey/dh/info.txt
index 9e4ceb65b..33af9a8e5 100644
--- a/src/pubkey/dh/info.txt
+++ b/src/pubkey/dh/info.txt
@@ -13,8 +13,8 @@ dh_op.h
</add>
<requires>
-asn1
-bigint
dl_algo
+dl_group
+libstate
numbertheory
</requires>
diff --git a/src/pubkey/dl_algo/info.txt b/src/pubkey/dl_algo/info.txt
index d3368765a..15a77516b 100644
--- a/src/pubkey/dl_algo/info.txt
+++ b/src/pubkey/dl_algo/info.txt
@@ -11,6 +11,8 @@ dl_algo.h
<requires>
asn1
-bigint
dl_group
+numbertheory
+pk_codecs
+rng
</requires>
diff --git a/src/pubkey/dl_group/info.txt b/src/pubkey/dl_group/info.txt
index 62446091f..6b9884a4d 100644
--- a/src/pubkey/dl_group/info.txt
+++ b/src/pubkey/dl_group/info.txt
@@ -12,4 +12,8 @@ dl_group.h
<requires>
asn1
bigint
+filters
+libstate
+numbertheory
+pem
</requires>
diff --git a/src/pubkey/dlies/info.txt b/src/pubkey/dlies/info.txt
index 9e32aeb2a..5138aafc5 100644
--- a/src/pubkey/dlies/info.txt
+++ b/src/pubkey/dlies/info.txt
@@ -10,6 +10,7 @@ dlies.h
</add>
<requires>
-dh
-kdf2
+kdf
+libstate
+mac
</requires>
diff --git a/src/pubkey/dsa/info.txt b/src/pubkey/dsa/info.txt
index 2d6287fbd..c70e02d90 100644
--- a/src/pubkey/dsa/info.txt
+++ b/src/pubkey/dsa/info.txt
@@ -4,14 +4,6 @@ define DSA
load_on auto
-<requires>
-asn1
-bigint
-dl_algo
-keypair
-numbertheory
-</requires>
-
<add>
dsa.cpp
dsa.h
@@ -20,3 +12,11 @@ dsa_core.h
dsa_op.cpp
dsa_op.h
</add>
+
+<requires>
+dl_algo
+dl_group
+keypair
+libstate
+numbertheory
+</requires>
diff --git a/src/pubkey/ec_dompar/info.txt b/src/pubkey/ec_dompar/info.txt
index 59032ce90..212783725 100644
--- a/src/pubkey/ec_dompar/info.txt
+++ b/src/pubkey/ec_dompar/info.txt
@@ -12,6 +12,7 @@ ec_dompar.h
<requires>
asn1
bigint
-numbertheory
+filters
gfpmath
+hex
</requires>
diff --git a/src/pubkey/ecc_key/info.txt b/src/pubkey/ecc_key/info.txt
index a57de3d0c..c1972052d 100644
--- a/src/pubkey/ecc_key/info.txt
+++ b/src/pubkey/ecc_key/info.txt
@@ -4,15 +4,16 @@ define ECC_PUBLIC_KEY_CRYPTO
load_on auto
+<add>
+ecc_key.cpp
+ecc_key.h
+</add>
+
<requires>
asn1
bigint
ec_dompar
-numbertheory
gfpmath
+numbertheory
+pk_codecs
</requires>
-
-<add>
-ecc_key.cpp
-ecc_key.h
-</add>
diff --git a/src/pubkey/ecdsa/info.txt b/src/pubkey/ecdsa/info.txt
index c67122348..4ca020ad5 100644
--- a/src/pubkey/ecdsa/info.txt
+++ b/src/pubkey/ecdsa/info.txt
@@ -4,15 +4,6 @@ define ECDSA
load_on auto
-<requires>
-asn1
-bigint
-ec_dompar
-ecc_key
-numbertheory
-gfpmath
-</requires>
-
<add>
ecdsa.cpp
ecdsa.h
@@ -21,3 +12,13 @@ ecdsa_core.h
ecdsa_op.cpp
ecdsa_op.h
</add>
+
+<requires>
+asn1
+ec_dompar
+ecc_key
+gfpmath
+libstate
+numbertheory
+rng
+</requires>
diff --git a/src/pubkey/eckaeg/info.txt b/src/pubkey/eckaeg/info.txt
index cdac09220..d18a805ee 100644
--- a/src/pubkey/eckaeg/info.txt
+++ b/src/pubkey/eckaeg/info.txt
@@ -4,15 +4,6 @@ define ECKAEG
load_on auto
-<requires>
-asn1
-bigint
-ec_dompar
-ecc_key
-numbertheory
-gfpmath
-</requires>
-
<add>
eckaeg.cpp
eckaeg.h
@@ -21,3 +12,12 @@ eckaeg_core.h
eckaeg_op.cpp
eckaeg_op.h
</add>
+
+<requires>
+asn1
+ec_dompar
+ecc_key
+gfpmath
+libstate
+numbertheory
+</requires>
diff --git a/src/pubkey/elgamal/info.txt b/src/pubkey/elgamal/info.txt
index 53a039585..d7ae614ea 100644
--- a/src/pubkey/elgamal/info.txt
+++ b/src/pubkey/elgamal/info.txt
@@ -4,15 +4,6 @@ define ELGAMAL
load_on auto
-<requires>
-asn1
-bigint
-bigint
-dl_algo
-keypair
-numbertheory
-</requires>
-
<add>
elgamal.cpp
elgamal.h
@@ -21,3 +12,11 @@ elg_core.h
elg_op.cpp
elg_op.h
</add>
+
+<requires>
+dl_algo
+dl_group
+keypair
+libstate
+numbertheory
+</requires>
diff --git a/src/pubkey/if_algo/info.txt b/src/pubkey/if_algo/info.txt
index 7686ed398..d2142f42f 100644
--- a/src/pubkey/if_algo/info.txt
+++ b/src/pubkey/if_algo/info.txt
@@ -4,12 +4,6 @@ define IF_PUBLIC_KEY_FAMILY
load_on dep
-<requires>
-asn1
-bigint
-filters
-</requires>
-
<add>
if_algo.cpp
if_algo.h
@@ -18,3 +12,11 @@ if_core.h
if_op.cpp
if_op.h
</add>
+
+<requires>
+asn1
+bigint
+libstate
+numbertheory
+pk_codecs
+</requires>
diff --git a/src/pubkey/info.txt b/src/pubkey/info.txt
index 74698503a..de58fd271 100644
--- a/src/pubkey/info.txt
+++ b/src/pubkey/info.txt
@@ -4,17 +4,6 @@ define PUBLIC_KEY_CRYPTO
load_on auto
-<requires>
-asn1
-bigint
-numbertheory
-oid_lookup
-pbe
-pk_codecs
-pk_pad
-rng
-</requires>
-
<add>
pk_algs.cpp
pk_algs.h
@@ -29,3 +18,14 @@ pubkey_enums.h
x509_key.cpp
x509_key.h
</add>
+
+<requires>
+asn1
+bigint
+filters
+kdf
+oid_lookup
+pk_pad
+rng
+sym_algo
+</requires>
diff --git a/src/pubkey/nr/info.txt b/src/pubkey/nr/info.txt
index a02be064d..c89820aeb 100644
--- a/src/pubkey/nr/info.txt
+++ b/src/pubkey/nr/info.txt
@@ -14,9 +14,9 @@ nr_op.h
</add>
<requires>
-asn1
-bigint
dl_algo
+dl_group
keypair
+libstate
numbertheory
</requires>
diff --git a/src/pubkey/pk_codecs/info.txt b/src/pubkey/pk_codecs/info.txt
new file mode 100644
index 000000000..96511a663
--- /dev/null
+++ b/src/pubkey/pk_codecs/info.txt
@@ -0,0 +1,18 @@
+realname "PK codecs (PKCS8, X.509)"
+
+load_on auto
+
+<add>
+pkcs8.h
+pkcs8.cpp
+x509_key.h
+x509_key.cpp
+</add>
+
+<requires>
+asn1
+filters
+oid_lookup
+pbe
+pem
+</requires>
diff --git a/src/pubkey/rsa/info.txt b/src/pubkey/rsa/info.txt
index a75c69ae5..7729fd83d 100644
--- a/src/pubkey/rsa/info.txt
+++ b/src/pubkey/rsa/info.txt
@@ -4,15 +4,14 @@ define RSA
load_on auto
+<add>
+rsa.cpp
+rsa.h
+</add>
+
<requires>
-asn1
-bigint
if_algo
keypair
+libstate
numbertheory
</requires>
-
-<add>
-rsa.cpp
-rsa.h
-</add>
diff --git a/src/pubkey/rw/info.txt b/src/pubkey/rw/info.txt
index 83265399f..ada6c37d6 100644
--- a/src/pubkey/rw/info.txt
+++ b/src/pubkey/rw/info.txt
@@ -4,15 +4,14 @@ define RW
load_on auto
+<add>
+rw.cpp
+rw.h
+</add>
+
<requires>
-asn1
-bigint
if_algo
keypair
+libstate
numbertheory
</requires>
-
-<add>
-rw.cpp
-rw.h
-</add>
diff --git a/src/rng/auto_rng/info.txt b/src/rng/auto_rng/info.txt
index aa316367e..2f41bc068 100644
--- a/src/rng/auto_rng/info.txt
+++ b/src/rng/auto_rng/info.txt
@@ -4,14 +4,14 @@ define AUTO_SEEDING_RNG
load_on auto
-<requires>
-aes
-sha2
-hmac
-</requires>
-
<add>
auto_rng.h
auto_rng.cpp
</add>
+<requires>
+aes
+hmac
+sha2
+timer
+</requires>
diff --git a/src/rng/hmac_rng/info.txt b/src/rng/hmac_rng/info.txt
index f23f9018a..2c7f13e0a 100644
--- a/src/rng/hmac_rng/info.txt
+++ b/src/rng/hmac_rng/info.txt
@@ -8,3 +8,7 @@ load_on auto
hmac_rng.cpp
hmac_rng.h
</add>
+
+<requires>
+mac
+</requires>
diff --git a/src/rng/info.txt b/src/rng/info.txt
index 8b542b68f..44a41665d 100644
--- a/src/rng/info.txt
+++ b/src/rng/info.txt
@@ -6,3 +6,7 @@ load_on auto
rng.cpp
rng.h
</add>
+
+<requires>
+entropy
+</requires>
diff --git a/src/rng/randpool/info.txt b/src/rng/randpool/info.txt
index 1b2f79b56..cc7f61552 100644
--- a/src/rng/randpool/info.txt
+++ b/src/rng/randpool/info.txt
@@ -8,3 +8,8 @@ load_on auto
randpool.cpp
randpool.h
</add>
+
+<requires>
+block
+mac
+</requires>
diff --git a/src/rng/x931_rng/info.txt b/src/rng/x931_rng/info.txt
index 79e436822..633eb0268 100644
--- a/src/rng/x931_rng/info.txt
+++ b/src/rng/x931_rng/info.txt
@@ -10,5 +10,5 @@ x931_rng.h
</add>
<requires>
-randpool
+block
</requires>
diff --git a/src/s2k/info.txt b/src/s2k/info.txt
index 44510bbd7..e603fd937 100644
--- a/src/s2k/info.txt
+++ b/src/s2k/info.txt
@@ -2,12 +2,12 @@ realname "String to Key Functions"
load_on auto
-<requires>
-utils
-rng
-</requires>
-
<add>
s2k.cpp
s2k.h
</add>
+
+<requires>
+rng
+sym_algo
+</requires>
diff --git a/src/s2k/pbkdf1/info.txt b/src/s2k/pbkdf1/info.txt
index 3c1ae802c..4c5b27546 100644
--- a/src/s2k/pbkdf1/info.txt
+++ b/src/s2k/pbkdf1/info.txt
@@ -8,3 +8,7 @@ load_on auto
pbkdf1.cpp
pbkdf1.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/s2k/pbkdf2/info.txt b/src/s2k/pbkdf2/info.txt
index e51a331c6..921aeb1ab 100644
--- a/src/s2k/pbkdf2/info.txt
+++ b/src/s2k/pbkdf2/info.txt
@@ -8,3 +8,7 @@ load_on auto
pbkdf2.cpp
pbkdf2.h
</add>
+
+<requires>
+mac
+</requires>
diff --git a/src/s2k/pgps2k/info.txt b/src/s2k/pgps2k/info.txt
index a3d5a146f..14b75a02b 100644
--- a/src/s2k/pgps2k/info.txt
+++ b/src/s2k/pgps2k/info.txt
@@ -8,3 +8,7 @@ load_on auto
pgp_s2k.cpp
pgp_s2k.h
</add>
+
+<requires>
+hash
+</requires>
diff --git a/src/selftest/info.txt b/src/selftest/info.txt
index 49df21643..323a610a6 100644
--- a/src/selftest/info.txt
+++ b/src/selftest/info.txt
@@ -4,21 +4,18 @@ define SELFTESTS
load_on auto
+<add>
+selftest.cpp
+selftest.h
+</add>
+
<requires>
-hex
-des
-aes
-sha1
-sha2
-hmac
-ecb
+algo_factory
cbc
cfb
-ofb
ctr
+ecb
+filters
+hmac
+ofb
</requires>
-
-<add>
-selftest.cpp
-selftest.h
-</add>
diff --git a/src/stream/info.txt b/src/stream/info.txt
index b3d9649db..295c73708 100644
--- a/src/stream/info.txt
+++ b/src/stream/info.txt
@@ -4,12 +4,11 @@ load_on auto
define STREAM_CIPHER
-<requires>
-utils
-sym_algo
-</requires>
-
<add>
stream_cipher.h
stream_cipher.cpp
</add>
+
+<requires>
+sym_algo
+</requires>
diff --git a/src/sym_algo/info.txt b/src/sym_algo/info.txt
index 3f3adfd96..f176ed6fb 100644
--- a/src/sym_algo/info.txt
+++ b/src/sym_algo/info.txt
@@ -2,12 +2,14 @@ realname "Symmetric Algorithms"
load_on auto
-<requires>
-rng
-</requires>
-
<add>
sym_algo.h
symkey.cpp
symkey.h
</add>
+
+<requires>
+filters
+hex
+rng
+</requires>
diff --git a/src/timer/info.txt b/src/timer/info.txt
index c9a860a78..6408dca45 100644
--- a/src/timer/info.txt
+++ b/src/timer/info.txt
@@ -8,3 +8,7 @@ load_on auto
timer.cpp
timer.h
</add>
+
+<requires>
+rng
+</requires>
diff --git a/src/utils/info.txt b/src/utils/info.txt
index 815ad4efc..dcf4b9288 100644
--- a/src/utils/info.txt
+++ b/src/utils/info.txt
@@ -8,10 +8,6 @@ load_on auto
tru64 -> rt
</libs>
-<requires>
-filters
-</requires>
-
<add>
bit_ops.h
bswap.h
@@ -43,3 +39,9 @@ version.cpp
version.h
xor_buf.h
</add>
+
+<requires>
+alloc
+filters
+libstate
+</requires>