X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/SecurityTests/cspxutils/macTest/macTest.c?ds=sidebyside diff --git a/SecurityTests/cspxutils/macTest/macTest.c b/SecurityTests/cspxutils/macTest/macTest.c new file mode 100644 index 00000000..3755fa27 --- /dev/null +++ b/SecurityTests/cspxutils/macTest/macTest.c @@ -0,0 +1,175 @@ +/* + * Simple test: + * + * -- generate a key + * -- generate MAC + * -- verify MAC + */ +#include +#include +#include +#include +#include "cspwrap.h" +#include "common.h" +#define DATA_SIZE_DEF 100 +#define LOOPS_DEF 10 + +#define KEY_ALG_DEF CSSM_ALGID_SHA1HMAC +#define MAC_ALG_DEF CSSM_ALGID_SHA1HMAC + +static void usage(char **argv) +{ + printf("usage: %s [options]\n", argv[0]); + printf("Options:\n"); + printf(" d=dataSize (default = %d)\n", DATA_SIZE_DEF); + printf(" l=loops (0=forever)\n"); + printf(" p=pauseInterval (default=0, no pause)\n"); + printf(" m (HMACMD5; default is HMACSHA1)\n"); + printf(" D (CSP/DL; default = bare CSP)\n"); + printf(" q(uiet)\n"); + printf(" v(erbose))\n"); + exit(1); +} + +int main(int argc, char **argv) +{ + int arg; + char *argp; + CSSM_CSP_HANDLE cspHand; + CSSM_CC_HANDLE macHand; + CSSM_RETURN crtn; + CSSM_DATA randData; + CSSM_KEY_PTR symmKey; + CSSM_DATA macData = {0, NULL}; + unsigned loop; + int i; + unsigned dataSize = DATA_SIZE_DEF; + unsigned pauseInterval = 0; + unsigned loops = LOOPS_DEF; + CSSM_BOOL quiet = CSSM_FALSE; + CSSM_BOOL verbose = CSSM_FALSE; + CSSM_BOOL bareCsp = CSSM_TRUE; + CSSM_ALGORITHMS macAlg = MAC_ALG_DEF; + CSSM_ALGORITHMS keyAlg = KEY_ALG_DEF; + + for(arg=1; arg