mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-03 21:32:08 +00:00
PPP, magic, enables building without PPP_MD5_RANDM support
The only API difference with and without the PPP_MD5_RANDM support is the availability of the random_bytes() function. Added a random_bytes() function on top of magic() when PPP_MD5_RANDM support is not enabled, thus allowing builds for both cases. PPP_MD5_RANDM is still enabled by default (it was mandatory) if a protocol using encryption is enabled, such as CHAP, EAP, or L2TP auth support.
This commit is contained in:
parent
ced7bef274
commit
d0fa8acf86
@ -2159,16 +2159,11 @@
|
||||
|
||||
/**
|
||||
* PPP_MD5_RANDM==1: Use MD5 for better randomness.
|
||||
* Automatically enabled if CHAP or L2TP AUTH support is enabled.
|
||||
* Enabled by default if CHAP, EAP, or L2TP AUTH support is enabled.
|
||||
*/
|
||||
#ifndef PPP_MD5_RANDM
|
||||
#define PPP_MD5_RANDM 0
|
||||
#define PPP_MD5_RANDM (CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT)
|
||||
#endif
|
||||
#if CHAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT
|
||||
/* MD5 Random is required for CHAP and L2TP AUTH */
|
||||
#undef PPP_MD5_RANDM
|
||||
#define PPP_MD5_RANDM 1
|
||||
#endif /* CHAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT */
|
||||
|
||||
/**
|
||||
* PolarSSL library, used if necessary and not previously disabled
|
||||
|
@ -100,12 +100,6 @@ void magic_randomize(void);
|
||||
*/
|
||||
u32_t magic(void); /* Returns the next magic number */
|
||||
|
||||
/*
|
||||
* Return a new random number between 0 and (2^pow)-1 included.
|
||||
*/
|
||||
u32_t magic_pow(u8_t pow);
|
||||
|
||||
#if PPP_MD5_RANDM
|
||||
/*
|
||||
* Fill buffer with random bytes
|
||||
*
|
||||
@ -116,8 +110,12 @@ u32_t magic_pow(u8_t pow);
|
||||
* least some degree. Also, it's important to get a good seed before
|
||||
* the first use.
|
||||
*/
|
||||
void random_bytes(unsigned char *buf, u32_t len);
|
||||
#endif /* PPP_MD5_RANDM */
|
||||
void 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 */
|
||||
|
||||
|
@ -209,7 +209,7 @@ static u32_t magic_randomseed = 0; /* Seed used for random number generatio
|
||||
* operational. Thus we call it again on the first random
|
||||
* event.
|
||||
*/
|
||||
void magic_init() {
|
||||
void magic_init(void) {
|
||||
magic_randomseed += sys_jiffies();
|
||||
|
||||
/* Initialize the Borland random number generator. */
|
||||
@ -249,10 +249,24 @@ void magic_randomize(void) {
|
||||
* operator or network events in which case it will be pseudo random
|
||||
* seeded by the real time clock.
|
||||
*/
|
||||
u32_t magic() {
|
||||
u32_t magic(void) {
|
||||
return ((((u32_t)rand() << 16) + rand()) + magic_randomseed);
|
||||
}
|
||||
|
||||
/*
|
||||
* random_bytes - Fill a buffer with random bytes.
|
||||
*/
|
||||
void random_bytes(unsigned char *buf, u32_t buf_len) {
|
||||
u32_t new_rand, n;
|
||||
|
||||
while (buf_len > 0) {
|
||||
new_rand = magic();
|
||||
n = LWIP_MIN(buf_len, sizeof(new_rand));
|
||||
MEMCPY(buf, &new_rand, n);
|
||||
buf += n;
|
||||
buf_len -= n;
|
||||
}
|
||||
}
|
||||
#endif /* PPP_MD5_RANDM */
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user