Added C crypto.c for digestSha256
diff --git a/ndn-cpp/c/util/crypto.c b/ndn-cpp/c/util/crypto.c
new file mode 100644
index 0000000..68af3e4
--- /dev/null
+++ b/ndn-cpp/c/util/crypto.c
@@ -0,0 +1,14 @@
+/**
+ * @author: Jeff Thompson
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "crypto.h"
+
+void ndn_digestSha256(const unsigned char *data, unsigned int dataLength, unsigned char *digest)
+{
+  SHA256_CTX sha256;
+  SHA256_Init(&sha256);
+  SHA256_Update(&sha256, data, dataLength);
+  SHA256_Final(digest, &sha256);
+}
diff --git a/ndn-cpp/c/util/crypto.h b/ndn-cpp/c/util/crypto.h
new file mode 100644
index 0000000..0b6be6b
--- /dev/null
+++ b/ndn-cpp/c/util/crypto.h
@@ -0,0 +1,28 @@
+/**
+ * @author: Jeff Thompson
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_CRYPTO_H
+#define NDN_CRYPTO_H
+
+#include <openssl/ssl.h>
+#include <openssl/rsa.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Compute the sha-256 digest of data.
+ * @param data Pointer to the input byte array.
+ * @param dataLength The length of data.
+ * @param digest A pointer to a buffer of size SHA256_DIGEST_LENGTH to receive the data.
+ */
+void ndn_digestSha256(const unsigned char *data, unsigned int dataLength, unsigned char *digest);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif