apps: Adding ability to ndn::Producer to configure desired fake signature and key locator (key name)

Refs #1008 (http://redmine.named-data.net/)
diff --git a/apps/ndn-producer.cc b/apps/ndn-producer.cc
index 3442546..130b450 100644
--- a/apps/ndn-producer.cc
+++ b/apps/ndn-producer.cc
@@ -44,7 +44,7 @@
 namespace ndn {
 
 NS_OBJECT_ENSURE_REGISTERED (Producer);
-    
+
 TypeId
 Producer::GetTypeId (void)
 {
@@ -62,16 +62,24 @@
                    MakeNameChecker ())
     .AddAttribute ("PayloadSize", "Virtual payload size for Content packets",
                    UintegerValue (1024),
-                   MakeUintegerAccessor(&Producer::m_virtualPayloadSize),
-                   MakeUintegerChecker<uint32_t>())
+                   MakeUintegerAccessor (&Producer::m_virtualPayloadSize),
+                   MakeUintegerChecker<uint32_t> ())
     .AddAttribute ("Freshness", "Freshness of data packets, if 0, then unlimited freshness",
                    TimeValue (Seconds (0)),
                    MakeTimeAccessor (&Producer::m_freshness),
                    MakeTimeChecker ())
+    .AddAttribute ("Signature", "Fake signature, 0 valid signature (default), other values application-specific",
+                   UintegerValue (0),
+                   MakeUintegerAccessor (&Producer::m_signature),
+                   MakeUintegerChecker<uint32_t> ())
+    .AddAttribute ("KeyLocator", "Name to be used for key locator.  If root, then key locator is not used",
+                   NameValue (),
+                   MakeNameAccessor (&Producer::m_keyLocator),
+                   MakeNameChecker ())
     ;
   return tid;
 }
-    
+
 Producer::Producer ()
 {
   // NS_LOG_FUNCTION_NOARGS ();
@@ -87,13 +95,13 @@
   App::StartApplication ();
 
   NS_LOG_DEBUG ("NodeID: " << GetNode ()->GetId ());
-  
+
   Ptr<Fib> fib = GetNode ()->GetObject<Fib> ();
-  
+
   Ptr<fib::Entry> fibEntry = fib->Add (m_prefix, m_face, 0);
 
   fibEntry->UpdateStatus (m_face, fib::FaceMetric::NDN_FIB_GREEN);
-  
+
   // // make face green, so it will be used primarily
   // StaticCast<fib::FibImpl> (fib)->modify (fibEntry,
   //                                        ll::bind (&fib::Entry::UpdateStatus,
@@ -118,13 +126,19 @@
   NS_LOG_FUNCTION (this << interest);
 
   if (!m_active) return;
-    
+
   Ptr<ContentObject> data = Create<ContentObject> (Create<Packet> (m_virtualPayloadSize));
   Ptr<Name> dataName = Create<Name> (interest->GetName ());
   dataName->Append (m_postfix);
   data->SetName (dataName);
   data->SetFreshness (m_freshness);
 
+  data->SetSignature (m_signature);
+  if (m_keyLocator.size () > 0)
+    {
+      data->SetKeyLocator (Create<Name> (m_keyLocator));
+    }
+
   NS_LOG_INFO ("node("<< GetNode()->GetId() <<") respodning with ContentObject:\n" << data->GetName ());
 
   // Echo back FwHopCountTag if exists