1/*
2 * digestClient.cpp
3 */
4#include "testParams.h"
5#include <Security/Security.h>
6#include <security_cdsa_client/cspclient.h>
7
8/* for malloc debug */
9#define DO_PAUSE	0
10
11int digestClientInit(TestParams *testParams)
12{
13	return 0;
14}
15
16using namespace Security;
17using namespace CssmClient;
18
19int digestClient(TestParams *testParams)
20{
21	unsigned loopNum;
22
23	for(loopNum=0; loopNum<testParams->numLoops; loopNum++) {
24		if(testParams->verbose) {
25			printf("secTrustEval loop %d\n", loopNum);
26		}
27		else if(!testParams->quiet) {
28			printChar(testParams->progressChar);
29		}
30		try {
31			CSP *csp = new CSP(gGuidAppleCSP);
32			uint8 digData[20];
33			Digest *digest = new Digest(*csp, CSSM_ALGID_SHA1);
34			CssmData ptext((char *)"test", 4);
35			CssmData dig(digData, sizeof(digData));
36			digest->digest(ptext, dig);
37			if(dig.Length != 20) {
38				printf("***digest length error\n");
39				return 1;
40			}
41			delete digest;
42			delete csp;
43		}
44		catch(...) {
45			printf("***CSP/Digest client threw exeption\n");
46			return 1;
47		}
48
49		#if	DO_PAUSE
50		fpurge(stdin);
51		printf("Hit CR to continue: ");
52		getchar();
53		#endif
54	}	/* outer loop */
55	#if HOLD_SEARCH_LIST
56	CFRelease(sl);
57	#endif
58	return 0;
59}
60