#include "enDecrypt.h"
#include "std_defs.h"
#include <strings.h>
#include <stdio.h>
CSSM_RETURN encryptDecryptTest(
CSSM_BOOL forEncrypt,
uint32 keySizeInBits,
uint32 blockSizeInBits,
const uint8 *key, const uint8 *inText,
uint32 inTextLen,
uint8 *outText)
{
u4byte aesKey[8];
uint8 *inPtr = (uint8 *)inText;
uint8 *outPtr = outText;
uint32 blockSizeInBytes = blockSizeInBits / 8;
uint32 blocks = inTextLen / blockSizeInBytes;
if(blockSizeInBits != 128) {
printf("***This AES implementation supports only 128 bit blocks.\n");
return CSSM_ERRCODE_INTERNAL_ERROR;
}
memmove(aesKey, key, keySizeInBits / 8);
set_key(aesKey, keySizeInBits);
for( ; blocks > 0; blocks--) {
if(forEncrypt) {
rEncrypt((u4byte *)inPtr, (u4byte *)outPtr);
}
else {
rDecrypt((u4byte *)inPtr, (u4byte *)outPtr);
}
inPtr += blockSizeInBytes;
outPtr += blockSizeInBytes;
}
return CSSM_OK;
}