summaryrefslogtreecommitdiffstats
path: root/kwallet/backend/tests
diff options
context:
space:
mode:
Diffstat (limited to 'kwallet/backend/tests')
-rw-r--r--kwallet/backend/tests/Makefile.am14
-rw-r--r--kwallet/backend/tests/backendtest.cpp45
-rw-r--r--kwallet/backend/tests/testbf.cpp67
-rw-r--r--kwallet/backend/tests/testsha.cpp43
4 files changed, 169 insertions, 0 deletions
diff --git a/kwallet/backend/tests/Makefile.am b/kwallet/backend/tests/Makefile.am
new file mode 100644
index 000000000..3191b06a8
--- /dev/null
+++ b/kwallet/backend/tests/Makefile.am
@@ -0,0 +1,14 @@
+INCLUDES = -I$(top_srcdir)/kwallet/backend -I$(top_srcdir)/kwallet/client $(all_includes)
+
+AM_LDFLAGS = $(QT_LDFLAGS) $(X_LDFLAGS) $(KDE_RPATH)
+
+check_PROGRAMS = backendtest testbf testsha
+
+METASOURCES = AUTO
+
+LDADD = ../libkwalletbackend.la ../../client/libkwalletclient.la
+backendtest_SOURCES = backendtest.cpp
+
+testbf_SOURCES = testbf.cpp
+
+testsha_SOURCES = testsha.cpp
diff --git a/kwallet/backend/tests/backendtest.cpp b/kwallet/backend/tests/backendtest.cpp
new file mode 100644
index 000000000..a38c8cdb3
--- /dev/null
+++ b/kwallet/backend/tests/backendtest.cpp
@@ -0,0 +1,45 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <kapplication.h>
+#include <qstring.h>
+
+#include "kwalletbackend.h"
+
+int main(int argc, char **argv) {
+ KApplication a(argc, argv, "kwalletbackendtest");
+
+ KWallet::Backend be("ktestwallet");
+ printf("KWalletBackend constructed\n");
+
+ QByteArray apass, bpass, cpass;
+
+ apass.duplicate("apassword", 9);
+ bpass.duplicate("bpassword", 9);
+ cpass.duplicate("cpassword", 9);
+
+ printf("Passwords initialised.\n");
+ int rc = be.close(apass);
+
+ printf("be.close(apass) returned %d (should be -255)\n", rc);
+
+ rc = be.open(bpass);
+
+ printf("be.open(bpass) returned %d (should be 0 or 1)\n", rc);
+
+ rc = be.close(bpass);
+
+ printf("be.close(bpass) returned %d (should be 0)\n", rc);
+
+ rc = be.open(apass);
+
+ printf("be.open(apass) returned %d (should be negative)\n", rc);
+
+ rc = be.open(bpass);
+
+ printf("be.open(bpass) returned %d (should be 0)\n", rc);
+
+ return 0;
+}
+
+
diff --git a/kwallet/backend/tests/testbf.cpp b/kwallet/backend/tests/testbf.cpp
new file mode 100644
index 000000000..12dc74630
--- /dev/null
+++ b/kwallet/backend/tests/testbf.cpp
@@ -0,0 +1,67 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "blowfish.h"
+#include "cbc.h"
+
+
+int main() {
+BlockCipher *bf;
+char data[] = "This is a test.";
+char expect[] = "\x22\x30\x7e\x2f\x42\x28\x44\x01\xda\xdf\x5a\x81\xd7\xe5\x7c\xd0";
+char key[] = "testkey";
+unsigned long et[] = {0x11223344};
+
+ printf("%d: 0x11 == %d and 0x44 == %d\n", ((unsigned char *)et)[0],
+ 0x11, 0x44);
+ bf = new BlowFish();
+// bf = new CipherBlockChain(new BlowFish());
+
+ bf->setKey((void *)key, 7*8);
+
+ if (!bf->readyToGo()) {
+ printf("Error: not ready to go!\n");
+ return -1;
+ }
+
+ printf("About to encrypt...\n"); fflush(stdout);
+ if (-1 == bf->encrypt((void *)data, 8)) {
+ printf("Error: encrypt failed!\n");
+ return -1;
+ }
+ printf("About to encrypt part 2...\n"); fflush(stdout);
+ bf->encrypt((void *)(data+8), 8);
+
+ printf("Encryption done. data[] is now: ");
+ for (int i = 0; i < 16; i++) {
+ printf("0x%x ", data[i]&0xff);
+ if ((data[i]&0xff) != (expect[i]&0xff)) {
+ printf("Error. This byte failed the comparison. It should have been 0x%x.\n", expect[i]&0xff);
+ return -1;
+ }
+ }
+ printf("\n");
+
+ delete bf;
+ bf = new BlowFish();
+// bf = new CipherBlockChain(new BlowFish());
+ bf->setKey((void *)key, 7*8);
+
+ printf("About to decrypt...\n"); fflush(stdout);
+ if (-1 == bf->decrypt((void *)data, 16)) {
+ printf("Error: decrypt failed!\n");
+ return -1;
+ }
+ //bf->decrypt((void *)(data+8), 8);
+
+ printf("All done! Result... data[] = \"%s\"\n", data);
+ if (strcmp(data, "This is a test.")) {
+ printf("ERROR. Decryption failed.\n");
+ return -1;
+ }
+
+ delete bf;
+}
+
+
+
diff --git a/kwallet/backend/tests/testsha.cpp b/kwallet/backend/tests/testsha.cpp
new file mode 100644
index 000000000..70879f015
--- /dev/null
+++ b/kwallet/backend/tests/testsha.cpp
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "sha1.h"
+
+
+int main() {
+SHA1 *sha1;
+unsigned char data[] = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
+unsigned long et[] = {0x11223344};
+int rc;
+
+ printf("%d: 0x11 == %d and 0x44 == %d\n", ((unsigned char *)et)[0],
+ 0x11, 0x44);
+ sha1 = new SHA1();
+
+ if (!sha1->readyToGo()) {
+ printf("Error: not ready to go!\n");
+ return -1;
+ }
+
+ printf("About to process [%s]\n", data);
+ rc = sha1->process(data, strlen((char *)data));
+
+ if (rc != strlen((char *)data)) {
+ printf("Error processing the data. rc=%d\n", rc);
+ } else printf("Done.\n");
+
+const unsigned char *res = sha1->getHash();
+
+ if (res) {
+ for (int i = 0; i < 20; i++) {
+ printf("%.2X", *res++);
+ if (i>0 && (i-1)%2 == 0) printf(" ");
+ }
+ printf("\n");
+ } else printf("Error - getHash() returned NULL!\n");
+
+ delete sha1;
+}
+
+
+