blob: 219fbc4fab7ded9e82e43fb206c90d8c9bcb576c [file] [log] [blame]
Alexander Afanasyevdfa52c42014-04-24 21:10:11 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
Yingdi Yu9a335352014-01-31 11:57:46 -08002/**
Alexander Afanasyevdfa52c42014-04-24 21:10:11 -07003 * Copyright (c) 2013-2014, Regents of the University of California.
4 * All rights reserved.
5 *
6 * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
7 * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
8 *
9 * This file licensed under New BSD License. See COPYING for detailed information about
10 * ndn-cxx library copyright, permissions, and redistribution restrictions.
Yingdi Yu9a335352014-01-31 11:57:46 -080011 */
12
Yingdi Yu9a335352014-01-31 11:57:46 -080013#include "security/validator-null.hpp"
14#include "security/key-chain.hpp"
15#include "util/time.hpp"
16
Alexander Afanasyevb1db7c62014-04-03 14:57:25 -070017#include "boost-test.hpp"
Yingdi Yu9a335352014-01-31 11:57:46 -080018
19using namespace std;
20
21namespace ndn {
22
Alexander Afanasyevd1b5c412014-03-27 15:03:51 -070023BOOST_AUTO_TEST_SUITE(SecurityTestValidator)
Yingdi Yu9a335352014-01-31 11:57:46 -080024
25void
26onValidated(const shared_ptr<const Data>& data)
27{ BOOST_CHECK(true); }
28
29void
Yingdi Yu40587c02014-02-21 16:40:48 -080030onValidationFailed(const shared_ptr<const Data>& data, const string& failureInfo)
Alexander Afanasyevb1db7c62014-04-03 14:57:25 -070031{
32 BOOST_CHECK(false);
Yingdi Yu40587c02014-02-21 16:40:48 -080033}
Yingdi Yu9a335352014-01-31 11:57:46 -080034
35BOOST_AUTO_TEST_CASE (Null)
36{
37 KeyChainImpl<SecPublicInfoSqlite3, SecTpmFile> keyChain;
Yingdi Yube4150e2014-02-18 13:02:46 -080038
Alexander Afanasyevaa0e7da2014-03-17 14:37:33 -070039 Name identity("/TestValidator/Null");
40 identity.appendVersion();
41
Yingdi Yu2e57a582014-02-20 23:34:43 -080042 BOOST_REQUIRE_NO_THROW(keyChain.createIdentity(identity));
Yingdi Yu9a335352014-01-31 11:57:46 -080043
44 Name dataName = identity;
45 dataName.append("1");
46 shared_ptr<Data> data = make_shared<Data>(dataName);
47
Yingdi Yu2e57a582014-02-20 23:34:43 -080048 BOOST_CHECK_NO_THROW(keyChain.signByIdentity(*data, identity));
Alexander Afanasyevb1db7c62014-04-03 14:57:25 -070049
Yingdi Yu9a335352014-01-31 11:57:46 -080050 ValidatorNull validator;
Alexander Afanasyev0222fba2014-02-09 23:16:02 -080051
52 // data must be a shared pointer
53 validator.validate(*data,
Yingdi Yu96e64062014-04-15 19:57:33 -070054 bind(&onValidated, _1),
55 bind(&onValidationFailed, _1, _2));
Yingdi Yu9a335352014-01-31 11:57:46 -080056
57 keyChain.deleteIdentity(identity);
58}
59
60BOOST_AUTO_TEST_SUITE_END()
61
62} // namespace ndn