Fix sha2 on big endian

https://gn-review.googlesource.com/c/gn/+/20540 has caused
a number of test failures on Big Endian because we don't need to
ByteSwap on said platforms.

Drive-by: also fix the same issue in sha1.

Bug: chromium:463302946
Change-Id: I7ccfbdf442da1cf99f7758593a313a5339c20cde
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/20580
Reviewed-by: David Turner <digit@google.com>
Commit-Queue: David Turner <digit@google.com>
Reviewed-by: Andrew Grieve <agrieve@google.com>
diff --git a/src/base/sha1.cc b/src/base/sha1.cc
index 9c22be1..0a59b4f 100644
--- a/src/base/sha1.cc
+++ b/src/base/sha1.cc
@@ -114,8 +114,10 @@
   Pad();
   Process();
 
+#if defined(ARCH_CPU_LITTLE_ENDIAN)
   for (int t = 0; t < 5; ++t)
     H[t] = ByteSwap(H[t]);
+#endif
 }
 
 void SecureHashAlgorithm::Update(const void* data, size_t nbytes) {
@@ -161,8 +163,10 @@
   //
   // W and M are in a union, so no need to memcpy.
   // memcpy(W, M, sizeof(M));
+#if defined(ARCH_CPU_LITTLE_ENDIAN)
   for (t = 0; t < 16; ++t)
     W[t] = ByteSwap(W[t]);
+#endif
 
   // b.
   for (t = 16; t < 80; ++t)
diff --git a/src/base/sha2.cc b/src/base/sha2.cc
index e6fcc08..3924ecc 100644
--- a/src/base/sha2.cc
+++ b/src/base/sha2.cc
@@ -77,9 +77,11 @@
 
     // From section 6.2.2, step 1: "Prepare the message schedule"
     memcpy(w_.data(), chunk.data(), chunk.size());
+#if defined(ARCH_CPU_LITTLE_ENDIAN)
     for (int t = 0; t < 16; ++t) {
       w_[t] = ByteSwap(w_[t]);
     }
+#endif
     for (int t = 16; t < 64; ++t) {
       w_[t] = Sigma1(w_[t - 2]) + w_[t - 7] + Sigma0(w_[t - 15]) + w_[t - 16];
     }
@@ -145,9 +147,11 @@
     Update(std::string_view(padding_chunk.data(), padding_chunk.size()));
 
     std::array<uint8_t, kSha256Length> result;
+#if defined(ARCH_CPU_LITTLE_ENDIAN)
     for (uint32_t& word : hash_) {
       word = ByteSwap(word);
     }
+#endif
     memcpy(result.data(), hash_.data(), sizeof(result));
     return result;
   }