GPG random data gathering

Werner Koch wk at
Wed Apr 7 14:36:11 CEST 2004

On Wed, 07 Apr 2004 23:22:09 +1200, Peter Gutmann said:

> close look at it and was unable to get VirtualLock()'ed memory paged out no
> matter what he did.  He also checked with someone who had worked on
> VirtualLock who said that it did indeed prevent the memory from being paged.

That is interesting.  Given that this is a standard Win32 API
function, it is an easy way to add this to gpg.  There is 30 pages
limit per process which is far more than gpg requires.

> page.  My code goes to some lengths to ensure that it never VirtualUnlock()'s
> anything on the same page, although if your keys happen to share a page with
> data that something else VirtualUnlock()'s then that guarantee is gone.  To in

For gpg it is easier because we set a block of memory aside right at
startup and thus we don't need to unlock anything. 

> You can also get nonpageable memory using AWE (Address Windowing Extensions),
> but the interface to that is clunky to say the least.

That's what I had in mind when mentioning a possible new API.



More information about the Gnupg-devel mailing list