From 0d8d591416f2832de6553736847a928d69208173 Mon Sep 17 00:00:00 2001 From: manunio Date: Mon, 10 Oct 2022 23:45:30 +0530 Subject: [PATCH] trust-dns: initial integration (#8711) [Trust-DNS](https://github.com/bluejekyll/trust-dns) is a Rust based DNS client, server, and Resolver, built to be safe and secure from the ground up. It has following crates/packages: - Trust-DNS: Binaries for running a DNS authoritative server. - Proto: Raw DNS library, exposes an unstable API and only for use by the other Trust-DNS libraries, not intended for end-user use. - It has 12 million+ downloads - Used by projects like: - [mongodb](https://crates.io/crates/mongodb) - [actix-connect](https://crates.io/crates/actix-connect) - [trust-dns-resolver(Resolver crate)](https://crates.io/crates/trust-dns-resolver) - Client: Used for sending query, update, and notify messages directly to a DNS server. - Server: Use to host DNS records, this also has a named binary for running in a daemon form. - Resolver: Utilizes the client library to perform DNS resolution. Can be used in place of the standard OS resolution facilities. - It has 11 million+ downloads. - Used by projects like: - [reqwest](https://github.com/seanmonstar/reqwest) - [awc](https://crates.io/crates/awc) - [mongodb](https://crates.io/crates/mongodb) - [libp2p-dns](https://crates.io/crates/libp2p-dns) Note: trust-dns fuzzes **Proto** crate/package for now in [trust-dns/fuzz/Cargo.toml](https://github.com/bluejekyll/trust-dns/blob/a88a7a575a1e77fa91e47abe4fd744db56110bc8/fuzz/Cargo.toml#L13). Co-authored-by: Navidem --- projects/trust-dns/Dockerfile | 21 +++++++++++++++++++++ projects/trust-dns/build.sh | 19 +++++++++++++++++++ projects/trust-dns/project.yaml | 12 ++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 projects/trust-dns/Dockerfile create mode 100755 projects/trust-dns/build.sh create mode 100644 projects/trust-dns/project.yaml diff --git a/projects/trust-dns/Dockerfile b/projects/trust-dns/Dockerfile new file mode 100644 index 000000000..6ec071629 --- /dev/null +++ b/projects/trust-dns/Dockerfile @@ -0,0 +1,21 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +FROM gcr.io/oss-fuzz-base/base-builder-rust +RUN apt-get update && apt-get install -y make autoconf automake libtool +RUN git clone --depth 1 https://github.com/bluejekyll/trust-dns trust-dns +WORKDIR trust-dns +COPY build.sh $SRC/ diff --git a/projects/trust-dns/build.sh b/projects/trust-dns/build.sh new file mode 100755 index 000000000..680aec5a9 --- /dev/null +++ b/projects/trust-dns/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash -eu +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +cargo fuzz build -O +cp fuzz/target/x86_64-unknown-linux-gnu/release/message $OUT/ diff --git a/projects/trust-dns/project.yaml b/projects/trust-dns/project.yaml new file mode 100644 index 000000000..268c15f80 --- /dev/null +++ b/projects/trust-dns/project.yaml @@ -0,0 +1,12 @@ +homepage: "https://github.com/bluejekyll/trust-dns" +language: rust +main_repo: "https://github.com/bluejekyll/trust-dns" +primary_contact: "bluejekyll@gmail.com" +auto_ccs: + - djc.ochtman@gmail.com +sanitizers: + - address +fuzzing_engines: + - libfuzzer +vendor_ccs: + - maxnair.dev@gmail.com