blob: c71b369606ee88b23b77f2017d2666c9a609f5c0 [file] [log] [blame]
//
// Created by Tyler on 10/6/20.
//
#include "assignment-hash.hpp"
#include <ndn-cxx/util/sha256.hpp>
namespace ndn {
namespace ndncert {
NDNCERT_REGISTER_FUNCFACTORY(AssignmentHash, "hash");
AssignmentHash::AssignmentHash(const std::string& format)
: NameAssignmentFuncFactory("hash", format)
{}
std::vector<PartialName>
AssignmentHash::assignName(const std::vector<std::tuple<std::string, std::string>>& params)
{
std::vector<PartialName> resultList;
Name result;
for (const auto& item : m_nameFormat) {
auto it = std::find_if(params.begin(), params.end(),
[&](const std::tuple<std::string, std::string>& e) { return std::get<0>(e) == item; });
if (it != params.end()) {
util::Sha256 digest;
digest << std::get<1>(*it);
result.append(digest.toString());
}
else {
return resultList;
}
}
resultList.push_back(std::move(result));
return resultList;
}
} // namespace ndncert
} // namespace ndn