security: Added headers for der encoding.  Added CertificateExtension and CertificateSubjectDescription.
diff --git a/ndn-cpp/encoding/der/visitor/visitor.hpp b/ndn-cpp/encoding/der/visitor/visitor.hpp
new file mode 100644
index 0000000..a251701
--- /dev/null
+++ b/ndn-cpp/encoding/der/visitor/visitor.hpp
@@ -0,0 +1,47 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Yingdi Yu <yingdi@cs.ucla.edu>
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_DER_VISITOR_HPP
+#define NDN_DER_VISITOR_HPP
+
+namespace ndn {
+
+namespace der {
+  
+// TODO: We want to implement an any type, but avoid boost::any which is not in the C++ standard library.
+typedef void *Any;
+
+class DerBool;
+class DerInteger;
+class DerPrintableString;
+class DerBitString;
+class DerNull;
+class DerOctetString;
+class DerOid;
+class DerSequence;
+class DerGtime;
+
+class Visitor
+{
+public:
+  virtual Any visit(DerBool&,             Any) = 0;
+  virtual Any visit(DerInteger&,          Any) = 0;
+  virtual Any visit(DerPrintableString&,  Any) = 0;
+  virtual Any visit(DerBitString&,        Any) = 0;
+  virtual Any visit(DerNull&,             Any) = 0;
+  virtual Any visit(DerOctetString&,      Any) = 0;
+  virtual Any visit(DerOid&,              Any) = 0;
+  virtual Any visit(DerSequence&,         Any) = 0;
+  virtual Any visit(DerGtime&,            Any) = 0;
+};
+
+} // der
+
+}
+
+#endif