23 #include "ndn-cxx/security/impl/openssl-helper.hpp"    25 #include <boost/lexical_cast.hpp>    31 class DigestFilter::Impl
    39   : m_impl(make_unique<Impl>())
    41   const EVP_MD* md = detail::digestAlgorithmToEvpMd(algo);
    45   if (EVP_DigestInit_ex(m_impl->ctx, md, 
nullptr) == 0)
    52 DigestFilter::convert(
const uint8_t* 
buf, 
size_t size)
    54   if (EVP_DigestUpdate(m_impl->ctx, buf, size) == 0)
    61 DigestFilter::finalize()
    63   auto buffer = make_unique<OBuffer>(EVP_MAX_MD_SIZE);
    64   unsigned int mdLen = 0;
    66   if (EVP_DigestFinal_ex(m_impl->ctx, buffer->data(), &mdLen) == 0)
    69   buffer->erase(buffer->begin() + mdLen, buffer->end());
    78   return make_unique<DigestFilter>(algo);