summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-06-28 12:04:32 +0200
committerChristian Grothoff <christian@grothoff.org>2022-06-28 12:04:32 +0200
commit3e74c39480cb1236a31e7a167d306e32a0a92f5d (patch)
tree6e186cf1b9b330a4afa934d3cfcb2c0354d26a55
parent85381ce06f8ec4a1f1bcfe6f7da42e5f22a58cf3 (diff)
downloadanastasis-3e74c39480cb1236a31e7a167d306e32a0a92f5d.tar.gz
anastasis-3e74c39480cb1236a31e7a167d306e32a0a92f5d.tar.bz2
anastasis-3e74c39480cb1236a31e7a167d306e32a0a92f5d.zip
fix #7225: change way we do i18n for contrib/ resource files
-rw-r--r--.gitignore1
-rw-r--r--contrib/Makefile.am7
-rwxr-xr-xcontrib/extract.sh23
-rwxr-xr-xcontrib/pogen.sh3
-rw-r--r--contrib/redux.al.json7
-rw-r--r--contrib/redux.be.json3
-rw-r--r--contrib/redux.ch.json5
-rw-r--r--contrib/redux.countries.json194
-rw-r--r--contrib/redux.cz.json5
-rw-r--r--contrib/redux.de.json5
-rw-r--r--contrib/redux.dk.json5
-rw-r--r--contrib/redux.es.json8
-rw-r--r--contrib/redux.fr.json5
-rw-r--r--contrib/redux.in.json3
-rw-r--r--contrib/redux.it.json7
-rw-r--r--contrib/redux.jp.json5
-rw-r--r--contrib/redux.nl.json5
-rw-r--r--contrib/redux.sk.json5
-rw-r--r--contrib/redux.us.json4
-rw-r--r--contrib/redux.xx.json2
-rw-r--r--po/POTFILES.in77
21 files changed, 184 insertions, 195 deletions
diff --git a/.gitignore b/.gitignore
index 0d5dbc1..998e44b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,4 @@ src/cli/test_reducer.err
vgcore*
__pycache__
tags
+contrib/extracted.h
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 75bce03..85ee5ba 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -23,7 +23,8 @@ ppen_DATA = \
pp/en/0.xml \
pp/en/0.html
-
+extracted.h: *.json
+ ./extract.sh
pkgdatadir= $(prefix)/share/anastasis/
@@ -46,7 +47,9 @@ EXTRA_DIST = \
uncrustify_precommit \
gana.sh \
gana-update.sh \
- microhttpd.tag
+ microhttpd.tag \
+ extract.sh \
+ extracted.h
pkgdata_DATA = \
redux.al.json \
diff --git a/contrib/extract.sh b/contrib/extract.sh
new file mode 100755
index 0000000..e879e74
--- /dev/null
+++ b/contrib/extract.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+# This file is in the public domain.
+# It extracts translateable strings from the JSON file(s).
+#
+# The resulting 'extracted.h' file is only used by
+# gettext, and not in the actual code. We still make
+# sure it is legal C code.
+
+for n in redux.??.json
+do
+ jq '.required_attributes[].label' < $n | awk '{print "_(" $0 "),"}' >> prep.h
+done
+
+jq '.countries[].continent' < redux.countries.json | awk '{print "_(" $0 "),"}' >> prep.h
+
+jq '.countries[].name' < redux.countries.json | awk '{print "_(" $0 "),"}' >> prep.h
+
+echo "// This is a generated file, see extract.sh" > extracted.h
+echo "const char * i18n[] = {" >> extracted.h
+sort prep.h | uniq >> extracted.h
+echo "};" >> extracted.h
+
+rm -f prep.h
diff --git a/contrib/pogen.sh b/contrib/pogen.sh
index 89140ea..21eedce 100755
--- a/contrib/pogen.sh
+++ b/contrib/pogen.sh
@@ -1,3 +1,4 @@
#!/bin/sh
find src -name "*.c" | sort > po/POTFILES.in
-find contrib -name "*.json" | sort >> po/POTFILES.in
+echo "contrib/extracted.h" >> po/POTFILES.in
+echo "src/authorization/extracted.h" >> po/POTFILES.in
diff --git a/contrib/redux.al.json b/contrib/redux.al.json
index bb4360e..2696540 100644
--- a/contrib/redux.al.json
+++ b/contrib/redux.al.json
@@ -19,11 +19,8 @@
{
"type": "string",
"name": "nid_number",
- "label": "Numri i Identitetit",
- "label_i18n":{
- "en": "Identity Number",
- "al": "Numri i Identitetit"
- },
+ "label": "Identity Number",
+ "tooltip": "Numri i Identitetit",
"widget": "anastasis_gtk_ia_nid_al",
"uuid": "256e5d30-d65e-481b-9ac4-55f5ac03b24a",
"validation-regex": "^[0-9A-T][0-9](((0|5)[0-9])|10|11|51|52)[0-9]{3}[A-W]$",
diff --git a/contrib/redux.be.json b/contrib/redux.be.json
index 821a3eb..80711cf 100644
--- a/contrib/redux.be.json
+++ b/contrib/redux.be.json
@@ -27,9 +27,6 @@
"type": "string",
"name": "nrn_number",
"label": "National Register Number",
- "label_i18n":{
- "en": "National Register Number"
- },
"widget": "anastasis_gtk_ia_nid_be",
"uuid": "0452f99a-06f7-48bd-8ac0-2e4ed9a24560",
"validation-regex": "^[0-9]{11}$",
diff --git a/contrib/redux.ch.json b/contrib/redux.ch.json
index ecda1a0..6b99ca1 100644
--- a/contrib/redux.ch.json
+++ b/contrib/redux.ch.json
@@ -27,10 +27,7 @@
"type": "string",
"name": "ahv_number",
"label": "AHV number",
- "label_i18n":{
- "de_DE":"AHV-Nummer",
- "de_CH":"AHV-Nummer"
- },
+ "tooltip":"AHV-Nummer",
"widget": "anastasis_gtk_ia_ahv",
"uuid" : "1da87570-ba16-4f62-8a7e-cbda92f51591",
"validation-regex": "^(756)\\.[0-9]{4}\\.[0-9]{4}\\.[0-9]{2}|(756)[0-9]{10}$",
diff --git a/contrib/redux.countries.json b/contrib/redux.countries.json
index 0d824fc..cbccb0a 100644
--- a/contrib/redux.countries.json
+++ b/contrib/redux.countries.json
@@ -3,168 +3,94 @@
"SPDX-License-Identifier": "GPL3.0-or-later",
"countries": [
{
- "code" : "al",
- "name" : "Albania",
- "continent" : "Europe",
- "name_i18n" : {
- "de_DE": "Albanien",
- "en_UK": "Albania"
- },
- "call_code" : "+355"
+ "code" : "al",
+ "name" : "Albania",
+ "continent" : "Europe",
+ "call_code" : "+355"
},
{
- "code" : "be",
- "name" : "Belgium",
- "continent" : "Europe",
- "name_i18n" : {
- "de_DE": "Belgien",
- "en_UK": "Belgium"
- },
- "call_code" : "+32"
+ "code" : "be",
+ "name" : "Belgium",
+ "continent" : "Europe",
+ "call_code" : "+32"
},
{
- "code" : "ch",
- "name" : "Switzerland",
- "continent" : "Europe",
- "name_i18n" : {
- "de_DE": "Schweiz",
- "de_CH": "Schwiiz",
- "fr_FR": "Suisse",
- "en_UK": "Swiss"
- },
- "call_code" : "+41"
+ "code" : "ch",
+ "name" : "Switzerland",
+ "continent" : "Europe",
+ "call_code" : "+41"
},
{
- "code" : "cz",
- "name" : "Czech Republic",
- "continent" : "Europe",
- "name_i18n" : {
- "en_UK": "Czech Republic"
- },
- "call_code" : "+420"
+ "code" : "cz",
+ "name" : "Czech Republic",
+ "continent" : "Europe",
+ "call_code" : "+420"
},
{
- "code" : "de",
- "name" : "Germany",
- "continent" : "Europe",
- "continent_i18n" : { "de_DE" : "Europa" },
- "name_i18n" : {
- "de_DE": "Deutschland",
- "de_CH": "Deutschland",
- "fr_FR": "Allemagne",
- "en_UK": "Germany"
- },
- "call_code" : "+49"
+ "code" : "de",
+ "name" : "Germany",
+ "continent" : "Europe",
+ "call_code" : "+49"
},
{
- "code" : "dk",
- "name" : "Denmark",
- "continent" : "Europe",
- "continent_i18n" : { "de_DE" : "Europa" },
- "name_i18n" : {
- "en_UK": "Denmark"
- },
- "call_code" : "+45"
+ "code" : "dk",
+ "name" : "Denmark",
+ "continent" : "Europe",
+ "call_code" : "+45"
},
{
- "code" : "es",
- "name" : "Spain",
- "continent" : "Europe",
- "continent_i18n" : { "es_ES" : "Europa" },
- "name_i18n" : {
- "es_ES": "España"
- },
- "call_code" : "+44"
+ "code" : "es",
+ "name" : "Spain",
+ "continent" : "Europe",
+ "call_code" : "+44"
},
{
- "code" : "fr",
- "name" : "France",
- "continent" : "Europe",
- "name_i18n" : {
- "de_DE": "Frankreich",
- "fr_FR": "La France"
- },
- "call_code" : "+33"
+ "code" : "fr",
+ "name" : "France",
+ "continent" : "Europe",
+ "call_code" : "+33"
},
{
- "code" : "in",
- "name" : "India",
- "continent" : "India",
- "continent_i18n" : { "en_EN" : "India" },
- "name_i18n" : {
- "de_DE": "Indien",
- "de_CH": "Indien",
- "fr_FR": "l'Inde",
- "en_UK": "India"
- },
- "call_code" : "+91"
+ "code" : "in",
+ "name" : "India",
+ "continent" : "India",
+ "call_code" : "+91"
},
{
- "code" : "it",
- "name" : "Italy",
- "continent" : "Europe",
- "name_i18n" : {
- "de_DE": "Italien",
- "en_UK": "Italy"
- },
- "call_code" : "+39"
+ "code" : "it",
+ "name" : "Italy",
+ "continent" : "Europe",
+ "call_code" : "+39"
},
{
- "code" : "jp",
- "name" : "Japan",
- "continent" : "Asia",
- "continent_i18n" : { "en_EN" : "Japan" },
- "name_i18n" : {
- "de_DE": "Japan",
- "de_CH": "Japan",
- "en_UK": "Japan"
- },
- "call_code" : "+81"
+ "code" : "jp",
+ "name" : "Japan",
+ "continent" : "Asia",
+ "call_code" : "+81"
},
{
- "code" : "nl",
- "name" : "Netherlands",
- "continent" : "Europe",
- "name_i18n" : {
- "de_DE": "Niederlande",
- "nl_NL": "Nederland",
- "en_UK": "Netherlands"
- },
- "call_code" : "+31"
+ "code" : "nl",
+ "name" : "Netherlands",
+ "continent" : "Europe",
+ "call_code" : "+31"
},
{
- "code" : "sk",
- "name" : "Slovakia",
- "continent" : "Europe",
- "name_i18n" : {
- "en_UK": "Slovakia"
- },
- "call_code" : "+421"
+ "code" : "sk",
+ "name" : "Slovakia",
+ "continent" : "Europe",
+ "call_code" : "+421"
},
{
- "code" : "us",
- "name" : "United States of America (USA)",
- "continent" : "North America",
- "continent_i18n" : { "de_DE" : "Nordamerika" },
- "name_i18n" : {
- "de_DE": "Vereinigte Staaten von Amerika (USA)",
- "de_CH": "Vereinigte Staaten von Amerika (USA)",
- "fr_FR": "États-Unis d'Amérique (USA)",
- "en_UK": "United States of America (USA)"
- },
- "call_code" : "+1"
+ "code" : "us",
+ "name" : "United States of America (USA)",
+ "continent" : "North America",
+ "call_code" : "+1"
},
{
- "code" : "xx",
- "name" : "Testland",
- "continent" : "Demoworld",
- "name_i18n" : {
- "de_DE": "Testlandt",
- "de_CH": "Testlandi",
- "fr_FR": "Testpais",
- "en_UK": "Testland"
- },
- "call_code" : "+00"
+ "code" : "xx",
+ "name" : "Testland",
+ "continent" : "Demoworld",
+ "call_code" : "+00"
}
]
}
diff --git a/contrib/redux.cz.json b/contrib/redux.cz.json
index e7118a8..3f11118 100644
--- a/contrib/redux.cz.json
+++ b/contrib/redux.cz.json
@@ -20,10 +20,7 @@
"type": "string",
"name": "birth_number",
"label": "Birth Number",
- "label_i18n":{
- "en": "Birth Number",
- "cz": "rodné číslo"
- },
+ "tooltip": "rodné číslo",
"widget": "anastasis_gtk_ia_birthnumber_cz",
"uuid": "03e3a05b-1192-44f1-ac36-7425512eee1a",
"validation-regex": "^[0-9]{2}(((0|2|5|7)[0-9])|10|11|31|32|51|52|81|82)/[0-9]{3}[0-9]?$",
diff --git a/contrib/redux.de.json b/contrib/redux.de.json
index 21bbaaf..e62f24a 100644
--- a/contrib/redux.de.json
+++ b/contrib/redux.de.json
@@ -27,10 +27,7 @@
"type": "string",
"name": "social_security_number",
"label": "Social security number",
- "label_i18n":{
- "de_DE": "Deutsche Sozialversicherungsnummer",
- "en": "German Social security number"
- },
+ "tooltip": "Deutsche Sozialversicherungsnummer",
"widget": "anastasis_gtk_ia_ssn_de",
"uuid": "d5e2aa79-1c88-4cf4-a4d2-252508b38e05",
"validation-regex": "^[0-9]{8}[[:upper:]][0-9]{3}$",
diff --git a/contrib/redux.dk.json b/contrib/redux.dk.json
index 29c7c6c..66859b5 100644
--- a/contrib/redux.dk.json
+++ b/contrib/redux.dk.json
@@ -20,10 +20,7 @@
"type": "string",
"name": "cpr_number",
"label": "CPR-nummer",
- "label_i18n":{
- "en": "CPR Number",
- "dk": "CPR-nummer"
- },
+ "tooltip": "CPR-nummer",
"widget": "anastasis_gtk_ia_cpr_dk",
"uuid": "38f13a4d-4302-4ada-ada1-c3ff4a8ff689",
"validation-regex": "^(0[1-9]|[1-2][0-9]|30|31)((0[1-9]|10|11|12))[0-9]{2}-[0-9A-Z]{4}$"
diff --git a/contrib/redux.es.json b/contrib/redux.es.json
index d4a6b2a..320d346 100644
--- a/contrib/redux.es.json
+++ b/contrib/redux.es.json
@@ -27,9 +27,7 @@
"type": "string",
"name": "tax_number",
"label": "Tax number",
- "label_i18n":{
- "es_ES":"Número de Identificación Fiscal (DNI, NIE)"
- },
+ "tooltip":"Número de Identificación Fiscal (DNI, NIE)",
"widget": "anastasis_gtk_ia_es_dni",
"uuid" : "ac8bd865-6be8-445c-b650-6a18eef16a49",
"validation-regex": "^[0-9MXYZ][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$",
@@ -39,9 +37,7 @@
"type": "string",
"name": "ssn_number",
"label": "Social security number",
- "label_i18n":{
- "es_ES":"Número de Seguridad Social"
- },
+ "tooltip":"Número de Seguridad Social",
"widget": "anastasis_gtk_ia_es_ssn",
"uuid" : "22396a19-f3bb-497e-b63a-961fd639140e",
"validation-regex": "^[0-9]{11}$"
diff --git a/contrib/redux.fr.json b/contrib/redux.fr.json
index 1b57210..fe6ce9b 100644
--- a/contrib/redux.fr.json
+++ b/contrib/redux.fr.json
@@ -27,10 +27,7 @@
"type": "string",
"name": "social_security_number",
"label": "Code Insee",
- "label_i18n":{
- "fr_FR": "Code Insee",
- "en": "INSEE code"
- },
+ "tooltip": "Code Insee",
"widget": "anastasis_gtk_ia_insee_fr",
"uuid": "2f36a81c-3f6d-41f3-97ee-9c885bc41873",
"validation-regex": "^[0-9]{15}$",
diff --git a/contrib/redux.in.json b/contrib/redux.in.json
index a53035c..e7dc8fa 100644
--- a/contrib/redux.in.json
+++ b/contrib/redux.in.json
@@ -27,9 +27,6 @@
"type": "string",
"name": "aadhar_number",
"label": "Aadhar number",
- "label_i18n":{
- "en": "Aadhar number"
- },
"widget": "anastasis_gtk_ia_aadhar_in",
"uuid": "55afe97a-98bc-48d1-bb37-a9658be3fdc9",
"validation-regex": "^[2-9]{1}[0-9]{3}\\s[0-9]{4}\\s[0-9]{4}$",
diff --git a/contrib/redux.it.json b/contrib/redux.it.json
index f744497..f67cd45 100644
--- a/contrib/redux.it.json
+++ b/contrib/redux.it.json
@@ -19,11 +19,8 @@
{
"type": "string",
"name": "fiscal_code",
- "label": "Codice fiscale",
- "label_i18n":{
- "it": "Codice fiscale",
- "en": "Fiscal code"
- },
+ "label": "Fiscal code",
+ "tooltip": "Codice fiscale",
"widget": "anastasis_gtk_ia_cf_it",
"uuid": "88f53c51-52ad-4d63-a163-ec042589f925",
"validation-regex": "^[[:upper:]]{6}[0-9]{2}[A-EHLMPRT](([0-24-6][0-9])|(30|31|70|71))[A-MZ][0-9]{3}[A-Z]$",
diff --git a/contrib/redux.jp.json b/contrib/redux.jp.json
index 2a80cdf..9eda2f6 100644
--- a/contrib/redux.jp.json
+++ b/contrib/redux.jp.json
@@ -27,10 +27,7 @@
"type": "string",
"name": "my_number",
"label": "My number",
- "label_i18n":{
- "en": "My number",
- "jp": "マイナンバー"
- },
+ "tooltip": "マイナンバー",
"widget": "anastasis_gtk_ia_my_jp",
"uuid": "90848f42-a83e-4226-8186-329696c14152",
"validation-regex": "^[0-9]{12}$"
diff --git a/contrib/redux.nl.json b/contrib/redux.nl.json
index 506c2d0..ce6b766 100644
--- a/contrib/redux.nl.json
+++ b/contrib/redux.nl.json
@@ -27,10 +27,7 @@
"type": "string",
"name": "social_security_number",
"label": "Citizen Service Number",
- "label_i18n":{
- "nl_NL": "Burgerservicenummer (BSN)",
- "en": "Citizen Service Number"
- },
+ "tooltip": "Burgerservicenummer (BSN)",
"widget": "anastasis_gtk_ia_ssn_nl",
"uuid": "b6bf1f14-1f85-4afb-af21-f54b88490bdc",
"validation-regex": "^[1-9][0-9]{8}$",
diff --git a/contrib/redux.sk.json b/contrib/redux.sk.json
index e2acef7..7520d15 100644
--- a/contrib/redux.sk.json
+++ b/contrib/redux.sk.json
@@ -20,10 +20,7 @@
"type": "string",
"name": "birth_number",
"label": "Birth Number",
- "label_i18n":{
- "en": "Birth Number",
- "sk": "rodné číslo"
- },
+ "tooltip": "rodné číslo",
"widget": "anastasis_gtk_ia_birthnumber_sk",
"uuid": "1cd372fe-2cea-4928-9f29-66f2bdd8555c",
"validation-regex": "^[0-9]{2}(((0|2|5|7)[0-9])|10|11|31|32|51|52|81|82)/[0-9]{3}[0-9]?$",
diff --git a/contrib/redux.us.json b/contrib/redux.us.json
index 08c0167..c6d0189 100644
--- a/contrib/redux.us.json
+++ b/contrib/redux.us.json
@@ -27,9 +27,7 @@
"type": "string",
"name": "social_security_number",
"label": "Social security number",
- "label_i18n":{
- "en": "US Social security number"
- },
+ "tooltip": "US Social security number",
"widget": "anastasis_gtk_ia_ssn_us",
"uuid": "310a138c-b0b7-4985-b8b8-d00e765e9f9b",
"validation-regex": "^[0-9]{3}-[0-9]{2}-[0-9]{4}$",
diff --git a/contrib/redux.xx.json b/contrib/redux.xx.json
index 1b11cd5..71d67e5 100644
--- a/contrib/redux.xx.json
+++ b/contrib/redux.xx.json
@@ -21,6 +21,7 @@
"type": "string",
"name": "prime_number",
"label": "Prime number",
+ "tooltip": "Mathematics is fun",
"widget": "anastasis_gtk_xx_prime",
"uuid" : "39190a95-cacb-4412-8bae-1f7da3f980b4",
"validation-regex": "^[0-9]+$",
@@ -31,6 +32,7 @@
"type": "string",
"name": "sq_number",
"label": "Square number",
+ "tooltip": "Mathematics is fun",
"widget": "anastasis_gtk_xx_square",
"uuid" : "ed790bca-89bf-11eb-96f2-233996cf644e",
"validation-regex": "^[0-9]+$",
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1c8ee65..7395de9 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,2 +1,77 @@
-# List of source files which contain translatable strings.
+src/authorization/anastasis_authorization_plugin.c
+src/authorization/anastasis_authorization_plugin_email.c
+src/authorization/anastasis_authorization_plugin_file.c
+src/authorization/anastasis_authorization_plugin_iban.c
+src/authorization/anastasis_authorization_plugin_post.c
+src/authorization/anastasis_authorization_plugin_sms.c
+src/authorization/anastasis_authorization_plugin_totp.c
+src/authorization/anastasis-helper-authorization-iban.c
+src/authorization/iban.c
+src/authorization/libanastasiseufin/lae_common.c
+src/authorization/libanastasiseufin/lae_credit.c
+src/authorization/libanastasiseufin/lae_parse.c
+src/backend/anastasis-httpd.c
+src/backend/anastasis-httpd_config.c
+src/backend/anastasis-httpd_mhd.c
+src/backend/anastasis-httpd_policy.c
+src/backend/anastasis-httpd_policy-meta.c
+src/backend/anastasis-httpd_policy-upload.c
+src/backend/anastasis-httpd_terms.c
+src/backend/anastasis-httpd_truth-challenge.c
+src/backend/anastasis-httpd_truth-solve.c
+src/backend/anastasis-httpd_truth-upload.c
+src/cli/anastasis-cli-discover.c
+src/cli/anastasis-cli-redux.c
+src/lib/anastasis_backup.c
+src/lib/anastasis_meta.c
+src/lib/anastasis_recovery.c
+src/reducer/anastasis_api_backup_redux.c
+src/reducer/anastasis_api_discovery.c
src/reducer/anastasis_api_recovery_redux.c
+src/reducer/anastasis_api_redux.c
+src/reducer/validation_CH_AHV.c
+src/reducer/validation_CZ_BN.c
+src/reducer/validation_DE_SVN.c
+src/reducer/validation_DE_TIN.c
+src/reducer/validation_ES_DNI.c
+src/reducer/validation_FR_INSEE.c
+src/reducer/validation_IN_AADHAR.c
+src/reducer/validation_IT_CF.c
+src/reducer/validation_NL_BSN.c
+src/reducer/validation_XX_SQUARE.c
+src/reducer/validation_XY_PRIME.c
+src/restclient/anastasis_api_config.c
+src/restclient/anastasis_api_curl_defaults.c
+src/restclient/anastasis_api_keyshare_lookup.c
+src/restclient/anastasis_api_policy_lookup.c
+src/restclient/anastasis_api_policy_meta_lookup.c
+src/restclient/anastasis_api_policy_store.c
+src/restclient/anastasis_api_truth_challenge.c
+src/restclient/anastasis_api_truth_solve.c
+src/restclient/anastasis_api_truth_store.c
+src/stasis/anastasis-dbinit.c
+src/stasis/anastasis_db_plugin.c
+src/stasis/plugin_anastasis_postgres.c
+src/stasis/test_anastasis_db.c
+src/testing/test_anastasis_api.c
+src/testing/test_anastasis.c
+src/testing/testing_api_cmd_config.c
+src/testing/testing_api_cmd_policy_lookup.c
+src/testing/testing_api_cmd_policy_store.c
+src/testing/testing_api_cmd_truth_challenge.c
+src/testing/testing_api_cmd_truth_solve.c
+src/testing/testing_api_cmd_truth_store.c
+src/testing/testing_api_helpers.c
+src/testing/testing_api_traits.c
+src/testing/testing_cmd_challenge_answer.c
+src/testing/testing_cmd_policy_create.c
+src/testing/testing_cmd_recover_secret.c
+src/testing/testing_cmd_secret_share.c
+src/testing/testing_cmd_truth_upload.c
+src/util/anastasis-config.c
+src/util/anastasis_crypto.c
+src/util/anastasis-crypto-tvg.c
+src/util/os_installation.c
+src/util/pin.c
+src/util/test_anastasis_crypto.c
+contrib/extracted.h