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