CommonCryptoSymOffset.c [plain text]
#include <stdio.h>
#include <CommonCrypto/CommonCryptor.h>
#include <CommonCrypto/CommonCryptorSPI.h>
#include "testbyteBuffer.h"
#include "testmore.h"
#include "capabilities.h"
#if (CCSYMOFFSET == 0)
entryPoint(CommonCryptoSymOffset,"CommonCrypto Symmetric Unaligned Testing")
#else
#define ILIKEEMDISBIG 4096
#define ALITTLEONTHESIDE 5
static int kTestTestCount = ALITTLEONTHESIDE;
int CommonCryptoSymOffset(int argc, char *const *argv) {
int accum = 0;
uint8_t iLikeBigBuffs[ILIKEEMDISBIG];
uint8_t andICannotLie[ILIKEEMDISBIG];
uint8_t iLikeEmRoundandBig[ILIKEEMDISBIG];
int i;
size_t moved;
CCCryptorStatus retval;
byteBuffer key = hexStringToBytes("010203040506070809000a0b0c0d0e0f");
plan_tests(kTestTestCount);
for(i=0; i<ALITTLEONTHESIDE; i++) {
retval = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, 0, key->bytes, key->len, NULL, iLikeBigBuffs+i, ILIKEEMDISBIG-16, andICannotLie+i, ILIKEEMDISBIG, &moved);
retval = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, 0, key->bytes, key->len, NULL, andICannotLie+i, moved, iLikeEmRoundandBig+i, ILIKEEMDISBIG, &moved);
if(moved != (ILIKEEMDISBIG-16))
retval = 99;
else if(memcmp(iLikeBigBuffs+i, iLikeEmRoundandBig+i, moved))
retval = 999;
ok(retval == 0, "Encrypt/Decrypt Cycle");
accum += retval;
}
return accum != 0;
}
#endif