summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/sha1.c15
-rw-r--r--common/sha1.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/common/sha1.c b/common/sha1.c
index 0666837..d2005b9 100644
--- a/common/sha1.c
+++ b/common/sha1.c
@@ -161,4 +161,19 @@ void sha1_final(uchar digest[20], sha1_ctx_t* context)
#endif
}
+void
+sha1_string(unsigned char digest[SHA1_LEN], const char* str)
+{
+ sha1_ctx_t sha1;
+ sha1_init(&sha1);
+ sha1_update(&sha1, str, strlen(str));
+ sha1_final(digest, &sha1);
+}
+int
+sha1_strcmp(unsigned char digest[SHA1_LEN], const char* str)
+{
+ unsigned char other[SHA1_LEN];
+ sha1_string(other, str);
+ return memcmp(digest, other, SHA1_LEN);
+}
diff --git a/common/sha1.h b/common/sha1.h
index 37f734f..208b7f2 100644
--- a/common/sha1.h
+++ b/common/sha1.h
@@ -22,6 +22,8 @@ sha1_ctx_t;
void sha1_init(sha1_ctx_t* context);
void sha1_update(sha1_ctx_t* context, const void* data, unsigned int len);
void sha1_final(unsigned char digest[SHA1_LEN], sha1_ctx_t* context);
+void sha1_string(unsigned char digest[SHA1_LEN], const char* str);
+int sha1_strcmp(unsigned char digest[SHA1_LEN], const char* str);
#ifdef __cplusplus
}