/*
 * Copyright 2015 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef __TPM2_CPRIRNG_FP_H
#define __TPM2_CPRIRNG_FP_H

LIB_EXPORT CRYPT_RESULT
_cpri__DrbgGetPutState(GET_PUT direction, int bufferSize, BYTE *buffer);
LIB_EXPORT UINT16 _cpri__GenerateRandom(INT32 randomSize, BYTE *buffer);
LIB_EXPORT UINT16 _cpri__GenerateSeededRandom(
    INT32 randomSize,    //   IN: the size of the request
    BYTE *random,        //   OUT: receives the data
    TPM_ALG_ID hashAlg,  //   IN: used by KDF version but not here
    TPM2B *seed,         //   IN: the seed value
    const char *label,   //   IN: a label string (optional)
    TPM2B *partyU,       //   IN: other data (oprtional)
    TPM2B *partyV        //   IN: still more (optional)
    );
LIB_EXPORT CRYPT_RESULT _cpri__StirRandom(INT32 entropySize, BYTE *entropy);
LIB_EXPORT BOOL _cpri__RngStartup(void);

#endif  // __TPM2_CPRIRNG_FP_H