From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kwallet/backend/tests/testbf.cpp | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 kwallet/backend/tests/testbf.cpp (limited to 'kwallet/backend/tests/testbf.cpp') 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 +#include +#include +#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; +} + + + -- cgit v1.2.3