2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-23 02:28:55 +00:00

96 Commits

Author SHA1 Message Date
Ondřej Surý
99ba29bc52 Change isc_random() to be just PRNG, and add isc_nonce_buf() that uses CSPRNG
This commit reverts the previous change to use system provided
entropy, as (SYS_)getrandom is very slow on Linux because it is
a syscall.

The change introduced in this commit adds a new call isc_nonce_buf
that uses CSPRNG from cryptographic library provider to generate
secure data that can be and must be used for generating nonces.
Example usage would be DNS cookies.

The isc_random() API has been changed to use fast PRNG that is not
cryptographically secure, but runs entirely in user space.  Two
contestants have been considered xoroshiro family of the functions
by Villa&Blackman and PCG by O'Neill.  After a consideration the
xoshiro128starstar function has been used as uint32_t random number
provider because it is very fast and has good enough properties
for our usage pattern.

The other change introduced in the commit is the more extensive usage
of isc_random_uniform in places where the usage pattern was
isc_random() % n to prevent modulo bias.  For usage patterns where
only 16 or 8 bits are needed (DNS Message ID), the isc_random()
functions has been renamed to isc_random32(), and isc_random16() and
isc_random8() functions have been introduced by &-ing the
isc_random32() output with 0xffff and 0xff.  Please note that the
functions that uses stripped down bit count doesn't pass our
NIST SP 800-22 based random test.
2018-05-29 22:58:21 +02:00
Ondřej Surý
3a4f820d62 Replace all random functions with isc_random, isc_random_buf and isc_random_uniform API.
The three functions has been modeled after the arc4random family of
functions, and they will always return random bytes.

The isc_random family of functions internally use these CSPRNG (if available):

