blob: 47ab79aff887e35aaa97d5acf77cd913b02cf883 [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
Yingdi Yuf56c68f2014-04-24 21:50:13 -070035BOOST_AUTO_TEST_CASE(Null)
Yingdi Yu9a335352014-01-31 11:57:46 -080036{
Yingdi Yuf56c68f2014-04-24 21:50:13 -070037 BOOST_REQUIRE_NO_THROW(KeyChain("sqlite3", "file"));
38 KeyChain keyChain("sqlite3", "file");
Yingdi Yube4150e2014-02-18 13:02:46 -080039
Alexander Afanasyevaa0e7da2014-03-17 14:37:33 -070040 Name identity("/TestValidator/Null");
41 identity.appendVersion();
42
Yingdi Yu2e57a582014-02-20 23:34:43 -080043 BOOST_REQUIRE_NO_THROW(keyChain.createIdentity(identity));
Yingdi Yu9a335352014-01-31 11:57:46 -080044
45 Name dataName = identity;
46 dataName.append("1");
47 shared_ptr<Data> data = make_shared<Data>(dataName);
48
Yingdi Yu2e57a582014-02-20 23:34:43 -080049 BOOST_CHECK_NO_THROW(keyChain.signByIdentity(*data, identity));
Alexander Afanasyevb1db7c62014-04-03 14:57:25 -070050
Yingdi Yu9a335352014-01-31 11:57:46 -080051 ValidatorNull validator;
Alexander Afanasyev0222fba2014-02-09 23:16:02 -080052
53 // data must be a shared pointer
54 validator.validate(*data,
Yingdi Yu96e64062014-04-15 19:57:33 -070055 bind(&onValidated, _1),
56 bind(&onValidationFailed, _1, _2));
Yingdi Yu9a335352014-01-31 11:57:46 -080057
58 keyChain.deleteIdentity(identity);
59}
60
61BOOST_AUTO_TEST_SUITE_END()
62
63} // namespace ndn