22 #include <ndn-cxx/util/io.hpp>    23 #include <ndn-cxx/security/transform/public-key.hpp>    24 #include <boost/iostreams/device/array.hpp>    25 #include <boost/iostreams/stream.hpp>    31     "Bv0CqQclCAVkdW1teQgDS0VZCAgtnChyuKo7YAgCTkEICf0AAAFe3zzGfBQJGAEC"    32     "GQQANu6AFf0BJjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOJSa1j6"    33     "JAzobrmtlUdJi38EWQZOigLykf9psImvIu7pa29Q3apBXENcV1E9687FmfY85Ec3"    34     "/onMtN7WG/wiuKiu/9eOr5WslD3VGDgxhesx80ygP0GNsN8FzsMl0lRKduXx3wG4"    35     "MCT8CX7uA4n4JbHY+0QaKUEEMRCiXcRAtF+yKfr+GaVeSemg+i/LR+6CSgpOyH0K"    36     "ogH9nlNhBn1Hxyc8X+B/nEu6P6NNEKkSnhT1jAbWtT1eL3BPGK/HNY19w9k2Ln6/"    37     "OYlhaHfB4m0oR/ePcUguQBwTgYS+40YQYUPivBsSQv3X2/7+gGLhIzA4YppwOooK"    38     "RGhbmL8zF2evmJ8CAwEAARZHGwEBHBgHFggFZHVtbXkIA0tFWQgILZwocriqO2D9"    39     "AP0m/QD+DzIwMTcxMDAyVDIyMzczNv0A/w8yMDE4MTAwMlQyMjM3MzUX/QEAMBUV"    40     "O51BEQwxp646i7IuHkuc1C/LISnOP2+wBFF2Ea1ht9MKjKkyJdmB1/GAOiR3njKd"    41     "UgRjBlownL11EwYDxkPY39RR05TmhF6PkpP81Ro/Vzv7rtSi/dxFIZXCiyuKPRUx"    42     "E0pZelPWVs3zMfqQ+8rWG89Kqs1vM0dglLBzlX9Lbim71TyLmaJaMmmBKv8+eQ22"    43     "CN71sRZOovl1kKcTHpOm61nD3C1n9GRflFtaMAXE/XU4zMJVzBv6XwQl6PCIc9H2"    44     "vjLa28ruVjhMGxqCGhziTC2eR56SUixrnEcbOKT0R+8+0AFnZIjdYglOZPcVwTVB"    45     "G6OxECJOuSoREcd1Ww==;";
    48     {0x17, 0xfd, 0x01, 0x00, 0x93, 0x15, 0x09, 0x49, 0x79, 0x9e, 0xb7, 0x9c, 0xd3, 0xc1, 0xbf, 0x61,
    49      0x89, 0xd5, 0xd9, 0xca, 0xf2, 0xb0, 0x14, 0xae, 0x72, 0x7c, 0x1f, 0x8f, 0xf5, 0xb1, 0x70, 0xd6,
    50      0x9b, 0x8f, 0xf8, 0xd7, 0x2d, 0xbc, 0x92, 0x6f, 0x7d, 0x77, 0x96, 0x46, 0xea, 0xd4, 0x7d, 0x90,
    51      0xbc, 0x7a, 0xeb, 0xe2, 0x03, 0x93, 0xb1, 0xd2, 0x62, 0xec, 0x9d, 0xff, 0x9c, 0x9c, 0x2a, 0x14,
    52      0x7d, 0x23, 0xca, 0x29, 0x3d, 0x15, 0x1a, 0x40, 0x42, 0x2c, 0x59, 0x33, 0x8a, 0xf7, 0xc0, 0x6b,
    53      0xc4, 0x9c, 0xf3, 0xc4, 0x99, 0xa4, 0x1a, 0x60, 0xf5, 0x28, 0x7d, 0x4c, 0xef, 0x43, 0x7d, 0xbd,
    54      0x7d, 0x00, 0x51, 0xee, 0x41, 0xf5, 0x25, 0x80, 0xce, 0xe6, 0x64, 0x4f, 0x75, 0x54, 0xf3, 0xb2,
    55      0x99, 0x9a, 0x0f, 0x93, 0x9a, 0x28, 0x1d, 0xfe, 0x12, 0x8a, 0xe0, 0xc1, 0x02, 0xeb, 0xa4, 0x35,
    56      0x52, 0x88, 0xac, 0x44, 0x1a, 0x44, 0x82, 0x97, 0x4f, 0x5f, 0xa8, 0xd8, 0x9f, 0x67, 0x38, 0xa8,
    57      0x64, 0xb6, 0x62, 0x99, 0xbd, 0x96, 0x3c, 0xf5, 0x86, 0x09, 0x5c, 0x97, 0x6b, 0x8f, 0xae, 0xe0,
    58      0x60, 0xe7, 0x23, 0x98, 0x6a, 0xee, 0xc1, 0xb0, 0x14, 0xbe, 0x46, 0x2c, 0xfb, 0xa7, 0x27, 0x73,
    59      0xe4, 0xf3, 0x26, 0x33, 0xba, 0x99, 0xd4, 0x01, 0x38, 0xa8, 0xf2, 0x9e, 0x87, 0xe0, 0x71, 0x0b,
    60      0x25, 0x44, 0x07, 0x35, 0x88, 0xab, 0x67, 0x27, 0x56, 0x0e, 0xb5, 0xb5, 0xe8, 0x27, 0xb4, 0x49,
    61      0xdc, 0xb8, 0x48, 0x31, 0xff, 0x99, 0x48, 0xab, 0x11, 0xb4, 0xa0, 0xdf, 0x8a, 0x6d, 0xff, 0x43,
    62      0x69, 0x32, 0xa7, 0xbc, 0x63, 0x9d, 0x0f, 0xe0, 0x95, 0x34, 0x36, 0x25, 0x4b, 0x3e, 0x36, 0xbd,
    63      0x81, 0x91, 0x0b, 0x91, 0x9f, 0x3a, 0x04, 0xa2, 0x44, 0x28, 0x19, 0xa1, 0x38, 0x21, 0x4f, 0x25,
    64      0x59, 0x8a, 0x48, 0xc2};
    79   m_tpmLocator = tpmLocator;
   112   std::set<Name> identities;
   113   identities.insert(
"/dummy");
   136                  const uint8_t* key, 
