]> git.saurik.com Git - apple/security.git/blob - SecurityServer/MacYarrow/YarrowServer/MacYarrow_OSX.h
Security-29.tar.gz
[apple/security.git] / SecurityServer / MacYarrow / YarrowServer / MacYarrow_OSX.h
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 File: MacYarrow_OSX.h
21
22 Contains: Yarrow RNG, OS X version
23
24 Written by: Doug Mitchell
25
26 Copyright: (c) 2000 by Apple Computer, Inc., all rights reserved.
27
28 Change History (most recent first):
29
30 02/29/00 dpm Created.
31
32 */
33
34 #ifndef _MAC_YARROW_OSX_H_
35 #define _MAC_YARROW_OSX_H_
36
37 #include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h>
38
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42
43 /*
44 * Resusable init. entropyFilePath is optional; if NULL, we'll use our
45 * own hard-coded default.
46 */
47 OSStatus yarrowServerInit(
48 const char *entropyFilePath,
49 unsigned *firstTimeout); // RETURNED, first timeout in milliseconds
50
51 void yarrowServerFini();
52
53 /*
54 * Add some entropy to the pool. The only "known" failure here is a
55 * result of a failure of this library's early init.
56 */
57 OSStatus yarrowAddEntropy(
58 UInt8 *bytes,
59 UInt32 numBytes,
60 UInt32 bitsOfEntropy,
61 unsigned *nextTimeout); // RETURNED, next timeout in ms, 0 means none (leave
62 // timer alone)
63
64 /*
65 * Get some random data. Caller mallocs the memory.
66 */
67 OSStatus yarrowGetRandomBytes(
68 UInt8 *bytes,
69 UInt32 numBytes);
70
71 /*
72 * Handle timer event. Returns next timeout in milliseconds.
73 */
74 unsigned yarrowTimerEvent();
75
76 #ifdef __cplusplus
77 }
78 #endif
79
80 #endif /* _MAC_YARROW_OSX_H_*/
81