1. getrandom() libc call (might be available on Linux and Solaris)
2. SYS_getrandom syscall (might be available on Linux, detected at runtime)
3. arc4random(), arc4random_buf() and arc4random_uniform() (available on BSDs and Mac OS X)
4. crypto library function:
4a. RAND_bytes in case OpenSSL
4b. pkcs_C_GenerateRandom() in case PKCS#11 library
2018-05-16 09:54:35 +02:00
Ondřej Surý
55a10b7acd Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
Michał Kępień
172d0c401e Address GCC 8 -Wformat-truncation warnings 2018-05-10 10:35:01 +02:00
Ondřej Surý
843d389661 Update license headers to not include years in copyright in all applicable files 2018-02-23 10:12:02 +01:00
Mark Andrews
ff30290b48 4804. [port] win32: access() does not work on directories as
required by POSIX.  Supply a alternative in
                        isc_file_isdirwritable. [RT #46394]
2017-11-01 09:29:24 +11:00
Mark Andrews
cb629cdeda more str{n}{cat,cpy} corrections rt45981_stage2 2017-09-14 18:11:56 +10:00
Evan Hunt
114f95089c [master] cleanup strcat/strcpy
4722.	[cleanup]	Clean up uses of strcpy() and strcat() in favor of
			strlcpy() and strlcat() for safety. [RT #45981]
2017-09-13 00:14:37 -07:00
Tinderbox User
18b7760b29 update copyright notice / whitespace 2017-04-24 23:45:33 +00:00
Evan Hunt
2dfb992349 [master] new-zones-directory option
4610.	[func]		The "new-zones-directory" option specifies the
			location of NZF or NZD files for storing
			configuration of zones added by "rndc addzone".
			Thanks to Petr Menšík. [RT #44853]
2017-04-23 23:16:53 -07:00
Mark Andrews
ecfa005085 4403. [bug] Rename variables and arguments that shadow: basename,
clone and gai_error.
2016-06-28 21:25:30 -04:00
Mark Andrews
0c27b3fe77 4401. [misc] Change LICENSE to MPL 2.0. 2016-06-27 14:56:38 +10:00
Tinderbox User
f89adb2c2a update copyright notice / whitespace 2016-05-05 23:45:48 +00:00
Evan Hunt
28053af04c [master] nanosecond-accurate file modification times
4361.	[cleanup]	Where supported, file modification times returned
			by isc_file_getmodtime() are now accurate to the
			nanosecond. [RT #41968]
2016-05-05 12:22:26 -07:00
Mark Andrews
5b1c7ef35b 4264. [bug] Check const of strchr/strrchr assignments match
argument's const status. [RT #41150]
2015-11-20 18:38:24 +11:00
Mark Andrews
4dd41c7d59 4218. [bug] Potential null pointer dereference on out of memory if mmap is not supported. [RT #40777] 2015-09-19 07:12:02 +10:00
Mark Andrews
af669cb4fd 4074. [cleanup] Cleaned up more warnings from gcc -Wshadow. [RT #38708] 2015-02-27 10:55:55 +11:00
Tinderbox User
b624001e36 update copyright notice / whitespace 2015-01-16 23:45:22 +00:00
Mukund Sivaraman
b05a50c852 Make call to open a temporary file name safe during NZF creation (#38331)
Based on a patch sent in by Tony Finch <dot@dotat.at>.

Also fix win32 implementation of isc_file_openunique() to use a random
filename instead of using the process id.
2015-01-16 18:29:23 +05:30
Mark Andrews
70bceacc80 silence signed/unsigned warning 2014-11-21 20:28:17 +11:00
Tinderbox User
d478dbae80 update copyright notice 2014-11-05 23:45:20 +00:00
Evan Hunt
ad9645512c [master] add print.h 2014-11-04 20:43:41 -08:00
Evan Hunt
ce96d4326c [master] new mkeys and nzf naming format
3999.	[func]		"mkeys" and "nzf" files are now named after
			their corresponding views, unless the view name
			contains characters that would be incompatible
			with use in a filename (i.e., slash, backslash,
			or capital letters). If a view name does contain
			these characters, the files will still be named
			using a cryptographic hash of the view name.
			Regardless of this, if a file using the old name
			format is found to exist, it will continue to be
			used. [RT #37704]
2014-11-04 19:43:27 -08:00
Evan Hunt
bff64bf12b [master] correct copyrights and attributions
see RT #35423 for details; highlights:
    - remove license clauses 3 and 4 from NetBSD code
    - remove advertising clause from historical BSD code
    - add openssl advertising attributions
2014-01-24 09:46:00 -08:00
Tinderbox User
431a83fb29 update copyright notice 2014-01-09 23:46:35 +00:00
Evan Hunt
e851ea8260 [master] replace memcpy() with memmove().
3698.	[cleanup]	Replaced all uses of memcpy() with memmove().
			[RT #35120]
2014-01-08 16:39:05 -08:00
Tinderbox User
bea3baa50c update copyright notice 2013-02-27 23:46:03 +00:00
Evan Hunt
f79c13fed8 [master] silence warning due to incorrect assert 2013-02-27 13:52:30 -08:00
Evan Hunt
41bbb34bc2 fix coverity issues
3388.	[bug]		Fixed several Coverity warnings. [RT #30996]
2012-10-02 23:44:03 -07:00
Evan Hunt
05284949f7 handle nonexistent managed-keys-directory
3378.	[bug]		Handle missing 'managed-keys-directory' better.
			[RT #30625]
2012-09-25 18:19:17 -07:00
Mark Andrews
7e9d637131 3373. [bug] win32: open raw files in binary mode. [RT #30944] 2012-09-12 11:44:24 +10:00
ckb
c514f38c80 Conflicts:
lib/dns/dst_parse.c
	lib/isc/win32/file.c
2012-07-05 16:07:31 -05:00
Tinderbox User
3b398443f0 update copyright notice 2012-06-21 23:46:36 +00:00
Evan Hunt
5506903c92 Merge rt28412b
- check for mmap() in configure
- implement isc_file_mmap() and isc_file_munmap() to do
  malloc()/read() and free() when run on systems that do not
  support mmap().
2012-06-21 12:58:46 -07:00
Tinderbox User
8e6b386ab7 update copyright notice 2012-06-20 23:46:40 +00:00
ckb
7829fad409 merging fast format zone files
Conflicts:
	.gitignore
	bin/named/zoneconf.c
	bin/tests/.gitignore
	bin/tests/system/autosign/tests.sh
	bin/tests/system/masterformat/clean.sh
	bin/tests/system/masterformat/ns1/compile.sh
	bin/tests/system/masterformat/tests.sh
	configure
	lib/dns/db.c
	lib/dns/include/dns/db.h
	lib/dns/include/dns/types.h
	lib/dns/master.c
	lib/dns/masterdump.c
	lib/dns/rbt.c
	lib/dns/rbtdb.c
	lib/dns/sdb.c
	lib/dns/sdlz.c
	lib/dns/tests/.cvsignore
	lib/dns/tests/Makefile.in
	lib/dns/win32/libdns.def
	lib/dns/xfrin.c
	lib/dns/zone.c
	lib/export/dns/Makefile.in
	lib/isc/include/isc/file.h
	lib/isc/unix/file.c
	lib/isc/win32/file.c
	lib/isccfg/namedconf.c
2012-06-20 14:13:12 -05:00
Tinderbox User
5fa46bc916 update copyright notice 2012-03-10 23:45:53 +00:00
Mark Andrews
28a8f5b0de set $Id$ 2012-03-08 00:21:15 +11:00
Scott Mann
32babe43eb Ensure that log files are plain files. (RT #22771) 2011-03-04 14:07:03 +00:00
Automatic Updater
135bcc2e42 update copyright notice 2011-01-11 23:47:14 +00:00
Mark Andrews
433e06a25c 3006. [func] Allow dynamically generated TSIG keys to be preserved
across restarts of named.  Initially this is for
                        TSIG keys generated using GSSAPI. [RT #22639]
2011-01-10 05:32:04 +00:00
Evan Hunt
747abb4993 2658. [bug] dnssec-settime and dnssec-revoke didn't process
key file paths correctly. [RT #20078]
2009-08-28 03:13:08 +00:00
Evan Hunt
351b62535d 2609. [func] Simplify the configuration of dynamic zones:
- add ddns-confgen command to generate
			  configuration text for named.conf
			- add zone option "ddns-autoconf yes;", which
			  causes named to generate a TSIG session key
			  and allow updates to the zone using that key
			- add '-l' (localhost) option to nsupdate, which
			  causes nsupdate to connect to a locally-running
			  named process using the session key generated
			  by named
			[RT #19284]
2009-06-10 00:27:22 +00:00
Automatic Updater
bf33eb0b52 update copyright notice 2009-02-16 23:48:04 +00:00
Mark Andrews
e502b133d6 2556. [cleanup] PCI compliance:
* new libisc log module file
                        * isc_dir_chroot() now also changes the working
                          directory to "/".
                        * additional INSISTs
                        * additional logging when files can't be removed.
2009-02-16 02:01:16 +00:00
Automatic Updater
70e5a7403f update copyright notice 2007-06-19 23:47:24 +00:00
Automatic Updater
ec5347e2c7 update copyright notice 2007-06-18 23:47:57 +00:00
Mark Andrews
69fe9aaafd update copyright notice 2005-04-29 00:24:12 +00:00
Rob Austein
ab023a6556 1851. [doc] Doxygen comment markup. [RT #11398] 2005-04-27 04:57:32 +00:00
Mark Andrews
1676408640 pullup silence compiler fixes
ifconfig.sh for Solaris 9
README updates
2004-03-18 02:58:08 +00:00