blob: 14a4175ccab536001d761ffb2c02c3007c2673b1 [file] [log] [blame]
// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Unit tests for Credentials.
#include "cryptohome/credentials.h"
#include <string.h> // For memset(), memcpy(), memcmp().
#include <base/strings/string_number_conversions.h>
#include <brillo/secure_blob.h>
#include <gtest/gtest.h>
#include <string>
using brillo::SecureBlob;
namespace cryptohome {
const char kFakeUser[] = "fakeuser";
const char kFakePasskey[] = "176c1e698b521373d77ce655d2e56a1d";
// salt must have even number of characters.
const char kFakeSystemSalt[] = "01234567890123456789";
TEST(CredentialsTest, UsernameTest) {
char username[80];
snprintf(username, sizeof(username), "%s%s", kFakeUser, "@gmail.com");
Credentials credentials(username, SecureBlob(kFakePasskey));
std::string full_username = credentials.username();
EXPECT_EQ(0, strcmp(username, full_username.c_str()));
}
TEST(CredentialsTest, GetObfuscatedUsernameTest) {
Credentials credentials(kFakeUser, SecureBlob(kFakePasskey));
brillo::SecureBlob fake_salt;
EXPECT_TRUE(
brillo::SecureBlob::HexStringToSecureBlob(kFakeSystemSalt, &fake_salt));
EXPECT_EQ("bb0ae3fcd181eefb861b4f0ee147a316e51d9f04",
credentials.GetObfuscatedUsername(fake_salt));
}
TEST(CredentialsTest, PasskeyTest) {
Credentials credentials(kFakeUser, SecureBlob(kFakePasskey));
const SecureBlob passkey = credentials.passkey();
EXPECT_EQ(strlen(kFakePasskey), passkey.size());
EXPECT_EQ(0, memcmp(kFakePasskey, passkey.data(), passkey.size()));
}
} // namespace cryptohome