+++ /dev/null
-/*
- * Copyright (c) 1999, 2000-2001 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-/*
- File: yarrow.h
-
- Contains: Public header file for Counterpane's Yarrow Pseudo-random
- number generator.
-
- Written by: Counterpane, Inc.
-
- Copyright: (c) 2000 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- 02/10/99 dpm Created, based on Counterpane source.
-
-*/
-/*
- yarrow.h
-
- Main header file for Counterpane's Yarrow Pseudo-random number generator.
-*/
-
-#ifndef __YARROW_H__
-#define __YARROW_H__
-
-#if defined(macintosh) || defined(__APPLE__)
-#include "WindowsTypesForMac.h"
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Error Codes */
-typedef enum prng_error_status {
- PRNG_SUCCESS = 0,
- PRNG_ERR_REINIT,
- PRNG_ERR_WRONG_CALLER,
- PRNG_ERR_NOT_READY,
- PRNG_ERR_NULL_POINTER,
- PRNG_ERR_LOW_MEMORY,
- PRNG_ERR_OUT_OF_BOUNDS,
- PRNG_ERR_COMPRESSION,
- PRNG_ERR_NOT_ENOUGH_ENTROPY,
- PRNG_ERR_MUTEX,
- PRNG_ERR_TIMEOUT,
- PRNG_ERR_PROGRAM_FLOW
-} prng_error_status;
-
-/*
- * Entropy sources
- */
-enum user_sources {
- CLIENT_SOURCE = 0,
- ENTROPY_FILE_SOURCE,
- SYSTEM_SOURCE,
- USER_SOURCES /* Leave as last source */
-};
-
-
-/* Declare YARROWAPI as __declspec(dllexport) before
- including this file in the actual DLL */
-#ifndef YARROWAPI
-#if defined(macintosh) || defined(__APPLE__)
-#define YARROWAPI
-#else
-#define YARROWAPI __declspec(dllimport)
-#endif
-#endif
-
-/* Public function forward declarations */
-
-#if defined(macintosh) || defined(__APPLE__)
-/*
- * Mac changes:
- * 1. PrngRef context for all functions. Thus no global variables.
- * 2. Strong enum typing (prng_error_status instead of int return).
- */
-struct PRNG;
-typedef struct PRNG *PrngRef;
-
-YARROWAPI prng_error_status
-prngInitialize(
- PrngRef *prng);
-YARROWAPI prng_error_status
-prngDestroy(
- PrngRef prng);
-YARROWAPI prng_error_status
-prngOutput(
- PrngRef prng,
- BYTE *outbuf,
- UINT outbuflen);
-/* this one has no context */
-YARROWAPI prng_error_status
-prngStretch(
- BYTE *inbuf,
- UINT inbuflen,
- BYTE *outbuf,
- UINT outbuflen);
-YARROWAPI prng_error_status
-prngInput(
- PrngRef prng,
- BYTE *inbuf,
- UINT inbuflen,
- UINT poolnum,
- UINT estbits);
-YARROWAPI prng_error_status
-prngForceReseed(
- PrngRef prng,
- LONGLONG ticks);
-YARROWAPI prng_error_status
-prngAllowReseed(
- PrngRef prng,
- LONGLONG ticks);
-YARROWAPI prng_error_status
-prngProcessSeedBuffer(
- PrngRef prng,
- BYTE *buf,
- LONGLONG ticks);
-YARROWAPI prng_error_status
-prngSlowPoll(
- PrngRef prng,
- UINT pollsize);
-#else
-/* original Counterpane API */
-YARROWAPI int prngOutput(BYTE *outbuf,UINT outbuflen);
-YARROWAPI int prngStretch(BYTE *inbuf,UINT inbuflen,BYTE *outbuf,UINT outbuflen);
-YARROWAPI int prngInput(BYTE *inbuf,UINT inbuflen,UINT poolnum,UINT estbits);
-YARROWAPI int prngForceReseed(LONGLONG ticks);
-YARROWAPI int prngAllowReseed(LONGLONG ticks);
-YARROWAPI int prngProcessSeedBuffer(BYTE *buf,LONGLONG ticks);
-YARROWAPI int prngSlowPoll(UINT pollsize);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif