ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

randm.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002 * randm.h - Random number generator header file.
00003 *
00004 * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc.
00005 * Copyright (c) 1998 Global Election Systems Inc.
00006 *
00007 * The authors hereby grant permission to use, copy, modify, distribute,
00008 * and license this software and its documentation for any purpose, provided
00009 * that existing copyright notices are retained in all copies and that this
00010 * notice and the following disclaimer are included verbatim in any 
00011 * distributions. No written agreement, license, or royalty fee is required
00012 * for any of the authorized uses.
00013 *
00014 * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR
00015 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00016 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
00017 * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00018 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
00019 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00020 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00021 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00022 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00023 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00024 *
00025 ******************************************************************************
00026 * REVISION HISTORY
00027 *
00028 * 03-01-01 Marc Boucher <marc@mbsi.ca>
00029 *   Ported to lwIP.
00030 * 98-05-29 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc.
00031 *   Extracted from avos.
00032 *****************************************************************************/
00033 
00034 #ifndef RANDM_H
00035 #define RANDM_H
00036 
00037 /***********************
00038 *** PUBLIC FUNCTIONS ***
00039 ***********************/
00040 /*
00041  * Initialize the random number generator.
00042  */
00043 void avRandomInit(void);
00044 
00045 /*
00046  * Churn the randomness pool on a random event.  Call this early and often
00047  * on random and semi-random system events to build randomness in time for
00048  * usage.  For randomly timed events, pass a null pointer and a zero length
00049  * and this will use the system timer and other sources to add randomness.
00050  * If new random data is available, pass a pointer to that and it will be
00051  * included.
00052  */
00053 void avChurnRand(char *randData, u32_t randLen);
00054 
00055 /*
00056  * Randomize our random seed value.  To be called for truely random events
00057  * such as user operations and network traffic.
00058  */
00059 #if MD5_SUPPORT
00060 #define avRandomize() avChurnRand(NULL, 0)
00061 #else  /* MD5_SUPPORT */
00062 void avRandomize(void);
00063 #endif /* MD5_SUPPORT */
00064 
00065 /*
00066  * Use the random pool to generate random data.  This degrades to pseudo
00067  * random when used faster than randomness is supplied using churnRand().
00068  * Thus it's important to make sure that the results of this are not
00069  * published directly because one could predict the next result to at
00070  * least some degree.  Also, it's important to get a good seed before
00071  * the first use.
00072  */
00073 void avGenRand(char *buf, u32_t bufLen);
00074 
00075 /*
00076  * Return a new random number.
00077  */
00078 u32_t avRandom(void);
00079 
00080 
00081 #endif /* RANDM_H */

Generated on Sun May 27 2012 04:36:11 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.