aboutsummaryrefslogtreecommitdiffstats
path: root/tests/check_crypting.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check_crypting.c')
-rw-r--r--tests/check_crypting.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/check_crypting.c b/tests/check_crypting.c
new file mode 100644
index 00000000..b8e5e1e0
--- /dev/null
+++ b/tests/check_crypting.c
@@ -0,0 +1,47 @@
+#include <stdlib.h>
+#include <glib.h>
+#include <gmodule.h>
+#include <check.h>
+#include <string.h>
+#include "bitlbee.h"
+#include "crypting.h"
+#include "testsuite.h"
+
+START_TEST(test_check_pass_valid)
+ fail_unless (checkpass ("foo", "acbd18db4cc2f85cedef654fccc4a4d8") == 0);
+ fail_unless (checkpass ("invalidpass", "acbd18db4cc2f85cedef654fccc4a4d8") == -1);
+
+END_TEST
+
+START_TEST(test_hashpass)
+ fail_unless (strcmp(hashpass("foo"), "acbd18db4cc2f85cedef654fccc4a4d8") == 0);
+END_TEST
+
+START_TEST(test_obfucrypt)
+ char *raw = obfucrypt("some line", "bla");
+ fail_unless(strcmp(raw, "\xd5\xdb\xce\xc7\x8c\xcd\xcb\xda\xc6") == 0);
+END_TEST
+
+START_TEST(test_deobfucrypt)
+ char *raw = deobfucrypt("\xd5\xdb\xce\xc7\x8c\xcd\xcb\xda\xc6", "bla");
+ fail_unless(strcmp(raw, "some line") == 0);
+END_TEST
+
+START_TEST(test_obfucrypt_bidirectional)
+ char *plain = g_strdup("this is a line");
+ char *raw = obfucrypt(plain, "foo");
+ fail_unless(strcmp(plain, deobfucrypt(raw, "foo")) == 0);
+END_TEST
+
+Suite *crypting_suite (void)
+{
+ Suite *s = suite_create("Crypting");
+ TCase *tc_core = tcase_create("Core");
+ suite_add_tcase (s, tc_core);
+ tcase_add_test (tc_core, test_check_pass_valid);
+ tcase_add_test (tc_core, test_hashpass);
+ tcase_add_test (tc_core, test_obfucrypt);
+ tcase_add_test (tc_core, test_deobfucrypt);
+ tcase_add_test (tc_core, test_obfucrypt_bidirectional);
+ return s;
+}