mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-31 06:01:39 +01:00 
			
		
		
		
	
		
			
	
	
		
			123 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * magic.h - PPP Magic Number definitions. | ||
|  |  * | ||
|  |  * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. | ||
|  |  * | ||
|  |  * Redistribution and use in source and binary forms, with or without | ||
|  |  * modification, are permitted provided that the following conditions | ||
|  |  * are met: | ||
|  |  * | ||
|  |  * 1. Redistributions of source code must retain the above copyright | ||
|  |  *    notice, this list of conditions and the following disclaimer. | ||
|  |  * | ||
|  |  * 2. Redistributions in binary form must reproduce the above copyright | ||
|  |  *    notice, this list of conditions and the following disclaimer in | ||
|  |  *    the documentation and/or other materials provided with the | ||
|  |  *    distribution. | ||
|  |  * | ||
|  |  * 3. The name "Carnegie Mellon University" must not be used to | ||
|  |  *    endorse or promote products derived from this software without | ||
|  |  *    prior written permission. For permission or any legal | ||
|  |  *    details, please contact | ||
|  |  *      Office of Technology Transfer | ||
|  |  *      Carnegie Mellon University | ||
|  |  *      5000 Forbes Avenue | ||
|  |  *      Pittsburgh, PA  15213-3890 | ||
|  |  *      (412) 268-4387, fax: (412) 268-7395 | ||
|  |  *      tech-transfer@andrew.cmu.edu | ||
|  |  * | ||
|  |  * 4. Redistributions of any form whatsoever must retain the following | ||
|  |  *    acknowledgment: | ||
|  |  *    "This product includes software developed by Computing Services | ||
|  |  *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
 | ||
|  |  * | ||
|  |  * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO | ||
|  |  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
|  |  * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE | ||
|  |  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
|  |  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN | ||
|  |  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | ||
|  |  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
|  |  * | ||
|  |  * $Id: magic.h,v 1.5 2003/06/11 23:56:26 paulus Exp $ | ||
|  |  */ | ||
|  | /*****************************************************************************
 | ||
|  | * randm.h - Random number generator header file. | ||
|  | * | ||
|  | * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. | ||
|  | * Copyright (c) 1998 Global Election Systems Inc. | ||
|  | * | ||
|  | * The authors hereby grant permission to use, copy, modify, distribute, | ||
|  | * and license this software and its documentation for any purpose, provided | ||
|  | * that existing copyright notices are retained in all copies and that this | ||
|  | * notice and the following disclaimer are included verbatim in any | ||
|  | * distributions. No written agreement, license, or royalty fee is required | ||
|  | * for any of the authorized uses. | ||
|  | * | ||
|  | * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR | ||
|  | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
|  | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
|  | * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
|  | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
|  | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
|  | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
|  | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
|  | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
|  | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|  | * | ||
|  | ****************************************************************************** | ||
|  | * REVISION HISTORY | ||
|  | * | ||
|  | * 03-01-01 Marc Boucher <marc@mbsi.ca> | ||
|  | *   Ported to lwIP. | ||
|  | * 98-05-29 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc. | ||
|  | *   Extracted from avos. | ||
|  | *****************************************************************************/ | ||
|  | 
 | ||
|  | #include "lwip/opt.h"
 | ||
|  | #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */
 | ||
|  | 
 | ||
|  | #ifndef MAGIC_H
 | ||
|  | #define MAGIC_H
 | ||
|  | 
 | ||
|  | /***********************
 | ||
|  | *** PUBLIC FUNCTIONS *** | ||
|  | ***********************/ | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Initialize the random number generator. | ||
|  |  */ | ||
|  | void magic_init(void); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Randomize our random seed value.  To be called for truely random events | ||
|  |  * such as user operations and network traffic. | ||
|  |  */ | ||
|  | void magic_randomize(void); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Return a new random number. | ||
|  |  */ | ||
|  | u32_t magic(void);	/* Returns the next magic number */ | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Fill buffer with random bytes | ||
|  |  * | ||
|  |  * Use the random pool to generate random data.  This degrades to pseudo | ||
|  |  * random when used faster than randomness is supplied using magic_churnrand(). | ||
|  |  * Thus it's important to make sure that the results of this are not | ||
|  |  * published directly because one could predict the next result to at | ||
|  |  * least some degree.  Also, it's important to get a good seed before | ||
|  |  * the first use. | ||
|  |  */ | ||
|  | void magic_random_bytes(unsigned char *buf, u32_t buf_len); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Return a new random number between 0 and (2^pow)-1 included. | ||
|  |  */ | ||
|  | u32_t magic_pow(u8_t pow); | ||
|  | 
 | ||
|  | #endif /* MAGIC_H */
 | ||
|  | 
 | ||
|  | #endif /* PPP_SUPPORT */
 |