diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bind9-current/DESCR | 14 | ||||
-rw-r--r-- | net/bind9-current/Makefile | 71 | ||||
-rw-r--r-- | net/bind9-current/PLIST | 312 | ||||
-rw-r--r-- | net/bind9-current/distinfo | 7 | ||||
-rw-r--r-- | net/bind9-current/files/lwresd.sh | 16 | ||||
-rw-r--r-- | net/bind9-current/files/named.sh | 28 | ||||
-rw-r--r-- | net/bind9-current/patches/patch-ab | 33 | ||||
-rw-r--r-- | net/bind9-current/patches/patch-ac | 39 | ||||
-rw-r--r-- | net/bind9-current/patches/patch-ai | 85 |
9 files changed, 605 insertions, 0 deletions
diff --git a/net/bind9-current/DESCR b/net/bind9-current/DESCR new file mode 100644 index 00000000000..c311081809b --- /dev/null +++ b/net/bind9-current/DESCR @@ -0,0 +1,14 @@ + 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, particularly in very large + zones such as .COM + - Protocol enhancements necessary to securely query and + update zones + - Protocol enhancements necessary to take advantage of + certain architectural features of IP version 6 + + The 9.0.0 release, and this release candidate, is aimed at +early adopters and those who wish to make use of new 9.0 +features, such as IPv6 and DNSSEC secure resolution support. diff --git a/net/bind9-current/Makefile b/net/bind9-current/Makefile new file mode 100644 index 00000000000..015b0fdf066 --- /dev/null +++ b/net/bind9-current/Makefile @@ -0,0 +1,71 @@ +# $NetBSD: Makefile,v 1.37 2002/08/26 11:26:03 itojun Exp $ +# + +DISTNAME= bind-${BIND_VERSION} +PKGNAME= bind-9.2.99.20020722 +CATEGORIES= net +MASTER_SITES= ftp://ftp.isc.org/isc/bind9/snapshots/ + +MAINTAINER= hubertf@NetBSD.org +HOMEPAGE= http://www.isc.org/products/BIND/ +COMMENT= Version 9 of the Berkeley Internet Name Daemon, implementation of DNS + +BIND_VERSION= 9.3.0s20020722 +DIST_SUBDIR= bind/${BIND_VERSION} + +# IPv6 ready, automatically detected +.include "../../mk/bsd.prefs.mk" +BUILD_DEFS+= USE_INET6 +# No need to set USE_INET6, will auto-detect. + +USE_LIBTOOL= yes +LIBTOOL_OVERRIDE+= ${WRKSRC}/libtool +LIBTOOL_OVERRIDE+= ${WRKSRC}/lib/bind/libtool + +GNU_CONFIGURE= yes +CONFIGURE_ARGS+=--disable-threads # Until we have real threads +CONFIGURE_ARGS+=--with-libtool=yes \ + --sysconfdir=/etc \ + --localstatedir=/var +#LDFLAGS+= -Wl,-R${LOCALBASE}/pthreads/lib -L${LOCALBASE}/pthreads/lib +# use external OpenSSL. comment out the following line and the buildlink +# include at the bottom to use OpenSSL shipped with BIND9. +CONFIGURE_ARGS+=--with-openssl=${SSLBASE} + +post-build: + ${SED} \ + -e 's|@PREFIX@|${PREFIX}|' \ + <${FILESDIR}/named.sh >${WRKDIR}/named + ${SED} \ + -e 's|@PREFIX@|${PREFIX}|' \ + <${FILESDIR}/lwresd.sh >${WRKDIR}/lwresd + +# include/isc/ipv6.h is installed on non-ipv6 platforms +IPV6H= "@comment " +.if ${OPSYS} == "SunOS" && ${OS_VERSION} == "5.7" +IPV6H= "" +.endif + +PLIST_SUBST+= IPV6H=${IPV6H} +PLIST_SRC= ${WRKDIR}/PLIST + +post-install: + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9 + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/arm + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/draft + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/misc + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/rfc + ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/bind9 + ${INSTALL_DATA} ${WRKSRC}/doc/arm/* ${PREFIX}/share/doc/bind9/arm + ${INSTALL_DATA} ${WRKSRC}/doc/draft/* ${PREFIX}/share/doc/bind9/draft + ${INSTALL_DATA} ${WRKSRC}/doc/misc/* ${PREFIX}/share/doc/bind9/misc + ${INSTALL_DATA} ${WRKSRC}/doc/rfc/* ${PREFIX}/share/doc/bind9/rfc + ${CP} ${PKGDIR}/PLIST ${PLIST_SRC} + (cd ${PREFIX}; ${FIND} share/doc/bind9 -type f -print ) >> ${PLIST_SRC} + (cd ${PREFIX}; ${FIND} share/doc/bind9 -type d -print ) | \ + ${SED} -e 's/^/@dirrm /' | ${SORT} -r >> ${PLIST_SRC} + ${INSTALL_SCRIPT} ${WRKDIR}/named ${PREFIX}/etc/rc.d/named9 + ${INSTALL_SCRIPT} ${WRKDIR}/lwresd ${PREFIX}/etc/rc.d/lwresd + +.include "../../security/openssl/buildlink.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/net/bind9-current/PLIST b/net/bind9-current/PLIST new file mode 100644 index 00000000000..89e13002f88 --- /dev/null +++ b/net/bind9-current/PLIST @@ -0,0 +1,312 @@ +@comment $NetBSD: PLIST,v 1.7 2002/08/26 11:26:04 itojun Exp $ +bin/dig +bin/host +bin/isc-config.sh +bin/nslookup +bin/nsupdate +etc/rc.d/lwresd +etc/rc.d/named9 +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/ds.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/version.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 +${IPV6H}include/isc/ipv6.h +include/isc/lang.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/parseint.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/isc/version.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/isccc/version.h +include/isccfg/cfg.h +include/isccfg/log.h +include/isccfg/version.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 +include/lwres/version.h +lib/libdns.a +lib/libdns.la +lib/libdns.so +lib/libdns.so.5 +lib/libdns.so.5.0 +lib/libisc.a +lib/libisc.la +lib/libisc.so +lib/libisc.so.4 +lib/libisc.so.4.0 +lib/libisccc.a +lib/libisccc.la +lib/libisccc.so +lib/libisccc.so.0 +lib/libisccc.so.0.0 +lib/libisccfg.a +lib/libisccfg.la +lib/libisccfg.so +lib/libisccfg.so.0 +lib/libisccfg.so.0.0 +lib/liblwres.a +lib/liblwres.la +lib/liblwres.so +lib/liblwres.so.2 +lib/liblwres.so.2.0 +sbin/dnssec-keygen +sbin/dnssec-signzone +sbin/lwresd +sbin/named +sbin/named-checkconf +sbin/named-checkzone +sbin/rndc +sbin/rndc-confgen +@dirrm include/lwres +@dirrm include/isccc +@dirrm include/isccfg +@dirrm include/isc +@dirrm include/dst +@dirrm include/dns +man/man1/dig.1 +man/man1/host.1 +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 +man/man5/rndc.conf.5 +man/man8/dnssec-keygen.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.8 +man/man8/rndc-confgen.8 diff --git a/net/bind9-current/distinfo b/net/bind9-current/distinfo new file mode 100644 index 00000000000..f5993ada00b --- /dev/null +++ b/net/bind9-current/distinfo @@ -0,0 +1,7 @@ +$NetBSD: distinfo,v 1.20 2002/08/26 11:26:06 itojun Exp $ + +SHA1 (bind/9.3.0s20020722/bind-9.3.0s20020722.tar.gz) = fcd86c88d0fa95d9647ac9db19d3807c5abe2c56 +Size (bind/9.3.0s20020722/bind-9.3.0s20020722.tar.gz) = 5162667 bytes +SHA1 (patch-ab) = 1d3d82e3e01ac38e8a1b1d98e018849e8fe071bf +SHA1 (patch-ac) = 1696adfab7392e0f150d34931b808e51ad017938 +SHA1 (patch-ai) = 916d2cdadd420b34e908f3c128e864bf271ebb6a diff --git a/net/bind9-current/files/lwresd.sh b/net/bind9-current/files/lwresd.sh new file mode 100644 index 00000000000..be6edfe1d70 --- /dev/null +++ b/net/bind9-current/files/lwresd.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# PROVIDE: lwresd +# REQUIRE: SERVERS + +. /etc/rc.subr + +name="lwresd" +rcvar=${name} +command="@PREFIX@/sbin/${name}" +pidfile="/var/run/${name}.pid" + +extra_commands="reload" + +load_rc_config ${name} # check /etc/rc.conf.d/named9 +run_rc_command "$1" diff --git a/net/bind9-current/files/named.sh b/net/bind9-current/files/named.sh new file mode 100644 index 00000000000..ed0fb29088b --- /dev/null +++ b/net/bind9-current/files/named.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# PROVIDE: named +# REQUIRE: SERVERS + +. /etc/rc.subr + +name="named" +rcvar=${name}9 +command="@PREFIX@/sbin/${name}" +pidfile="/var/run/${name}.pid" + +extra_commands="reload" + +load_rc_config ${name}9 # check /etc/rc.conf.d/named9 + +named_precmd() +{ + # Die if $named is also set (i.e. the system's named is not disabled + if checkyesno named ; then + warn \ + "disable 'named' when setting 'named9'!" + return 1 + fi +} +start_precmd="named_precmd" + +run_rc_command "$1" diff --git a/net/bind9-current/patches/patch-ab b/net/bind9-current/patches/patch-ab new file mode 100644 index 00000000000..d1789fe1ef3 --- /dev/null +++ b/net/bind9-current/patches/patch-ab @@ -0,0 +1,33 @@ +$NetBSD: patch-ab,v 1.5 2002/08/26 11:26:09 itojun Exp $ + +--- lib/lwres/getnameinfo.c.orig Sat Jul 14 08:34:02 2001 ++++ lib/lwres/getnameinfo.c Tue Jul 17 10:14:33 2001 +@@ -66,6 +66,10 @@ + #include <lwres/net.h> + #include <lwres/netdb.h> + ++#ifdef __KAME__ ++#include <net/if.h> ++#endif ++ + #include "assert_p.h" + + #define SUCCESS 0 +@@ -214,13 +218,11 @@ + ((const struct sockaddr_in6 *)sa)->sin6_scope_id) { + char *p = numaddr + strlen(numaddr); + const char *stringscope = NULL; +-#if 0 ++ ++#ifdef __KAME__ + if ((flags & NI_NUMERICSCOPE) == 0) { +- /* +- * Vendors may want to add support for +- * non-numeric scope identifier. +- */ +- stringscope = foo; ++ stringscope = if_indextoname( ++ ((const struct sockaddr_in6 *)sa)->sin6_scope_id); + } + #endif + if (stringscope == NULL) { diff --git a/net/bind9-current/patches/patch-ac b/net/bind9-current/patches/patch-ac new file mode 100644 index 00000000000..25a7857a9f5 --- /dev/null +++ b/net/bind9-current/patches/patch-ac @@ -0,0 +1,39 @@ +$NetBSD: patch-ac,v 1.5 2002/08/26 11:26:11 itojun Exp $ + +--- lib/lwres/getaddrinfo.c.orig Sat Jul 14 08:34:01 2001 ++++ lib/lwres/getaddrinfo.c Tue Jul 17 10:15:03 2001 +@@ -31,6 +31,10 @@ + #include <lwres/net.h> + #include <lwres/netdb.h> + ++#ifdef __KAME__ ++#include <net/if.h> ++#endif ++ + #define SA(addr) ((struct sockaddr *)(addr)) + #define SIN(addr) ((struct sockaddr_in *)(addr)) + #define SIN6(addr) ((struct sockaddr_in6 *)(addr)) +@@ -253,14 +257,18 @@ + p = strchr(ntmp, '%'); + ep = NULL; + +- /* +- * Vendors may want to support non-numeric +- * scopeid around here. +- */ ++#ifdef __KAME__ ++ if (p != NULL) { ++ scopeid = if_nametoindex(p + 1); ++ if (scopeid) ++ p = NULL; ++ } ++#endif + +- if (p != NULL) ++ if (p != NULL) { + scopeid = (lwres_uint32_t)strtoul(p + 1, + &ep, 10); ++ } + if (p != NULL && ep != NULL && ep[0] == '\0') + *p = '\0'; + else { diff --git a/net/bind9-current/patches/patch-ai b/net/bind9-current/patches/patch-ai new file mode 100644 index 00000000000..7afdfdd3a10 --- /dev/null +++ b/net/bind9-current/patches/patch-ai @@ -0,0 +1,85 @@ +$NetBSD: patch-ai,v 1.3 2002/08/26 11:26:11 itojun Exp $ + +--- lib/isc/sha1.c.orig Tue Jan 9 22:56:28 2001 ++++ lib/isc/sha1.c Thu Jun 27 08:52:59 2002 +@@ -85,6 +85,59 @@ + unsigned int l[16]; + } CHAR64LONG16; + ++#ifdef __sparc_v9__ ++void do_R01(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *); ++void do_R2(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *); ++void do_R3(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *); ++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) ++ ++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); ++} ++ ++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); ++} ++ ++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); ++} ++ ++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. + */ +@@ -108,6 +161,12 @@ + e = state[4]; + + /* 4 rounds of 20 operations each. Loop unrolled. */ ++#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 + 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); + R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11); +@@ -128,6 +187,7 @@ + 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; |