size_t keyLen)
   148     typedef boost::iostreams::stream<boost::iostreams::array_source> arrayStream;
   150     is(reinterpret_cast<const char*>(DUMMY_CERT), 
sizeof(DUMMY_CERT));
   151     auto cert = io::load<v2::Certificate>(is, 
io::BASE64);
   152     return cert->getPublicKey();
   159   keys.insert(
"/dummy/KEY/-%9C%28r%B8%AA%3B%60");
   171   return "/dummy/KEY/-%9C%28r%B8%AA%3B%60";
   193   static shared_ptr<v2::Certificate> cert = 
nullptr;
   194   if (cert == 
nullptr) {
   195     typedef boost::iostreams::stream<boost::iostreams::array_source> arrayStream;
   197     is(reinterpret_cast<const char*>(DUMMY_CERT), 
sizeof(DUMMY_CERT));
   198     cert = io::load<v2::Certificate>(is, 
io::BASE64);
   207   std::set<Name> certs;
   208   certs.insert(
"/dummy/KEY/-%9C%28r%B8%AA%3B%60/self/%FD%00%00%01%5E%DF%3Bv%01");
   220   static shared_ptr<v2::Certificate> cert = 
nullptr;
   221   if (cert == 
nullptr) {
   222     typedef boost::iostreams::stream<boost::iostreams::array_source> arrayStream;
   224     is(reinterpret_cast<const char*>(DUMMY_CERT), 
sizeof(DUMMY_CERT));
   225     cert = io::load<v2::Certificate>(is, 
io::BASE64);
   244 DummyKeyHandle::DummyKeyHandle(shared_ptr<transform::PrivateKey> key)
   249 DummyKeyHandle::doSign(
DigestAlgorithm digestAlgorithm, 
const uint8_t* buf, 
size_t size)
 const   255 DummyKeyHandle::doDecrypt(
const uint8_t* cipherText, 
size_t cipherTextLen)
 const   257   throw Error(
"Not supported");
   261 DummyKeyHandle::doDerivePublicKey()
 const   263   throw Error(
"Not supported");
   295 DummyTpm::doHasKey(
const Name& keyName)
 const   300 unique_ptr<tpm::KeyHandle>
   301 DummyTpm::doGetKeyHandle(
const Name& keyName)
 const   303   unique_ptr<tpm::KeyHandle> m_dummyKeyHandle = make_unique<tpm::DummyKeyHandle>(
nullptr);
   304   return m_dummyKeyHandle;
   307 unique_ptr<tpm::KeyHandle>
   308 DummyTpm::doCreateKey(
const Name& identity, 
const KeyParams& params)
   310   unique_ptr<tpm::KeyHandle> m_dummyKeyHandle = make_unique<tpm::DummyKeyHandle>(
nullptr);
   311   return m_dummyKeyHandle;
   315 DummyTpm::doDeleteKey(
const Name& keyName)
   317   throw Error(
"Not supported");
   321 DummyTpm::doExportKey(
const Name& keyName, 
const char* pw, 
size_t pwLen)
   323   throw Error(
"Not supported");
   327 DummyTpm::doImportKey(
const Name& keyName, 
const uint8_t* pkcs8, 
size_t pkcs8Len, 
const char* pw, 
size_t pwLen)
   329   throw Error(
"Not supported");
 static const std::string SCHEME
 
bool hasKey(const Name &keyName) const override
 
Copyright (c) 2011-2015 Regents of the University of California. 
 
The certificate following the certificate format naming convention. 
 
void setTpmLocator(const std::string &tpmLocator) override
 
void removeKey(const Name &keyName) override
 
bool isTerminalMode() const override
 
void addKey(const Name &identity, const Name &keyName, const uint8_t *key, size_t keyLen) override
 
std::set< Name > getIdentities() const override
 
Buffer getKeyBits(const Name &keyName) const override
 
Name getDefaultKeyOfIdentity(const Name &identity) const override
 
std::set< Name > getCertificatesOfKey(const Name &keyName) const override
 
void setDefaultKeyOfIdentity(const Name &identity, const Name &keyName) override
 
bool isTpmLocked() const override
 
DummyPib(const std::string &locator)
 
void clearIdentities() override
 
Catch-all error for security policy errors that don't fit in other categories. 
 
static std::string getScheme()
 
static const uint8_t DUMMY_CERT[]
 
void removeCertificate(const Name &certName) override
 
void addCertificate(const v2::Certificate &certificate) override
 
std::set< Name > getKeysOfIdentity(const Name &identity) const override
 
v2::Certificate getCertificate(const Name &certificateName) const override
 
static const std::string SCHEME
 
bool hasCertificate(const Name &certName) const override
 
static std::string getScheme()
 
bool hasIdentity(const Name &identityName) const override
 
void addIdentity(const Name &identityName) override
 
Represents an absolute name. 
 
void setTerminalMode(bool isTerminal) const override
 
Name getDefaultIdentity() const override
 
void setDefaultCertificateOfKey(const Name &keyName, const Name &certName) override
 
static const uint8_t DUMMY_SIGNATURE[]
 
std::string getTpmLocator() const override
 
NDN_CXX_V2_KEYCHAIN_REGISTER_TPM_BACKEND(DummyTpm)
 
DummyTpm(const std::string &locator)
 
Base class of key parameters. 
 
NDN_CXX_V2_KEYCHAIN_REGISTER_PIB_BACKEND(DummyPib)
 
void setDefaultIdentity(const Name &identityName) override
 
General-purpose automatically managed/resized buffer. 
 
void removeIdentity(const Name &identity) override
 
v2::Certificate getDefaultCertificateOfKey(const Name &keyName) const override
 
shared_ptr< const Buffer > ConstBufferPtr