├── .github ├── FUNDING.yml └── workflows │ ├── generator-generic-ossf-slsa3-publish.yml │ ├── release.yml │ └── rust.yml ├── .gitignore ├── Cargo.toml ├── LICENSE ├── README.md ├── allowed_zones.txt ├── config.toml ├── etchdns.toml ├── fuzz ├── .gitignore ├── Cargo.toml ├── README.md ├── build.rs ├── fuzz_targets │ ├── create_dns_response.rs │ ├── dns_key_from_packet.rs │ ├── extract_client_ip.rs │ ├── extract_edns_version.rs │ ├── ip_range_from_cidr.rs │ ├── ip_validator_validate.rs │ ├── is_dnssec_requested.rs │ ├── qname.rs │ ├── query_type_class.rs │ ├── rate_limiter_is_allowed.rs │ └── validate_dns_packet.rs ├── generate_corpus └── generate_corpus.rs ├── img └── logo.png ├── nx_zones.txt ├── src ├── allowed_zones.rs ├── cache.rs ├── control.rs ├── dns_key.rs ├── dns_key_test.rs ├── dns_parser.rs ├── dns_processor.rs ├── doh.rs ├── errors.rs ├── hooks.rs ├── ip_validator.rs ├── lib.rs ├── load_balancer.rs ├── main.rs ├── metrics.rs ├── nx_zones.rs ├── probe.rs ├── query_logger.rs ├── query_manager.rs ├── rate_limiter.rs ├── resolver.rs └── stats.rs └── webassembly-plugins ├── rust ├── Cargo.lock ├── Cargo.toml ├── README.md └── src │ └── lib.rs └── zig ├── README.md ├── build.zig ├── build.zig.zon ├── etchdns-config-example.toml ├── src └── main.zig └── test.sh /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [jedisct1] 2 | open_collective: dnscrypt 3 | 4 | -------------------------------------------------------------------------------- /.github/workflows/generator-generic-ossf-slsa3-publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/.github/workflows/generator-generic-ossf-slsa3-publish.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/README.md -------------------------------------------------------------------------------- /allowed_zones.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/allowed_zones.txt -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/config.toml -------------------------------------------------------------------------------- /etchdns.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/etchdns.toml -------------------------------------------------------------------------------- /fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | -------------------------------------------------------------------------------- /fuzz/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/Cargo.toml -------------------------------------------------------------------------------- /fuzz/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/README.md -------------------------------------------------------------------------------- /fuzz/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/build.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/create_dns_response.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/create_dns_response.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/dns_key_from_packet.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/dns_key_from_packet.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/extract_client_ip.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/extract_client_ip.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/extract_edns_version.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/extract_edns_version.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/ip_range_from_cidr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/ip_range_from_cidr.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/ip_validator_validate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/ip_validator_validate.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/is_dnssec_requested.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/is_dnssec_requested.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/qname.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/qname.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/query_type_class.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/query_type_class.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/rate_limiter_is_allowed.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/rate_limiter_is_allowed.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/validate_dns_packet.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/fuzz_targets/validate_dns_packet.rs -------------------------------------------------------------------------------- /fuzz/generate_corpus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/generate_corpus -------------------------------------------------------------------------------- /fuzz/generate_corpus.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/fuzz/generate_corpus.rs -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/img/logo.png -------------------------------------------------------------------------------- /nx_zones.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/nx_zones.txt -------------------------------------------------------------------------------- /src/allowed_zones.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/allowed_zones.rs -------------------------------------------------------------------------------- /src/cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/cache.rs -------------------------------------------------------------------------------- /src/control.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/control.rs -------------------------------------------------------------------------------- /src/dns_key.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/dns_key.rs -------------------------------------------------------------------------------- /src/dns_key_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/dns_key_test.rs -------------------------------------------------------------------------------- /src/dns_parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/dns_parser.rs -------------------------------------------------------------------------------- /src/dns_processor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/dns_processor.rs -------------------------------------------------------------------------------- /src/doh.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/doh.rs -------------------------------------------------------------------------------- /src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/errors.rs -------------------------------------------------------------------------------- /src/hooks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/hooks.rs -------------------------------------------------------------------------------- /src/ip_validator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/ip_validator.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/load_balancer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/load_balancer.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/metrics.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/metrics.rs -------------------------------------------------------------------------------- /src/nx_zones.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/nx_zones.rs -------------------------------------------------------------------------------- /src/probe.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/probe.rs -------------------------------------------------------------------------------- /src/query_logger.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/query_logger.rs -------------------------------------------------------------------------------- /src/query_manager.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/query_manager.rs -------------------------------------------------------------------------------- /src/rate_limiter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/rate_limiter.rs -------------------------------------------------------------------------------- /src/resolver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/resolver.rs -------------------------------------------------------------------------------- /src/stats.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/src/stats.rs -------------------------------------------------------------------------------- /webassembly-plugins/rust/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/rust/Cargo.lock -------------------------------------------------------------------------------- /webassembly-plugins/rust/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/rust/Cargo.toml -------------------------------------------------------------------------------- /webassembly-plugins/rust/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/rust/README.md -------------------------------------------------------------------------------- /webassembly-plugins/rust/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/rust/src/lib.rs -------------------------------------------------------------------------------- /webassembly-plugins/zig/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/zig/README.md -------------------------------------------------------------------------------- /webassembly-plugins/zig/build.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/zig/build.zig -------------------------------------------------------------------------------- /webassembly-plugins/zig/build.zig.zon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/zig/build.zig.zon -------------------------------------------------------------------------------- /webassembly-plugins/zig/etchdns-config-example.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/zig/etchdns-config-example.toml -------------------------------------------------------------------------------- /webassembly-plugins/zig/src/main.zig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/zig/src/main.zig -------------------------------------------------------------------------------- /webassembly-plugins/zig/test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jedisct1/EtchDNS/HEAD/webassembly-plugins/zig/test.sh --------------------------------------------------------------------------------