1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include <set> 6#include <string> 7 8#include "remoting/host/pin_hash.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11namespace remoting { 12 13class PinHashTest : public testing::Test { 14}; 15 16TEST_F(PinHashTest, KnownHashValue) { 17 std::string hash = MakeHostPinHash("Host ID", "1234"); 18 ASSERT_EQ("hmac:bk6RVRFLpLO89mr4QPHSg8CemUUtI90r2F0VfvTmWLI=", hash); 19} 20 21TEST_F(PinHashTest, VerifyHostPinHash) { 22 std::string host_id1("Host ID 1"); 23 std::string host_id2("Host ID 2"); 24 std::string pin1("1234"); 25 std::string pin2("4321"); 26 ASSERT_TRUE(VerifyHostPinHash(MakeHostPinHash(host_id1, pin1), 27 host_id1, 28 pin1)); 29 ASSERT_FALSE(VerifyHostPinHash(MakeHostPinHash(host_id1, pin1), 30 host_id2, 31 pin1)); 32 ASSERT_FALSE(VerifyHostPinHash(MakeHostPinHash(host_id1, pin1), 33 host_id1, 34 pin2)); 35} 36 37} // namespace remoting 38