|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
|
| #
1.16 |
|
17-May-2022 |
riastradh |
cprng(9): Note ipl must be at most IPL_SOFTSERIAL now.
|
| #
1.15 |
|
16-Mar-2022 |
riastradh |
cprng(9): Forbid use in hard interrupt context.
May need access to the global entropy pool (infrequently). This way the global entropy pool lock can be lowered to IPL_SOFTSERIAL too, with a little additional work.
|
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
| #
1.14 |
|
17-Aug-2020 |
wiz |
cprng(9): Remove trailing comma.
|
| #
1.13 |
|
17-Aug-2020 |
riastradh |
Update cprng_strong API documentation.
Should maybe just get rid of the flags arguments.
|
| #
1.12 |
|
17-Aug-2020 |
riastradh |
Update cprng(9) man page for CTR_DRBG -> Hash_DRBG change last year.
|
|
Revision tags: phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406
|
| #
1.11 |
|
24-Mar-2020 |
skrll |
Fix cprng_fast64 return type to match code
|
|
Revision tags: netbsd-8-3-RELEASE is-mlppp-base netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
| #
1.10 |
|
19-Feb-2015 |
riastradh |
branches: 1.10.16; 1.10.18; Clarify advice about when to use what parts of cprng(9).
Add security model to specify the difference between cprng_strong and cprng_fast.
Fix code references. cprng_fast now uses ChaCha8, not RC4.
XXX Would have been nice if they had been called cprng and cprng_weak to reduce confusion about which one to use, or even random and weakrandom. Too late for that now, though.
|
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 tls-maxphys-base
|
| #
1.9 |
|
18-Mar-2014 |
riastradh |
branches: 1.9.4; Merge riastradh-drm2 to HEAD.
|
|
Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1
|
| #
1.8 |
|
18-Jul-2013 |
riastradh |
Rework cprng(9) man page to reflect the current state of affairs.
- Remove defunct cprng_strong_getflags/setflags. - Remove defunct cprng_strong_ready. - Document CPRNG_HARD. - Omit cprng_strong structure, which is now opaque. - Specify what can sleep and under what conditions. - Be a little more consistent about some markup.
This is not the whole story (select/kqueue stuff for /dev/random is still omitted), and I plan to change it some more (to split cprng_strong into one routine that unconditionally guarantees as many bytes as you asked, and another routine that may block or return partial reads), but this will do until I find the time for those.
|
|
Revision tags: riastradh-drm2-base
|
| #
1.7 |
|
23-Jun-2013 |
riastradh |
branches: 1.7.2; Fix dangling sentence vestige in cprng(9).
|
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
| #
1.6 |
|
23-Aug-2012 |
drochner |
branches: 1.6.2; fix some signatures
|
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
| #
1.5 |
|
17-Dec-2011 |
wiz |
branches: 1.5.4; Use more markup. Bump date for previous.
|
| #
1.4 |
|
17-Dec-2011 |
tls |
Separate /dev/random pseudodevice implemenation from kernel entropy pool implementation. Rewrite pseudodevice code to use cprng_strong(9).
The new pseudodevice is cloning, so each caller gets bits from a stream generated with its own key. Users of /dev/urandom get their generators keyed on a "best effort" basis -- the kernel will rekey generators whenever the entropy pool hits the high water mark -- while users of /dev/random get their generators rekeyed every time key-length bits are output.
The underlying cprng_strong API can use AES-256 or AES-128, but we use AES-128 because of concerns about related-key attacks on AES-256. This improves performance (and reduces entropy pool depletion) significantly for users of /dev/urandom but does cause users of /dev/random to rekey twice as often.
Also fixes various bugs (including some missing locking and a reseed-counter overflow in the CTR_DRBG code) found while testing this.
For long reads, this generator is approximately 20 times as fast as the old generator (dd with bs=64K yields 53MB/sec on 2Ghz Core2 instead of 2.5MB/sec) and also uses a separate mutex per instance so concurrency is greatly improved. For reads of typical key sizes for modern cryptosystems (16-32 bytes) performance is about the same as the old code: a little better for 32 bytes, a little worse for 16 bytes.
|
| #
1.3 |
|
28-Nov-2011 |
wiz |
Spelling.
|
| #
1.2 |
|
28-Nov-2011 |
wiz |
Whitespace fixes; new sentence, new line; better macro usage. Sort SEE ALSO.
|
| #
1.1 |
|
28-Nov-2011 |
tls |
Add cprng(9) manual page, remove arc4random(9) manual page
|