Cert Management UI V2: add ServerCertificateDatabaseNSSMigrator

ServerCertificateDatabaseNSSMigrator migrates certificates from a user's
NSS database into the user's ServerCertificateDatabase. This CL
implements the migration logic but doesn't hook it up into the browser
yet.

Bug: 40928765
Change-Id: I392f1d090866a236fc6c8e3ed514e7b534189efa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5905774
Reviewed-by: Hubert Chao <[email protected]>
Commit-Queue: Matt Mueller <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1365657}
diff --git a/chrome/browser/net/server_certificate_database_test_util.cc b/chrome/browser/net/server_certificate_database_test_util.cc
new file mode 100644
index 0000000..0f1e4ab
--- /dev/null
+++ b/chrome/browser/net/server_certificate_database_test_util.cc
@@ -0,0 +1,26 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/net/server_certificate_database_test_util.h"
+
+#include "base/containers/span.h"
+#include "base/containers/to_vector.h"
+#include "base/strings/string_number_conversions.h"
+#include "crypto/sha2.h"
+
+namespace net {
+
+ServerCertificateDatabase::CertInformation MakeCertInfo(
+    std::string_view der_cert,
+    chrome_browser_server_certificate_database::CertificateTrust::
+        CertificateTrustType trust_type) {
+  ServerCertificateDatabase::CertInformation cert_info;
+  cert_info.sha256hash_hex =
+      base::HexEncode(crypto::SHA256HashString(der_cert));
+  cert_info.cert_metadata.mutable_trust()->set_trust_type(trust_type);
+  cert_info.der_cert = base::ToVector(base::as_byte_span(der_cert));
+  return cert_info;
+}
+
+}  // namespace net