diff --git a/ndn-cpp/key-chain.cpp b/ndn-cpp/key-chain.cpp
index d195b6f..6d4bc46 100644
--- a/ndn-cpp/key-chain.cpp
+++ b/ndn-cpp/key-chain.cpp
@@ -4,7 +4,7 @@
  */
 
 #include <stdexcept>
-#include <openssl/ssl.h>
+#include <openssl/evp.h>
 #include "c/encoding/binary-xml-data.h"
 #include "encoding/binary-xml-encoder.hpp"
 #include "key-chain.hpp"
@@ -25,7 +25,15 @@
 0x00, 01  
 };
 
-#if 0
+static bool CryptoIsEstablished = false;
+static void establishCrypto()
+{
+  if (!CryptoIsEstablished) {
+    CryptoIsEstablished = true;
+    OpenSSL_add_all_digests();
+  }
+}
+
 /**
  * Set digest to the sha-256 digest of data
  * @param data Pointer to the input byte array.
@@ -34,12 +42,18 @@
  */
 static void setSha256(unsigned char *data, unsigned int dataLength, vector<unsigned char> &digest)
 {
-  unsigned char digestBuffer[SHA256_DIGEST_LENGTH];
-  SHA256_CTX sha256;
-  SHA256_Init(&sha256);
-  SHA256_Update(&sha256, data, dataLength);
-  SHA256_Final(digestBuffer, &sha256);
-  setVector(digest, digestBuffer, sizeof(digestBuffer));
+  establishCrypto();
+  
+  EVP_MD_CTX *context = EVP_MD_CTX_create();
+  EVP_DigestInit_ex(context, EVP_get_digestbyname("SHA256"), NULL);
+  EVP_DigestUpdate(context, data, dataLength);
+  
+  unsigned char digestBuffer[EVP_MAX_MD_SIZE];
+  unsigned int digestLength;
+  EVP_DigestFinal_ex(context, digestBuffer, &digestLength);
+  EVP_MD_CTX_destroy(context);
+
+  setVector(digest, digestBuffer, digestLength);
 }
 
 /**
@@ -78,12 +92,13 @@
   // TODO: use RSA_size to get the proper size of the signature buffer.
   unsigned char signature[1000];
   unsigned int signatureLength;
+#if 0
   RSA *privateKey;
   if (!RSA_sign(NID_sha256, &dataFieldsDigest[0], dataFieldsDigest.size(), signature, &signatureLength, privateKey))
     throw std::runtime_error("Errir in RSA_sign");
   
   data.getSignature().setSignature(signature, signatureLength);
-}
 #endif
+}
 
 }
diff --git a/tests/test-encode-decode-data.cpp b/tests/test-encode-decode-data.cpp
index 2164eb4..559aa60 100644
--- a/tests/test-encode-decode-data.cpp
+++ b/tests/test-encode-decode-data.cpp
@@ -12,6 +12,7 @@
 #include <boost/date_time/gregorian/gregorian.hpp>
 #endif
 #include <ndn-cpp/data.hpp>
+#include <ndn-cpp/key-chain.hpp>
 
 using namespace std;
 using namespace ndn;
@@ -93,7 +94,12 @@
   cout << "signedInfo.publisherPublicKeyDigest: "
        << (data.getSignedInfo().getPublisherPublicKeyDigest().getPublisherPublicKeyDigest().size() > 0 ? 
            toHex(data.getSignedInfo().getPublisherPublicKeyDigest().getPublisherPublicKeyDigest()).c_str() : "<none>") << endl;
-  // TODO: dump timestamp.
+  cout << "signedInfo.timestamp: ";
+  if (data.getSignedInfo().getTimestampMilliseconds() >= 0)
+    cout << data.getSignedInfo().getTimestampMilliseconds() << " milliseconds" << endl;
+    // TODO: dump timestamp real date.
+  else
+    cout << "<none>" << endl;
   cout << "signedInfo.freshnessSeconds: ";
   if (data.getSignedInfo().getFreshnessSeconds() >= 0)
     cout << data.getSignedInfo().getFreshnessSeconds() << endl;
@@ -137,6 +143,14 @@
     reDecodedData.wireDecode(*encoding);
     cout << endl << "Re-decoded Data:" << endl;
     dumpData(reDecodedData);
+  
+    Data freshData(Name("/ndn/abc"));
+    const char *freshContent = "SUCCESS!";
+    freshData.setContent((const unsigned char *)freshContent, strlen(freshContent));
+    
+    KeyChain::defaultSign(freshData);
+    cout << endl << "Freshly signed data:" << endl;
+    dumpData(freshData);
   } catch (exception &e) {
     cout << "exception: " << e.what() << endl;
   }
