diff --git a/payload_signer_unittest.cc b/payload_signer_unittest.cc
index 0a5a883..972bf2d 100644
--- a/payload_signer_unittest.cc
+++ b/payload_signer_unittest.cc
@@ -30,7 +30,7 @@
 // Generated by:
 // echo -n 'This is some data to sign.' | openssl dgst -sha256 -binary |
 //   hexdump -v -e '" " 8/1 "0x%02x, " "\n"'
-const char kDataHash[] = {
+const unsigned char kDataHash[] = {
   0x7a, 0x07, 0xa6, 0x44, 0x08, 0x86, 0x20, 0xa6,
   0xc1, 0xf8, 0xd9, 0x02, 0x05, 0x63, 0x0d, 0xb7,
   0xfc, 0x2b, 0xa0, 0xa9, 0x7c, 0x9d, 0x1d, 0x8c,
@@ -42,7 +42,7 @@
 // echo -n 'This is some data to sign.' | openssl dgst -sha256 -binary |
 //    ~/local/bin/openssl pkeyutl -sign -inkey unittest_key.pem -pkeyopt
 //    digest:sha256 | hexdump -v -e '" " 8/1 "0x%02x, " "\n"'
-const char kDataSignature[] = {
+const unsigned char kDataSignature[] = {
   0x9f, 0x86, 0x25, 0x8b, 0xf3, 0xcc, 0xe3, 0x95,
   0x5f, 0x45, 0x83, 0xb2, 0x66, 0xf0, 0x2a, 0xcf,
   0xb7, 0xaa, 0x52, 0x25, 0x7a, 0xdd, 0x9d, 0x65,
@@ -115,7 +115,7 @@
   const string sig_data = signature.data();
   ASSERT_EQ(arraysize(kDataSignature), sig_data.size());
   for (size_t i = 0; i < arraysize(kDataSignature); i++) {
-    EXPECT_EQ(kDataSignature[i], sig_data[i]);
+    EXPECT_EQ(static_cast<char>(kDataSignature[i]), sig_data[i]);
   }
 }
 
@@ -127,7 +127,9 @@
   EXPECT_TRUE(PayloadSigner::VerifySignature(signature_blob,
                                              kUnittestPublicKeyPath,
                                              &hash_data));
-  vector<char> padded_hash_data(kDataHash, kDataHash + sizeof(kDataHash));
+  vector<char> padded_hash_data(reinterpret_cast<const char *>(kDataHash),
+                                reinterpret_cast<const char *>(kDataHash +
+                                                         sizeof(kDataHash)));
   PayloadSigner::PadRSA2048SHA256Hash(&padded_hash_data);
   ASSERT_EQ(padded_hash_data.size(), hash_data.size());
   for (size_t i = 0; i < padded_hash_data.size(); i++) {
