Add support for hostname validation to a CA

This introduces a breaking change in the Netd Binder interface.

Test: Integration test added to verify failure case (but not success).
Change-Id: If40cb5dffa0cfcf5bf49241c17489b7f3dfbd037
Bug: 64753847
diff --git a/server/NetdNativeService.cpp b/server/NetdNativeService.cpp
index 771ebda..deb09f0 100644
--- a/server/NetdNativeService.cpp
+++ b/server/NetdNativeService.cpp
@@ -237,7 +237,9 @@
 }
 
 binder::Status NetdNativeService::addPrivateDnsServer(const std::string& server, int32_t port,
-        const std::string& fingerprintAlgorithm, const std::vector<std::string>& fingerprints) {
+        const std::string& name,
+        const std::string& fingerprintAlgorithm,
+        const std::vector<std::string>& fingerprints) {
     ENFORCE_PERMISSION(CONNECTIVITY_INTERNAL);
     std::set<std::vector<uint8_t>> decoded_fingerprints;
     for (const std::string& input : fingerprints) {
@@ -258,7 +260,7 @@
         }
         decoded_fingerprints.insert(decoded);
     }
-    const int err = gCtls->resolverCtrl.addPrivateDnsServer(server, port,
+    const int err = gCtls->resolverCtrl.addPrivateDnsServer(server, port, name,
             fingerprintAlgorithm, decoded_fingerprints);
     if (err != INetd::PRIVATE_DNS_SUCCESS) {
         return binder::Status::fromServiceSpecificError(err,