libweave: Copy data_encoding.cc into libweave

It's reducing dependency on libchromeos.

BUG=brillo:1257
TEST=`FEATURES=test emerge-gizmo libweave buffet`

Change-Id: I8356302accb368e717777fd578caa2ba018a29dd
Reviewed-on: https://chromium-review.googlesource.com/293631
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/src/privet/security_manager_unittest.cc b/libweave/src/privet/security_manager_unittest.cc
index c2024c2..44e01cf 100644
--- a/libweave/src/privet/security_manager_unittest.cc
+++ b/libweave/src/privet/security_manager_unittest.cc
@@ -18,7 +18,6 @@
 #include <base/rand_util.h>
 #include <base/strings/string_number_conversions.h>
 #include <base/strings/string_util.h>
-#include <chromeos/data_encoding.h>
 #include <chromeos/key_value_store.h>
 #include <chromeos/strings/string_utils.h>
 #include "libweave/external/crypto/p224_spake.h"
@@ -26,6 +25,7 @@
 #include <gtest/gtest.h>
 #include <weave/mock_task_runner.h>
 
+#include "libweave/src/data_encoding.h"
 #include "libweave/src/privet/openssl_utils.h"
 
 using testing::Eq;
@@ -92,8 +92,7 @@
     crypto::P224EncryptedKeyExchange spake{
         crypto::P224EncryptedKeyExchange::kPeerTypeClient, "1234"};
 
-    std::string client_commitment_base64{
-        chromeos::data_encoding::Base64Encode(spake.GetNextMessage())};
+    std::string client_commitment_base64{Base64Encode(spake.GetNextMessage())};
 
     EXPECT_TRUE(security_.ConfirmPairing(session_id, client_commitment_base64,
                                          fingerprint, signature, nullptr));
@@ -101,8 +100,7 @@
     EXPECT_TRUE(IsBase64(*signature));
 
     chromeos::Blob device_commitment;
-    ASSERT_TRUE(chromeos::data_encoding::Base64Decode(device_commitment_base64,
-                                                      &device_commitment));
+    ASSERT_TRUE(Base64Decode(device_commitment_base64, &device_commitment));
     spake.ProcessMessage(
         chromeos::string_utils::GetBytesAsString(device_commitment));
 
@@ -110,8 +108,7 @@
         HmacSha256(chromeos::SecureBlob{spake.GetUnverifiedKey()},
                    chromeos::SecureBlob{session_id})};
 
-    std::string auth_code_base64{
-        chromeos::data_encoding::Base64Encode(auth_code)};
+    std::string auth_code_base64{Base64Encode(auth_code)};
 
     EXPECT_TRUE(security_.IsValidPairingCode(auth_code_base64));
   }
@@ -223,8 +220,7 @@
     EXPECT_CALL(callbacks, OnPairingEnd(Eq(session_id)));
     crypto::P224EncryptedKeyExchange spake{
         crypto::P224EncryptedKeyExchange::kPeerTypeServer, "1234"};
-    std::string client_commitment =
-        chromeos::data_encoding::Base64Encode(spake.GetNextMessage());
+    std::string client_commitment = Base64Encode(spake.GetNextMessage());
     std::string fingerprint, signature;
     // Regardless of whether the commitment is valid or not, we should get a
     // callback indicating that the pairing session is gone.