]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - crypt.c
Use SSL_CPPFLAGS only for compiling crypt.c
[paraslash.git] / crypt.c
diff --git a/crypt.c b/crypt.c
index 99804470783c04e3758e8800f87f083c4e54f623..9085f66b1ad88b316801739fef480c84ab3fb2c4 100644 (file)
--- a/crypt.c
+++ b/crypt.c
@@ -7,13 +7,13 @@
 /** \file crypt.c Openssl-based encryption/decryption routines. */
 
 #include <regex.h>
-#include <dirent.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <openssl/rand.h>
 #include <openssl/err.h>
 #include <openssl/rc4.h>
 #include <openssl/pem.h>
+#include <openssl/sha.h>
 
 #include "para.h"
 #include "error.h"
@@ -364,3 +364,22 @@ int sc_recv_buffer(struct stream_cipher_context *scc, char *buf, size_t size)
                *buf = '\0';
        return n;
 }
+
+/**
+ * Compute the hash of the given input data.
+ *
+ * \param data Pointer to the data to compute the hash value from.
+ * \param len The length of \a data in bytes.
+ * \param hash Result pointer.
+ *
+ * \a hash must point to an area at least \p HASH_SIZE bytes large.
+ *
+ * \sa sha(3), openssl(1).
+ * */
+void hash_function(const char *data, unsigned long len, unsigned char *hash)
+{
+       SHA_CTX c;
+       SHA1_Init(&c);
+       SHA1_Update(&c, data, len);
+       SHA1_Final(hash, &c);
+}