1 changed files with 81 additions and 0 deletions
@ -0,0 +1,81 @@ |
|||
#include <mcrypt.h> |
|||
#include <stdlib.h> |
|||
#include <sys/types.h> |
|||
|
|||
#include "runtest.h" |
|||
#include "token/cclass.h" |
|||
#include "token/crypt.h" |
|||
|
|||
|
|||
#define DATA "testdata to be encrypted" |
|||
#define PASSWORD "1234" |
|||
|
|||
|
|||
const char testname[] = "cryptTest"; |
|||
struct CRYPT * crypt = NULL; |
|||
|
|||
|
|||
static |
|||
void |
|||
__setUp() |
|||
{ |
|||
crypt = new(CRYPT, MCRYPT_RIJNDAEL_256, MCRYPT_CFB); |
|||
} |
|||
void (* const setUp)() = __setUp; |
|||
|
|||
static |
|||
void |
|||
__tearDown() |
|||
{ |
|||
delete(&crypt); |
|||
} |
|||
void (* const tearDown)() = __tearDown; |
|||
|
|||
static |
|||
int |
|||
testEncryptDecryptCycle() |
|||
{ |
|||
size_t length = strlen(DATA);; |
|||
void * encrypted = crypt_encrypt(crypt, DATA, PASSWORD, &length); |
|||
void * decrypted = crypt_decrypt(crypt, encrypted, PASSWORD, &length); |
|||
|
|||
ASSERT_NOT_NULL(encrypted); |
|||
ASSERT_NOT_NULL(decrypted); |
|||
ASSERT_MEM_EQUAL(DATA, decrypted, length); |
|||
|
|||
free(encrypted); |
|||
free(decrypted); |
|||
|
|||
return TEST_OK; |
|||
} |
|||
|
|||
static |
|||
int |
|||
testCryptDifference() |
|||
{ |
|||
size_t length1, length2; |
|||
void * encrypted1, * encrypted2; |
|||
|
|||
length1 = length2 = strlen(DATA); |
|||
|
|||
encrypted1 = crypt_encrypt(crypt, DATA, PASSWORD, &length1); |
|||
encrypted2 = crypt_encrypt(crypt, DATA, PASSWORD, &length2); |
|||
|
|||
ASSERT_EQUAL(length1, length2); |
|||
ASSERT_NOT_NULL(encrypted1); |
|||
ASSERT_NOT_NULL(encrypted2); |
|||
ASSERT_MEM_NOT_EQUAL(encrypted1, encrypted2, length1); |
|||
|
|||
free(encrypted1); |
|||
free(encrypted2); |
|||
|
|||
return TEST_OK; |
|||
} |
|||
|
|||
const testfunc tests[] = { |
|||
testEncryptDecryptCycle, |
|||
testCryptDifference |
|||
}; |
|||
const size_t count = FUNCS_COUNT(tests); |
|||
|
|||
// vim: set et ts=4 sw=4: |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue