remove bind9 port. no longer maintained. also comes with 3.3.

This commit is contained in:
jakob 2003-05-23 16:30:37 +00:00
parent d692b4b7b9
commit 234300f0f0
30 changed files with 0 additions and 1666 deletions

View File

@ -1,82 +0,0 @@
# $OpenBSD: Makefile,v 1.42 2003/04/10 18:08:56 jsyn Exp $
COMMENT= "ISC BIND 9 libraries"
COMMENT-server= "ISC BIND 9 server"
VERSION= 9.2.2rc1
DISTNAME= bind-${VERSION}
FULLPKGNAME= bind-lib-${VERSION}
PKGNAME-server= bind-server-${VERSION}
CATEGORIES= net
MASTER_SITES+= ftp://ftp.isc.org/isc/bind9/${VERSION}/ \
ftp://ftp.epix.net/pub/isc/bind9/${VERSION}/ \
ftp://ftp.nominum.com/pub/isc/bind9/${VERSION}/ \
ftp://ftp.sunet.se/pub/network/isc/bind9/${VERSION}/ \
ftp://ftp.funet.fi/pub/mirrors/ftp.isc.org/isc/bind9/${VERSION}/ \
ftp://ftp.iij.ad.jp/pub/network/isc/bind9/${VERSION}/ \
HOMEPAGE= http://www.isc.org/products/BIND/
MAINTAINER= Jakob Schlyter <jakob@openbsd.org>
PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
.if ${MACHINE_ARCH:Msparc64}
CFLAGS+= -fno-stack-protector
.endif
SEPARATE_BUILD= concurrent
CONFIGURE_STYLE= autoconf
CONFIGURE_ARGS+= --with-libtool ${CONFIGURE_SHARED} \
--localstatedir=/var \
--disable-libbind \
--with-openssl=/usr \
--with-randomdev=/dev/arandom
AUTOCONF_NEW= Yes
MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC}
REGRESS_TARGET= test
MULTI_PACKAGES= -server
SUBPACKAGE?=
FLAVORS= static threads
FLAVOR?=
.if ${SUBPACKAGE} == "-server" && ${FLAVOR} != "static"
RUN_DEPENDS= :bind-lib-${VERSION}:net/bind9
.endif
.if ${FLAVOR:L:Mstatic}
CFLAGS+= "-static"
NO_SHARED_LIBS= Yes
.endif
.if ${FLAVOR:L:Mthreads}
CONFIGURE_ARGS+= --enable-threads
.else
CONFIGURE_ARGS+= --disable-threads
.endif
MISCDOCFILES= dnssec ipv6 migration migration-4to9 \
options rfc-compliance roadmap sdb
post-extract:
rm -fr ${WRKSRC}/lib/bind
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/arm
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/misc
${INSTALL_DATA} ${WRKSRC}/doc/arm/*.html ${PREFIX}/share/doc/bind9/arm
.for file in ${MISCDOCFILES}
${INSTALL_DATA} ${WRKSRC}/doc/misc/${file} ${PREFIX}/share/doc/bind9/misc
.endfor
.include <bsd.port.mk>

View File

@ -1,3 +0,0 @@
MD5 (bind-9.2.2rc1.tar.gz) = e591be8890c53845133577ac7e042fb6
RMD160 (bind-9.2.2rc1.tar.gz) = ae607a8ee7080460896d36ab288688c02e1ff316
SHA1 (bind-9.2.2rc1.tar.gz) = 2d1d980a2d55adb744288bb25eb0d94b14535da1

View File

@ -1,23 +0,0 @@
$OpenBSD: patch-acconfig_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- acconfig.h.orig Tue Oct 23 01:28:07 2001
+++ acconfig.h Tue Jan 21 08:55:10 2003
@@ -67,6 +67,9 @@
/* define if chroot() is available */
#undef HAVE_CHROOT
+/* define if tzset() is available */
+#undef HAVE_TZSET
+
/* define if struct addrinfo exists */
#undef HAVE_ADDRINFO
@@ -75,6 +78,9 @@
/* define if gai_strerror() exists */
#undef HAVE_GAISTRERROR
+
+/* define if arc4random() exists */
+#undef HAVE_ARC4RANDOM
/* define if pthread_setconcurrency() should be called to tell the
* OS how many threads we might want to run.

View File

@ -1,31 +0,0 @@
$OpenBSD: patch-bin_dig_dig_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/dig/dig.c.orig Tue Mar 12 04:55:57 2002
+++ bin/dig/dig.c Tue Jan 21 08:55:12 2003
@@ -162,6 +162,8 @@ help(void) {
" -c class (specify query class)\n"
" -k keyfile (specify tsig key file)\n"
" -y name:key (specify named base64 tsig key)\n"
+" -4 (force IPv4 query transport)\n"
+" -6 (force IPv6 query transport)\n"
" d-opt is of the form +keyword[=value], where keyword is:\n"
" +[no]vc (TCP mode)\n"
" +[no]tcp (TCP mode, alternate syntax)\n"
@@ -911,6 +913,18 @@ dash_option(char *option, char *next, di
return (ISC_FALSE);
case 'n':
nibble = ISC_TRUE;
+ return (ISC_FALSE);
+ case '4':
+ if (have_ipv4)
+ have_ipv6 = ISC_FALSE;
+ else
+ fatal("can't find v4 networking");
+ return (ISC_FALSE);
+ case '6':
+ if (have_ipv6)
+ have_ipv4 = ISC_FALSE;
+ else
+ fatal("can't find v6 networking");
return (ISC_FALSE);
}
if (value == NULL)

View File

@ -1,37 +0,0 @@
$OpenBSD: patch-bin_dig_dighost_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/dig/dighost.c.orig Tue Aug 6 04:40:11 2002
+++ bin/dig/dighost.c Tue Jan 21 08:55:12 2003
@@ -54,6 +54,7 @@
#include <isc/netaddr.h>
#include <isc/netdb.h>
#include <isc/print.h>
+#include <isc/random.h>
#include <isc/result.h>
#include <isc/string.h>
#include <isc/task.h>
@@ -689,7 +690,6 @@ setup_libs(void) {
* just use random() now for getting id values, but doing so
* does NOT ensure that id's can't be guessed.
*/
- srandom(getpid());
result = isc_net_probeipv4();
if (result == ISC_R_SUCCESS)
@@ -1162,6 +1162,7 @@ insert_soa(dig_lookup_t *lookup) {
void
setup_lookup(dig_lookup_t *lookup) {
isc_result_t result;
+ isc_uint32_t id;
int len;
dig_server_t *serv;
dig_query_t *query;
@@ -1275,7 +1276,8 @@ setup_lookup(dig_lookup_t *lookup) {
trying(store, lookup);
INSIST(dns_name_isabsolute(lookup->name));
- lookup->sendmsg->id = (unsigned short)(random() & 0xFFFF);
+ isc_random_get(&id);
+ lookup->sendmsg->id = (unsigned short)id & 0xFFFF;
lookup->sendmsg->opcode = dns_opcode_query;
lookup->msgcounter = 0;
/*

View File

@ -1,31 +0,0 @@
$OpenBSD: patch-bin_named_include_named_globals_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/named/include/named/globals.h.orig Wed Aug 8 22:37:31 2001
+++ bin/named/include/named/globals.h Tue Jan 21 08:55:12 2003
@@ -45,6 +45,7 @@ EXTERN unsigned int ns_g_cpus INIT(0);
EXTERN isc_taskmgr_t * ns_g_taskmgr INIT(NULL);
EXTERN dns_dispatchmgr_t * ns_g_dispatchmgr INIT(NULL);
EXTERN isc_entropy_t * ns_g_entropy INIT(NULL);
+EXTERN isc_entropy_t * ns_g_fallbackentropy INIT(NULL);
/*
* XXXRTH We're going to want multiple timer managers eventually. One
* for really short timers, another for client timers, and one
@@ -97,7 +98,7 @@ EXTERN isc_resourcevalue_t ns_g_initopen
* Misc.
*/
EXTERN isc_boolean_t ns_g_coreok INIT(ISC_TRUE);
-EXTERN const char * ns_g_chrootdir INIT(NULL);
+EXTERN const char * ns_g_chrootdir INIT("/var/named");
EXTERN isc_boolean_t ns_g_foreground INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE);
@@ -105,7 +106,9 @@ EXTERN const char * ns_g_defaultpidfile
"/run/named.pid");
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
"/run/lwresd.pid");
-EXTERN const char * ns_g_username INIT(NULL);
+EXTERN const char * ns_g_pidfile INIT(NS_LOCALSTATEDIR
+ "/run/named.pid");
+EXTERN const char * ns_g_username INIT("named");
#undef EXTERN
#undef INIT

View File

@ -1,88 +0,0 @@
$OpenBSD: patch-bin_named_main_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/named/main.c.orig Mon Aug 5 08:57:01 2002
+++ bin/named/main.c Tue Jan 21 08:55:12 2003
@@ -228,7 +228,7 @@ usage(void) {
fprintf(stderr,
"usage: named [-c conffile] [-d debuglevel] "
"[-f|-g] [-n number_of_cpus]\n"
- " [-p port] [-s] [-t chrootdir] [-u username]\n");
+ " [-p port] [-s] [-t chrootdir] [-u username] [-i pidfile]\n");
}
static void
@@ -325,9 +325,8 @@ parse_command_line(int argc, char *argv[
ns_g_foreground = ISC_TRUE;
ns_g_logstderr = ISC_TRUE;
break;
- /* XXXBEW -i should be removed */
case 'i':
- lwresd_g_defaultpidfile = isc_commandline_argument;
+ ns_g_pidfile = isc_commandline_argument;
break;
case 'l':
ns_g_lwresdonly = ISC_TRUE;
@@ -441,6 +440,9 @@ destroy_managers(void) {
ns_lwresd_shutdown();
isc_entropy_detach(&ns_g_entropy);
+ if (ns_g_fallbackentropy != NULL) {
+ isc_entropy_detach(&ns_g_fallbackentropy);
+ }
/*
* isc_taskmgr_destroy() will block until all tasks have exited,
*/
@@ -453,6 +455,12 @@ static void
setup(void) {
isc_result_t result;
+ /*
+ * Write pidfile before chroot if specified on the command line
+ */
+ if (ns_g_pidfile != NULL)
+ ns_os_preopenpidfile(ns_g_pidfile);
+
/*
* Get the user and group information before changing the root
* directory, so the administrator does not need to keep a copy
@@ -460,6 +468,32 @@ setup(void) {
*/
ns_os_inituserinfo(ns_g_username);
+ /*
+ * Initialize time conversion information and /dev/null
+ */
+ ns_os_tzset();
+ ns_os_opendevnull();
+
+ /*
+ * Initialize system's random device as fallback entropy source
+ * if running chroot'ed.
+ */
+ result = isc_entropy_create(ns_g_mctx, &ns_g_fallbackentropy);
+ if (result != ISC_R_SUCCESS)
+ ns_main_earlyfatal("isc_entropy_create() failed: %s",
+ isc_result_totext(result));
+#ifdef PATH_RANDOMDEV
+ if (ns_g_chrootdir != NULL) {
+ result = isc_entropy_createfilesource(ns_g_fallbackentropy,
+ PATH_RANDOMDEV);
+ if (result != ISC_R_SUCCESS)
+ ns_main_earlywarning("could not open pre-chroot "
+ "entropy source %s: %s",
+ PATH_RANDOMDEV,
+ isc_result_totext(result));
+ }
+#endif
+
ns_os_chroot(ns_g_chrootdir);
/*
@@ -611,6 +645,8 @@ main(int argc, char *argv[]) {
isc_mem_destroy(&ns_g_mctx);
isc_app_finish();
+
+ ns_os_closedevnull();
ns_os_shutdown();

View File

@ -1,60 +0,0 @@
$OpenBSD: patch-bin_named_server_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/named/server.c.orig Wed Jul 10 06:27:23 2002
+++ bin/named/server.c Tue Jan 21 08:55:12 2003
@@ -1956,7 +1956,7 @@ load_configuration(const char *filename,
const char *randomdev = cfg_obj_asstring(obj);
result = isc_entropy_createfilesource(ns_g_entropy,
randomdev);
- if (result != ISC_R_SUCCESS)
+ if (result != ISC_R_SUCCESS && ns_g_chrootdir == NULL) {
isc_log_write(ns_g_lctx,
NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER,
@@ -1965,6 +1965,22 @@ load_configuration(const char *filename,
"%s: %s",
randomdev,
isc_result_totext(result));
+ }
+#ifdef PATH_RANDOMDEV
+ if (result != ISC_R_SUCCESS && ns_g_chrootdir != NULL) {
+ isc_log_write(ns_g_lctx,
+ NS_LOGCATEGORY_GENERAL,
+ NS_LOGMODULE_SERVER,
+ ISC_LOG_INFO,
+ "using pre-chroot entropy source "
+ "%s",
+ PATH_RANDOMDEV);
+ isc_entropy_detach(&ns_g_entropy);
+ isc_entropy_attach(ns_g_fallbackentropy,
+ &ns_g_entropy);
+
+ }
+#endif
}
}
@@ -2049,13 +2065,17 @@ load_configuration(const char *filename,
}
}
- obj = NULL;
- if (ns_config_get(maps, "pid-file", &obj) == ISC_R_SUCCESS)
- ns_os_writepidfile(cfg_obj_asstring(obj), first_time);
- else if (ns_g_lwresdonly)
- ns_os_writepidfile(lwresd_g_defaultpidfile, first_time);
- else
- ns_os_writepidfile(ns_g_defaultpidfile, first_time);
+ if (ns_g_pidfile != NULL) {
+ ns_os_writepidfile(ns_g_pidfile, first_time);
+ } else {
+ obj = NULL;
+ if (ns_config_get(maps, "pid-file", &obj) == ISC_R_SUCCESS)
+ ns_os_writepidfile(cfg_obj_asstring(obj), first_time);
+ else if (ns_g_lwresdonly)
+ ns_os_writepidfile(lwresd_g_defaultpidfile, first_time);
+ else
+ ns_os_writepidfile(ns_g_defaultpidfile, first_time);
+ }
obj = NULL;
result = ns_config_get(maps, "statistics-file", &obj);

View File

@ -1,32 +0,0 @@
$OpenBSD: patch-bin_named_unix_include_named_os_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/named/unix/include/named/os.h.orig Mon Aug 5 08:57:03 2002
+++ bin/named/unix/include/named/os.h Tue Jan 21 08:55:13 2003
@@ -29,6 +29,12 @@ void
ns_os_daemonize(void);
void
+ns_os_opendevnull(void);
+
+void
+ns_os_closedevnull(void);
+
+void
ns_os_chroot(const char *root);
void
@@ -41,9 +47,15 @@ void
ns_os_minprivs(void);
void
+ns_os_preopenpidfile(const char *filename);
+
+void
ns_os_writepidfile(const char *filename, isc_boolean_t first_time);
void
ns_os_shutdown(void);
+
+void
+ns_os_tzset(void);
#endif /* NS_OS_H */

View File

@ -1,181 +0,0 @@
$OpenBSD: patch-bin_named_unix_os_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/named/unix/os.c.orig Mon Aug 5 08:57:03 2002
+++ bin/named/unix/os.c Tue Jan 21 08:55:13 2003
@@ -43,6 +43,9 @@
#include <named/os.h>
static char *pidfile = NULL;
+static int pidfilefd = -1;
+static isc_boolean_t preopenpidfile = ISC_FALSE;
+static int devnullfd = -1;
/*
* If there's no <linux/capability.h>, we don't care about <sys/prctl.h>
@@ -288,7 +291,6 @@ ns_os_init(const char *progname) {
void
ns_os_daemonize(void) {
pid_t pid;
- int fd;
char strbuf[ISC_STRERRORSIZE];
pid = fork();
@@ -322,21 +324,35 @@ ns_os_daemonize(void) {
* and will end up closing the wrong FD. This will be fixed eventually,
* and these calls will be removed.
*/
- fd = open("/dev/null", O_RDWR, 0);
- if (fd != -1) {
- close(STDIN_FILENO);
- (void)dup2(fd, STDIN_FILENO);
- close(STDOUT_FILENO);
- (void)dup2(fd, STDOUT_FILENO);
- close(STDERR_FILENO);
- (void)dup2(fd, STDERR_FILENO);
- if (fd != STDIN_FILENO &&
- fd != STDOUT_FILENO &&
- fd != STDERR_FILENO)
- (void)close(fd);
+ if (devnullfd != -1) {
+ if (devnullfd != STDIN_FILENO) {
+ (void)close(STDIN_FILENO);
+ (void)dup2(devnullfd, STDIN_FILENO);
+ }
+ if (devnullfd != STDOUT_FILENO) {
+ (void)close(STDOUT_FILENO);
+ (void)dup2(devnullfd, STDOUT_FILENO);
+ }
+ if (devnullfd != STDERR_FILENO) {
+ (void)close(STDERR_FILENO);
+ (void)dup2(devnullfd, STDERR_FILENO);
+ }
}
}
+void
+ns_os_opendevnull(void) {
+ devnullfd = open("/dev/null", O_RDWR, 0);
+}
+
+void
+ns_os_closedevnull(void) {
+ if (devnullfd != STDIN_FILENO &&
+ devnullfd != STDOUT_FILENO &&
+ devnullfd != STDERR_FILENO)
+ close(devnullfd);
+}
+
static isc_boolean_t
all_digits(const char *s) {
if (*s == '\0')
@@ -468,19 +484,13 @@ cleanup_pidfile(void) {
pidfile = NULL;
}
-void
-ns_os_writepidfile(const char *filename, isc_boolean_t first_time) {
+static int
+open_pidfile(const char *filename, isc_boolean_t first_time) {
int fd;
- FILE *lockfile;
size_t len;
- pid_t pid;
char strbuf[ISC_STRERRORSIZE];
void (*report)(const char *, ...);
- /*
- * The caller must ensure any required synchronization.
- */
-
report = first_time ? ns_main_earlyfatal : ns_main_earlywarning;
cleanup_pidfile();
@@ -490,7 +500,7 @@ ns_os_writepidfile(const char *filename,
if (pidfile == NULL) {
isc__strerror(errno, strbuf, sizeof(strbuf));
(*report)("couldn't malloc '%s': %s", filename, strbuf);
- return;
+ return -1;
}
/* This is safe. */
strcpy(pidfile, filename);
@@ -501,15 +511,46 @@ ns_os_writepidfile(const char *filename,
(*report)("couldn't open pid file '%s': %s", filename, strbuf);
free(pidfile);
pidfile = NULL;
- return;
+ return -1;
}
+
+ return fd;
+}
+
+void
+ns_os_preopenpidfile(const char *filename) {
+ pidfilefd = open_pidfile(filename, ISC_TRUE);
+ preopenpidfile = ISC_TRUE;
+}
+
+void
+ns_os_writepidfile(const char *filename, isc_boolean_t first_time) {
+ int fd;
+ FILE *lockfile;
+ pid_t pid;
+ char strbuf[ISC_STRERRORSIZE];
+ void (*report)(const char *, ...);
+
+ /*
+ * The caller must ensure any required synchronization.
+ */
+
+ report = first_time ? ns_main_earlyfatal : ns_main_earlywarning;
+
+ if (preopenpidfile == ISC_TRUE)
+ fd = pidfilefd;
+ else
+ fd = open_pidfile(filename, first_time);
+
+ if (fd < 0) return;
+
lockfile = fdopen(fd, "w");
if (lockfile == NULL) {
isc__strerror(errno, strbuf, sizeof(strbuf));
(*report)("could not fdopen() pid file '%s': %s",
filename, strbuf);
(void)close(fd);
- cleanup_pidfile();
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
return;
}
#ifdef HAVE_LINUXTHREADS
@@ -520,20 +561,28 @@ ns_os_writepidfile(const char *filename,
if (fprintf(lockfile, "%ld\n", (long)pid) < 0) {
(*report)("fprintf() to pid file '%s' failed", filename);
(void)fclose(lockfile);
- cleanup_pidfile();
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
return;
}
if (fflush(lockfile) == EOF) {
(*report)("fflush() to pid file '%s' failed", filename);
(void)fclose(lockfile);
- cleanup_pidfile();
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
return;
}
(void)fclose(lockfile);
+ if (preopenpidfile == ISC_TRUE) pidfilefd = -1;
}
void
ns_os_shutdown(void) {
closelog();
- cleanup_pidfile();
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
+}
+
+void
+ns_os_tzset(void) {
+#ifdef HAVE_TZSET
+ tzset();
+#endif
}

View File

@ -1,30 +0,0 @@
$OpenBSD: patch-bin_rndc_rndc_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/rndc/rndc.c.orig Thu Nov 29 00:37:50 2001
+++ bin/rndc/rndc.c Tue Jan 21 08:55:13 2003
@@ -32,6 +32,7 @@
#include <isc/log.h>
#include <isc/mem.h>
#include <isc/netdb.h>
+#include <isc/random.h>
#include <isc/socket.h>
#include <isc/stdtime.h>
#include <isc/string.h>
@@ -251,6 +252,7 @@ rndc_connected(isc_task_t *task, isc_eve
isccc_region_t message;
isc_region_t r;
isc_uint32_t len;
+ isc_uint32_t serial;
isc_buffer_t b;
isc_result_t result;
@@ -260,8 +262,8 @@ rndc_connected(isc_task_t *task, isc_eve
fatal("connect failed: %s", isc_result_totext(sevent->result));
isc_stdtime_get(&now);
- srandom(now + isc_thread_self());
- DO("create message", isccc_cc_createmessage(1, NULL, NULL, random(),
+ isc_random_get(&serial);
+ DO("create message", isccc_cc_createmessage(1, NULL, NULL, serial,
now, now + 60, &request));
data = isccc_alist_lookup(request, "_data");
if (data == NULL)

View File

@ -1,30 +0,0 @@
$OpenBSD: patch-bin_tests_Makefile_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/tests/Makefile.in.orig Tue Feb 12 13:02:05 2002
+++ bin/tests/Makefile.in Tue Jan 21 08:55:13 2003
@@ -66,6 +66,7 @@ XTARGETS = adb_test \
inter_test \
journalprint \
keyboard_test \
+ lcg_test \
lex_test \
lfsr_test \
log_test \
@@ -104,6 +105,7 @@ SRCS = adb_test.c \
inter_test.c \
journalprint.c \
keyboard_test.c \
+ lcg_test.c \
lex_test.c \
lfsr_test.c \
log_test.c \
@@ -150,6 +152,10 @@ byaddr_test: byaddr_test.@O@ ${ISCDEPLIB
byname_test: byname_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ byname_test.@O@ \
${DNSLIBS} ${ISCLIBS} ${LIBS}
+
+lcg_test: lcg_test.@O@ ${ISCDEPLIBS}
+ ${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ lcg_test.@O@ \
+ ${ISCLIBS} ${LIBS}
lex_test: lex_test.@O@ ${ISCDEPLIBS}
${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ lex_test.@O@ \

View File

@ -1,19 +0,0 @@
$OpenBSD: patch-bin_tests_genrandom_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/tests/genrandom.c.orig Tue Jan 9 22:41:04 2001
+++ bin/tests/genrandom.c Tue Jan 21 08:55:13 2003
@@ -47,9 +47,15 @@ main(int argc, char **argv) {
exit(1);
}
+#ifndef HAVE_ARC4RANDOM
srand(0x12345678);
+#endif
while (bytes > 0) {
+#ifndef HAVE_ARC4RANDOM
unsigned short int x = (rand() & 0xFFFF);
+#else
+ unsigned short int x = (arc4random() & 0xFFFF);
+#endif
unsigned char c = x & 0xFF;
if (putc(c, fp) == EOF) {
printf("error writing to file\n");

View File

@ -1,50 +0,0 @@
$OpenBSD: patch-bin_tests_lcg_test_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- bin/tests/lcg_test.c.orig Tue Jan 21 08:55:13 2003
+++ bin/tests/lcg_test.c Tue Jan 21 08:55:13 2003
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2002 Jakob Schlyter
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $OpenBSD: patch-bin_tests_lcg_test_c,v 1.1 2003/01/25 14:14:37 jakob Exp $ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <isc/lcg.h>
+
+int
+main(int argc, char **argv) {
+ int i, n;
+ isc_uint16_t val;
+ isc_lcg_t lcg;
+
+ if (argc > 1)
+ n = atoi(argv[1]);
+ else
+ n = 10;
+
+ isc_lcg_init(&lcg);
+
+ for (i=0; i<n; i++) {
+ val = isc_lcg_generate16(&lcg);
+ printf("%06d\n", val);
+ }
+
+ return (0);
+}

View File

@ -1,23 +0,0 @@
$OpenBSD: patch-config_h_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- config.h.in.orig Tue Oct 23 01:28:08 2001
+++ config.h.in Tue Jan 21 08:55:10 2003
@@ -78,6 +78,9 @@
/* define if chroot() is available */
#undef HAVE_CHROOT
+/* define if tzset() is available */
+#undef HAVE_TZSET
+
/* define if struct addrinfo exists */
#undef HAVE_ADDRINFO
@@ -86,6 +89,9 @@
/* define if gai_strerror() exists */
#undef HAVE_GAISTRERROR
+
+/* define if arc4random() exists */
+#undef HAVE_ARC4RANDOM
/* define if pthread_setconcurrency() should be called to tell the
* OS how many threads we might want to run.

View File

@ -1,27 +0,0 @@
$OpenBSD: patch-configure_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- configure.in.orig Thu Aug 8 11:09:22 2002
+++ configure.in Tue Jan 21 08:55:11 2003
@@ -479,6 +479,11 @@ case "$use_randomdev" in
esac
#
+# Do we have arc4random() ?
+#
+AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
+
+#
# Begin pthreads checking.
#
# First, decide whether to use multithreading or not.
@@ -1470,6 +1475,11 @@ case "$enable_linux_caps" in
;;
esac
AC_CHECK_HEADERS(sys/prctl.h)
+
+#
+# Time Zone Stuff
+#
+AC_CHECK_FUNC(tzset, AC_DEFINE(HAVE_TZSET))
#
# BSD/OS, and perhaps some others, don't define rlim_t.

View File

@ -1,83 +0,0 @@
$OpenBSD: patch-lib_dns_dispatch_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/dns/dispatch.c.orig Wed May 8 08:38:14 2002
+++ lib/dns/dispatch.c Tue Jan 21 08:55:13 2003
@@ -22,7 +22,7 @@
#include <stdlib.h>
#include <isc/entropy.h>
-#include <isc/lfsr.h>
+#include <isc/lcg.h>
#include <isc/mem.h>
#include <isc/mutex.h>
#include <isc/print.h>
@@ -45,8 +45,7 @@ typedef struct dns_qid {
unsigned int qid_nbuckets; /* hash table size */
unsigned int qid_increment; /* id increment on collision */
isc_mutex_t lock;
- isc_lfsr_t qid_lfsr1; /* state generator info */
- isc_lfsr_t qid_lfsr2; /* state generator info */
+ isc_lcg_t qid_lcg; /* state generator info */
dns_displist_t *qid_table; /* the table itself */
} dns_qid_t;
@@ -256,36 +255,14 @@ request_log(dns_dispatch_t *disp, dns_di
}
}
-static void
-reseed_lfsr(isc_lfsr_t *lfsr, void *arg)
-{
- dns_dispatchmgr_t *mgr = arg;
- isc_result_t result;
- isc_uint32_t val;
-
- REQUIRE(VALID_DISPATCHMGR(mgr));
-
- if (mgr->entropy != NULL) {
- result = isc_entropy_getdata(mgr->entropy, &val, sizeof val,
- NULL, 0);
- INSIST(result == ISC_R_SUCCESS);
- lfsr->count = (val & 0x1f) + 32;
- lfsr->state = val;
- return;
- }
-
- lfsr->count = (random() & 0x1f) + 32; /* From 32 to 63 states */
- lfsr->state = random();
-}
-
/*
* Return an unpredictable message ID.
*/
static dns_messageid_t
dns_randomid(dns_qid_t *qid) {
- isc_uint32_t id;
+ isc_uint16_t id;
- id = isc_lfsr_generate32(&qid->qid_lfsr1, &qid->qid_lfsr2);
+ id = isc_lcg_generate16(&qid->qid_lcg);
return (dns_messageid_t)(id & 0xFFFF);
}
@@ -1304,20 +1281,7 @@ qid_allocate(dns_dispatchmgr_t *mgr, uns
qid->qid_increment = increment;
qid->magic = QID_MAGIC;
- /*
- * Initialize to a 32-bit LFSR. Both of these are from Applied
- * Cryptography.
- *
- * lfsr1:
- * x^32 + x^7 + x^5 + x^3 + x^2 + x + 1
- *
- * lfsr2:
- * x^32 + x^7 + x^6 + x^2 + 1
- */
- isc_lfsr_init(&qid->qid_lfsr1, 0, 32, 0x80000057U,
- 0, reseed_lfsr, mgr);
- isc_lfsr_init(&qid->qid_lfsr2, 0, 32, 0x800000c2U,
- 0, reseed_lfsr, mgr);
+ isc_lcg_init(&qid->qid_lcg);
*qidp = qid;
return (ISC_R_SUCCESS);
}

View File

@ -1,16 +0,0 @@
$OpenBSD: patch-lib_dns_rdataset_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/dns/rdataset.c.orig Tue Jun 5 11:23:14 2001
+++ lib/dns/rdataset.c Tue Jan 21 08:55:13 2003
@@ -363,7 +363,11 @@ towiresorted(dns_rdataset_t *rdataset, d
/*
* "Cyclic" order.
*/
- unsigned int j = (((unsigned int)rand()) >> 3) % count;
+ isc_uint32_t val;
+ unsigned int j;
+
+ isc_random_get(&val);
+ j = val % count;
for (i = 0; i < count; i++) {
sorted[j].key = 0; /* Unused */
sorted[j].rdata = &shuffled[i];

View File

@ -1,21 +0,0 @@
$OpenBSD: patch-lib_isc_Makefile_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/Makefile.in.orig Tue Oct 23 01:28:13 2001
+++ lib/isc/Makefile.in Tue Jan 21 08:55:13 2003
@@ -53,7 +53,7 @@ OBJS = @ISC_EXTRA_OBJS@ \
assertions.@O@ base64.@O@ bitstring.@O@ buffer.@O@ \
bufferlist.@O@ commandline.@O@ error.@O@ event.@O@ \
heap.@O@ hex.@O@ hmacmd5.@O@ \
- lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \
+ lcg.@O@ lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \
md5.@O@ mem.@O@ mutexblock.@O@ netaddr.@O@ ondestroy.@O@ \
quota.@O@ random.@O@ \
ratelimiter.@O@ result.@O@ rwlock.@O@ \
@@ -66,7 +66,7 @@ SRCS = @ISC_EXTRA_SRCS@ \
assertions.c base64.c bitstring.c buffer.c \
bufferlist.c commandline.c error.c event.c \
heap.c hex.c hmacmd5.c \
- lex.c lfsr.c lib.c log.c \
+ lcg.c lex.c lfsr.c lib.c log.c \
md5.c mem.c mutexblock.c netaddr.c ondestroy.c \
quota.c random.c \
ratelimiter.c result.c rwlock.c \

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-lib_isc_include_isc_Makefile_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/include/isc/Makefile.in.orig Sat Jul 7 00:11:40 2001
+++ lib/isc/include/isc/Makefile.in Tue Jan 21 08:55:13 2003
@@ -30,7 +30,7 @@ HEADERS = app.h assertions.h base64.h bi
bufferlist.h commandline.h entropy.h error.h event.h \
eventclass.h \
file.h formatcheck.h fsaccess.h heap.h hex.h hmacmd5.h \
- interfaceiter.h @ISC_IPV6_H@ lang.h lex.h \
+ interfaceiter.h @ISC_IPV6_H@ lang.h lcg.h lex.h \
lfsr.h lib.h list.h log.h magic.h md5.h mem.h msgcat.h msgs.h \
mutexblock.h netaddr.h ondestroy.h os.h \
print.h quota.h random.h ratelimiter.h \

View File

@ -1,102 +0,0 @@
$OpenBSD: patch-lib_isc_include_isc_lcg_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/include/isc/lcg.h.orig Tue Jan 21 08:55:13 2003
+++ lib/isc/include/isc/lcg.h Tue Jan 21 08:55:13 2003
@@ -0,0 +1,98 @@
+/*
+ * Portions Copyright (C) 2002 Internet Software Consortium.
+ * Portions Copyright (C) 1997 Niels Provos.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $OpenBSD: patch-lib_isc_include_isc_lcg_h,v 1.1 2003/01/25 14:14:37 jakob Exp $ */
+
+/*
+ * Theo de Raadt <deraadt@openbsd.org> came up with the idea of using
+ * such a mathematical system to generate more random (yet non-repeating)
+ * ids to solve the resolver/named problem. But Niels designed the
+ * actual system based on the constraints.
+ */
+
+/*
+ * seed = random 15bit
+ * n = prime, g0 = generator to n,
+ * j = random so that gcd(j,n-1) == 1
+ * g = g0^j mod n will be a generator again.
+ *
+ * X[0] = random seed.
+ * X[n] = a*X[n-1]+b mod m is a Linear Congruential Generator
+ * with a = 7^(even random) mod m,
+ * b = random with gcd(b,m) == 1
+ * m = 31104 and a maximal period of m-1.
+ *
+ * The transaction id is determined by:
+ * id[n] = seed xor (g^X[n] mod n)
+ *
+ * Effectivly the id is restricted to the lower 15 bits, thus
+ * yielding two different cycles by toggling the msb on and off.
+ * This avoids reuse issues caused by reseeding.
+ *
+ * The 16 bit space is very small and brute force attempts are
+ * entirly feasible, we skip a random number of transaction ids
+ * so that an attacker will not get sequential ids.
+ */
+
+
+#ifndef ISC_LCG_H
+#define ISC_LCG_H 1
+
+#include <isc/lang.h>
+#include <isc/types.h>
+
+typedef struct isc_lcg isc_lcg_t;
+
+struct isc_lcg {
+ isc_uint16_t ru_x;
+ isc_uint16_t ru_seed, ru_seed2;
+ isc_uint16_t ru_a, ru_b;
+ isc_uint16_t ru_g;
+ isc_uint16_t ru_counter;
+ isc_uint16_t ru_msb;
+ isc_uint32_t ru_reseed;
+ isc_uint32_t random;
+};
+
+ISC_LANG_BEGINDECLS
+
+void
+isc_lcg_init(isc_lcg_t *lcg);
+/*
+ * Initialize a Linear Congruential Generator
+ *
+ * Requires:
+ *
+ * lcg != NULL
+ */
+
+isc_uint16_t
+isc_lcg_generate16(isc_lcg_t *lcg);
+/*
+ * Get a random number from a Linear Congruential Generator
+ *
+ * Requires:
+ *
+ * lcg be valid.
+ *
+ * data != NULL.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_LCG_H */

View File

@ -1,177 +0,0 @@
$OpenBSD: patch-lib_isc_lcg_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/lcg.c.orig Tue Jan 21 08:55:13 2003
+++ lib/isc/lcg.c Tue Jan 21 08:55:13 2003
@@ -0,0 +1,173 @@
+/*
+ * Portions Copyright (C) 2002 Internet Software Consortium.
+ * Portions Copyright (C) 1997 Niels Provos.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $OpenBSD: patch-lib_isc_lcg_c,v 1.1 2003/01/25 14:14:37 jakob Exp $ */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <isc/lcg.h>
+#include <isc/random.h>
+#include <isc/time.h>
+#include <isc/util.h>
+
+#define VALID_LCG(x) (x != NULL)
+
+#define RU_OUT 180 /* Time after wich will be reseeded */
+#define RU_MAX 30000 /* Uniq cycle, avoid blackjack prediction */
+#define RU_GEN 2 /* Starting generator */
+#define RU_N 32749 /* RU_N-1 = 2*2*3*2729 */
+#define RU_AGEN 7 /* determine ru_a as RU_AGEN^(2*rand) */
+#define RU_M 31104 /* RU_M = 2^7*3^5 - don't change */
+
+#define PFAC_N 3
+static const isc_uint16_t pfacts[PFAC_N] = {
+ 2,
+ 3,
+ 2729
+};
+
+/*
+ * Do a fast modular exponation, returned value will be in the range
+ * of 0 - (mod-1)
+ */
+static isc_uint16_t
+pmod(isc_uint16_t gen, isc_uint16_t exp, isc_uint16_t mod)
+{
+ isc_uint16_t s, t, u;
+
+ s = 1;
+ t = gen;
+ u = exp;
+
+ while (u) {
+ if (u & 1)
+ s = (s*t) % mod;
+ u >>= 1;
+ t = (t*t) % mod;
+ }
+ return (s);
+}
+
+/*
+ * Initializes the seed and chooses a suitable generator. Also toggles
+ * the msb flag. The msb flag is used to generate two distinct
+ * cycles of random numbers and thus avoiding reuse of ids.
+ *
+ * This function is called from isc_lcg_generate() when needed, an
+ * application does not have to worry about it.
+ */
+static void
+reseed(isc_lcg_t *lcg)
+{
+ isc_time_t isctime;
+ isc_boolean_t noprime = ISC_TRUE;
+ isc_uint16_t j, i;
+
+ isc_random_get(&lcg->random);
+ lcg->ru_x = (lcg->random & 0xFFFF) % RU_M;
+
+ /* 15 bits of random seed */
+ lcg->ru_seed = (lcg->random >> 16) & 0x7FFF;
+ isc_random_get(&lcg->random);
+ lcg->ru_seed2 = lcg->random & 0x7FFF;
+
+ isc_random_get(&lcg->random);
+
+ /* Determine the LCG we use */
+ lcg->ru_b = (lcg->random & 0xfffe) | 1;
+ lcg->ru_a = pmod(RU_AGEN, (lcg->random >> 16) & 0xfffe, RU_M);
+ while (lcg->ru_b % 3 == 0)
+ lcg->ru_b += 2;
+
+ isc_random_get(&lcg->random);
+ j = lcg->random % RU_N;
+ lcg->random = lcg->random >> 16;
+
+ /*
+ * Do a fast gcd(j,RU_N-1), so we can find a j with
+ * gcd(j, RU_N-1) == 1, giving a new generator for
+ * RU_GEN^j mod RU_N
+ */
+ while (noprime == ISC_TRUE) {
+ for (i=0; i<PFAC_N; i++)
+ if (j % pfacts[i] == 0)
+ break;
+
+ if (i >= PFAC_N)
+ noprime = ISC_FALSE;
+ else
+ j = (j+1) % RU_N;
+ }
+
+ lcg->ru_g = pmod(RU_GEN, j, RU_N);
+ lcg->ru_counter = 0;
+
+ isc_time_now(&isctime);
+ lcg->ru_reseed = isc_time_seconds(&isctime) + RU_OUT;
+ lcg->ru_msb = lcg->ru_msb == 0x8000 ? 0 : 0x8000;
+}
+
+void
+isc_lcg_init(isc_lcg_t *lcg)
+{
+ REQUIRE(VALID_LCG(lcg));
+
+ lcg->ru_x = 0;
+ lcg->ru_seed = 0;
+ lcg->ru_seed2 = 0;
+ lcg->ru_a = 0;
+ lcg->ru_b = 0;
+ lcg->ru_g = 0;
+ lcg->ru_counter = 0;
+ lcg->ru_msb = 0;
+ lcg->ru_reseed = 0;
+ lcg->random = 0;
+}
+
+isc_uint16_t
+isc_lcg_generate16(isc_lcg_t *lcg)
+{
+ isc_time_t isctime;
+ int i, n;
+
+ REQUIRE(VALID_LCG(lcg));
+
+ isc_time_now(&isctime);
+ if (lcg->ru_counter >= RU_MAX ||
+ isc_time_seconds(&isctime) > lcg->ru_reseed)
+ reseed(lcg);
+
+ if (! lcg->random)
+ isc_random_get(&lcg->random);
+
+ /* Skip a random number of ids */
+ n = lcg->random & 0x7; lcg->random = lcg->random >> 3;
+ if (lcg->ru_counter + n >= RU_MAX)
+ reseed(lcg);
+
+ for (i=0; i<=n; i++)
+ /* Linear Congruential Generator */
+ lcg->ru_x = (lcg->ru_a*lcg->ru_x + lcg->ru_b) % RU_M;
+
+ lcg->ru_counter += i;
+
+ return (lcg->ru_seed ^
+ pmod(lcg->ru_g, lcg->ru_seed2 ^ lcg->ru_x, RU_N)) | lcg->ru_msb;
+}

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-lib_isc_lfsr_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/lfsr.c.orig Tue Jan 9 22:56:11 2001
+++ lib/isc/lfsr.c Tue Jan 21 08:55:13 2003
@@ -74,7 +74,7 @@ lfsr_generate(isc_lfsr_t *lfsr)
}
if (lfsr->state & 0x01) {
- lfsr->state = ((lfsr->state ^ lfsr->tap) >> 1) | highbit;
+ lfsr->state = (lfsr->state >> 1) ^ lfsr->tap;
return (1);
} else {
lfsr->state >>= 1;

View File

@ -1,47 +0,0 @@
$OpenBSD: patch-lib_isc_random_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/random.c.orig Tue Jan 9 22:56:22 2001
+++ lib/isc/random.c Tue Jan 21 08:55:13 2003
@@ -33,7 +33,9 @@ static isc_once_t once = ISC_ONCE_INIT;
static void
initialize_rand(void)
{
+#ifndef HAVE_ARC4RANDOM
srand(time(NULL));
+#endif
}
static void
@@ -47,7 +49,11 @@ isc_random_seed(isc_uint32_t seed)
{
initialize();
+#ifndef HAVE_ARC4RANDOM
srand(seed);
+#else
+ arc4random_addrandom((u_char *) &seed, sizeof(isc_uint32_t));
+#endif
}
void
@@ -57,7 +63,11 @@ isc_random_get(isc_uint32_t *val)
initialize();
+#ifndef HAVE_ARC4RANDOM
*val = rand();
+#else
+ *val = arc4random();
+#endif
}
isc_uint32_t
@@ -66,5 +76,9 @@ isc_random_jitter(isc_uint32_t max, isc_
if (jitter == 0)
return (max);
else
+#ifndef HAVE_ARC4RANDOM
return (max - rand() % jitter);
+#else
+ return (max - arc4random() % jitter);
+#endif
}

View File

@ -1,107 +0,0 @@
$OpenBSD: patch-lib_isc_sha1_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
--- lib/isc/sha1.c.orig Tue Jan 9 22:56:28 2001
+++ lib/isc/sha1.c Tue Jan 21 08:55:13 2003
@@ -85,6 +85,67 @@ typedef union {
unsigned int l[16];
} CHAR64LONG16;
+#ifdef __sparc_v9__
+static void do_R01(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
+static void do_R2(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
+static void do_R3(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
+static void do_R4(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
+
+#define nR0(v,w,x,y,z,i) R0(*v,*w,*x,*y,*z,i)
+#define nR1(v,w,x,y,z,i) R1(*v,*w,*x,*y,*z,i)
+#define nR2(v,w,x,y,z,i) R2(*v,*w,*x,*y,*z,i)
+#define nR3(v,w,x,y,z,i) R3(*v,*w,*x,*y,*z,i)
+#define nR4(v,w,x,y,z,i) R4(*v,*w,*x,*y,*z,i)
+
+static void
+do_R01(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
+{
+ nR0(a,b,c,d,e, 0); nR0(e,a,b,c,d, 1); nR0(d,e,a,b,c, 2);
+ nR0(c,d,e,a,b, 3); nR0(b,c,d,e,a, 4); nR0(a,b,c,d,e, 5);
+ nR0(e,a,b,c,d, 6); nR0(d,e,a,b,c, 7); nR0(c,d,e,a,b, 8);
+ nR0(b,c,d,e,a, 9); nR0(a,b,c,d,e,10); nR0(e,a,b,c,d,11);
+ nR0(d,e,a,b,c,12); nR0(c,d,e,a,b,13); nR0(b,c,d,e,a,14);
+ nR0(a,b,c,d,e,15); nR1(e,a,b,c,d,16); nR1(d,e,a,b,c,17);
+ nR1(c,d,e,a,b,18); nR1(b,c,d,e,a,19);
+}
+
+static void
+do_R2(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
+{
+ nR2(a,b,c,d,e,20); nR2(e,a,b,c,d,21); nR2(d,e,a,b,c,22);
+ nR2(c,d,e,a,b,23); nR2(b,c,d,e,a,24); nR2(a,b,c,d,e,25);
+ nR2(e,a,b,c,d,26); nR2(d,e,a,b,c,27); nR2(c,d,e,a,b,28);
+ nR2(b,c,d,e,a,29); nR2(a,b,c,d,e,30); nR2(e,a,b,c,d,31);
+ nR2(d,e,a,b,c,32); nR2(c,d,e,a,b,33); nR2(b,c,d,e,a,34);
+ nR2(a,b,c,d,e,35); nR2(e,a,b,c,d,36); nR2(d,e,a,b,c,37);
+ nR2(c,d,e,a,b,38); nR2(b,c,d,e,a,39);
+}
+
+static void
+do_R3(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
+{
+ nR3(a,b,c,d,e,40); nR3(e,a,b,c,d,41); nR3(d,e,a,b,c,42);
+ nR3(c,d,e,a,b,43); nR3(b,c,d,e,a,44); nR3(a,b,c,d,e,45);
+ nR3(e,a,b,c,d,46); nR3(d,e,a,b,c,47); nR3(c,d,e,a,b,48);
+ nR3(b,c,d,e,a,49); nR3(a,b,c,d,e,50); nR3(e,a,b,c,d,51);
+ nR3(d,e,a,b,c,52); nR3(c,d,e,a,b,53); nR3(b,c,d,e,a,54);
+ nR3(a,b,c,d,e,55); nR3(e,a,b,c,d,56); nR3(d,e,a,b,c,57);
+ nR3(c,d,e,a,b,58); nR3(b,c,d,e,a,59);
+}
+
+static void
+do_R4(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
+{
+ nR4(a,b,c,d,e,60); nR4(e,a,b,c,d,61); nR4(d,e,a,b,c,62);
+ nR4(c,d,e,a,b,63); nR4(b,c,d,e,a,64); nR4(a,b,c,d,e,65);
+ nR4(e,a,b,c,d,66); nR4(d,e,a,b,c,67); nR4(c,d,e,a,b,68);
+ nR4(b,c,d,e,a,69); nR4(a,b,c,d,e,70); nR4(e,a,b,c,d,71);
+ nR4(d,e,a,b,c,72); nR4(c,d,e,a,b,73); nR4(b,c,d,e,a,74);
+ nR4(a,b,c,d,e,75); nR4(e,a,b,c,d,76); nR4(d,e,a,b,c,77);
+ nR4(c,d,e,a,b,78); nR4(b,c,d,e,a,79);
+}
+#endif
+
/*
* Hash a single 512-bit block. This is the core of the algorithm.
*/
@@ -92,12 +153,12 @@ static void
transform(isc_uint32_t state[5], const unsigned char buffer[64]) {
isc_uint32_t a, b, c, d, e;
CHAR64LONG16 *block;
- unsigned char workspace[64];
+ CHAR64LONG16 workspace;
INSIST(buffer != NULL);
INSIST(state != NULL);
- block = (CHAR64LONG16 *)(void *)workspace;
+ block = &workspace;
(void)memcpy(block, buffer, 64);
/* Copy context->state[] to working vars */
@@ -107,6 +168,12 @@ transform(isc_uint32_t state[5], const u
d = state[3];
e = state[4];
+#ifdef __sparc_v9__
+ do_R01(&a, &b, &c, &d, &e, block);
+ do_R2(&a, &b, &c, &d, &e, block);
+ do_R3(&a, &b, &c, &d, &e, block);
+ do_R4(&a, &b, &c, &d, &e, block);
+#else
/* 4 rounds of 20 operations each. Loop unrolled. */
R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
@@ -128,6 +195,7 @@ transform(isc_uint32_t state[5], const u
R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
+#endif
/* Add the working vars back into context.state[] */
state[0] += a;

View File

@ -1,8 +0,0 @@
BIND version 9 libraries, include files and API manual pages
Flavours:
static Do not include shared libraries
threads Build a multi-threaded named
WWW: ${HOMEPAGE}

View File

@ -1,11 +0,0 @@
ISC BIND version 9 is a major rewrite of nearly all aspects of the
underlying BIND architecture. This re-architecting of BIND was
necessitated by the expected demands of domain name system growth, the
need for secure queries and zone transfers as well as IP version 6.
Flavours:
static Do not use shared libraries
threads Build a multi-threaded named
WWW: ${HOMEPAGE}

View File

@ -1,7 +0,0 @@
@comment $OpenBSD: PFRAG.shared,v 1.10 2003/01/25 14:14:37 jakob Exp $
lib/libdns.so.8.0
lib/libisc.so.6.0
lib/libisccc.so.0.1
lib/libisccfg.so.0.3
lib/liblwres.so.2.1
DYNLIBDIR(%D/lib)

View File

@ -1,266 +0,0 @@
@comment $OpenBSD: PLIST,v 1.15 2003/01/25 14:14:37 jakob Exp $
bin/isc-config.sh
include/dns/a6.h
include/dns/acl.h
include/dns/adb.h
include/dns/byaddr.h
include/dns/cache.h
include/dns/callbacks.h
include/dns/cert.h
include/dns/compress.h
include/dns/db.h
include/dns/dbiterator.h
include/dns/dbtable.h
include/dns/diff.h
include/dns/dispatch.h
include/dns/dnssec.h
include/dns/enumclass.h
include/dns/enumtype.h
include/dns/events.h
include/dns/fixedname.h
include/dns/journal.h
include/dns/keyflags.h
include/dns/keytable.h
include/dns/keyvalues.h
include/dns/lib.h
include/dns/log.h
include/dns/master.h
include/dns/masterdump.h
include/dns/message.h
include/dns/name.h
include/dns/ncache.h
include/dns/nxt.h
include/dns/peer.h
include/dns/rbt.h
include/dns/rcode.h
include/dns/rdata.h
include/dns/rdataclass.h
include/dns/rdatalist.h
include/dns/rdataset.h
include/dns/rdatasetiter.h
include/dns/rdataslab.h
include/dns/rdatastruct.h
include/dns/rdatatype.h
include/dns/request.h
include/dns/resolver.h
include/dns/result.h
include/dns/rootns.h
include/dns/sdb.h
include/dns/secalg.h
include/dns/secproto.h
include/dns/soa.h
include/dns/ssu.h
include/dns/tcpmsg.h
include/dns/time.h
include/dns/tkey.h
include/dns/tsig.h
include/dns/ttl.h
include/dns/types.h
include/dns/validator.h
include/dns/view.h
include/dns/xfrin.h
include/dns/zone.h
include/dns/zonekey.h
include/dns/zt.h
include/dst/dst.h
include/dst/lib.h
include/dst/result.h
include/isc/app.h
include/isc/assertions.h
include/isc/base64.h
include/isc/bitstring.h
include/isc/boolean.h
include/isc/buffer.h
include/isc/bufferlist.h
include/isc/commandline.h
include/isc/condition.h
include/isc/dir.h
include/isc/entropy.h
include/isc/error.h
include/isc/event.h
include/isc/eventclass.h
include/isc/file.h
include/isc/formatcheck.h
include/isc/fsaccess.h
include/isc/heap.h
include/isc/hex.h
include/isc/hmacmd5.h
include/isc/int.h
include/isc/interfaceiter.h
include/isc/lang.h
include/isc/lcg.h
include/isc/lex.h
include/isc/lfsr.h
include/isc/lib.h
include/isc/list.h
include/isc/log.h
include/isc/magic.h
include/isc/md5.h
include/isc/mem.h
include/isc/msgcat.h
include/isc/msgs.h
include/isc/mutex.h
include/isc/mutexblock.h
include/isc/net.h
include/isc/netaddr.h
include/isc/netdb.h
include/isc/offset.h
include/isc/once.h
include/isc/ondestroy.h
include/isc/os.h
include/isc/platform.h
include/isc/print.h
include/isc/quota.h
include/isc/random.h
include/isc/ratelimiter.h
include/isc/refcount.h
include/isc/region.h
include/isc/resource.h
include/isc/result.h
include/isc/resultclass.h
include/isc/rwlock.h
include/isc/serial.h
include/isc/sha1.h
include/isc/sockaddr.h
include/isc/socket.h
include/isc/stdio.h
include/isc/stdtime.h
include/isc/string.h
include/isc/symtab.h
include/isc/syslog.h
include/isc/task.h
include/isc/taskpool.h
include/isc/thread.h
include/isc/time.h
include/isc/timer.h
include/isc/types.h
include/isc/util.h
include/isccc/alist.h
include/isccc/base64.h
include/isccc/cc.h
include/isccc/ccmsg.h
include/isccc/events.h
include/isccc/lib.h
include/isccc/result.h
include/isccc/sexpr.h
include/isccc/symtab.h
include/isccc/symtype.h
include/isccc/types.h
include/isccc/util.h
include/isccfg/cfg.h
include/isccfg/check.h
include/isccfg/log.h
include/lwres/context.h
include/lwres/int.h
include/lwres/ipv6.h
include/lwres/lang.h
include/lwres/list.h
include/lwres/lwbuffer.h
include/lwres/lwpacket.h
include/lwres/lwres.h
include/lwres/net.h
include/lwres/netdb.h
include/lwres/platform.h
include/lwres/result.h
lib/libdns.a
lib/libdns.la
lib/libisc.a
lib/libisc.la
lib/libisccc.a
lib/libisccc.la
lib/libisccfg.a
lib/libisccfg.la
lib/liblwres.a
lib/liblwres.la
man/man3/lwres.3
man/man3/lwres_addr_parse.3
man/man3/lwres_buffer.3
man/man3/lwres_buffer_add.3
man/man3/lwres_buffer_back.3
man/man3/lwres_buffer_clear.3
man/man3/lwres_buffer_first.3
man/man3/lwres_buffer_forward.3
man/man3/lwres_buffer_getmem.3
man/man3/lwres_buffer_getuint16.3
man/man3/lwres_buffer_getuint32.3
man/man3/lwres_buffer_getuint8.3
man/man3/lwres_buffer_init.3
man/man3/lwres_buffer_invalidate.3
man/man3/lwres_buffer_putmem.3
man/man3/lwres_buffer_putuint16.3
man/man3/lwres_buffer_putuint32.3
man/man3/lwres_buffer_putuint8.3
man/man3/lwres_buffer_subtract.3
man/man3/lwres_conf_clear.3
man/man3/lwres_conf_get.3
man/man3/lwres_conf_init.3
man/man3/lwres_conf_parse.3
man/man3/lwres_conf_print.3
man/man3/lwres_config.3
man/man3/lwres_context.3
man/man3/lwres_context_allocmem.3
man/man3/lwres_context_create.3
man/man3/lwres_context_destroy.3
man/man3/lwres_context_freemem.3
man/man3/lwres_context_initserial.3
man/man3/lwres_context_nextserial.3
man/man3/lwres_context_sendrecv.3
man/man3/lwres_endhostent.3
man/man3/lwres_endhostent_r.3
man/man3/lwres_freeaddrinfo.3
man/man3/lwres_freehostent.3
man/man3/lwres_gabn.3
man/man3/lwres_gabnrequest_free.3
man/man3/lwres_gabnrequest_parse.3
man/man3/lwres_gabnrequest_render.3
man/man3/lwres_gabnresponse_free.3
man/man3/lwres_gabnresponse_parse.3
man/man3/lwres_gabnresponse_render.3
man/man3/lwres_gai_strerror.3
man/man3/lwres_getaddrinfo.3
man/man3/lwres_getaddrsbyname.3
man/man3/lwres_gethostbyaddr.3
man/man3/lwres_gethostbyaddr_r.3
man/man3/lwres_gethostbyname.3
man/man3/lwres_gethostbyname2.3
man/man3/lwres_gethostbyname_r.3
man/man3/lwres_gethostent.3
man/man3/lwres_gethostent_r.3
man/man3/lwres_getipnode.3
man/man3/lwres_getipnodebyaddr.3
man/man3/lwres_getipnodebyname.3
man/man3/lwres_getnamebyaddr.3
man/man3/lwres_getnameinfo.3
man/man3/lwres_getrrsetbyname.3
man/man3/lwres_gnba.3
man/man3/lwres_gnbarequest_free.3
man/man3/lwres_gnbarequest_parse.3
man/man3/lwres_gnbarequest_render.3
man/man3/lwres_gnbaresponse_free.3
man/man3/lwres_gnbaresponse_parse.3
man/man3/lwres_gnbaresponse_render.3
man/man3/lwres_herror.3
man/man3/lwres_hstrerror.3
man/man3/lwres_inetntop.3
man/man3/lwres_lwpacket_parseheader.3
man/man3/lwres_lwpacket_renderheader.3
man/man3/lwres_net_ntop.3
man/man3/lwres_noop.3
man/man3/lwres_nooprequest_free.3
man/man3/lwres_nooprequest_parse.3
man/man3/lwres_nooprequest_render.3
man/man3/lwres_noopresponse_free.3
man/man3/lwres_noopresponse_parse.3
man/man3/lwres_noopresponse_render.3
man/man3/lwres_packet.3
man/man3/lwres_resutil.3
man/man3/lwres_sethostent.3
man/man3/lwres_sethostent_r.3
man/man3/lwres_string_parse.3
%%SHARED%%
@dirrm include/lwres
@dirrm include/isccfg
@dirrm include/isccc
@dirrm include/isc
@dirrm include/dst
@dirrm include/dns

View File

@ -1,50 +0,0 @@
@comment $OpenBSD: PLIST-server,v 1.1 2003/01/25 14:14:37 jakob Exp $
bin/dig
bin/host
bin/nslookup
bin/nsupdate
man/man1/dig.1
man/man1/host.1
man/man5/rndc.conf.5
man/man8/dnssec-keygen.8
man/man8/dnssec-makekeyset.8
man/man8/dnssec-signkey.8
man/man8/dnssec-signzone.8
man/man8/lwresd.8
man/man8/named-checkconf.8
man/man8/named-checkzone.8
man/man8/named.8
man/man8/nsupdate.8
man/man8/rndc-confgen.8
man/man8/rndc.8
sbin/dnssec-keygen
sbin/dnssec-makekeyset
sbin/dnssec-signkey
sbin/dnssec-signzone
sbin/lwresd
sbin/named
sbin/named-checkconf
sbin/named-checkzone
sbin/rndc
sbin/rndc-confgen
share/doc/bind9/arm/Bv9ARM.ch01.html
share/doc/bind9/arm/Bv9ARM.ch02.html
share/doc/bind9/arm/Bv9ARM.ch03.html
share/doc/bind9/arm/Bv9ARM.ch04.html
share/doc/bind9/arm/Bv9ARM.ch05.html
share/doc/bind9/arm/Bv9ARM.ch06.html
share/doc/bind9/arm/Bv9ARM.ch07.html
share/doc/bind9/arm/Bv9ARM.ch08.html
share/doc/bind9/arm/Bv9ARM.ch09.html
share/doc/bind9/arm/Bv9ARM.html
share/doc/bind9/misc/dnssec
share/doc/bind9/misc/ipv6
share/doc/bind9/misc/migration
share/doc/bind9/misc/migration-4to9
share/doc/bind9/misc/options
share/doc/bind9/misc/rfc-compliance
share/doc/bind9/misc/roadmap
share/doc/bind9/misc/sdb
@dirrm share/doc/bind9/misc
@dirrm share/doc/bind9/arm
@dirrm share/doc/bind9