[fsbl] add fsbl for cv181x/cv180x
Change-Id: I6809bc5016d4bc148f62be2ed3f8e928ec111f19
This commit is contained in:
69
fsbl/lib/BigDigits/bigdRand.h
Normal file
69
fsbl/lib/BigDigits/bigdRand.h
Normal file
@ -0,0 +1,69 @@
|
||||
/* $Id: bigdRand.h $ */
|
||||
|
||||
/** @file
|
||||
Interface for BigDigits "bd" random number functions using a "pretty-good" internal RNG
|
||||
|
||||
@par The internal random number generator (RNG)
|
||||
The internal RNG uses a variant of the random number generation algorithm
|
||||
in Appendix A of ANSI X9.31-1998, but using the Tiny Encryption Algorithm (TEAX)
|
||||
instead of the Data Encryption Algorithm (DEA).
|
||||
It uses the current time and process ID as a seed.
|
||||
Although not strictly crypto secure, it is "pretty good", and certainly much better than
|
||||
anything using the built-in rand() function in C. Look at the source code and make your own call.
|
||||
|
||||
@par
|
||||
If you want proper cryptographic security, use the bdRandomSeeded() function with a call to a
|
||||
secure RNG function that you trust.
|
||||
*/
|
||||
|
||||
/***** BEGIN LICENSE BLOCK *****
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* Copyright (c) 2001-16 David Ireland, D.I. Management Services Pty Limited
|
||||
* <http://www.di-mgt.com.au/bigdigits.html>. All rights reserved.
|
||||
*
|
||||
***** END LICENSE BLOCK *****/
|
||||
/*
|
||||
* Last updated:
|
||||
* $Date: 2016-03-31 09:51:00 $
|
||||
* $Revision: 2.6.1 $
|
||||
* $Author: dai $
|
||||
*/
|
||||
|
||||
#ifndef BIGDRAND_H_
|
||||
#define BIGDRAND_H_ 1
|
||||
|
||||
#include "bigd.h"
|
||||
#include "bigdRand.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Generate a single random digit using internal RNG. */
|
||||
bdigit_t bdRandDigit(void);
|
||||
|
||||
/** Generate a random BIGD number of bit length at most \c nbits using internal RNG
|
||||
@param[out] a to receive generated random number
|
||||
@param[in] nbits maximum number of bits
|
||||
@returns Number of digits actually set
|
||||
*/
|
||||
size_t bdRandomBits(BIGD a, size_t nbits);
|
||||
|
||||
/* Added in [v2.4] */
|
||||
/** Generate array of random octets (bytes) using internal RNG
|
||||
* @remarks This function is in the correct form for BD_RANDFUNC.
|
||||
*/
|
||||
int bdRandomOctets(unsigned char *bytes, size_t nbytes, const unsigned char *seed, size_t seedlen);
|
||||
|
||||
/** Generate a number at random from a uniform distribution in [0, n-1] */
|
||||
size_t bdRandomNumber(BIGD a, BIGD n);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BIGDRAND_H_ */
|
||||
Reference in New Issue
Block a user