]> git.saurik.com Git - apple/security.git/blob - SecurityServer/MacYarrow/testHarness/clientTest.cpp
Security-28.tar.gz
[apple/security.git] / SecurityServer / MacYarrow / testHarness / clientTest.cpp
1 /*
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18
19 /*
20 * Simple YarrowClient test.
21 */
22
23 #include <stdlib.h>
24 #include <stdio.h>
25 #include <Security/SecurityYarrowClient.h>
26
27 #define BUFSIZE 32
28
29 static void dumpBuf(UInt8 *buf,
30 unsigned len)
31 {
32 unsigned i;
33
34 printf(" ");
35 for(i=0; i<len; i++) {
36 printf("%02X ", buf[i]);
37 if((i % 8) == 7) {
38 printf("\n ");
39 }
40 }
41 printf("\n");
42 }
43
44 int main()
45 {
46 try {
47 YarrowClient client; // take default constructor
48 UInt8 buf[BUFSIZE];
49 char resp = 'm'; // initial op = get random data
50
51 while(1) {
52 switch(resp) {
53 case 'm':
54 client.getRandomBytes(buf, BUFSIZE);
55 dumpBuf(buf, BUFSIZE);
56 break;
57 case 'a':
58 /* claim it's half random */
59 client.addEntropy(buf, BUFSIZE, BUFSIZE * 4);
60 break;
61 case '\n':
62 goto nextChar;
63 default:
64 printf("Huh?\n");
65 }
66 printf(" a Add this as entropy\n");
67 printf(" m Get more random data\n");
68 printf(" q quit\n");
69 printf("\ncommand me: ");
70 nextChar:
71 resp = getchar();
72 if(resp == 'q') {
73 break;
74 }
75 }
76 }
77 catch (OSErr ortn) {
78 printf("YarrowClient threw OSErr %d\n", ortn);
79 }
80 catch (...) {
81 printf("Whoops! YarrowClient threw an exception!\n");
82 }
83 /* and YarrowClient cleans up on the way out */
84 return 0;
85 }