aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure.py37
-rw-r--r--src/lib/asn1/info.txt4
-rw-r--r--src/lib/block/aes/aes_ni/info.txt4
-rw-r--r--src/lib/block/aes/aes_ssse3/info.txt4
-rw-r--r--src/lib/block/aes/info.txt4
-rw-r--r--src/lib/block/blowfish/info.txt4
-rw-r--r--src/lib/block/camellia/info.txt4
-rw-r--r--src/lib/block/cascade/info.txt4
-rw-r--r--src/lib/block/cast/info.txt4
-rw-r--r--src/lib/block/des/info.txt4
-rw-r--r--src/lib/block/gost_28147/info.txt4
-rw-r--r--src/lib/block/idea/idea_sse2/info.txt5
-rw-r--r--src/lib/block/idea/info.txt4
-rw-r--r--src/lib/block/info.txt4
-rw-r--r--src/lib/block/kasumi/info.txt4
-rw-r--r--src/lib/block/lion/info.txt4
-rw-r--r--src/lib/block/misty1/info.txt4
-rw-r--r--src/lib/block/noekeon/info.txt4
-rw-r--r--src/lib/block/noekeon/noekeon_simd/info.txt4
-rw-r--r--src/lib/block/seed/info.txt4
-rw-r--r--src/lib/block/serpent/info.txt4
-rw-r--r--src/lib/block/serpent/serpent_simd/info.txt4
-rw-r--r--src/lib/block/threefish/info.txt4
-rw-r--r--src/lib/block/threefish/threefish_avx2/info.txt4
-rw-r--r--src/lib/block/twofish/info.txt4
-rw-r--r--src/lib/block/xtea/info.txt4
-rw-r--r--src/lib/codec/base64/info.txt4
-rw-r--r--src/lib/codec/hex/info.txt4
-rw-r--r--src/lib/compression/bzip2/info.txt4
-rw-r--r--src/lib/compression/info.txt4
-rw-r--r--src/lib/compression/lzma/info.txt4
-rw-r--r--src/lib/compression/zlib/info.txt4
-rw-r--r--src/lib/entropy/cryptoapi_rng/info.txt4
-rw-r--r--src/lib/entropy/darwin_secrandom/info.txt4
-rw-r--r--src/lib/entropy/dev_random/info.txt4
-rw-r--r--src/lib/entropy/getentropy/info.txt4
-rw-r--r--src/lib/entropy/info.txt4
-rw-r--r--src/lib/entropy/proc_walk/info.txt4
-rw-r--r--src/lib/entropy/rdrand/info.txt4
-rw-r--r--src/lib/entropy/rdseed/info.txt4
-rw-r--r--src/lib/entropy/win32_stats/info.txt4
-rw-r--r--src/lib/ffi/info.txt5
-rw-r--r--src/lib/filters/codec_filt/info.txt4
-rw-r--r--src/lib/filters/fd_unix/info.txt4
-rw-r--r--src/lib/filters/info.txt4
-rw-r--r--src/lib/hash/blake2/info.txt4
-rw-r--r--src/lib/hash/checksum/adler32/info.txt4
-rw-r--r--src/lib/hash/checksum/crc24/info.txt4
-rw-r--r--src/lib/hash/checksum/crc32/info.txt4
-rw-r--r--src/lib/hash/comb4p/info.txt4
-rw-r--r--src/lib/hash/gost_3411/info.txt4
-rw-r--r--src/lib/hash/keccak/info.txt4
-rw-r--r--src/lib/hash/md4/info.txt4
-rw-r--r--src/lib/hash/md5/info.txt4
-rw-r--r--src/lib/hash/mdx_hash/info.txt4
-rw-r--r--src/lib/hash/par_hash/info.txt4
-rw-r--r--src/lib/hash/rmd160/info.txt4
-rw-r--r--src/lib/hash/sha1/info.txt4
-rw-r--r--src/lib/hash/sha1/sha1_sse2/info.txt4
-rw-r--r--src/lib/hash/sha2_32/info.txt4
-rw-r--r--src/lib/hash/sha2_64/info.txt4
-rw-r--r--src/lib/hash/sha3/info.txt4
-rw-r--r--src/lib/hash/shake/info.txt4
-rw-r--r--src/lib/hash/skein/info.txt4
-rw-r--r--src/lib/hash/tiger/info.txt4
-rw-r--r--src/lib/hash/whirlpool/info.txt4
-rw-r--r--src/lib/kdf/hkdf/info.txt4
-rw-r--r--src/lib/kdf/info.txt4
-rw-r--r--src/lib/kdf/kdf1/info.txt4
-rw-r--r--src/lib/kdf/kdf1_iso18033/info.txt4
-rw-r--r--src/lib/kdf/kdf2/info.txt4
-rw-r--r--src/lib/kdf/prf_tls/info.txt6
-rw-r--r--src/lib/kdf/prf_x942/info.txt4
-rw-r--r--src/lib/kdf/sp800_108/info.txt4
-rw-r--r--src/lib/kdf/sp800_56c/info.txt4
-rw-r--r--src/lib/mac/cbc_mac/info.txt4
-rw-r--r--src/lib/mac/cmac/info.txt4
-rw-r--r--src/lib/mac/gmac/info.txt4
-rw-r--r--src/lib/mac/hmac/info.txt4
-rw-r--r--src/lib/mac/info.txt4
-rw-r--r--src/lib/mac/poly1305/info.txt4
-rw-r--r--src/lib/mac/siphash/info.txt4
-rw-r--r--src/lib/mac/x919_mac/info.txt4
-rw-r--r--src/lib/math/bigint/info.txt6
-rw-r--r--src/lib/math/ec_gfp/info.txt4
-rw-r--r--src/lib/math/mp/info.txt4
-rw-r--r--src/lib/math/numbertheory/info.txt4
-rw-r--r--src/lib/misc/aont/info.txt4
-rw-r--r--src/lib/misc/cryptobox/info.txt4
-rw-r--r--src/lib/misc/fpe_fe1/info.txt4
-rw-r--r--src/lib/misc/rfc3394/info.txt4
-rw-r--r--src/lib/misc/srp6/info.txt4
-rw-r--r--src/lib/misc/tss/info.txt4
-rw-r--r--src/lib/modes/aead/ccm/info.txt4
-rw-r--r--src/lib/modes/aead/chacha20poly1305/info.txt4
-rw-r--r--src/lib/modes/aead/eax/info.txt4
-rw-r--r--src/lib/modes/aead/gcm/clmul/info.txt5
-rw-r--r--src/lib/modes/aead/gcm/info.txt4
-rw-r--r--src/lib/modes/aead/info.txt4
-rw-r--r--src/lib/modes/aead/ocb/info.txt4
-rw-r--r--src/lib/modes/aead/siv/info.txt4
-rw-r--r--src/lib/modes/cbc/info.txt4
-rw-r--r--src/lib/modes/cfb/info.txt4
-rw-r--r--src/lib/modes/info.txt4
-rw-r--r--src/lib/modes/mode_pad/info.txt4
-rw-r--r--src/lib/modes/xts/info.txt4
-rw-r--r--src/lib/passhash/bcrypt/info.txt5
-rw-r--r--src/lib/passhash/passhash9/info.txt4
-rw-r--r--src/lib/pbkdf/info.txt4
-rw-r--r--src/lib/pbkdf/pbkdf1/info.txt4
-rw-r--r--src/lib/pbkdf/pbkdf2/info.txt4
-rw-r--r--src/lib/pk_pad/eme_oaep/info.txt4
-rw-r--r--src/lib/pk_pad/eme_pkcs1/info.txt4
-rw-r--r--src/lib/pk_pad/eme_raw/info.txt4
-rw-r--r--src/lib/pk_pad/emsa1/info.txt4
-rw-r--r--src/lib/pk_pad/emsa_pkcs1/info.txt4
-rw-r--r--src/lib/pk_pad/emsa_pssr/info.txt4
-rw-r--r--src/lib/pk_pad/emsa_raw/info.txt4
-rw-r--r--src/lib/pk_pad/emsa_x931/info.txt4
-rw-r--r--src/lib/pk_pad/hash_id/info.txt4
-rw-r--r--src/lib/pk_pad/info.txt4
-rw-r--r--src/lib/pk_pad/iso9796/info.txt4
-rw-r--r--src/lib/pk_pad/mgf1/info.txt4
-rw-r--r--src/lib/prov/openssl/info.txt4
-rw-r--r--src/lib/prov/pkcs11/info.txt4
-rw-r--r--src/lib/prov/tpm/info.txt4
-rw-r--r--src/lib/pubkey/cecpq1/info.txt4
-rw-r--r--src/lib/pubkey/curve25519/info.txt4
-rw-r--r--src/lib/pubkey/dh/info.txt4
-rw-r--r--src/lib/pubkey/dl_algo/info.txt4
-rw-r--r--src/lib/pubkey/dl_group/info.txt4
-rw-r--r--src/lib/pubkey/dlies/info.txt4
-rw-r--r--src/lib/pubkey/dsa/info.txt4
-rw-r--r--src/lib/pubkey/ec_group/info.txt4
-rw-r--r--src/lib/pubkey/ecc_key/info.txt4
-rw-r--r--src/lib/pubkey/ecdh/info.txt4
-rw-r--r--src/lib/pubkey/ecdsa/info.txt4
-rw-r--r--src/lib/pubkey/ecgdsa/info.txt4
-rw-r--r--src/lib/pubkey/ecies/info.txt4
-rw-r--r--src/lib/pubkey/eckcdsa/info.txt4
-rw-r--r--src/lib/pubkey/elgamal/info.txt4
-rw-r--r--src/lib/pubkey/gost_3410/info.txt4
-rw-r--r--src/lib/pubkey/info.txt4
-rw-r--r--src/lib/pubkey/keypair/info.txt4
-rw-r--r--src/lib/pubkey/mce/info.txt4
-rw-r--r--src/lib/pubkey/mceies/info.txt4
-rw-r--r--src/lib/pubkey/newhope/info.txt4
-rw-r--r--src/lib/pubkey/pbes2/info.txt4
-rw-r--r--src/lib/pubkey/pem/info.txt4
-rw-r--r--src/lib/pubkey/rfc6979/info.txt4
-rw-r--r--src/lib/pubkey/rsa/info.txt4
-rw-r--r--src/lib/pubkey/xmss/info.txt4
-rw-r--r--src/lib/rng/auto_rng/info.txt6
-rw-r--r--src/lib/rng/hmac_drbg/info.txt4
-rw-r--r--src/lib/rng/rdrand_rng/info.txt4
-rw-r--r--src/lib/rng/stateful_rng/info.txt5
-rw-r--r--src/lib/rng/system_rng/info.txt5
-rw-r--r--src/lib/stream/chacha/chacha_sse2/info.txt4
-rw-r--r--src/lib/stream/chacha/info.txt4
-rw-r--r--src/lib/stream/ctr/info.txt4
-rw-r--r--src/lib/stream/info.txt4
-rw-r--r--src/lib/stream/ofb/info.txt4
-rw-r--r--src/lib/stream/rc4/info.txt4
-rw-r--r--src/lib/stream/salsa20/info.txt4
-rw-r--r--src/lib/stream/shake_cipher/info.txt4
-rw-r--r--src/lib/tls/info.txt4
-rw-r--r--src/lib/tls/sessions_sql/info.txt4
-rw-r--r--src/lib/tls/sessions_sqlite3/info.txt4
-rw-r--r--src/lib/tls/tls_cbc/info.txt4
-rw-r--r--src/lib/utils/boost/info.txt10
-rw-r--r--src/lib/utils/dyn_load/info.txt4
-rw-r--r--src/lib/utils/http_util/info.txt4
-rw-r--r--src/lib/utils/info.txt4
-rw-r--r--src/lib/utils/locking_allocator/info.txt4
-rw-r--r--src/lib/utils/simd/info.txt4
-rw-r--r--src/lib/x509/certstor_sql/info.txt5
-rw-r--r--src/lib/x509/certstor_sqlite3/info.txt4
-rw-r--r--src/lib/x509/info.txt6
178 files changed, 562 insertions, 204 deletions
diff --git a/configure.py b/configure.py
index 22fea5d38..04cdffd4e 100755
--- a/configure.py
+++ b/configure.py
@@ -524,6 +524,18 @@ class LexerError(ConfigureError):
return '%s at %s:%d' % (self.msg, self.lexfile, self.line)
+def parse_lex_dict(as_list):
+ if len(as_list) % 3 != 0:
+ raise ConfigureError("Lex dictionary has invalid format")
+
+ result = {}
+ for key, sep, value in [as_list[3*i:3*i+3] for i in range(0, len(as_list)/3)]:
+ if sep != '->':
+ raise ConfigureError("Lex dictionary has invalid format")
+ result[key] = value
+ return result
+
+
def lex_me_harder(infofile, allowed_groups, name_val_pairs):
"""
Generic lexer function for info.txt and src/build-data files
@@ -574,15 +586,6 @@ def lex_me_harder(infofile, allowed_groups, name_val_pairs):
elif token in name_val_pairs.keys():
if isinstance(out.__dict__[token], list):
out.__dict__[token].append(lexer.get_token())
-
- # Dirty hack
- if token == 'define':
- nxt = lexer.get_token()
- if not nxt:
- raise LexerError('No version set for API', infofile, lexer.lineno)
- if not re.match('^[0-9]{8}$', nxt):
- raise LexerError('Bad API rev "%s"' % (nxt), infofile, lexer.lineno)
- out.__dict__[token].append(nxt)
else:
out.__dict__[token] = lexer.get_token()
@@ -630,12 +633,11 @@ class ModuleInfo(InfoObject):
lex = lex_me_harder(
infofile,
[
- 'header:internal', 'header:public', 'header:external', 'requires',
+ 'defines', 'header:internal', 'header:public', 'header:external', 'requires',
'os', 'arch', 'cc', 'libs', 'frameworks', 'comment', 'warning'
],
{
'load_on': 'auto',
- 'define': [],
'need_isa': ''
})
@@ -687,7 +689,8 @@ class ModuleInfo(InfoObject):
self.arch = lex.arch
self.cc = lex.cc
self.comment = ' '.join(lex.comment) if lex.comment else None
- self.define = lex.define
+ self._defines = parse_lex_dict(lex.defines)
+ self._validate_defines_content(self._defines)
self.frameworks = convert_lib_list(lex.frameworks)
self.libs = convert_lib_list(lex.libs)
self.load_on = lex.load_on
@@ -728,6 +731,14 @@ class ModuleInfo(InfoObject):
intersect_check('public', self.header_public, 'external', self.header_external)
intersect_check('external', self.header_external, 'internal', self.header_internal)
+ @staticmethod
+ def _validate_defines_content(defines):
+ for key, value in defines.items():
+ if not re.match('^[0-9A-Za-z_]{3,30}$', key):
+ raise ConfigureError('Module defines key has invalid format: "%s"' % key)
+ if not re.match('^[0-9]{8}$', value):
+ raise ConfigureError('Module defines value has invalid format: "%s"' % value)
+
def cross_check(self, arch_info, os_info, cc_info):
for supp_os in self.os:
if supp_os not in os_info:
@@ -752,7 +763,7 @@ class ModuleInfo(InfoObject):
return self.header_external
def defines(self):
- return ['HAS_' + d[0] + ' ' + d[1] for d in chunks(self.define, 2)]
+ return ['HAS_%s %s' % (key, value) for key, value in self._defines.items()]
def compatible_cpu(self, archinfo, options):
arch_name = archinfo.basename
diff --git a/src/lib/asn1/info.txt b/src/lib/asn1/info.txt
index c2782282d..4b3689f45 100644
--- a/src/lib/asn1/info.txt
+++ b/src/lib/asn1/info.txt
@@ -1,4 +1,6 @@
-define ASN1 20161102
+<defines>
+ASN1 -> 20161102
+</defines>
<requires>
bigint
diff --git a/src/lib/block/aes/aes_ni/info.txt b/src/lib/block/aes/aes_ni/info.txt
index 11bf90390..d5d359348 100644
--- a/src/lib/block/aes/aes_ni/info.txt
+++ b/src/lib/block/aes/aes_ni/info.txt
@@ -1,4 +1,6 @@
-define AES_NI 20131128
+<defines>
+AES_NI -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/block/aes/aes_ssse3/info.txt b/src/lib/block/aes/aes_ssse3/info.txt
index 9e27801e6..8457eed56 100644
--- a/src/lib/block/aes/aes_ssse3/info.txt
+++ b/src/lib/block/aes/aes_ssse3/info.txt
@@ -1,4 +1,6 @@
-define AES_SSSE3 20131128
+<defines>
+AES_SSSE3 -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/block/aes/info.txt b/src/lib/block/aes/info.txt
index 09bd9a0ca..62455cf2c 100644
--- a/src/lib/block/aes/info.txt
+++ b/src/lib/block/aes/info.txt
@@ -1 +1,3 @@
-define AES 20131128
+<defines>
+AES -> 20131128
+</defines>
diff --git a/src/lib/block/blowfish/info.txt b/src/lib/block/blowfish/info.txt
index 1a33140d3..e028a5559 100644
--- a/src/lib/block/blowfish/info.txt
+++ b/src/lib/block/blowfish/info.txt
@@ -1 +1,3 @@
-define BLOWFISH 20131128
+<defines>
+BLOWFISH -> 20131128
+</defines>
diff --git a/src/lib/block/camellia/info.txt b/src/lib/block/camellia/info.txt
index 041ba75a2..c70a7f345 100644
--- a/src/lib/block/camellia/info.txt
+++ b/src/lib/block/camellia/info.txt
@@ -1,4 +1,6 @@
-define CAMELLIA 20150922
+<defines>
+CAMELLIA -> 20150922
+</defines>
<header:public>
camellia.h
diff --git a/src/lib/block/cascade/info.txt b/src/lib/block/cascade/info.txt
index 14f618fd0..15f5b2262 100644
--- a/src/lib/block/cascade/info.txt
+++ b/src/lib/block/cascade/info.txt
@@ -1,4 +1,6 @@
-define CASCADE 20131128
+<defines>
+CASCADE -> 20131128
+</defines>
<header:public>
cascade.h
diff --git a/src/lib/block/cast/info.txt b/src/lib/block/cast/info.txt
index be4cb7510..75d7e4ca3 100644
--- a/src/lib/block/cast/info.txt
+++ b/src/lib/block/cast/info.txt
@@ -1,4 +1,6 @@
-define CAST 20131128
+<defines>
+CAST -> 20131128
+</defines>
<header:internal>
cast_sboxes.h
diff --git a/src/lib/block/des/info.txt b/src/lib/block/des/info.txt
index a5d50d56e..05f85b523 100644
--- a/src/lib/block/des/info.txt
+++ b/src/lib/block/des/info.txt
@@ -1 +1,3 @@
-define DES 20131128
+<defines>
+DES -> 20131128
+</defines>
diff --git a/src/lib/block/gost_28147/info.txt b/src/lib/block/gost_28147/info.txt
index 396557248..17fc97159 100644
--- a/src/lib/block/gost_28147/info.txt
+++ b/src/lib/block/gost_28147/info.txt
@@ -1 +1,3 @@
-define GOST_28147_89 20131128
+<defines>
+GOST_28147_89 -> 20131128
+</defines>
diff --git a/src/lib/block/idea/idea_sse2/info.txt b/src/lib/block/idea/idea_sse2/info.txt
index 78f365b93..4479f12ad 100644
--- a/src/lib/block/idea/idea_sse2/info.txt
+++ b/src/lib/block/idea/idea_sse2/info.txt
@@ -1,4 +1,5 @@
-define IDEA_SSE2 20131128
+<defines>
+IDEA_SSE2 -> 20131128
+</defines>
need_isa sse2
-
diff --git a/src/lib/block/idea/info.txt b/src/lib/block/idea/info.txt
index dbca72c8d..bcbdce03f 100644
--- a/src/lib/block/idea/info.txt
+++ b/src/lib/block/idea/info.txt
@@ -1 +1,3 @@
-define IDEA 20131128
+<defines>
+IDEA -> 20131128
+</defines>
diff --git a/src/lib/block/info.txt b/src/lib/block/info.txt
index 30f7392ef..b03a8c8f5 100644
--- a/src/lib/block/info.txt
+++ b/src/lib/block/info.txt
@@ -1,4 +1,6 @@
-define BLOCK_CIPHER 20131128
+<defines>
+BLOCK_CIPHER -> 20131128
+</defines>
<header:public>
block_cipher.h
diff --git a/src/lib/block/kasumi/info.txt b/src/lib/block/kasumi/info.txt
index 3dd2a3ac0..b48183ca9 100644
--- a/src/lib/block/kasumi/info.txt
+++ b/src/lib/block/kasumi/info.txt
@@ -1 +1,3 @@
-define KASUMI 20131128
+<defines>
+KASUMI -> 20131128
+</defines>
diff --git a/src/lib/block/lion/info.txt b/src/lib/block/lion/info.txt
index 6074dbd08..c818627eb 100644
--- a/src/lib/block/lion/info.txt
+++ b/src/lib/block/lion/info.txt
@@ -1 +1,3 @@
-define LION 20131128
+<defines>
+LION -> 20131128
+</defines>
diff --git a/src/lib/block/misty1/info.txt b/src/lib/block/misty1/info.txt
index 568f13574..bf21dd439 100644
--- a/src/lib/block/misty1/info.txt
+++ b/src/lib/block/misty1/info.txt
@@ -1 +1,3 @@
-define MISTY1 20131128
+<defines>
+MISTY1 -> 20131128
+</defines>
diff --git a/src/lib/block/noekeon/info.txt b/src/lib/block/noekeon/info.txt
index 769d7150e..f3445eb7e 100644
--- a/src/lib/block/noekeon/info.txt
+++ b/src/lib/block/noekeon/info.txt
@@ -1 +1,3 @@
-define NOEKEON 20131128
+<defines>
+NOEKEON -> 20131128
+</defines>
diff --git a/src/lib/block/noekeon/noekeon_simd/info.txt b/src/lib/block/noekeon/noekeon_simd/info.txt
index 45ff93467..a09e491b5 100644
--- a/src/lib/block/noekeon/noekeon_simd/info.txt
+++ b/src/lib/block/noekeon/noekeon_simd/info.txt
@@ -1,4 +1,6 @@
-define NOEKEON_SIMD 20160903
+<defines>
+NOEKEON_SIMD -> 20160903
+</defines>
<requires>
noekeon
diff --git a/src/lib/block/seed/info.txt b/src/lib/block/seed/info.txt
index 1c6b28792..dd395eda1 100644
--- a/src/lib/block/seed/info.txt
+++ b/src/lib/block/seed/info.txt
@@ -1 +1,3 @@
-define SEED 20131128
+<defines>
+SEED -> 20131128
+</defines>
diff --git a/src/lib/block/serpent/info.txt b/src/lib/block/serpent/info.txt
index 6337ef6c0..89b860ce4 100644
--- a/src/lib/block/serpent/info.txt
+++ b/src/lib/block/serpent/info.txt
@@ -1,4 +1,6 @@
-define SERPENT 20131128
+<defines>
+SERPENT -> 20131128
+</defines>
<header:public>
serpent.h
diff --git a/src/lib/block/serpent/serpent_simd/info.txt b/src/lib/block/serpent/serpent_simd/info.txt
index a719ba388..f7dadf33f 100644
--- a/src/lib/block/serpent/serpent_simd/info.txt
+++ b/src/lib/block/serpent/serpent_simd/info.txt
@@ -1,4 +1,6 @@
-define SERPENT_SIMD 20160903
+<defines>
+SERPENT_SIMD -> 20160903
+</defines>
<requires>
simd
diff --git a/src/lib/block/threefish/info.txt b/src/lib/block/threefish/info.txt
index 15843cdd3..e12223679 100644
--- a/src/lib/block/threefish/info.txt
+++ b/src/lib/block/threefish/info.txt
@@ -1 +1,3 @@
-define THREEFISH_512 20131224
+<defines>
+THREEFISH_512 -> 20131224
+</defines>
diff --git a/src/lib/block/threefish/threefish_avx2/info.txt b/src/lib/block/threefish/threefish_avx2/info.txt
index 8e7db6455..bc2675fb4 100644
--- a/src/lib/block/threefish/threefish_avx2/info.txt
+++ b/src/lib/block/threefish/threefish_avx2/info.txt
@@ -1,4 +1,6 @@
-define THREEFISH_512_AVX2 20160903
+<defines>
+THREEFISH_512_AVX2 -> 20160903
+</defines>
need_isa avx2
diff --git a/src/lib/block/twofish/info.txt b/src/lib/block/twofish/info.txt
index c4351db59..9febbc8dd 100644
--- a/src/lib/block/twofish/info.txt
+++ b/src/lib/block/twofish/info.txt
@@ -1 +1,3 @@
-define TWOFISH 20131128
+<defines>
+TWOFISH -> 20131128
+</defines>
diff --git a/src/lib/block/xtea/info.txt b/src/lib/block/xtea/info.txt
index e2cc8ac34..b9b9ad365 100644
--- a/src/lib/block/xtea/info.txt
+++ b/src/lib/block/xtea/info.txt
@@ -1 +1,3 @@
-define XTEA 20131128
+<defines>
+XTEA -> 20131128
+</defines>
diff --git a/src/lib/codec/base64/info.txt b/src/lib/codec/base64/info.txt
index cacae6b0c..ceed63605 100644
--- a/src/lib/codec/base64/info.txt
+++ b/src/lib/codec/base64/info.txt
@@ -1 +1,3 @@
-define BASE64_CODEC 20131128
+<defines>
+BASE64_CODEC -> 20131128
+</defines>
diff --git a/src/lib/codec/hex/info.txt b/src/lib/codec/hex/info.txt
index ead5beffd..6ee27e57c 100644
--- a/src/lib/codec/hex/info.txt
+++ b/src/lib/codec/hex/info.txt
@@ -1 +1,3 @@
-define HEX_CODEC 20131128
+<defines>
+HEX_CODEC -> 20131128
+</defines>
diff --git a/src/lib/compression/bzip2/info.txt b/src/lib/compression/bzip2/info.txt
index bc8d780be..8826df2f9 100644
--- a/src/lib/compression/bzip2/info.txt
+++ b/src/lib/compression/bzip2/info.txt
@@ -1,4 +1,6 @@
-define BZIP2 20160412
+<defines>
+BZIP2 -> 20160412
+</defines>
load_on vendor
diff --git a/src/lib/compression/info.txt b/src/lib/compression/info.txt
index bfbc806c8..fade2e51a 100644
--- a/src/lib/compression/info.txt
+++ b/src/lib/compression/info.txt
@@ -1,4 +1,6 @@
-define COMPRESSION 20141117
+<defines>
+COMPRESSION -> 20141117
+</defines>
<header:internal>
compress_utils.h
diff --git a/src/lib/compression/lzma/info.txt b/src/lib/compression/lzma/info.txt
index 7a712338e..477a7b795 100644
--- a/src/lib/compression/lzma/info.txt
+++ b/src/lib/compression/lzma/info.txt
@@ -1,4 +1,6 @@
-define LZMA 20160412
+<defines>
+LZMA -> 20160412
+</defines>
load_on vendor
diff --git a/src/lib/compression/zlib/info.txt b/src/lib/compression/zlib/info.txt
index 6c82c49a3..8e3a12261 100644
--- a/src/lib/compression/zlib/info.txt
+++ b/src/lib/compression/zlib/info.txt
@@ -1,4 +1,6 @@
-define ZLIB 20160412
+<defines>
+ZLIB -> 20160412
+</defines>
load_on vendor
diff --git a/src/lib/entropy/cryptoapi_rng/info.txt b/src/lib/entropy/cryptoapi_rng/info.txt
index 846a11371..21b42f2a0 100644
--- a/src/lib/entropy/cryptoapi_rng/info.txt
+++ b/src/lib/entropy/cryptoapi_rng/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_CAPI 20131128
+<defines>
+ENTROPY_SRC_CAPI -> 20131128
+</defines>
<header:internal>
es_capi.h
diff --git a/src/lib/entropy/darwin_secrandom/info.txt b/src/lib/entropy/darwin_secrandom/info.txt
index 554a4b3d8..477818818 100644
--- a/src/lib/entropy/darwin_secrandom/info.txt
+++ b/src/lib/entropy/darwin_secrandom/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_DARWIN_SECRANDOM 20150925
+<defines>
+ENTROPY_SRC_DARWIN_SECRANDOM -> 20150925
+</defines>
<header:internal>
darwin_secrandom.h
diff --git a/src/lib/entropy/dev_random/info.txt b/src/lib/entropy/dev_random/info.txt
index 56162f84e..eeffe5b85 100644
--- a/src/lib/entropy/dev_random/info.txt
+++ b/src/lib/entropy/dev_random/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_DEV_RANDOM 20131128
+<defines>
+ENTROPY_SRC_DEV_RANDOM -> 20131128
+</defines>
<header:internal>
dev_random.h
diff --git a/src/lib/entropy/getentropy/info.txt b/src/lib/entropy/getentropy/info.txt
index 89e7b120d..a44299cbe 100644
--- a/src/lib/entropy/getentropy/info.txt
+++ b/src/lib/entropy/getentropy/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_GETENTROPY 20170327
+<defines>
+ENTROPY_SRC_GETENTROPY -> 20170327
+</defines>
<header:internal>
getentropy.h
diff --git a/src/lib/entropy/info.txt b/src/lib/entropy/info.txt
index d80176113..57f1930b9 100644
--- a/src/lib/entropy/info.txt
+++ b/src/lib/entropy/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SOURCE 20151120
+<defines>
+ENTROPY_SOURCE -> 20151120
+</defines>
<requires>
rng
diff --git a/src/lib/entropy/proc_walk/info.txt b/src/lib/entropy/proc_walk/info.txt
index ef9f602f3..363fa8cd9 100644
--- a/src/lib/entropy/proc_walk/info.txt
+++ b/src/lib/entropy/proc_walk/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_PROC_WALKER 20131128
+<defines>
+ENTROPY_SRC_PROC_WALKER -> 20131128
+</defines>
<header:internal>
proc_walk.h
diff --git a/src/lib/entropy/rdrand/info.txt b/src/lib/entropy/rdrand/info.txt
index 01ef2bc05..6abe8765d 100644
--- a/src/lib/entropy/rdrand/info.txt
+++ b/src/lib/entropy/rdrand/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_RDRAND 20131128
+<defines>
+ENTROPY_SRC_RDRAND -> 20131128
+</defines>
<requires>
rdrand_rng
diff --git a/src/lib/entropy/rdseed/info.txt b/src/lib/entropy/rdseed/info.txt
index 10e797322..13ea33175 100644
--- a/src/lib/entropy/rdseed/info.txt
+++ b/src/lib/entropy/rdseed/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_RDSEED 20151218
+<defines>
+ENTROPY_SRC_RDSEED -> 20151218
+</defines>
need_isa rdseed
diff --git a/src/lib/entropy/win32_stats/info.txt b/src/lib/entropy/win32_stats/info.txt
index 1787c9138..7c84fc235 100644
--- a/src/lib/entropy/win32_stats/info.txt
+++ b/src/lib/entropy/win32_stats/info.txt
@@ -1,4 +1,6 @@
-define ENTROPY_SRC_WIN32 20131128
+<defines>
+ENTROPY_SRC_WIN32 -> 20131128
+</defines>
<header:internal>
es_win32.h
diff --git a/src/lib/ffi/info.txt b/src/lib/ffi/info.txt
index e1d29981f..71b4e6cf9 100644
--- a/src/lib/ffi/info.txt
+++ b/src/lib/ffi/info.txt
@@ -1,4 +1,6 @@
-define FFI 20170327
+<defines>
+FFI -> 20170327
+</defines>
<requires>
aead
@@ -11,4 +13,3 @@ x509
system_rng
auto_rng
</requires>
-
diff --git a/src/lib/filters/codec_filt/info.txt b/src/lib/filters/codec_filt/info.txt
index 30b6c2ed1..347c876a7 100644
--- a/src/lib/filters/codec_filt/info.txt
+++ b/src/lib/filters/codec_filt/info.txt
@@ -1,4 +1,6 @@
-define CODEC_FILTERS 20131128
+<defines>
+CODEC_FILTERS -> 20131128
+</defines>
<requires>
base64
diff --git a/src/lib/filters/fd_unix/info.txt b/src/lib/filters/fd_unix/info.txt
index ea76d0dd7..6e2efced8 100644
--- a/src/lib/filters/fd_unix/info.txt
+++ b/src/lib/filters/fd_unix/info.txt
@@ -1,4 +1,6 @@
-define PIPE_UNIXFD_IO 20131128
+<defines>
+PIPE_UNIXFD_IO -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/filters/info.txt b/src/lib/filters/info.txt
index 0e51d0f8a..cfc114353 100644
--- a/src/lib/filters/info.txt
+++ b/src/lib/filters/info.txt
@@ -1,4 +1,6 @@
-define FILTERS 20160415
+<defines>
+FILTERS -> 20160415
+</defines>
<header:public>
basefilt.h
diff --git a/src/lib/hash/blake2/info.txt b/src/lib/hash/blake2/info.txt
index 6c6d88afe..b99be4601 100644
--- a/src/lib/hash/blake2/info.txt
+++ b/src/lib/hash/blake2/info.txt
@@ -1 +1,3 @@
-define BLAKE2B 20130131
+<defines>
+BLAKE2B -> 20130131
+</defines>
diff --git a/src/lib/hash/checksum/adler32/info.txt b/src/lib/hash/checksum/adler32/info.txt
index 26ca8b255..4ddcb2e08 100644
--- a/src/lib/hash/checksum/adler32/info.txt
+++ b/src/lib/hash/checksum/adler32/info.txt
@@ -1 +1,3 @@
-define ADLER32 20131128
+<defines>
+ADLER32 -> 20131128
+</defines>
diff --git a/src/lib/hash/checksum/crc24/info.txt b/src/lib/hash/checksum/crc24/info.txt
index c55ad3108..3c5070cc4 100644
--- a/src/lib/hash/checksum/crc24/info.txt
+++ b/src/lib/hash/checksum/crc24/info.txt
@@ -1 +1,3 @@
-define CRC24 20131128
+<defines>
+CRC24 -> 20131128
+</defines>
diff --git a/src/lib/hash/checksum/crc32/info.txt b/src/lib/hash/checksum/crc32/info.txt
index 44bb2b56a..7d3e45239 100644
--- a/src/lib/hash/checksum/crc32/info.txt
+++ b/src/lib/hash/checksum/crc32/info.txt
@@ -1 +1,3 @@
-define CRC32 20131128
+<defines>
+CRC32 -> 20131128
+</defines>
diff --git a/src/lib/hash/comb4p/info.txt b/src/lib/hash/comb4p/info.txt
index 375895610..1bfac599e 100644
--- a/src/lib/hash/comb4p/info.txt
+++ b/src/lib/hash/comb4p/info.txt
@@ -1 +1,3 @@
-define COMB4P 20131128
+<defines>
+COMB4P -> 20131128
+</defines>
diff --git a/src/lib/hash/gost_3411/info.txt b/src/lib/hash/gost_3411/info.txt
index af8eddac6..31749c302 100644
--- a/src/lib/hash/gost_3411/info.txt
+++ b/src/lib/hash/gost_3411/info.txt
@@ -1,4 +1,6 @@
-define GOST_34_11 20131128
+<defines>
+GOST_34_11 -> 20131128
+</defines>
<requires>
gost_28147
diff --git a/src/lib/hash/keccak/info.txt b/src/lib/hash/keccak/info.txt
index 712a99c76..6f7345af8 100644
--- a/src/lib/hash/keccak/info.txt
+++ b/src/lib/hash/keccak/info.txt
@@ -1,4 +1,6 @@
-define KECCAK 20131128
+<defines>
+KECCAK -> 20131128
+</defines>
<requires>
sha3
diff --git a/src/lib/hash/md4/info.txt b/src/lib/hash/md4/info.txt
index 8894d4af3..fde5168ad 100644
--- a/src/lib/hash/md4/info.txt
+++ b/src/lib/hash/md4/info.txt
@@ -1,4 +1,6 @@
-define MD4 20131128
+<defines>
+MD4 -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/md5/info.txt b/src/lib/hash/md5/info.txt
index 8bbf1c3e7..5e0aadec8 100644
--- a/src/lib/hash/md5/info.txt
+++ b/src/lib/hash/md5/info.txt
@@ -1,4 +1,6 @@
-define MD5 20131128
+<defines>
+MD5 -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/mdx_hash/info.txt b/src/lib/hash/mdx_hash/info.txt
index d9a24c621..6a509f1be 100644
--- a/src/lib/hash/mdx_hash/info.txt
+++ b/src/lib/hash/mdx_hash/info.txt
@@ -1,3 +1,5 @@
-define MDX_HASH_FUNCTION 20131128
+<defines>
+MDX_HASH_FUNCTION -> 20131128
+</defines>
load_on dep
diff --git a/src/lib/hash/par_hash/info.txt b/src/lib/hash/par_hash/info.txt
index 4f559b545..b04e0f4df 100644
--- a/src/lib/hash/par_hash/info.txt
+++ b/src/lib/hash/par_hash/info.txt
@@ -1 +1,3 @@
-define PARALLEL_HASH 20131128
+<defines>
+PARALLEL_HASH -> 20131128
+</defines>
diff --git a/src/lib/hash/rmd160/info.txt b/src/lib/hash/rmd160/info.txt
index 4e1451bb6..53e2f993d 100644
--- a/src/lib/hash/rmd160/info.txt
+++ b/src/lib/hash/rmd160/info.txt
@@ -1,4 +1,6 @@
-define RIPEMD_160 20131128
+<defines>
+RIPEMD_160 -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/sha1/info.txt b/src/lib/hash/sha1/info.txt
index fffb51275..6d326af1c 100644
--- a/src/lib/hash/sha1/info.txt
+++ b/src/lib/hash/sha1/info.txt
@@ -1,4 +1,6 @@
-define SHA1 20131128
+<defines>
+SHA1 -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/sha1/sha1_sse2/info.txt b/src/lib/hash/sha1/sha1_sse2/info.txt
index cc1179014..272bf5e8d 100644
--- a/src/lib/hash/sha1/sha1_sse2/info.txt
+++ b/src/lib/hash/sha1/sha1_sse2/info.txt
@@ -1,3 +1,5 @@
-define SHA1_SSE2 20160803
+<defines>
+SHA1_SSE2 -> 20160803
+</defines>
need_isa sse2
diff --git a/src/lib/hash/sha2_32/info.txt b/src/lib/hash/sha2_32/info.txt
index b15db2ede..7992eff26 100644
--- a/src/lib/hash/sha2_32/info.txt
+++ b/src/lib/hash/sha2_32/info.txt
@@ -1,4 +1,6 @@
-define SHA2_32 20131128
+<defines>
+SHA2_32 -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/sha2_64/info.txt b/src/lib/hash/sha2_64/info.txt
index a457dffec..6fb415a6b 100644
--- a/src/lib/hash/sha2_64/info.txt
+++ b/src/lib/hash/sha2_64/info.txt
@@ -1,4 +1,6 @@
-define SHA2_64 20131128
+<defines>
+SHA2_64 -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/sha3/info.txt b/src/lib/hash/sha3/info.txt
index f755e9ea5..76ae81bd8 100644
--- a/src/lib/hash/sha3/info.txt
+++ b/src/lib/hash/sha3/info.txt
@@ -1 +1,3 @@
-define SHA3 20161018
+<defines>
+SHA3 -> 20161018
+</defines>
diff --git a/src/lib/hash/shake/info.txt b/src/lib/hash/shake/info.txt
index f579383eb..59a1a852a 100644
--- a/src/lib/hash/shake/info.txt
+++ b/src/lib/hash/shake/info.txt
@@ -1,4 +1,6 @@
-define SHAKE 20161009
+<defines>
+SHAKE -> 20161009
+</defines>
<requires>
sha3
diff --git a/src/lib/hash/skein/info.txt b/src/lib/hash/skein/info.txt
index 82cc69bc2..3de41289a 100644
--- a/src/lib/hash/skein/info.txt
+++ b/src/lib/hash/skein/info.txt
@@ -1,4 +1,6 @@
-define SKEIN_512 20131128
+<defines>
+SKEIN_512 -> 20131128
+</defines>
<requires>
threefish
diff --git a/src/lib/hash/tiger/info.txt b/src/lib/hash/tiger/info.txt
index 773f2b037..a244b2f0b 100644
--- a/src/lib/hash/tiger/info.txt
+++ b/src/lib/hash/tiger/info.txt
@@ -1,4 +1,6 @@
-define TIGER 20131128
+<defines>
+TIGER -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/hash/whirlpool/info.txt b/src/lib/hash/whirlpool/info.txt
index 8b0abc25a..e1a8da77a 100644
--- a/src/lib/hash/whirlpool/info.txt
+++ b/src/lib/hash/whirlpool/info.txt
@@ -1,4 +1,6 @@
-define WHIRLPOOL 20131128
+<defines>
+WHIRLPOOL -> 20131128
+</defines>
<requires>
mdx_hash
diff --git a/src/lib/kdf/hkdf/info.txt b/src/lib/kdf/hkdf/info.txt
index 7389e5bb1..db6618c3c 100644
--- a/src/lib/kdf/hkdf/info.txt
+++ b/src/lib/kdf/hkdf/info.txt
@@ -1 +1,3 @@
-define HKDF 20131128
+<defines>
+HKDF -> 20131128
+</defines>
diff --git a/src/lib/kdf/info.txt b/src/lib/kdf/info.txt
index 68aa46895..3d96cea19 100644
--- a/src/lib/kdf/info.txt
+++ b/src/lib/kdf/info.txt
@@ -1,4 +1,6 @@
-define KDF_BASE 20131128
+<defines>
+KDF_BASE -> 20131128
+</defines>
<requires>
base
diff --git a/src/lib/kdf/kdf1/info.txt b/src/lib/kdf/kdf1/info.txt
index a77bf1508..a2372c7e3 100644
--- a/src/lib/kdf/kdf1/info.txt
+++ b/src/lib/kdf/kdf1/info.txt
@@ -1 +1,3 @@
-define KDF1 20131128
+<defines>
+KDF1 -> 20131128
+</defines>
diff --git a/src/lib/kdf/kdf1_iso18033/info.txt b/src/lib/kdf/kdf1_iso18033/info.txt
index 507a04561..af6026836 100644
--- a/src/lib/kdf/kdf1_iso18033/info.txt
+++ b/src/lib/kdf/kdf1_iso18033/info.txt
@@ -1 +1,3 @@
-define KDF1_18033 20160128
+<defines>
+KDF1_18033 -> 20160128
+</defines>
diff --git a/src/lib/kdf/kdf2/info.txt b/src/lib/kdf/kdf2/info.txt
index 4f63019b1..26c824cf2 100644
--- a/src/lib/kdf/kdf2/info.txt
+++ b/src/lib/kdf/kdf2/info.txt
@@ -1 +1,3 @@
-define KDF2 20131128
+<defines>
+KDF2 -> 20131128
+</defines>
diff --git a/src/lib/kdf/prf_tls/info.txt b/src/lib/kdf/prf_tls/info.txt
index 505e1ff1e..d4307b6af 100644
--- a/src/lib/kdf/prf_tls/info.txt
+++ b/src/lib/kdf/prf_tls/info.txt
@@ -1,5 +1,7 @@
-define TLS_V10_PRF 20131128
-define TLS_V12_PRF 20131128
+<defines>
+TLS_V10_PRF -> 20131128
+TLS_V12_PRF -> 20131128
+</defines>
<requires>
hmac
diff --git a/src/lib/kdf/prf_x942/info.txt b/src/lib/kdf/prf_x942/info.txt
index c016f0b66..822643365 100644
--- a/src/lib/kdf/prf_x942/info.txt
+++ b/src/lib/kdf/prf_x942/info.txt
@@ -1,4 +1,6 @@
-define X942_PRF 20131128
+<defines>
+X942_PRF -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/kdf/sp800_108/info.txt b/src/lib/kdf/sp800_108/info.txt
index a78531fe7..864a7fb9c 100644
--- a/src/lib/kdf/sp800_108/info.txt
+++ b/src/lib/kdf/sp800_108/info.txt
@@ -1,4 +1,6 @@
-define SP800_108 20160128
+<defines>
+SP800_108 -> 20160128
+</defines>
<requires>
mac
diff --git a/src/lib/kdf/sp800_56c/info.txt b/src/lib/kdf/sp800_56c/info.txt
index 203c05a83..e598e8845 100644
--- a/src/lib/kdf/sp800_56c/info.txt
+++ b/src/lib/kdf/sp800_56c/info.txt
@@ -1,4 +1,6 @@
-define SP800_56C 20160211
+<defines>
+SP800_56C -> 20160211
+</defines>
<requires>
sp800_108
diff --git a/src/lib/mac/cbc_mac/info.txt b/src/lib/mac/cbc_mac/info.txt
index 5e864ca22..1cf22eae0 100644
--- a/src/lib/mac/cbc_mac/info.txt
+++ b/src/lib/mac/cbc_mac/info.txt
@@ -1 +1,3 @@
-define CBC_MAC 20131128
+<defines>
+CBC_MAC -> 20131128
+</defines>
diff --git a/src/lib/mac/cmac/info.txt b/src/lib/mac/cmac/info.txt
index 39c75aed1..01bdf7884 100644
--- a/src/lib/mac/cmac/info.txt
+++ b/src/lib/mac/cmac/info.txt
@@ -1 +1,3 @@
-define CMAC 20131128
+<defines>
+CMAC -> 20131128
+</defines>
diff --git a/src/lib/mac/gmac/info.txt b/src/lib/mac/gmac/info.txt
index 921690c93..416e914db 100644
--- a/src/lib/mac/gmac/info.txt
+++ b/src/lib/mac/gmac/info.txt
@@ -1,4 +1,6 @@
-define GMAC 20160207
+<defines>
+GMAC -> 20160207
+</defines>
<requires>
gcm
diff --git a/src/lib/mac/hmac/info.txt b/src/lib/mac/hmac/info.txt
index 171cd8515..cf1a288f6 100644
--- a/src/lib/mac/hmac/info.txt
+++ b/src/lib/mac/hmac/info.txt
@@ -1 +1,3 @@
-define HMAC 20131128
+<defines>
+HMAC -> 20131128
+</defines>
diff --git a/src/lib/mac/info.txt b/src/lib/mac/info.txt
index ab7833857..7aef92b87 100644
--- a/src/lib/mac/info.txt
+++ b/src/lib/mac/info.txt
@@ -1,4 +1,6 @@
-define MAC 20150626
+<defines>
+MAC -> 20150626
+</defines>
<header:public>
mac.h
diff --git a/src/lib/mac/poly1305/info.txt b/src/lib/mac/poly1305/info.txt
index ed3133850..868f97241 100644
--- a/src/lib/mac/poly1305/info.txt
+++ b/src/lib/mac/poly1305/info.txt
@@ -1,4 +1,6 @@
-define POLY1305 20141227
+<defines>
+POLY1305 -> 20141227
+</defines>
<header:public>
poly1305.h
diff --git a/src/lib/mac/siphash/info.txt b/src/lib/mac/siphash/info.txt
index 98c4d0986..8d4c20d1a 100644
--- a/src/lib/mac/siphash/info.txt
+++ b/src/lib/mac/siphash/info.txt
@@ -1 +1,3 @@
-define SIPHASH 20150110
+<defines>
+SIPHASH -> 20150110
+</defines>
diff --git a/src/lib/mac/x919_mac/info.txt b/src/lib/mac/x919_mac/info.txt
index 90d849803..65d6cee64 100644
--- a/src/lib/mac/x919_mac/info.txt
+++ b/src/lib/mac/x919_mac/info.txt
@@ -1,4 +1,6 @@
-define ANSI_X919_MAC 20131128
+<defines>
+ANSI_X919_MAC -> 20131128
+</defines>
<requires>
des
diff --git a/src/lib/math/bigint/info.txt b/src/lib/math/bigint/info.txt
index c91c85e9f..e84061bb6 100644
--- a/src/lib/math/bigint/info.txt
+++ b/src/lib/math/bigint/info.txt
@@ -1,6 +1,8 @@
-load_on auto
+<defines>
+BIGINT -> 20131128
+</defines>
-define BIGINT 20131128
+load_on auto
<header:public>
bigint.h
diff --git a/src/lib/math/ec_gfp/info.txt b/src/lib/math/ec_gfp/info.txt
index 060551562..c4e57da15 100644
--- a/src/lib/math/ec_gfp/info.txt
+++ b/src/lib/math/ec_gfp/info.txt
@@ -1,4 +1,6 @@
-define EC_CURVE_GFP 20131128
+<defines>
+EC_CURVE_GFP -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/math/mp/info.txt b/src/lib/math/mp/info.txt
index 0b8b9c33b..0f5b075f0 100644
--- a/src/lib/math/mp/info.txt
+++ b/src/lib/math/mp/info.txt
@@ -1,4 +1,6 @@
-define BIGINT_MP 20151225
+<defines>
+BIGINT_MP -> 20151225
+</defines>
<header:public>
mp_types.h
diff --git a/src/lib/math/numbertheory/info.txt b/src/lib/math/numbertheory/info.txt
index 49f7ab2fb..0a386b9f3 100644
--- a/src/lib/math/numbertheory/info.txt
+++ b/src/lib/math/numbertheory/info.txt
@@ -1,4 +1,6 @@
-define NUMBERTHEORY 20131128
+<defines>
+NUMBERTHEORY -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/misc/aont/info.txt b/src/lib/misc/aont/info.txt
index 05426fba9..bbd6449f7 100644
--- a/src/lib/misc/aont/info.txt
+++ b/src/lib/misc/aont/info.txt
@@ -1,4 +1,6 @@
-define PACKAGE_TRANSFORM 20131128
+<defines>
+PACKAGE_TRANSFORM -> 20131128
+</defines>
<requires>
ctr
diff --git a/src/lib/misc/cryptobox/info.txt b/src/lib/misc/cryptobox/info.txt
index b7bf6e4e8..f69498f72 100644
--- a/src/lib/misc/cryptobox/info.txt
+++ b/src/lib/misc/cryptobox/info.txt
@@ -1,4 +1,6 @@
-define CRYPTO_BOX 20131128
+<defines>
+CRYPTO_BOX -> 20131128
+</defines>
<requires>
filters
diff --git a/src/lib/misc/fpe_fe1/info.txt b/src/lib/misc/fpe_fe1/info.txt
index c268abe0b..1902fa966 100644
--- a/src/lib/misc/fpe_fe1/info.txt
+++ b/src/lib/misc/fpe_fe1/info.txt
@@ -1,4 +1,6 @@
-define FPE_FE1 20131128
+<defines>
+FPE_FE1 -> 20131128
+</defines>
<requires>
bigint
diff --git a/src/lib/misc/rfc3394/info.txt b/src/lib/misc/rfc3394/info.txt
index 8cd5989ca..ac56ee833 100644
--- a/src/lib/misc/rfc3394/info.txt
+++ b/src/lib/misc/rfc3394/info.txt
@@ -1,4 +1,6 @@
-define RFC3394_KEYWRAP 20131128
+<defines>
+RFC3394_KEYWRAP -> 20131128
+</defines>
<requires>
aes
diff --git a/src/lib/misc/srp6/info.txt b/src/lib/misc/srp6/info.txt
index 2b4b5249e..27b7848f5 100644
--- a/src/lib/misc/srp6/info.txt
+++ b/src/lib/misc/srp6/info.txt
@@ -1,4 +1,6 @@
-define SRP6 20161017
+<defines>
+SRP6 -> 20161017
+</defines>
<requires>
bigint
diff --git a/src/lib/misc/tss/info.txt b/src/lib/misc/tss/info.txt
index 5aaca6707..513be70bc 100644
--- a/src/lib/misc/tss/info.txt
+++ b/src/lib/misc/tss/info.txt
@@ -1,4 +1,6 @@
-define THRESHOLD_SECRET_SHARING 20131128
+<defines>
+THRESHOLD_SECRET_SHARING -> 20131128
+</defines>
<requires>
rng
diff --git a/src/lib/modes/aead/ccm/info.txt b/src/lib/modes/aead/ccm/info.txt
index ee8373caf..b12a43b03 100644
--- a/src/lib/modes/aead/ccm/info.txt
+++ b/src/lib/modes/aead/ccm/info.txt
@@ -1 +1,3 @@
-define AEAD_CCM 20131128
+<defines>
+AEAD_CCM -> 20131128
+</defines>
diff --git a/src/lib/modes/aead/chacha20poly1305/info.txt b/src/lib/modes/aead/chacha20poly1305/info.txt
index f03f2797e..7452f65c3 100644
--- a/src/lib/modes/aead/chacha20poly1305/info.txt
+++ b/src/lib/modes/aead/chacha20poly1305/info.txt
@@ -1,4 +1,6 @@
-define AEAD_CHACHA20_POLY1305 20141228
+<defines>
+AEAD_CHACHA20_POLY1305 -> 20141228
+</defines>
<requires>
chacha
diff --git a/src/lib/modes/aead/eax/info.txt b/src/lib/modes/aead/eax/info.txt
index 140da5740..6bc01ff70 100644
--- a/src/lib/modes/aead/eax/info.txt
+++ b/src/lib/modes/aead/eax/info.txt
@@ -1,4 +1,6 @@
-define AEAD_EAX 20131128
+<defines>
+AEAD_EAX -> 20131128
+</defines>
<requires>
cmac
diff --git a/src/lib/modes/aead/gcm/clmul/info.txt b/src/lib/modes/aead/gcm/clmul/info.txt
index 098aa16f9..999502e31 100644
--- a/src/lib/modes/aead/gcm/clmul/info.txt
+++ b/src/lib/modes/aead/gcm/clmul/info.txt
@@ -1,5 +1,6 @@
-
-define GCM_CLMUL 20131227
+<defines>
+GCM_CLMUL -> 20131227
+</defines>
need_isa aesni
diff --git a/src/lib/modes/aead/gcm/info.txt b/src/lib/modes/aead/gcm/info.txt
index 708e61fdd..6dc5c6928 100644
--- a/src/lib/modes/aead/gcm/info.txt
+++ b/src/lib/modes/aead/gcm/info.txt
@@ -1,4 +1,6 @@
-define AEAD_GCM 20131128
+<defines>
+AEAD_GCM -> 20131128
+</defines>
<requires>
ctr
diff --git a/src/lib/modes/aead/info.txt b/src/lib/modes/aead/info.txt
index 102f05b7b..15106e46a 100644
--- a/src/lib/modes/aead/info.txt
+++ b/src/lib/modes/aead/info.txt
@@ -1 +1,3 @@
-define AEAD_MODES 20131128
+<defines>
+AEAD_MODES -> 20131128
+</defines>
diff --git a/src/lib/modes/aead/ocb/info.txt b/src/lib/modes/aead/ocb/info.txt
index a3af9dc29..738d7c20e 100644
--- a/src/lib/modes/aead/ocb/info.txt
+++ b/src/lib/modes/aead/ocb/info.txt
@@ -1,4 +1,6 @@
-define AEAD_OCB 20131128
+<defines>
+AEAD_OCB -> 20131128
+</defines>
<requires>
cmac
diff --git a/src/lib/modes/aead/siv/info.txt b/src/lib/modes/aead/siv/info.txt
index b76a82422..d25798ac9 100644
--- a/src/lib/modes/aead/siv/info.txt
+++ b/src/lib/modes/aead/siv/info.txt
@@ -1,4 +1,6 @@
-define AEAD_SIV 20131202
+<defines>
+AEAD_SIV -> 20131202
+</defines>
load_on auto
diff --git a/src/lib/modes/cbc/info.txt b/src/lib/modes/cbc/info.txt
index ce59deba0..a1e3e1dec 100644
--- a/src/lib/modes/cbc/info.txt
+++ b/src/lib/modes/cbc/info.txt
@@ -1,4 +1,6 @@
-define MODE_CBC 20131128
+<defines>
+MODE_CBC -> 20131128
+</defines>
<requires>
mode_pad
diff --git a/src/lib/modes/cfb/info.txt b/src/lib/modes/cfb/info.txt
index 8d0e20a84..29744514f 100644
--- a/src/lib/modes/cfb/info.txt
+++ b/src/lib/modes/cfb/info.txt
@@ -1 +1,3 @@
-define MODE_CFB 20131128
+<defines>
+MODE_CFB -> 20131128
+</defines>
diff --git a/src/lib/modes/info.txt b/src/lib/modes/info.txt
index 1e50e7de5..70bd189d7 100644
--- a/src/lib/modes/info.txt
+++ b/src/lib/modes/info.txt
@@ -1,4 +1,6 @@
-define MODES 20150626
+<defines>
+MODES -> 20150626
+</defines>
<header:public>
cipher_mode.h
diff --git a/src/lib/modes/mode_pad/info.txt b/src/lib/modes/mode_pad/info.txt
index e9df6334b..12b6e5b3a 100644
--- a/src/lib/modes/mode_pad/info.txt
+++ b/src/lib/modes/mode_pad/info.txt
@@ -1 +1,3 @@
-define CIPHER_MODE_PADDING 20131128
+<defines>
+CIPHER_MODE_PADDING -> 20131128
+</defines>
diff --git a/src/lib/modes/xts/info.txt b/src/lib/modes/xts/info.txt
index 5f5dc7834..04cd046c7 100644
--- a/src/lib/modes/xts/info.txt
+++ b/src/lib/modes/xts/info.txt
@@ -1 +1,3 @@
-define MODE_XTS 20131128
+<defines>
+MODE_XTS -> 20131128
+</defines>
diff --git a/src/lib/passhash/bcrypt/info.txt b/src/lib/passhash/bcrypt/info.txt
index 4ea70d012..6be060ea0 100644
--- a/src/lib/passhash/bcrypt/info.txt
+++ b/src/lib/passhash/bcrypt/info.txt
@@ -1,8 +1,9 @@
-define BCRYPT 20131128
+<defines>
+BCRYPT -> 20131128
+</defines>
<requires>
blowfish
rng
base64
</requires>
-
diff --git a/src/lib/passhash/passhash9/info.txt b/src/lib/passhash/passhash9/info.txt
index e47a27f67..525427b45 100644
--- a/src/lib/passhash/passhash9/info.txt
+++ b/src/lib/passhash/passhash9/info.txt
@@ -1,4 +1,6 @@
-define PASSHASH9 20131128
+<defines>
+PASSHASH9 -> 20131128
+</defines>
<requires>
pbkdf2
diff --git a/src/lib/pbkdf/info.txt b/src/lib/pbkdf/info.txt
index 3addbdb58..b279ca2ff 100644
--- a/src/lib/pbkdf/info.txt
+++ b/src/lib/pbkdf/info.txt
@@ -1,4 +1,6 @@
-define PBKDF 20150626
+<defines>
+PBKDF -> 20150626
+</defines>
<requires>
base
diff --git a/src/lib/pbkdf/pbkdf1/info.txt b/src/lib/pbkdf/pbkdf1/info.txt
index 1ec626cac..e4b972e4b 100644
--- a/src/lib/pbkdf/pbkdf1/info.txt
+++ b/src/lib/pbkdf/pbkdf1/info.txt
@@ -1,4 +1,6 @@
-define PBKDF1 20131128
+<defines>
+PBKDF1 -> 20131128
+</defines>
<requires>
hash
diff --git a/src/lib/pbkdf/pbkdf2/info.txt b/src/lib/pbkdf/pbkdf2/info.txt
index 9863532b7..bc5c2e491 100644
--- a/src/lib/pbkdf/pbkdf2/info.txt
+++ b/src/lib/pbkdf/pbkdf2/info.txt
@@ -1,4 +1,6 @@
-define PBKDF2 20131128
+<defines>
+PBKDF2 -> 20131128
+</defines>
<requires>
hmac
diff --git a/src/lib/pk_pad/eme_oaep/info.txt b/src/lib/pk_pad/eme_oaep/info.txt
index a07502159..0ec01eb32 100644
--- a/src/lib/pk_pad/eme_oaep/info.txt
+++ b/src/lib/pk_pad/eme_oaep/info.txt
@@ -1,4 +1,6 @@
-define EME_OAEP 20140118
+<defines>
+EME_OAEP -> 20140118
+</defines>
<requires>
mgf1
diff --git a/src/lib/pk_pad/eme_pkcs1/info.txt b/src/lib/pk_pad/eme_pkcs1/info.txt
index 432aaf8eb..7c827cc34 100644
--- a/src/lib/pk_pad/eme_pkcs1/info.txt
+++ b/src/lib/pk_pad/eme_pkcs1/info.txt
@@ -1 +1,3 @@
-define EME_PKCS1v15 20131128
+<defines>
+EME_PKCS1v15 -> 20131128
+</defines>
diff --git a/src/lib/pk_pad/eme_raw/info.txt b/src/lib/pk_pad/eme_raw/info.txt
index 4c94824cf..c42365e98 100644
--- a/src/lib/pk_pad/eme_raw/info.txt
+++ b/src/lib/pk_pad/eme_raw/info.txt
@@ -1 +1,3 @@
-define EME_RAW 20150313
+<defines>
+EME_RAW -> 20150313
+</defines>
diff --git a/src/lib/pk_pad/emsa1/info.txt b/src/lib/pk_pad/emsa1/info.txt
index e52afcb1a..5b5bf1f6b 100644
--- a/src/lib/pk_pad/emsa1/info.txt
+++ b/src/lib/pk_pad/emsa1/info.txt
@@ -1 +1,3 @@
-define EMSA1 20131128
+<defines>
+EMSA1 -> 20131128
+</defines>
diff --git a/src/lib/pk_pad/emsa_pkcs1/info.txt b/src/lib/pk_pad/emsa_pkcs1/info.txt
index 72f75e41b..b70f4e244 100644
--- a/src/lib/pk_pad/emsa_pkcs1/info.txt
+++ b/src/lib/pk_pad/emsa_pkcs1/info.txt
@@ -1,4 +1,6 @@
-define EMSA_PKCS1 20140118
+<defines>
+EMSA_PKCS1 -> 20140118
+</defines>
<requires>
hash_id
diff --git a/src/lib/pk_pad/emsa_pssr/info.txt b/src/lib/pk_pad/emsa_pssr/info.txt
index 2152b307d..f514936c3 100644
--- a/src/lib/pk_pad/emsa_pssr/info.txt
+++ b/src/lib/pk_pad/emsa_pssr/info.txt
@@ -1,4 +1,6 @@
-define EMSA_PSSR 20131128
+<defines>
+EMSA_PSSR -> 20131128
+</defines>
<requires>
mgf1
diff --git a/src/lib/pk_pad/emsa_raw/info.txt b/src/lib/pk_pad/emsa_raw/info.txt
index f01d1bfa2..ffd3cbe3b 100644
--- a/src/lib/pk_pad/emsa_raw/info.txt
+++ b/src/lib/pk_pad/emsa_raw/info.txt
@@ -1 +1,3 @@
-define EMSA_RAW 20131128
+<defines>
+EMSA_RAW -> 20131128
+</defines>
diff --git a/src/lib/pk_pad/emsa_x931/info.txt b/src/lib/pk_pad/emsa_x931/info.txt
index e2e40f144..d3c5ca76e 100644
--- a/src/lib/pk_pad/emsa_x931/info.txt
+++ b/src/lib/pk_pad/emsa_x931/info.txt
@@ -1,4 +1,6 @@
-define EMSA_X931 20140118
+<defines>
+EMSA_X931 -> 20140118
+</defines>
<requires>
hash_id
diff --git a/src/lib/pk_pad/hash_id/info.txt b/src/lib/pk_pad/hash_id/info.txt
index d44e58f77..8cd930a9f 100644
--- a/src/lib/pk_pad/hash_id/info.txt
+++ b/src/lib/pk_pad/hash_id/info.txt
@@ -1 +1,3 @@
-define HASH_ID 20131128
+<defines>
+HASH_ID -> 20131128
+</defines>
diff --git a/src/lib/pk_pad/info.txt b/src/lib/pk_pad/info.txt
index 8cb935faa..4c25e4371 100644
--- a/src/lib/pk_pad/info.txt
+++ b/src/lib/pk_pad/info.txt
@@ -1,4 +1,6 @@
-define PK_PADDING 20131128
+<defines>
+PK_PADDING -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/pk_pad/iso9796/info.txt b/src/lib/pk_pad/iso9796/info.txt
index 3458ece45..92bdb3c7d 100644
--- a/src/lib/pk_pad/iso9796/info.txt
+++ b/src/lib/pk_pad/iso9796/info.txt
@@ -1,4 +1,6 @@
-define ISO_9796 20161121
+<defines>
+ISO_9796 -> 20161121
+</defines>
<requires>
mgf1
diff --git a/src/lib/pk_pad/mgf1/info.txt b/src/lib/pk_pad/mgf1/info.txt
index 8e20d78df..f17c72fda 100644
--- a/src/lib/pk_pad/mgf1/info.txt
+++ b/src/lib/pk_pad/mgf1/info.txt
@@ -1 +1,3 @@
-define MGF1 20140118
+<defines>
+MGF1 -> 20140118
+</defines>
diff --git a/src/lib/prov/openssl/info.txt b/src/lib/prov/openssl/info.txt
index d2c42f98f..75ff3b6df 100644
--- a/src/lib/prov/openssl/info.txt
+++ b/src/lib/prov/openssl/info.txt
@@ -1,4 +1,6 @@
-define OPENSSL 20151219
+<defines>
+OPENSSL -> 20151219
+</defines>
load_on vendor
diff --git a/src/lib/prov/pkcs11/info.txt b/src/lib/prov/pkcs11/info.txt
index 3707d2e5a..b47fc6b29 100644
--- a/src/lib/prov/pkcs11/info.txt
+++ b/src/lib/prov/pkcs11/info.txt
@@ -1,4 +1,6 @@
-define PKCS11 20160219
+<defines>
+PKCS11 -> 20160219
+</defines>
<requires>
dyn_load
diff --git a/src/lib/prov/tpm/info.txt b/src/lib/prov/tpm/info.txt
index f0860f3ec..8ec00ba86 100644
--- a/src/lib/prov/tpm/info.txt
+++ b/src/lib/prov/tpm/info.txt
@@ -1,4 +1,6 @@
-define TPM 20151126
+<defines>
+TPM -> 20151126
+</defines>
load_on vendor
diff --git a/src/lib/pubkey/cecpq1/info.txt b/src/lib/pubkey/cecpq1/info.txt
index 614ba3962..1e50f4c88 100644
--- a/src/lib/pubkey/cecpq1/info.txt
+++ b/src/lib/pubkey/cecpq1/info.txt
@@ -1,4 +1,6 @@
-define CECPQ1 20161116
+<defines>
+CECPQ1 -> 20161116
+</defines>
<requires>
newhope
diff --git a/src/lib/pubkey/curve25519/info.txt b/src/lib/pubkey/curve25519/info.txt
index 6139dc32f..816286c64 100644
--- a/src/lib/pubkey/curve25519/info.txt
+++ b/src/lib/pubkey/curve25519/info.txt
@@ -1,4 +1,6 @@
-define CURVE_25519 20141227
+<defines>
+CURVE_25519 -> 20141227
+</defines>
<header:public>
curve25519.h
diff --git a/src/lib/pubkey/dh/info.txt b/src/lib/pubkey/dh/info.txt
index 960872fe3..1b9ba2494 100644
--- a/src/lib/pubkey/dh/info.txt
+++ b/src/lib/pubkey/dh/info.txt
@@ -1,4 +1,6 @@
-define DIFFIE_HELLMAN 20131128
+<defines>
+DIFFIE_HELLMAN -> 20131128
+</defines>
<header:public>
dh.h
diff --git a/src/lib/pubkey/dl_algo/info.txt b/src/lib/pubkey/dl_algo/info.txt
index 6f3b3195d..44e649cd6 100644
--- a/src/lib/pubkey/dl_algo/info.txt
+++ b/src/lib/pubkey/dl_algo/info.txt
@@ -1,4 +1,6 @@
-define DL_PUBLIC_KEY_FAMILY 20131128
+<defines>
+DL_PUBLIC_KEY_FAMILY -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/dl_group/info.txt b/src/lib/pubkey/dl_group/info.txt
index 66f142062..a73edb18c 100644
--- a/src/lib/pubkey/dl_group/info.txt
+++ b/src/lib/pubkey/dl_group/info.txt
@@ -1,4 +1,6 @@
-define DL_GROUP 20131128
+<defines>
+DL_GROUP -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/dlies/info.txt b/src/lib/pubkey/dlies/info.txt
index 30362ad78..65e3b22c9 100644
--- a/src/lib/pubkey/dlies/info.txt
+++ b/src/lib/pubkey/dlies/info.txt
@@ -1,4 +1,6 @@
-define DLIES 20160713
+<defines>
+DLIES -> 20160713
+</defines>
<requires>
kdf
diff --git a/src/lib/pubkey/dsa/info.txt b/src/lib/pubkey/dsa/info.txt
index 855363789..a9f288ede 100644
--- a/src/lib/pubkey/dsa/info.txt
+++ b/src/lib/pubkey/dsa/info.txt
@@ -1,4 +1,6 @@
-define DSA 20131128
+<defines>
+DSA -> 20131128
+</defines>
<requires>
dl_algo
diff --git a/src/lib/pubkey/ec_group/info.txt b/src/lib/pubkey/ec_group/info.txt
index 3f9b76769..922c9d663 100644
--- a/src/lib/pubkey/ec_group/info.txt
+++ b/src/lib/pubkey/ec_group/info.txt
@@ -1,4 +1,6 @@
-define ECC_GROUP 20131128
+<defines>
+ECC_GROUP -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/ecc_key/info.txt b/src/lib/pubkey/ecc_key/info.txt
index fc4d4c91c..ac345a089 100644
--- a/src/lib/pubkey/ecc_key/info.txt
+++ b/src/lib/pubkey/ecc_key/info.txt
@@ -1,4 +1,6 @@
-define ECC_PUBLIC_KEY_CRYPTO 20131128
+<defines>
+ECC_PUBLIC_KEY_CRYPTO -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/ecdh/info.txt b/src/lib/pubkey/ecdh/info.txt
index cfff0b304..11ca921da 100644
--- a/src/lib/pubkey/ecdh/info.txt
+++ b/src/lib/pubkey/ecdh/info.txt
@@ -1,4 +1,6 @@
-define ECDH 20131128
+<defines>
+ECDH -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/ecdsa/info.txt b/src/lib/pubkey/ecdsa/info.txt
index 3b12bff0d..6bd32ca17 100644
--- a/src/lib/pubkey/ecdsa/info.txt
+++ b/src/lib/pubkey/ecdsa/info.txt
@@ -1,4 +1,6 @@
-define ECDSA 20131128
+<defines>
+ECDSA -> 20131128
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/ecgdsa/info.txt b/src/lib/pubkey/ecgdsa/info.txt
index 79dec3199..3f967cfcf 100644
--- a/src/lib/pubkey/ecgdsa/info.txt
+++ b/src/lib/pubkey/ecgdsa/info.txt
@@ -1,4 +1,6 @@
-define ECGDSA 20160301
+<defines>
+ECGDSA -> 20160301
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/ecies/info.txt b/src/lib/pubkey/ecies/info.txt
index fb35e7b97..530cc3970 100644
--- a/src/lib/pubkey/ecies/info.txt
+++ b/src/lib/pubkey/ecies/info.txt
@@ -1,4 +1,6 @@
-define ECIES 20160128
+<defines>
+ECIES -> 20160128
+</defines>
<requires>
kdf
diff --git a/src/lib/pubkey/eckcdsa/info.txt b/src/lib/pubkey/eckcdsa/info.txt
index d3df354b1..7c6b74b04 100644
--- a/src/lib/pubkey/eckcdsa/info.txt
+++ b/src/lib/pubkey/eckcdsa/info.txt
@@ -1,4 +1,6 @@
-define ECKCDSA 20160413
+<defines>
+ECKCDSA -> 20160413
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/elgamal/info.txt b/src/lib/pubkey/elgamal/info.txt
index 068949c66..0b36658bc 100644
--- a/src/lib/pubkey/elgamal/info.txt
+++ b/src/lib/pubkey/elgamal/info.txt
@@ -1,4 +1,6 @@
-define ELGAMAL 20131128
+<defines>
+ELGAMAL -> 20131128
+</defines>
<requires>
dl_algo
diff --git a/src/lib/pubkey/gost_3410/info.txt b/src/lib/pubkey/gost_3410/info.txt
index eb2255ad2..dd0535781 100644
--- a/src/lib/pubkey/gost_3410/info.txt
+++ b/src/lib/pubkey/gost_3410/info.txt
@@ -1,4 +1,6 @@
-define GOST_34_10_2001 20131128
+<defines>
+GOST_34_10_2001 -> 20131128
+</defines>
load_on auto
diff --git a/src/lib/pubkey/info.txt b/src/lib/pubkey/info.txt
index d598e7b25..bd848e353 100644
--- a/src/lib/pubkey/info.txt
+++ b/src/lib/pubkey/info.txt
@@ -1,4 +1,6 @@
-define PUBLIC_KEY_CRYPTO 20131128
+<defines>
+PUBLIC_KEY_CRYPTO -> 20131128
+</defines>
<header:public>
blinding.h
diff --git a/src/lib/pubkey/keypair/info.txt b/src/lib/pubkey/keypair/info.txt
index 2bc9fce29..ed85abf69 100644
--- a/src/lib/pubkey/keypair/info.txt
+++ b/src/lib/pubkey/keypair/info.txt
@@ -1,4 +1,6 @@
-define KEYPAIR_TESTING 20131128
+<defines>
+KEYPAIR_TESTING -> 20131128
+</defines>
<requires>
</requires>
diff --git a/src/lib/pubkey/mce/info.txt b/src/lib/pubkey/mce/info.txt
index bb0f06764..becf616b3 100644
--- a/src/lib/pubkey/mce/info.txt
+++ b/src/lib/pubkey/mce/info.txt
@@ -1,4 +1,6 @@
-define MCELIECE 20150922
+<defines>
+MCELIECE -> 20150922
+</defines>
<header:public>
mceliece.h
diff --git a/src/lib/pubkey/mceies/info.txt b/src/lib/pubkey/mceies/info.txt
index 56363fe4f..cf5e01154 100644
--- a/src/lib/pubkey/mceies/info.txt
+++ b/src/lib/pubkey/mceies/info.txt
@@ -1,4 +1,6 @@
-define MCEIES 20150706
+<defines>
+MCEIES -> 20150706
+</defines>
<requires>
aes
diff --git a/src/lib/pubkey/newhope/info.txt b/src/lib/pubkey/newhope/info.txt
index 74ceef989..4877a138b 100644
--- a/src/lib/pubkey/newhope/info.txt
+++ b/src/lib/pubkey/newhope/info.txt
@@ -1,4 +1,6 @@
-define NEWHOPE 20161018
+<defines>
+NEWHOPE -> 20161018
+</defines>
<requires>
sha3
diff --git a/src/lib/pubkey/pbes2/info.txt b/src/lib/pubkey/pbes2/info.txt
index 8a42e4133..f8c6d3719 100644
--- a/src/lib/pubkey/pbes2/info.txt
+++ b/src/lib/pubkey/pbes2/info.txt
@@ -1,4 +1,6 @@
-define PKCS5_PBES2 20141119
+<defines>
+PKCS5_PBES2 -> 20141119
+</defines>
<requires>
asn1
diff --git a/src/lib/pubkey/pem/info.txt b/src/lib/pubkey/pem/info.txt
index 9340a7cef..471d9abd6 100644
--- a/src/lib/pubkey/pem/info.txt
+++ b/src/lib/pubkey/pem/info.txt
@@ -1,4 +1,6 @@
-define PEM_CODEC 20131128
+<defines>
+PEM_CODEC -> 20131128
+</defines>
<requires>
base64
diff --git a/src/lib/pubkey/rfc6979/info.txt b/src/lib/pubkey/rfc6979/info.txt
index 7055084b9..72a61301c 100644
--- a/src/lib/pubkey/rfc6979/info.txt
+++ b/src/lib/pubkey/rfc6979/info.txt
@@ -1,4 +1,6 @@
-define RFC6979_GENERATOR 20140321
+<defines>
+RFC6979_GENERATOR -> 20140321
+</defines>
<requires>
bigint
diff --git a/src/lib/pubkey/rsa/info.txt b/src/lib/pubkey/rsa/info.txt
index 6df380696..9fc9354b8 100644
--- a/src/lib/pubkey/rsa/info.txt
+++ b/src/lib/pubkey/rsa/info.txt
@@ -1,4 +1,6 @@
-define RSA 20160730
+<defines>
+RSA -> 20160730
+</defines>
<requires>
keypair
diff --git a/src/lib/pubkey/xmss/info.txt b/src/lib/pubkey/xmss/info.txt
index 8a834ffeb..4ecf5da31 100644
--- a/src/lib/pubkey/xmss/info.txt
+++ b/src/lib/pubkey/xmss/info.txt
@@ -1,4 +1,6 @@
-define XMSS 20161008
+<defines>
+XMSS -> 20161008
+</defines>
<header:public>
atomic.h
diff --git a/src/lib/rng/auto_rng/info.txt b/src/lib/rng/auto_rng/info.txt
index 4dd51c2b0..f1adcc800 100644
--- a/src/lib/rng/auto_rng/info.txt
+++ b/src/lib/rng/auto_rng/info.txt
@@ -1,5 +1,7 @@
-define AUTO_SEEDING_RNG 20160821
-define AUTO_RNG 20161126
+<defines>
+AUTO_SEEDING_RNG -> 20160821
+AUTO_RNG -> 20161126
+</defines>
<requires>
hmac_drbg
diff --git a/src/lib/rng/hmac_drbg/info.txt b/src/lib/rng/hmac_drbg/info.txt
index 7f2c12fd0..a8922bdf0 100644
--- a/src/lib/rng/hmac_drbg/info.txt
+++ b/src/lib/rng/hmac_drbg/info.txt
@@ -1,4 +1,6 @@
-define HMAC_DRBG 20140319
+<defines>
+HMAC_DRBG -> 20140319
+</defines>
<requires>
hmac
diff --git a/src/lib/rng/rdrand_rng/info.txt b/src/lib/rng/rdrand_rng/info.txt
index 2e597ebec..452dbde58 100644
--- a/src/lib/rng/rdrand_rng/info.txt
+++ b/src/lib/rng/rdrand_rng/info.txt
@@ -1,4 +1,6 @@
-define RDRAND_RNG 20160619
+<defines>
+RDRAND_RNG -> 20160619
+</defines>
need_isa rdrand
diff --git a/src/lib/rng/stateful_rng/info.txt b/src/lib/rng/stateful_rng/info.txt
index b4dcedf4a..edc2d9169 100644
--- a/src/lib/rng/stateful_rng/info.txt
+++ b/src/lib/rng/stateful_rng/info.txt
@@ -1,2 +1,3 @@
-define STATEFUL_RNG 20160819
-
+<defines>
+STATEFUL_RNG -> 20160819
+</defines>
diff --git a/src/lib/rng/system_rng/info.txt b/src/lib/rng/system_rng/info.txt
index 08b311299..3df7dd387 100644
--- a/src/lib/rng/system_rng/info.txt
+++ b/src/lib/rng/system_rng/info.txt
@@ -1,4 +1,7 @@
-define SYSTEM_RNG 20141202
+<defines>
+SYSTEM_RNG -> 20141202
+</defines>
+
# Any system with /dev/random or CryptGenRandom
diff --git a/src/lib/stream/chacha/chacha_sse2/info.txt b/src/lib/stream/chacha/chacha_sse2/info.txt
index 965479746..20e0eb03f 100644
--- a/src/lib/stream/chacha/chacha_sse2/info.txt
+++ b/src/lib/stream/chacha/chacha_sse2/info.txt
@@ -1,3 +1,5 @@
-define CHACHA_SSE2 20160831
+<defines>
+CHACHA_SSE2 -> 20160831
+</defines>
need_isa sse2
diff --git a/src/lib/stream/chacha/info.txt b/src/lib/stream/chacha/info.txt
index f3bd1ffe8..0bcd013ad 100644
--- a/src/lib/stream/chacha/info.txt
+++ b/src/lib/stream/chacha/info.txt
@@ -1 +1,3 @@
-define CHACHA 20140103
+<defines>
+CHACHA -> 20140103
+</defines>
diff --git a/src/lib/stream/ctr/info.txt b/src/lib/stream/ctr/info.txt
index c0c6694b0..4cb30fa2f 100644
--- a/src/lib/stream/ctr/info.txt
+++ b/src/lib/stream/ctr/info.txt
@@ -1 +1,3 @@
-define CTR_BE 20131128
+<defines>
+CTR_BE -> 20131128
+</defines>
diff --git a/src/lib/stream/info.txt b/src/lib/stream/info.txt
index 59b5d577a..4f62c5a7c 100644
--- a/src/lib/stream/info.txt
+++ b/src/lib/stream/info.txt
@@ -1,4 +1,6 @@
-define STREAM_CIPHER 20131128
+<defines>
+STREAM_CIPHER -> 20131128
+</defines>
<header:public>
stream_cipher.h
diff --git a/src/lib/stream/ofb/info.txt b/src/lib/stream/ofb/info.txt
index 2d3d78f79..be585d0d3 100644
--- a/src/lib/stream/ofb/info.txt
+++ b/src/lib/stream/ofb/info.txt
@@ -1 +1,3 @@
-define OFB 20131128
+<defines>
+OFB -> 20131128
+</defines>
diff --git a/src/lib/stream/rc4/info.txt b/src/lib/stream/rc4/info.txt
index f61b8a4cc..97cc22760 100644
--- a/src/lib/stream/rc4/info.txt
+++ b/src/lib/stream/rc4/info.txt
@@ -1 +1,3 @@
-define RC4 20131128
+<defines>
+RC4 -> 20131128
+</defines>
diff --git a/src/lib/stream/salsa20/info.txt b/src/lib/stream/salsa20/info.txt
index 10f9a8cb2..3c7fed8fe 100644
--- a/src/lib/stream/salsa20/info.txt
+++ b/src/lib/stream/salsa20/info.txt
@@ -1 +1,3 @@
-define SALSA20 20131128
+<defines>
+SALSA20 -> 20131128
+</defines>
diff --git a/src/lib/stream/shake_cipher/info.txt b/src/lib/stream/shake_cipher/info.txt
index 53e6f5012..500a7265d 100644
--- a/src/lib/stream/shake_cipher/info.txt
+++ b/src/lib/stream/shake_cipher/info.txt
@@ -1 +1,3 @@
-define SHAKE_CIPHER 20161018
+<defines>
+SHAKE_CIPHER -> 20161018
+</defines>
diff --git a/src/lib/tls/info.txt b/src/lib/tls/info.txt
index 86d651730..a189f7978 100644
--- a/src/lib/tls/info.txt
+++ b/src/lib/tls/info.txt
@@ -1,4 +1,6 @@
-define TLS 20150319
+<defines>
+TLS -> 20150319
+</defines>
load_on auto
diff --git a/src/lib/tls/sessions_sql/info.txt b/src/lib/tls/sessions_sql/info.txt
index 7016a3d42..58392bd0c 100644
--- a/src/lib/tls/sessions_sql/info.txt
+++ b/src/lib/tls/sessions_sql/info.txt
@@ -1,4 +1,6 @@
-define TLS_SESSION_MANAGER_SQL_DB 20141219
+<defines>
+TLS_SESSION_MANAGER_SQL_DB -> 20141219
+</defines>
<requires>
pbkdf2
diff --git a/src/lib/tls/sessions_sqlite3/info.txt b/src/lib/tls/sessions_sqlite3/info.txt
index b04b6a9d6..612142c09 100644
--- a/src/lib/tls/sessions_sqlite3/info.txt
+++ b/src/lib/tls/sessions_sqlite3/info.txt
@@ -1,4 +1,6 @@
-define TLS_SQLITE3_SESSION_MANAGER 20131128
+<defines>
+TLS_SQLITE3_SESSION_MANAGER -> 20131128
+</defines>
<requires>
sessions_sql
diff --git a/src/lib/tls/tls_cbc/info.txt b/src/lib/tls/tls_cbc/info.txt
index 0a2827e71..321236696 100644
--- a/src/lib/tls/tls_cbc/info.txt
+++ b/src/lib/tls/tls_cbc/info.txt
@@ -1,4 +1,6 @@
-define TLS_CBC 20161008
+<defines>
+TLS_CBC -> 20161008
+</defines>
<header:internal>
tls_cbc.h
diff --git a/src/lib/utils/boost/info.txt b/src/lib/utils/boost/info.txt
index 8748c0bf1..c12b99a28 100644
--- a/src/lib/utils/boost/info.txt
+++ b/src/lib/utils/boost/info.txt
@@ -1,11 +1,11 @@
-define BOOST_FILESYSTEM 20131228
-define BOOST_ASIO 20131228
-define BOOST_DATETIME 20150720
+<defines>
+BOOST_FILESYSTEM -> 20131228
+BOOST_ASIO -> 20131228
+BOOST_DATETIME -> 20150720
+</defines>
load_on vendor
<libs>
all -> boost_system,boost_filesystem
</libs>
-
-
diff --git a/src/lib/utils/dyn_load/info.txt b/src/lib/utils/dyn_load/info.txt
index 22a79be43..2caeac728 100644
--- a/src/lib/utils/dyn_load/info.txt
+++ b/src/lib/utils/dyn_load/info.txt
@@ -1,4 +1,6 @@
-define DYNAMIC_LOADER 20160310
+<defines>
+DYNAMIC_LOADER -> 20160310
+</defines>
load_on dep
diff --git a/src/lib/utils/http_util/info.txt b/src/lib/utils/http_util/info.txt
index a23a43a3d..fe9fc3ea7 100644
--- a/src/lib/utils/http_util/info.txt
+++ b/src/lib/utils/http_util/info.txt
@@ -1 +1,3 @@
-define HTTP_UTIL 20131128
+<defines>
+HTTP_UTIL -> 20131128
+</defines>
diff --git a/src/lib/utils/info.txt b/src/lib/utils/info.txt
index 306e6e9ad..da84b64b4 100644
--- a/src/lib/utils/info.txt
+++ b/src/lib/utils/info.txt
@@ -1,4 +1,6 @@
-define UTIL_FUNCTIONS 20161127
+<defines>
+UTIL_FUNCTIONS -> 20161127
+</defines>
load_on always
diff --git a/src/lib/utils/locking_allocator/info.txt b/src/lib/utils/locking_allocator/info.txt
index 0831fddb6..5f848f62d 100644
--- a/src/lib/utils/locking_allocator/info.txt
+++ b/src/lib/utils/locking_allocator/info.txt
@@ -1,4 +1,6 @@
-define LOCKING_ALLOCATOR 20131128
+<defines>
+LOCKING_ALLOCATOR -> 20131128
+</defines>
<os>
linux
diff --git a/src/lib/utils/simd/info.txt b/src/lib/utils/simd/info.txt
index 6b9e381fa..7784902a6 100644
--- a/src/lib/utils/simd/info.txt
+++ b/src/lib/utils/simd/info.txt
@@ -1,4 +1,6 @@
-define SIMD_32 20131128
+<defines>
+SIMD_32 -> 20131128
+</defines>
<header:internal>
simd_32.h
diff --git a/src/lib/x509/certstor_sql/info.txt b/src/lib/x509/certstor_sql/info.txt
index 619784e70..a6046e5d7 100644
--- a/src/lib/x509/certstor_sql/info.txt
+++ b/src/lib/x509/certstor_sql/info.txt
@@ -1,2 +1,3 @@
-define CERTSTOR_SQL 20160818
-
+<defines>
+CERTSTOR_SQL -> 20160818
+</defines>
diff --git a/src/lib/x509/certstor_sqlite3/info.txt b/src/lib/x509/certstor_sqlite3/info.txt
index d5e50fc95..39b8c579b 100644
--- a/src/lib/x509/certstor_sqlite3/info.txt
+++ b/src/lib/x509/certstor_sqlite3/info.txt
@@ -1,4 +1,6 @@
-define CERTSTOR_SQLITE3 20160818
+<defines>
+CERTSTOR_SQLITE3 -> 20160818
+</defines>
<requires>
certstor_sql
diff --git a/src/lib/x509/info.txt b/src/lib/x509/info.txt
index b1a0ab414..8221dc0f1 100644
--- a/src/lib/x509/info.txt
+++ b/src/lib/x509/info.txt
@@ -1,5 +1,7 @@
-define X509_CERTIFICATES 20151023
-define OCSP 20161118
+<defines>
+X509_CERTIFICATES -> 20151023
+OCSP -> 20161118
+</defines>
<requires>
asn1