diff --git a/.jenkins b/.jenkins
index 52b94c5..0f40e00 100755
--- a/.jenkins
+++ b/.jenkins
@@ -26,7 +26,11 @@
 esac
 
 export CACHE_DIR=${CACHE_DIR:-/tmp}
-[[ $JOB_NAME == *"code-coverage" ]] && export DISABLE_ASAN=yes
+
+if [[ $JOB_NAME == *"code-coverage" ]]; then
+    export DISABLE_ASAN=yes
+    export DISABLE_HEADERS_CHECK=yes
+fi
 
 for file in .jenkins.d/*; do
     [[ -f $file && -x $file ]] || continue
diff --git a/tools/dissect/dissector.cpp b/tools/dissect/dissector.cpp
index 4a64f18..f7c464d 100644
--- a/tools/dissect/dissector.cpp
+++ b/tools/dissect/dissector.cpp
@@ -27,6 +27,7 @@
 #include <map>
 
 #include <ndn-cxx/encoding/tlv.hpp>
+#include <ndn-cxx/encoding/tlv-security.hpp>
 #include <ndn-cxx/util/string-helper.hpp>
 
 namespace ndn::dissect {
@@ -73,35 +74,11 @@
   }
 }
 
+// https://named-data.net/doc/NDN-packet-spec/current/types.html
 static const std::map<uint32_t, std::string_view> TLV_DICT = {
-  {tlv::Interest                     , "Interest"},
-  {tlv::Data                         , "Data"},
-  {tlv::Name                         , "Name"},
-  // Interest packet
-  {tlv::CanBePrefix                  , "CanBePrefix"},
-  {tlv::MustBeFresh                  , "MustBeFresh"},
-  {tlv::ForwardingHint               , "ForwardingHint"},
-  {tlv::Nonce                        , "Nonce"},
-  {tlv::InterestLifetime             , "InterestLifetime"},
-  {tlv::HopLimit                     , "HopLimit"},
-  {tlv::ApplicationParameters        , "ApplicationParameters"},
-  {tlv::InterestSignatureInfo        , "InterestSignatureInfo"},
-  {tlv::InterestSignatureValue       , "InterestSignatureValue"},
-  // Data packet
-  {tlv::MetaInfo                     , "MetaInfo"},
-  {tlv::Content                      , "Content"},
-  {tlv::SignatureInfo                , "SignatureInfo"},
-  {tlv::SignatureValue               , "SignatureValue"},
-  {tlv::ContentType                  , "ContentType"},
-  {tlv::FreshnessPeriod              , "FreshnessPeriod"},
-  {tlv::FinalBlockId                 , "FinalBlockId"},
-  // (Interest)SignatureInfo elements
-  {tlv::SignatureType                , "SignatureType"},
-  {tlv::KeyLocator                   , "KeyLocator"},
-  {tlv::KeyDigest                    , "KeyDigest"},
-  {tlv::SignatureNonce               , "SignatureNonce"},
-  {tlv::SignatureTime                , "SignatureTime"},
-  {tlv::SignatureSeqNum              , "SignatureSeqNum"},
+  {tlv::Interest                        , "Interest"},
+  {tlv::Data                            , "Data"},
+  {tlv::Name                            , "Name"},
   // Name components
   {tlv::GenericNameComponent            , "GenericNameComponent"},
   {tlv::ImplicitSha256DigestComponent   , "ImplicitSha256DigestComponent"},
@@ -112,14 +89,42 @@
   {tlv::VersionNameComponent            , "VersionNameComponent"},
   {tlv::TimestampNameComponent          , "TimestampNameComponent"},
   {tlv::SequenceNumNameComponent        , "SequenceNumNameComponent"},
-  // Deprecated elements
-  {tlv::Selectors                    , "Selectors"},
-  {tlv::MinSuffixComponents          , "MinSuffixComponents"},
-  {tlv::MaxSuffixComponents          , "MaxSuffixComponents"},
-  {tlv::PublisherPublicKeyLocator    , "PublisherPublicKeyLocator"},
-  {tlv::Exclude                      , "Exclude"},
-  {tlv::ChildSelector                , "ChildSelector"},
-  {tlv::Any                          , "Any"},
+  // Interest packet
+  {tlv::CanBePrefix                     , "CanBePrefix"},
+  {tlv::MustBeFresh                     , "MustBeFresh"},
+  {tlv::ForwardingHint                  , "ForwardingHint"},
+  {tlv::Nonce                           , "Nonce"},
+  {tlv::InterestLifetime                , "InterestLifetime"},
+  {tlv::HopLimit                        , "HopLimit"},
+  {tlv::ApplicationParameters           , "ApplicationParameters"},
+  {tlv::InterestSignatureInfo           , "InterestSignatureInfo"},
+  {tlv::InterestSignatureValue          , "InterestSignatureValue"},
+  // Data packet
+  {tlv::MetaInfo                        , "MetaInfo"},
+  {tlv::Content                         , "Content"},
+  {tlv::SignatureInfo                   , "SignatureInfo"},
+  {tlv::SignatureValue                  , "SignatureValue"},
+  {tlv::ContentType                     , "ContentType"},
+  {tlv::FreshnessPeriod                 , "FreshnessPeriod"},
+  {tlv::FinalBlockId                    , "FinalBlockId"},
+  // (Interest)SignatureInfo
+  {tlv::SignatureType                   , "SignatureType"},
+  {tlv::KeyLocator                      , "KeyLocator"},
+  {tlv::KeyDigest                       , "KeyDigest"},
+  {tlv::SignatureNonce                  , "SignatureNonce"},
+  {tlv::SignatureTime                   , "SignatureTime"},
+  {tlv::SignatureSeqNum                 , "SignatureSeqNum"},
+  // Certificate
+  {tlv::ValidityPeriod                  , "ValidityPeriod"},
+  {tlv::NotBefore                       , "NotBefore"},
+  {tlv::NotAfter                        , "NotAfter"},
+  {tlv::AdditionalDescription           , "AdditionalDescription"},
+  {tlv::DescriptionEntry                , "DescriptionEntry"},
+  {tlv::DescriptionKey                  , "DescriptionKey"},
+  {tlv::DescriptionValue                , "DescriptionValue"},
+  // SafeBag
+  {tlv::security::SafeBag               , "SafeBag"},
+  {tlv::security::EncryptedKey          , "EncryptedKey"},
 };
 
 void
@@ -131,17 +136,12 @@
   if (it != TLV_DICT.end()) {
     m_out << it->second;
   }
-  else if (type < tlv::AppPrivateBlock1) {
-    m_out << "RESERVED_1";
-  }
-  else if (tlv::AppPrivateBlock1 <= type && type < 253) {
-    m_out << "APP_TAG_1";
-  }
-  else if (253 <= type && type < tlv::AppPrivateBlock2) {
-    m_out << "RESERVED_3";
+  else if ((type >= tlv::AppPrivateBlock1 && type <= 252) ||
+           type >= tlv::AppPrivateBlock2) {
+    m_out << "UNKNOWN_APP";
   }
   else {
-    m_out << "APP_TAG_3";
+    m_out << "RESERVED";
   }
 
   m_out << ")";
