diff --git a/ndn-cpp/encoding/der/visitor/certificate-data-visitor.cpp b/ndn-cpp/encoding/der/visitor/certificate-data-visitor.cpp
index e2ea049..bddf20c 100644
--- a/ndn-cpp/encoding/der/visitor/certificate-data-visitor.cpp
+++ b/ndn-cpp/encoding/der/visitor/certificate-data-visitor.cpp
@@ -35,9 +35,9 @@
   // _LOG_DEBUG("CertificateDataVisitor::visit");
 
   const DerNodePtrList& children = derSeq.getChildren();
-  CertValidityVisitor validityVisitor;
+  CertificateValidityVisitor validityVisitor;
   children[0]->accept(validityVisitor, param);
-  CertSubjectVisitor subjectVisitor;
+  CertificateSubjectVisitor subjectVisitor;
   children[1]->accept(subjectVisitor, param);
   PublicKeyVisitor pubkeyVisitor;
   Certificate* certData = ndnboost::any_cast<Certificate*>(param);
@@ -45,7 +45,7 @@
       
   if(children.size() > 3)
     {
-      CertExtensionVisitor extnVisitor;
+      CertificateExtensionVisitor extnVisitor;
       children[3]->accept(extnVisitor, param);
     }
 }
@@ -54,7 +54,7 @@
  * CertValidityVisitor
  */
 void 
-CertValidityVisitor::visit(DerSequence& derSeq, ndnboost::any param)
+CertificateValidityVisitor::visit(DerSequence& derSeq, ndnboost::any param)
 {
   // _LOG_DEBUG("CertValidityVisitor::visit");
   
@@ -78,7 +78,7 @@
  * CertSubDescryptVisitor
  */
 void
-CertSubDescryptVisitor::visit(DerSequence& derSeq, ndnboost::any param)
+CertificateSubjectDescriptionVisitor::visit(DerSequence& derSeq, ndnboost::any param)
 {
   Certificate* certData = ndnboost::any_cast<Certificate*>(param); 
   
@@ -98,13 +98,13 @@
  * CertSubjectVisitor
  */
 void 
-CertSubjectVisitor::visit(DerSequence& derSeq, ndnboost::any param)
+CertificateSubjectVisitor::visit(DerSequence& derSeq, ndnboost::any param)
 {
   // _LOG_DEBUG("CertSubjectVisitor::visit");
 
   const DerNodePtrList& children = derSeq.getChildren();
   
-  CertSubDescryptVisitor descryptVisitor;
+  CertificateSubjectDescriptionVisitor descryptVisitor;
 
   DerNodePtrList::const_iterator it = children.begin();
 
@@ -118,7 +118,7 @@
  * CertExtnEntryVisitor
  */
 void 
-CertExtnEntryVisitor::visit(DerSequence& derSeq, ndnboost::any param)
+CertificateExtensionEntryVisitor::visit(DerSequence& derSeq, ndnboost::any param)
 {
   Certificate* certData = ndnboost::any_cast<Certificate*>(param); 
   
@@ -139,11 +139,11 @@
  * CertExtensionVisitor
  */
 void 
-CertExtensionVisitor::visit(DerSequence& derSeq, ndnboost::any param)
+CertificateExtensionVisitor::visit(DerSequence& derSeq, ndnboost::any param)
 {
   const DerNodePtrList& children = derSeq.getChildren();
   
-  CertExtnEntryVisitor extnEntryVisitor;
+  CertificateExtensionEntryVisitor extnEntryVisitor;
 
   DerNodePtrList::const_iterator it = children.begin();
 
diff --git a/ndn-cpp/encoding/der/visitor/certificate-data-visitor.hpp b/ndn-cpp/encoding/der/visitor/certificate-data-visitor.hpp
index 3df60be..ec73bd7 100644
--- a/ndn-cpp/encoding/der/visitor/certificate-data-visitor.hpp
+++ b/ndn-cpp/encoding/der/visitor/certificate-data-visitor.hpp
@@ -19,27 +19,27 @@
   virtual void visit(DerSequence&,         ndnboost::any);
 };
 
-class CertValidityVisitor : public VoidVisitor {
+class CertificateValidityVisitor : public VoidVisitor {
 public:
   virtual void visit(DerSequence&,         ndnboost::any);
 };
 
-class CertSubDescryptVisitor : public VoidVisitor {
+class CertificateSubjectDescriptionVisitor : public VoidVisitor {
 public:
   virtual void visit(DerSequence&,         ndnboost::any);
 };
 
-class CertSubjectVisitor : public VoidVisitor {
+class CertificateSubjectVisitor : public VoidVisitor {
 public:
   virtual void visit(DerSequence&,         ndnboost::any);
 };
 
-class CertExtnEntryVisitor : public VoidVisitor {
+class CertificateExtensionEntryVisitor : public VoidVisitor {
 public:
   virtual void visit(DerSequence&,         ndnboost::any);
 };
 
-class CertExtensionVisitor : public VoidVisitor {
+class CertificateExtensionVisitor : public VoidVisitor {
 public:
   virtual void visit(DerSequence&,         ndnboost::any);
 };
