void NdnSigner::sign( Interest& interest ) const { //////// configure key locator /////////// // encode public key std::string keystr; CryptoPP::StringSink sink(keystr); m_public_key.Save(sink); // make key locator and insert key as key digest KeyLocator loc; auto buffer = make_shared<const Buffer>( (uint8_t*)keystr.c_str(), keystr.length() ); loc.setKeyDigest( buffer ); // setup signature info Signature sig = interest.getSignature(); SignatureInfo sinfo = sig.getSignatureInfo(); sinfo.setSignatureType( tlv::SignatureSha256WithRsa); sinfo.setKeyLocator( loc ); sig.setInfo( sinfo ); interest.setSignature( sig ); // sign interest Block sig_block = signBlock( interest.wireEncode() ); // set signature sig.setValue( sig_block ); interest.setSignature( sig ); interest.wireEncode(); }