blob: 159eaafbc44dd697d6331595586670dad4c20ca2 [file] [log] [blame]
Zhiyi Zhang23564c82017-03-01 10:22:22 -08001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
Davide Pesavento914d05f2019-07-13 16:20:19 -04002/*
swa770de007bc2020-03-24 21:26:21 -07003 * Copyright (c) 2017-2020, Regents of the University of California.
Zhiyi Zhang23564c82017-03-01 10:22:22 -08004 *
5 * This file is part of ndncert, a certificate management system based on NDN.
6 *
7 * ndncert is free software: you can redistribute it and/or modify it under the terms
8 * of the GNU General Public License as published by the Free Software Foundation, either
9 * version 3 of the License, or (at your option) any later version.
10 *
11 * ndncert is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 * PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 *
15 * You should have received copies of the GNU General Public License along with
16 * ndncert, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * See AUTHORS.md for complete list of ndncert authors and contributors.
19 */
20
Zhiyi Zhang23564c82017-03-01 10:22:22 -080021#include "client-module.hpp"
22#include "challenge-module.hpp"
Zhiyi Zhangaf7c2902019-03-14 22:13:21 -070023#include "ca-module.hpp"
Zhiyi Zhang5d80e1e2020-09-25 11:34:54 -070024#include "test-common.hpp"
Zhiyi Zhang23564c82017-03-01 10:22:22 -080025
26namespace ndn {
27namespace ndncert {
28namespace tests {
29
Zhiyi Zhangaf7c2902019-03-14 22:13:21 -070030BOOST_FIXTURE_TEST_SUITE(TestClientModule, IdentityManagementTimeFixture)
Zhiyi Zhang23564c82017-03-01 10:22:22 -080031
32BOOST_AUTO_TEST_CASE(ClientModuleInitialize)
33{
Zhiyi Zhangaf7c2902019-03-14 22:13:21 -070034 ClientModule client(m_keyChain);
Zhiyi Zhang23564c82017-03-01 10:22:22 -080035 client.getClientConf().load("tests/unit-tests/client.conf.test");
36 BOOST_CHECK_EQUAL(client.getClientConf().m_caItems.size(), 2);
37}
38
Zhiyi Zhangaf7c2902019-03-14 22:13:21 -070039BOOST_AUTO_TEST_CASE(Probe)
Zhiyi Zhang23564c82017-03-01 10:22:22 -080040{
Zhiyi Zhangaf7c2902019-03-14 22:13:21 -070041 ClientModule client(m_keyChain);
Zhiyi Zhang23564c82017-03-01 10:22:22 -080042 client.getClientConf().load("tests/unit-tests/client.conf.test");
43
Zhiyi Zhang10130782018-02-01 18:28:49 -080044 auto identity = addIdentity(Name("/site"));
Zhiyi Zhang23564c82017-03-01 10:22:22 -080045 auto key = identity.getDefaultKey();
46 auto cert = key.getDefaultCertificate();
47
48 ClientCaItem item;
Yufeng Zhang424d0362019-06-12 16:48:27 -070049 item.m_probe = "email:uid:name";
Suyong Won256c9062020-05-11 02:45:56 -070050 item.m_caPrefix = Name("/site");
Zhiyi Zhang23564c82017-03-01 10:22:22 -080051 item.m_anchor = cert;
52 client.getClientConf().m_caItems.push_back(item);
53
Yufeng Zhang424d0362019-06-12 16:48:27 -070054 auto firstInterest = client.generateProbeInterest(item, "zhiyi@cs.ucla.edu:987654321:Zhiyi Zhang");
Davide Pesavento914d05f2019-07-13 16:20:19 -040055 BOOST_CHECK(firstInterest->getName().at(-1).isParametersSha256Digest());
56 // ignore the last name component (ParametersSha256Digest)
swa770de007bc2020-03-24 21:26:21 -070057 BOOST_CHECK_EQUAL(firstInterest->getName().getPrefix(-1), "/site/CA/PROBE");
Suyong Won7968f7a2020-05-12 01:01:25 -070058 BOOST_CHECK_EQUAL(readString(firstInterest->getApplicationParameters().get(tlv_parameter_value)),
Zhiyi Zhangaf7c2902019-03-14 22:13:21 -070059 "zhiyi@cs.ucla.edu");
Zhiyi Zhang23564c82017-03-01 10:22:22 -080060}
61
Zhiyi Zhangef6b36a2020-09-22 21:20:59 -070062// BOOST_AUTO_TEST_CASE(GenProbeRequestJson)
63// {
64// ClientModule client(m_keyChain);
65// client.getClientConf().load("tests/unit-tests/client.conf.test");
Yufeng Zhang424d0362019-06-12 16:48:27 -070066
Zhiyi Zhangef6b36a2020-09-22 21:20:59 -070067// auto identity = addIdentity(Name("/site"));
68// auto key = identity.getDefaultKey();
69// auto cert = key.getDefaultCertificate();
Yufeng Zhang424d0362019-06-12 16:48:27 -070070
Zhiyi Zhangef6b36a2020-09-22 21:20:59 -070071// ClientCaItem item;
72// item.m_probe = "email:uid:name";
73// item.m_caPrefix = Name("/site");
74// item.m_anchor = cert;
75// client.getClientConf().m_caItems.push_back(item);
Yufeng Zhang424d0362019-06-12 16:48:27 -070076
Zhiyi Zhangef6b36a2020-09-22 21:20:59 -070077// auto interestPacket = client.genProbeRequestJson(item, "yufeng@ucla.edu:123456789:Yufeng Zhang");
78// BOOST_CHECK_EQUAL(interestPacket.get("email", ""), "yufeng@ucla.edu");
79// BOOST_CHECK_EQUAL(interestPacket.get("uid", ""), "123456789");
80// BOOST_CHECK_EQUAL(interestPacket.get("name", ""), "Yufeng Zhang");
81// }
Yufeng Zhang424d0362019-06-12 16:48:27 -070082
Zhiyi Zhang23564c82017-03-01 10:22:22 -080083BOOST_AUTO_TEST_SUITE_END() // TestClientModule
84
85} // namespace tests
86} // namespace ndncert
87} // namespace ndn