mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 09:58:01 +00:00
Rather useless entropy-collection functions for Mac OS. These need work.
[originally from svn r2502]
This commit is contained in:
parent
63543733f6
commit
f4384cb6c7
69
mac/macnoise.c
Normal file
69
mac/macnoise.c
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Noise generation for PuTTY's cryptographic random number
|
||||
* generator.
|
||||
*/
|
||||
|
||||
#include <Types.h>
|
||||
#include <Timer.h>
|
||||
|
||||
#include "putty.h"
|
||||
#include "ssh.h"
|
||||
#include "storage.h"
|
||||
|
||||
/*
|
||||
* This function is called once, at PuTTY startup, and will do some
|
||||
* seriously silly things like listing directories and getting disk
|
||||
* free space and a process snapshot.
|
||||
*/
|
||||
|
||||
void noise_get_heavy(void (*func) (void *, int))
|
||||
{
|
||||
|
||||
read_random_seed(func);
|
||||
/* Update the seed immediately, in case another instance uses it. */
|
||||
random_save_seed();
|
||||
}
|
||||
|
||||
void random_save_seed(void)
|
||||
{
|
||||
int len;
|
||||
void *data;
|
||||
|
||||
if (random_active) {
|
||||
random_get_savedata(&data, &len);
|
||||
write_random_seed(data, len);
|
||||
sfree(data);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is called every time the random pool needs
|
||||
* stirring, and will acquire the system time.
|
||||
*/
|
||||
void noise_get_light(void (*func) (void *, int))
|
||||
{
|
||||
UnsignedWide utc;
|
||||
|
||||
Microseconds(&utc);
|
||||
func(&utc, sizeof(utc));
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is called on every keypress or mouse move, and
|
||||
* will add the current time to the noise pool. It gets the scan
|
||||
* code or mouse position passed in, and adds that too.
|
||||
*/
|
||||
void noise_ultralight(unsigned long data)
|
||||
{
|
||||
UnsignedWide utc;
|
||||
|
||||
Microseconds(&utc);
|
||||
random_add_noise(&utc, sizeof(utc));
|
||||
random_add_noise(&data, sizeof(data));
|
||||
}
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* c-file-style: "simon"
|
||||
* End:
|
||||
*/
|
Loading…
Reference in New Issue
Block a user