Denys Vlasenko
2013-09-10 12:27:16 UTC
Signed-off-by: Denys Vlasenko <dvlasenk-H+wXaHxf7aLQT0dZR+***@public.gmane.org>
---
src/include/internal_libreport.h | 6 ++++++
src/lib/hash_sha1.c | 19 +++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/src/include/internal_libreport.h b/src/include/internal_libreport.h
index ae46ad4..0f335a3 100644
--- a/src/include/internal_libreport.h
+++ b/src/include/internal_libreport.h
@@ -208,6 +208,12 @@ void sha1_hash(sha1_ctx_t *ctx, const void *buffer, size_t len);
#define sha1_end libreport_sha1_end
void sha1_end(sha1_ctx_t *ctx, void *resbuf);
+/* Helpers to hash a string: */
+#define str_to_sha1 libreport_str_to_sha1
+const uint8_t *str_to_sha1(uint8_t result[SHA1_RESULT_LEN], const char *str);
+#define str_to_sha1str libreport_str_to_sha1str
+const char *str_to_sha1str(char result[SHA1_RESULT_LEN*2 + 1], const char *str);
+
#define xatou libreport_xatou
unsigned xatou(const char *numstr);
diff --git a/src/lib/hash_sha1.c b/src/lib/hash_sha1.c
index f8f85d1..4a604c0 100644
--- a/src/lib/hash_sha1.c
+++ b/src/lib/hash_sha1.c
@@ -224,3 +224,22 @@ static void common64_end(sha1_ctx_t *ctx, int swap_needed)
bufpos = 0;
}
}
+
+/* Utility helpers */
+
+const uint8_t *str_to_sha1(uint8_t hash_bytes[SHA1_RESULT_LEN], const char *str)
+{
+ sha1_ctx_t sha1ctx;
+ sha1_begin(&sha1ctx);
+ sha1_hash(&sha1ctx, str, strlen(str));
+ sha1_end(&sha1ctx, hash_bytes);
+ return hash_bytes;
+}
+
+const char *str_to_sha1str(char result[SHA1_RESULT_LEN*2 + 1], const char *str)
+{
+ uint8_t hash_bytes[SHA1_RESULT_LEN];
+ str_to_sha1(hash_bytes, str);
+ bin2hex(result, (void*)hash_bytes, SHA1_RESULT_LEN)[0] = '\0';
+ return result;
+}
---
src/include/internal_libreport.h | 6 ++++++
src/lib/hash_sha1.c | 19 +++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/src/include/internal_libreport.h b/src/include/internal_libreport.h
index ae46ad4..0f335a3 100644
--- a/src/include/internal_libreport.h
+++ b/src/include/internal_libreport.h
@@ -208,6 +208,12 @@ void sha1_hash(sha1_ctx_t *ctx, const void *buffer, size_t len);
#define sha1_end libreport_sha1_end
void sha1_end(sha1_ctx_t *ctx, void *resbuf);
+/* Helpers to hash a string: */
+#define str_to_sha1 libreport_str_to_sha1
+const uint8_t *str_to_sha1(uint8_t result[SHA1_RESULT_LEN], const char *str);
+#define str_to_sha1str libreport_str_to_sha1str
+const char *str_to_sha1str(char result[SHA1_RESULT_LEN*2 + 1], const char *str);
+
#define xatou libreport_xatou
unsigned xatou(const char *numstr);
diff --git a/src/lib/hash_sha1.c b/src/lib/hash_sha1.c
index f8f85d1..4a604c0 100644
--- a/src/lib/hash_sha1.c
+++ b/src/lib/hash_sha1.c
@@ -224,3 +224,22 @@ static void common64_end(sha1_ctx_t *ctx, int swap_needed)
bufpos = 0;
}
}
+
+/* Utility helpers */
+
+const uint8_t *str_to_sha1(uint8_t hash_bytes[SHA1_RESULT_LEN], const char *str)
+{
+ sha1_ctx_t sha1ctx;
+ sha1_begin(&sha1ctx);
+ sha1_hash(&sha1ctx, str, strlen(str));
+ sha1_end(&sha1ctx, hash_bytes);
+ return hash_bytes;
+}
+
+const char *str_to_sha1str(char result[SHA1_RESULT_LEN*2 + 1], const char *str)
+{
+ uint8_t hash_bytes[SHA1_RESULT_LEN];
+ str_to_sha1(hash_bytes, str);
+ bin2hex(result, (void*)hash_bytes, SHA1_RESULT_LEN)[0] = '\0';
+ return result;
+}
--
1.8.1.4
1.8.1.4