// Copyright 2020 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.

#include "cryptohome/challenge_credentials/fido_utils.h"

#include <vector>

#include <gtest/gtest.h>

#include "brillo/secure_blob.h"

namespace cryptohome {

TEST(FidoUtilsTest, GetFidoUserIdTest) {
    std::string user_id{"test_id"};
    auto digest = GetFidoUserId(user_id);

    std::string expected_id{
        "0fb27832c685c35889ba3653994bae061237518c40ed57d3b41eae17bf923137"};
    brillo::SecureBlob blob;
    ASSERT_TRUE(
        brillo::SecureBlob::HexStringToSecureBlob(expected_id,
                                                  &blob));
    std::vector<uint8_t> expected(blob.begin(), blob.end());
    EXPECT_EQ(digest, expected);
}

}  // namespace cryptohome
