Reland "Split digest methods from ssl target into digest target" 2/2

This is a reland of commit 47bfe39ecfe45b2f94c616ace97949003d9e87b4
which actually moves the digest out of the ssl target after creating
intermediate targets

BUG=webrtc:339300437

Change-Id: I172e962b25db0b9cce07ead683bd0a5b1d83442a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350861
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42336}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 57aea4e..edf48ee 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -1488,12 +1488,35 @@
 
 rtc_source_set("ssl_header") {
   visibility = [ "*" ]
-  public_deps += [ ":ssl" ]  # no-presubmit-check TODO(webrtc:8603)
+  sources = [ "openssl.h" ]
+  deps = []
+  if (is_win) {
+    deps += [ ":win32" ]
+  }
 }
 
 rtc_source_set("digest") {
   visibility = [ "*" ]
-  public_deps += [ ":ssl" ]  # no-presubmit-check TODO(webrtc:8603)
+  sources = [
+    "message_digest.cc",
+    "message_digest.h",
+    "openssl_digest.cc",
+    "openssl_digest.h",
+  ]
+  deps = [
+    ":checks",
+    ":ssl_header",
+    ":stringutils",
+  ]
+
+  # If we are building the SSL library ourselves, we know it's BoringSSL.
+  if (rtc_build_ssl) {
+    deps += [ "//third_party/boringssl" ]
+  } else {
+    configs += [ ":external_ssl_library" ]
+  }
+
+  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
 }
 
 rtc_library("ssl") {
@@ -1501,13 +1524,8 @@
   sources = [
     "helpers.cc",
     "helpers.h",
-    "message_digest.cc",
-    "message_digest.h",
-    "openssl.h",
     "openssl_adapter.cc",
     "openssl_adapter.h",
-    "openssl_digest.cc",
-    "openssl_digest.h",
     "openssl_key_pair.cc",
     "openssl_key_pair.h",
     "openssl_session_cache.cc",
@@ -1535,11 +1553,13 @@
     ":buffer",
     ":checks",
     ":copy_on_write_buffer",
+    ":digest",
     ":logging",
     ":macromagic",
     ":safe_conversions",
     ":socket",
     ":socket_address",
+    ":ssl_header",
     ":stream",
     ":stringutils",
     ":threading",