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
11 namespace remoting {
12
13 class PinHashTest : public testing::Test {
14 };
15
TEST_F(PinHashTest,KnownHashValue)16 TEST_F(PinHashTest, KnownHashValue) {
17 std::string hash = MakeHostPinHash("Host ID", "1234");
18 ASSERT_EQ("hmac:bk6RVRFLpLO89mr4QPHSg8CemUUtI90r2F0VfvTmWLI=", hash);
19 }
20
TEST_F(PinHashTest,VerifyHostPinHash)21 TEST_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