summaryrefslogtreecommitdiff
path: root/usr/src/lib/libsum
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libsum')
-rw-r--r--usr/src/lib/libsum/Makefile63
-rw-r--r--usr/src/lib/libsum/Makefile.com95
-rw-r--r--usr/src/lib/libsum/THIRDPARTYLICENSE245
-rw-r--r--usr/src/lib/libsum/THIRDPARTYLICENSE.descrip1
-rw-r--r--usr/src/lib/libsum/amd64/Makefile30
-rw-r--r--usr/src/lib/libsum/amd64/include/ast/sum.h74
-rw-r--r--usr/src/lib/libsum/amd64/src/lib/libsum/FEATURE/sum16
-rw-r--r--usr/src/lib/libsum/common/RELEASE15
-rw-r--r--usr/src/lib/libsum/common/features/sum4
-rw-r--r--usr/src/lib/libsum/common/sum-ast4.c120
-rw-r--r--usr/src/lib/libsum/common/sum-att.c124
-rw-r--r--usr/src/lib/libsum/common/sum-bsd.c48
-rw-r--r--usr/src/lib/libsum/common/sum-crc.c333
-rw-r--r--usr/src/lib/libsum/common/sum-lmd.c330
-rw-r--r--usr/src/lib/libsum/common/sum-md5.c374
-rw-r--r--usr/src/lib/libsum/common/sum-prng.c113
-rw-r--r--usr/src/lib/libsum/common/sum-sha1.c342
-rw-r--r--usr/src/lib/libsum/common/sum-sha2.c1248
-rw-r--r--usr/src/lib/libsum/common/sum.h65
-rw-r--r--usr/src/lib/libsum/common/sumlib.c374
-rw-r--r--usr/src/lib/libsum/i386/Makefile29
-rw-r--r--usr/src/lib/libsum/i386/include/ast/sum.h74
-rw-r--r--usr/src/lib/libsum/i386/src/lib/libsum/FEATURE/sum16
-rw-r--r--usr/src/lib/libsum/mapfile-vers54
-rw-r--r--usr/src/lib/libsum/sparc/Makefile29
-rw-r--r--usr/src/lib/libsum/sparc/include/ast/sum.h74
-rw-r--r--usr/src/lib/libsum/sparc/src/lib/libsum/FEATURE/sum16
-rw-r--r--usr/src/lib/libsum/sparcv9/Makefile30
-rw-r--r--usr/src/lib/libsum/sparcv9/include/ast/sum.h74
-rw-r--r--usr/src/lib/libsum/sparcv9/src/lib/libsum/FEATURE/sum16
30 files changed, 0 insertions, 4426 deletions
diff --git a/usr/src/lib/libsum/Makefile b/usr/src/lib/libsum/Makefile
deleted file mode 100644
index bcf6063972..0000000000
--- a/usr/src/lib/libsum/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-SHELL=/usr/bin/ksh93
-
-include ../Makefile.lib
-
-SUBDIRS = $(MACH)
-$(BUILD64)SUBDIRS += $(MACH64)
-
-all := TARGET= all
-clean := TARGET= clean
-clobber := TARGET= clobber
-install := TARGET= install
-_msg := TARGET= _msg
-
-.KEEP_STATE:
-
-all clean clobber install _msg: $(SUBDIRS)
-
-LIBRARY= libsum.a
-
-HDRS= \
- sum.h
-
-HDRDIR32= $(MACH)/include/ast
-HDRDIR64= $(MACH64)/include/ast
-include ../Makefile.asthdr
-
-install_h: $(ROOTHDRS)
-
-# We don't check these header files because they're owned by AT&T/AST
-check:
-
-$(SUBDIRS): FRC
- @cd $@; pwd; $(MAKE) $(TARGET)
-
-FRC:
-
-include ../Makefile.targ
diff --git a/usr/src/lib/libsum/Makefile.com b/usr/src/lib/libsum/Makefile.com
deleted file mode 100644
index 9302987f7b..0000000000
--- a/usr/src/lib/libsum/Makefile.com
+++ /dev/null
@@ -1,95 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# Copyright (c) 2018, Joyent, Inc.
-
-SHELL=/usr/bin/ksh93
-
-LIBRARY= libsum.a
-VERS= .1
-
-OBJECTS= \
- sumlib.o
-
-include ../../Makefile.astmsg
-
-include ../../Makefile.lib
-
-# mapfile-vers does not live with the sources in in common/ to make
-# automated code updates easier.
-MAPFILES= ../mapfile-vers
-
-# Set common AST build flags (e.g. C99/XPG6, needed to support the math stuff)
-include ../../../Makefile.ast
-
-LIBS = $(DYNLIB)
-
-LDLIBS += \
- -last \
- -lmd \
- -lc
-
-
-SRCDIR = ../common
-
-# We use "=" here since using $(CPPFLAGS.master) is very tricky in our
-# case - it MUST come as the last element but future changes in -D options
-# may then cause silent breakage in the AST sources because the last -D
-# option specified overrides previous -D options so we prefer the current
-# way to explicitly list each single flag.
-# Notes:
-# - "-D_BLD_DLL" comes from ${mam_cc_DLL} in Mamfile
-CPPFLAGS = \
- $(DTEXTDOM) $(DTS_ERRNO) \
- -Isrc/lib/libsum \
- -I$(ROOT)/usr/include/ast \
- -I$(ROOT)/usr/include \
- -D_PACKAGE_ast \
- -D_BLD_DLL
-
-CFLAGS += \
- $(ASTCFLAGS)
-CFLAGS64 += \
- $(ASTCFLAGS64)
-
-CERRWARN += -_gcc=-Wno-parentheses
-
-SMOFF += all_func_returns
-
-# This codepath is performance-critical
-sparc_COPTFLAG=-xO5 -_cc=-xprefetch=auto,explicit
-sparcv9_COPTFLAG=-xO5 -_cc=-xprefetch=auto,explicit
-i386_COPTFLAG=-_cc=-xO5 -_cc=-xprefetch=auto,explicit
-amd64_COPTFLAG=-_cc=-xO5 -_cc=-xprefetch=auto,explicit
-
-# Suppress this one warning as the fix would break old gcc, which upstream
-# still supports. This needs a better fix (later).
-pics/sumlib.o := CERRWARN += -erroff=E_CONST_PROMOTED_UNSIGNED_LONG
-
-.KEEP_STATE:
-
-all: $(LIBS)
-
-include ../../Makefile.targ
diff --git a/usr/src/lib/libsum/THIRDPARTYLICENSE b/usr/src/lib/libsum/THIRDPARTYLICENSE
deleted file mode 100644
index 50c6364c06..0000000000
--- a/usr/src/lib/libsum/THIRDPARTYLICENSE
+++ /dev/null
@@ -1,245 +0,0 @@
-+------------------------------------------------------------------------------+
-| This license covers all software that refers to the URL |
-| http://www.opensource.org/licenses/cpl1.0.txt |
-+------------------------------------------------------------------------------+
-
-Common Public License Version 1.0
-
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON
- PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
- THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
- 1. DEFINITIONS
-
- "Contribution" means:
-
- a) in the case of the initial Contributor, the initial code and
- documentation distributed under this Agreement, and
-
- b) in the case of each subsequent Contributor:
-
- i) changes to the Program, and
-
- ii) additions to the Program;
-
- where such changes and/or additions to the Program originate from
- and are distributed by that particular Contributor. A Contribution
- 'originates' from a Contributor if it was added to the Program by
- such Contributor itself or anyone acting on such Contributor's
- behalf. Contributions do not include additions to the Program
- which: (i) are separate modules of software distributed in
- conjunction with the Program under their own license agreement, and
- (ii) are not derivative works of the Program.
-
- "Contributor" means any person or entity that distributes the Program.
-
- "Licensed Patents " mean patent claims licensable by a Contributor
- which are necessarily infringed by the use or sale of its Contribution
- alone or when combined with the Program.
-
- "Program" means the Contributions distributed in accordance with this
- Agreement.
-
- "Recipient" means anyone who receives the Program under this
- Agreement, including all Contributors.
-
- 2. GRANT OF RIGHTS
-
- a) Subject to the terms of this Agreement, each Contributor hereby
- grants Recipient a non-exclusive, worldwide, royalty-free copyright
- license to reproduce, prepare derivative works of, publicly
- display, publicly perform, distribute and sublicense the
- Contribution of such Contributor, if any, and such derivative
- works, in source code and object code form.
-
- b) Subject to the terms of this Agreement, each Contributor hereby
- grants Recipient a non-exclusive, worldwide, royalty-free patent
- license under Licensed Patents to make, use, sell, offer to sell,
- import and otherwise transfer the Contribution of such Contributor,
- if any, in source code and object code form. This patent license
- shall apply to the combination of the Contribution and the Program
- if, at the time the Contribution is added by the Contributor, such
- addition of the Contribution causes such combination to be covered
- by the Licensed Patents. The patent license shall not apply to any
- other combinations which include the Contribution. No hardware per
- se is licensed hereunder.
-
- c) Recipient understands that although each Contributor grants the
- licenses to its Contributions set forth herein, no assurances are
- provided by any Contributor that the Program does not infringe the
- patent or other intellectual property rights of any other entity.
- Each Contributor disclaims any liability to Recipient for claims
- brought by any other entity based on infringement of intellectual
- property rights or otherwise. As a condition to exercising the
- rights and licenses granted hereunder, each Recipient hereby
- assumes sole responsibility to secure any other intellectual
- property rights needed, if any. For example, if a third party
- patent license is required to allow Recipient to distribute the
- Program, it is Recipient's responsibility to acquire that license
- before distributing the Program.
-
- d) Each Contributor represents that to its knowledge it has
- sufficient copyright rights in its Contribution, if any, to grant
- the copyright license set forth in this Agreement.
-
- 3. REQUIREMENTS
-
- A Contributor may choose to distribute the Program in object code form
- under its own license agreement, provided that:
-
- a) it complies with the terms and conditions of this Agreement; and
-
- b) its license agreement:
-
- i) effectively disclaims on behalf of all Contributors all
- warranties and conditions, express and implied, including
- warranties or conditions of title and non-infringement, and implied
- warranties or conditions of merchantability and fitness for a
- particular purpose;
-
- ii) effectively excludes on behalf of all Contributors all
- liability for damages, including direct, indirect, special,
- incidental and consequential damages, such as lost profits;
-
- iii) states that any provisions which differ from this Agreement
- are offered by that Contributor alone and not by any other party;
- and
-
- iv) states that source code for the Program is available from such
- Contributor, and informs licensees how to obtain it in a reasonable
- manner on or through a medium customarily used for software
- exchange.
-
- When the Program is made available in source code form:
-
- a) it must be made available under this Agreement; and
-
- b) a copy of this Agreement must be included with each copy of the
- Program.
-
- Contributors may not remove or alter any copyright notices contained
- within the Program.
-
- Each Contributor must identify itself as the originator of its
- Contribution, if any, in a manner that reasonably allows subsequent
- Recipients to identify the originator of the Contribution.
-
- 4. COMMERCIAL DISTRIBUTION
-
- Commercial distributors of software may accept certain
- responsibilities with respect to end users, business partners and the
- like. While this license is intended to facilitate the commercial use
- of the Program, the Contributor who includes the Program in a
- commercial product offering should do so in a manner which does not
- create potential liability for other Contributors. Therefore, if a
- Contributor includes the Program in a commercial product offering,
- such Contributor ("Commercial Contributor") hereby agrees to defend
- and indemnify every other Contributor ("Indemnified Contributor")
- against any losses, damages and costs (collectively "Losses") arising
- from claims, lawsuits and other legal actions brought by a third party
- against the Indemnified Contributor to the extent caused by the acts
- or omissions of such Commercial Contributor in connection with its
- distribution of the Program in a commercial product offering. The
- obligations in this section do not apply to any claims or Losses
- relating to any actual or alleged intellectual property infringement.
- In order to qualify, an Indemnified Contributor must: a) promptly
- notify the Commercial Contributor in writing of such claim, and b)
- allow the Commercial Contributor to control, and cooperate with the
- Commercial Contributor in, the defense and any related settlement
- negotiations. The Indemnified Contributor may participate in any such
- claim at its own expense.
-
- For example, a Contributor might include the Program in a commercial
- product offering, Product X. That Contributor is then a Commercial
- Contributor. If that Commercial Contributor then makes performance
- claims, or offers warranties related to Product X, those performance
- claims and warranties are such Commercial Contributor's responsibility
- alone. Under this section, the Commercial Contributor would have to
- defend claims against the other Contributors related to those
- performance claims and warranties, and if a court requires any other
- Contributor to pay any damages as a result, the Commercial Contributor
- must pay those damages.
-
- 5. NO WARRANTY
-
- EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
- PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
- WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
- OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
- responsible for determining the appropriateness of using and
- distributing the Program and assumes all risks associated with its
- exercise of rights under this Agreement, including but not limited to
- the risks and costs of program errors, compliance with applicable
- laws, damage to or loss of data, programs or equipment, and
- unavailability or interruption of operations.
-
- 6. DISCLAIMER OF LIABILITY
-
- EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
- ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
- WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
- DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
- HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- 7. GENERAL
-
- If any provision of this Agreement is invalid or unenforceable under
- applicable law, it shall not affect the validity or enforceability of
- the remainder of the terms of this Agreement, and without further
- action by the parties hereto, such provision shall be reformed to the
- minimum extent necessary to make such provision valid and enforceable.
-
- If Recipient institutes patent litigation against a Contributor with
- respect to a patent applicable to software (including a cross-claim or
- counterclaim in a lawsuit), then any patent licenses granted by that
- Contributor to such Recipient under this Agreement shall terminate as
- of the date such litigation is filed. In addition, if Recipient
- institutes patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Program
- itself (excluding combinations of the Program with other software or
- hardware) infringes such Recipient's patent(s), then such Recipient's
- rights granted under Section 2(b) shall terminate as of the date such
- litigation is filed.
-
- All Recipient's rights under this Agreement shall terminate if it
- fails to comply with any of the material terms or conditions of this
- Agreement and does not cure such failure in a reasonable period of
- time after becoming aware of such noncompliance. If all Recipient's
- rights under this Agreement terminate, Recipient agrees to cease use
- and distribution of the Program as soon as reasonably practicable.
- However, Recipient's obligations under this Agreement and any licenses
- granted by Recipient relating to the Program shall continue and
- survive.
-
- Everyone is permitted to copy and distribute copies of this Agreement,
- but in order to avoid inconsistency the Agreement is copyrighted and
- may only be modified in the following manner. The Agreement Steward
- reserves the right to publish new versions (including revisions) of
- this Agreement from time to time. No one other than the Agreement
- Steward has the right to modify this Agreement. IBM is the initial
- Agreement Steward. IBM may assign the responsibility to serve as the
- Agreement Steward to a suitable separate entity. Each new version of
- the Agreement will be given a distinguishing version number. The
- Program (including Contributions) may always be distributed subject to
- the version of the Agreement under which it was received. In addition,
- after a new version of the Agreement is published, Contributor may
- elect to distribute the Program (including its Contributions) under
- the new version. Except as expressly stated in Sections 2(a) and 2(b)
- above, Recipient receives no rights or licenses to the intellectual
- property of any Contributor under this Agreement, whether expressly,
- by implication, estoppel or otherwise. All rights in the Program not
- expressly granted under this Agreement are reserved.
-
- This Agreement is governed by the laws of the State of New York and
- the intellectual property laws of the United States of America. No
- party to this Agreement will bring a legal action under this Agreement
- more than one year after the cause of action arose. Each party waives
- its rights to a jury trial in any resulting litigation.
-
-Copyright (c) 2004 by the Open Source Initiative
-This is a copy of the license posted on 2004-10-06 at:
- http://www.opensource.org/licenses/cpl
diff --git a/usr/src/lib/libsum/THIRDPARTYLICENSE.descrip b/usr/src/lib/libsum/THIRDPARTYLICENSE.descrip
deleted file mode 100644
index ce5312f88b..0000000000
--- a/usr/src/lib/libsum/THIRDPARTYLICENSE.descrip
+++ /dev/null
@@ -1 +0,0 @@
-AT&T ADVANCED SOFTWARE TECHNOLOGY CHECKSUM LIBRARY (LIBSUM)
diff --git a/usr/src/lib/libsum/amd64/Makefile b/usr/src/lib/libsum/amd64/Makefile
deleted file mode 100644
index 9f293be4fa..0000000000
--- a/usr/src/lib/libsum/amd64/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-include ../Makefile.com
-include ../../Makefile.lib.64
-
-install: all $(ROOTLIBS64) $(ROOTLINKS64)
diff --git a/usr/src/lib/libsum/amd64/include/ast/sum.h b/usr/src/lib/libsum/amd64/include/ast/sum.h
deleted file mode 100644
index f82fee47d6..0000000000
--- a/usr/src/lib/libsum/amd64/include/ast/sum.h
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/* : : generated by proto : : */
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-
-
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * checksum library interface
- */
-
-#ifndef _SUM_H
-#if !defined(__PROTO__)
-#include <prototyped.h>
-#endif
-#if !defined(__LINKAGE__)
-#define __LINKAGE__ /* 2004-08-11 transition */
-#endif
-
-#define _SUM_H
-
-#include <ast.h>
-
-#define SUM_SIZE (1<<0) /* print size too */
-#define SUM_SCALE (1<<1) /* traditional size scale */
-#define SUM_TOTAL (1<<2) /* print totals since sumopen */
-#define SUM_LEGACY (1<<3) /* legacy field widths */
-
-#define _SUM_PUBLIC_ const char* name;
-
-typedef struct Sumdata_s
-{
- uint32_t size;
- uint32_t num;
- __V_* buf;
-} Sumdata_t;
-
-typedef struct Sum_s
-{
- _SUM_PUBLIC_
-#ifdef _SUM_PRIVATE_
- _SUM_PRIVATE_
-#endif
-} Sum_t;
-
-extern __MANGLE__ Sum_t* sumopen __PROTO__((const char*));
-extern __MANGLE__ int suminit __PROTO__((Sum_t*));
-extern __MANGLE__ int sumblock __PROTO__((Sum_t*, const __V_*, size_t));
-extern __MANGLE__ int sumdone __PROTO__((Sum_t*));
-extern __MANGLE__ int sumdata __PROTO__((Sum_t*, Sumdata_t*));
-extern __MANGLE__ int sumprint __PROTO__((Sum_t*, Sfio_t*, int, size_t));
-extern __MANGLE__ int sumusage __PROTO__((Sfio_t*));
-extern __MANGLE__ int sumclose __PROTO__((Sum_t*));
-
-#endif
diff --git a/usr/src/lib/libsum/amd64/src/lib/libsum/FEATURE/sum b/usr/src/lib/libsum/amd64/src/lib/libsum/FEATURE/sum
deleted file mode 100644
index 15ef9799e1..0000000000
--- a/usr/src/lib/libsum/amd64/src/lib/libsum/FEATURE/sum
+++ /dev/null
@@ -1,16 +0,0 @@
-/* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_i386_64bit/src/lib/libsum/features/sum by iffe version 2009-12-04 : : */
-#ifndef _def_sum_sum
-#define _def_sum_sum 1
-#define _sys_types 1 /* #include <sys/types.h> ok */
-#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20100309/build_i386_64bit/arch/sol11.i386/lib/libast.a is a library */
-#define _LIB_m 1 /* -lm is a library */
-#define _hdr_md4 1 /* #include <md4.h> ok */
-#define _LIB_md 1 /* -lmd is a library */
-#define _lib_MD4Init 1 /* MD4Init() in default lib(s) */
-#define _hdr_md5 1 /* #include <md5.h> ok */
-#define _lib_MD5Init 1 /* MD5Init() in default lib(s) */
-#define _hdr_sha1 1 /* #include <sha1.h> ok */
-#define _lib_SHA1Init 1 /* SHA1Init() in default lib(s) */
-#define _hdr_sha2 1 /* #include <sha2.h> ok */
-#define _lib_SHA2Init 1 /* SHA2Init() in default lib(s) */
-#endif
diff --git a/usr/src/lib/libsum/common/RELEASE b/usr/src/lib/libsum/common/RELEASE
deleted file mode 100644
index d662f77c03..0000000000
--- a/usr/src/lib/libsum/common/RELEASE
+++ /dev/null
@@ -1,15 +0,0 @@
-09-09-28 sumlib.c: use simple (faster) method name match function
-08-06-05 sum-lmd.c: align context to largest int
-08-05-01 sumlib.c: add some -lmd verification checks
-08-02-11 sum-lmd.c,features/sum: add wrapper for solaris -lmd
-07-10-29 sum.h,sumlib.c: add SUM_LEGACY for legacy output format
-07-09-21 sum-sha1.c: reinstate Steve Reid's public domain implementation
-07-07-26 sumlib.c: drop GPL sum-sha1.c
-05-02-14 sumlib.c: split into sum-*.c
-05-02-14 sum-sha2.c: add SHA { 256 384 512 }
-04-02-29 Makefile: compile with $(CC.PIC) for codexlib/sum $(CC.DLL)
-03-12-16 add { crc prng } generic methods and maps[] to these methods
-03-12-16 sum.h,sumlib.c: add sumdata()
-03-09-29 sumlib.c: fix FNV to use ^ instead of +
-03-04-28 sumlib.c: drop md5 `zeroize' for performance
- sumlib.c: add FIPS 180-1 SHA-1
diff --git a/usr/src/lib/libsum/common/features/sum b/usr/src/lib/libsum/common/features/sum
deleted file mode 100644
index ce15b4995e..0000000000
--- a/usr/src/lib/libsum/common/features/sum
+++ /dev/null
@@ -1,4 +0,0 @@
-lib MD4Init md4.h -lmd
-lib MD5Init md5.h -lmd
-lib SHA1Init sha1.h -lmd
-lib SHA2Init sha2.h -lmd
diff --git a/usr/src/lib/libsum/common/sum-ast4.c b/usr/src/lib/libsum/common/sum-ast4.c
deleted file mode 100644
index 1285b765de..0000000000
--- a/usr/src/lib/libsum/common/sum-ast4.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * ast4
- */
-
-#define ast4_description \
- "The \bast\b 128 bit PRNG hash generated by catenating 4 separate 32 \
- bit PNRG hashes. The block count is not printed."
-#define ast4_options 0
-#define ast4_match "ast4|32x4|tw"
-#define ast4_done long_done
-#define ast4_scale 0
-
-typedef struct Ast4_sum_s
-{
- uint32_t sum0;
- uint32_t sum1;
- uint32_t sum2;
- uint32_t sum3;
-} Ast4_sum_t;
-
-typedef struct Ast4_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- Ast4_sum_t cur;
- Ast4_sum_t tot;
- unsigned char buf[sizeof(Ast4_sum_t)];
-} Ast4_t;
-
-static int
-ast4_init(Sum_t* p)
-{
- register Ast4_t* a = (Ast4_t*)p;
-
- a->tot.sum0 ^= a->cur.sum0;
- a->cur.sum0 = 0;
- a->tot.sum1 ^= a->cur.sum1;
- a->cur.sum1 = 0;
- a->tot.sum2 ^= a->cur.sum2;
- a->cur.sum2 = 0;
- a->tot.sum3 ^= a->cur.sum3;
- a->cur.sum3 = 0;
- return 0;
-}
-
-static Sum_t*
-ast4_open(const Method_t* method, const char* name)
-{
- Ast4_t* p;
-
- if (p = newof(0, Ast4_t, 1, 0))
- {
- p->method = (Method_t*)method;
- p->name = name;
- }
- return (Sum_t*)p;
-}
-
-static int
-ast4_block(Sum_t* p, const void* s, size_t n)
-{
- register Ast4_sum_t* a = &((Ast4_t*)p)->cur;
- register unsigned char* b = (unsigned char*)s;
- register unsigned char* e = b + n;
- register int c;
-
- while (b < e)
- {
- c = *b++;
- a->sum0 = a->sum0 * 0x63c63cd9 + 0x9c39c33d + c;
- a->sum1 = a->sum1 * 0x00000011 + 0x00017cfb + c;
- a->sum2 = a->sum2 * 0x12345679 + 0x3ade68b1 + c;
- a->sum3 = a->sum3 * 0xf1eac01d + 0xcafe10af + c;
- }
- return 0;
-}
-
-static int
-ast4_print(Sum_t* p, Sfio_t* sp, int flags, size_t scale)
-{
- register Ast4_sum_t* a;
-
- a = (flags & SUM_TOTAL) ? &((Ast4_t*)p)->tot : &((Ast4_t*)p)->cur;
- sfprintf(sp, "%06..64u%06..64u%06..64u%06..64u", a->sum0, a->sum1, a->sum2, a->sum3);
- return 0;
-}
-
-static int
-ast4_data(Sum_t* p, Sumdata_t* data)
-{
- data->size = sizeof(((Ast4_t*)p)->cur);
- data->num = 0;
-#if _ast_intswap
- swapmem(_ast_intswap, data->buf = ((Ast4_t*)p)->buf, &((Ast4_t*)p)->cur, sizeof(((Ast4_t*)p)->cur));
-#else
- data->buf = &((Ast4_t*)p)->cur;
-#endif
- return 0;
-}
diff --git a/usr/src/lib/libsum/common/sum-att.c b/usr/src/lib/libsum/common/sum-att.c
deleted file mode 100644
index 1dc2ec6214..0000000000
--- a/usr/src/lib/libsum/common/sum-att.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * att
- */
-
-#define att_description \
- "The system 5 release 4 checksum. This is the default for \bsum\b \
- when \bgetconf UNIVERSE\b is \batt\b. This is the only true sum; \
- all of the other methods are order dependent."
-#define att_options 0
-#define att_match "att|sys5|s5|default"
-#define att_open long_open
-#define att_init long_init
-#define att_print long_print
-#define att_data long_data
-#define att_scale 512
-
-#if defined(__SUNPRO_C) || defined(__GNUC__)
-
-#if defined(__SUNPRO_C)
-# include <sun_prefetch.h>
-# define sum_prefetch(addr) sun_prefetch_read_many((void *)(addr))
-#elif defined(__GNUC__)
-# define sum_prefetch(addr) __builtin_prefetch((addr), 0, 3)
-#else
-# error Unknown compiler
-#endif
-
-#define CBLOCK_SIZE (64)
-#pragma unroll(16)
-
-/* Inmos transputer would love this algorithm */
-static int
-att_block(register Sum_t* p, const void* s, size_t n)
-{
- register uint32_t c = ((Integral_t*)p)->sum;
- register const unsigned char* b = (const unsigned char*)s;
- register const unsigned char* e = b + n;
- register uint32_t s0, s1, s2, s3, s4, s5, s6, s7;
- register unsigned int i;
-
- s0=s1=s2=s3=s4=s5=s6=s7=0U;
-
- sum_prefetch((void *)b);
-
- while (n > CBLOCK_SIZE)
- {
- sum_prefetch((b+CBLOCK_SIZE));
-
- /* Compiler will unroll for() loops per #pragma unroll */
- for (i=0 ; i < (CBLOCK_SIZE/8) ; i++)
- {
- /*
- * use s0-s7 to decouple calculations (this improves pipelining)
- * because each operation is completely independent from it's
- * siblings
- */
- s0+=b[0];
- s1+=b[1];
- s2+=b[2];
- s3+=b[3];
- s4+=b[4];
- s5+=b[5];
- s6+=b[6];
- s7+=b[7];
-
- b+=8;
- n-=8;
- }
- }
-
- c+=s0+s1+s2+s3+s4+s5+s6+s7;
-
- while (b < e)
- c += *b++;
- ((Integral_t*)p)->sum = c;
- return 0;
-}
-
-#else
-static int
-att_block(register Sum_t* p, const void* s, size_t n)
-{
- register uint32_t c = ((Integral_t*)p)->sum;
- register unsigned char* b = (unsigned char*)s;
- register unsigned char* e = b + n;
-
- while (b < e)
- c += *b++;
- ((Integral_t*)p)->sum = c;
- return 0;
-}
-#endif /* defined(__SUNPRO_C) || defined(__GNUC__) */
-
-static int
-att_done(Sum_t* p)
-{
- register uint32_t c = ((Integral_t*)p)->sum;
-
- c = (c & 0xffff) + ((c >> 16) & 0xffff);
- c = (c & 0xffff) + (c >> 16);
- ((Integral_t*)p)->sum = c & 0xffff;
- return short_done(p);
-}
diff --git a/usr/src/lib/libsum/common/sum-bsd.c b/usr/src/lib/libsum/common/sum-bsd.c
deleted file mode 100644
index 9980e8b07e..0000000000
--- a/usr/src/lib/libsum/common/sum-bsd.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * bsd
- */
-
-#define bsd_description \
- "The BSD checksum."
-#define bsd_options 0
-#define bsd_match "bsd|ucb"
-#define bsd_open long_open
-#define bsd_init long_init
-#define bsd_done short_done
-#define bsd_print long_print
-#define bsd_data long_data
-#define bsd_scale 1024
-
-static int
-bsd_block(register Sum_t* p, const void* s, size_t n)
-{
- register uint32_t c = ((Integral_t*)p)->sum;
- register unsigned char* b = (unsigned char*)s;
- register unsigned char* e = b + n;
-
- while (b < e)
- c = ((c >> 1) + *b++ + ((c & 01) ? 0x8000 : 0)) & 0xffff;
- ((Integral_t*)p)->sum = c;
- return 0;
-}
diff --git a/usr/src/lib/libsum/common/sum-crc.c b/usr/src/lib/libsum/common/sum-crc.c
deleted file mode 100644
index f105338b94..0000000000
--- a/usr/src/lib/libsum/common/sum-crc.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * crc
- */
-
-#define crc_description \
- "32 bit CRC (cyclic redundancy check)."
-#define crc_options "\
-[+polynomial?The 32 bit crc polynomial bitmask with implicit bit 32.]:[mask:=0xedb88320]\
-[+done?XOR the final crc value with \anumber\a. 0xffffffff is used if \anumber\a is omitted.]:?[number:=0]\
-[+init?The initial crc value. 0xffffffff is used if \anumber\a is omitted.]:?[number:=0]\
-[+rotate?XOR each input character with the high order crc byte (instead of the low order).]\
-[+size?Include the total number of bytes in the crc. \anumber\a, if specified, is first XOR'd into the size.]:?[number:=0]\
-"
-#define crc_match "crc"
-#define crc_open crc_open
-#define crc_print long_print
-#define crc_data long_data
-#define crc_scale 0
-
-typedef uint32_t Crcnum_t;
-
-typedef struct Crc_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- _INTEGRAL_PRIVATE_
- Crcnum_t init;
- Crcnum_t done;
- Crcnum_t xorsize;
- const Crcnum_t *tab; /* use |const| to give the compiler a hint that the data won't change */
- Crcnum_t tabdata[256];
- unsigned int addsize;
- unsigned int rotate;
-} Crc_t;
-
-#define CRC(p,s,c) (s = (s >> 8) ^ (p)->tab[(s ^ (c)) & 0xff])
-#define CRCROTATE(p,s,c) (s = (s << 8) ^ (p)->tab[((s >> 24) ^ (c)) & 0xff])
-
-static const
-Crcnum_t posix_cksum_tab[256] = {
- 0x00000000U,
- 0x04c11db7U, 0x09823b6eU, 0x0d4326d9U, 0x130476dcU, 0x17c56b6bU,
- 0x1a864db2U, 0x1e475005U, 0x2608edb8U, 0x22c9f00fU, 0x2f8ad6d6U,
- 0x2b4bcb61U, 0x350c9b64U, 0x31cd86d3U, 0x3c8ea00aU, 0x384fbdbdU,
- 0x4c11db70U, 0x48d0c6c7U, 0x4593e01eU, 0x4152fda9U, 0x5f15adacU,
- 0x5bd4b01bU, 0x569796c2U, 0x52568b75U, 0x6a1936c8U, 0x6ed82b7fU,
- 0x639b0da6U, 0x675a1011U, 0x791d4014U, 0x7ddc5da3U, 0x709f7b7aU,
- 0x745e66cdU, 0x9823b6e0U, 0x9ce2ab57U, 0x91a18d8eU, 0x95609039U,
- 0x8b27c03cU, 0x8fe6dd8bU, 0x82a5fb52U, 0x8664e6e5U, 0xbe2b5b58U,
- 0xbaea46efU, 0xb7a96036U, 0xb3687d81U, 0xad2f2d84U, 0xa9ee3033U,
- 0xa4ad16eaU, 0xa06c0b5dU, 0xd4326d90U, 0xd0f37027U, 0xddb056feU,
- 0xd9714b49U, 0xc7361b4cU, 0xc3f706fbU, 0xceb42022U, 0xca753d95U,
- 0xf23a8028U, 0xf6fb9d9fU, 0xfbb8bb46U, 0xff79a6f1U, 0xe13ef6f4U,
- 0xe5ffeb43U, 0xe8bccd9aU, 0xec7dd02dU, 0x34867077U, 0x30476dc0U,
- 0x3d044b19U, 0x39c556aeU, 0x278206abU, 0x23431b1cU, 0x2e003dc5U,
- 0x2ac12072U, 0x128e9dcfU, 0x164f8078U, 0x1b0ca6a1U, 0x1fcdbb16U,
- 0x018aeb13U, 0x054bf6a4U, 0x0808d07dU, 0x0cc9cdcaU, 0x7897ab07U,
- 0x7c56b6b0U, 0x71159069U, 0x75d48ddeU, 0x6b93dddbU, 0x6f52c06cU,
- 0x6211e6b5U, 0x66d0fb02U, 0x5e9f46bfU, 0x5a5e5b08U, 0x571d7dd1U,
- 0x53dc6066U, 0x4d9b3063U, 0x495a2dd4U, 0x44190b0dU, 0x40d816baU,
- 0xaca5c697U, 0xa864db20U, 0xa527fdf9U, 0xa1e6e04eU, 0xbfa1b04bU,
- 0xbb60adfcU, 0xb6238b25U, 0xb2e29692U, 0x8aad2b2fU, 0x8e6c3698U,
- 0x832f1041U, 0x87ee0df6U, 0x99a95df3U, 0x9d684044U, 0x902b669dU,
- 0x94ea7b2aU, 0xe0b41de7U, 0xe4750050U, 0xe9362689U, 0xedf73b3eU,
- 0xf3b06b3bU, 0xf771768cU, 0xfa325055U, 0xfef34de2U, 0xc6bcf05fU,
- 0xc27dede8U, 0xcf3ecb31U, 0xcbffd686U, 0xd5b88683U, 0xd1799b34U,
- 0xdc3abdedU, 0xd8fba05aU, 0x690ce0eeU, 0x6dcdfd59U, 0x608edb80U,
- 0x644fc637U, 0x7a089632U, 0x7ec98b85U, 0x738aad5cU, 0x774bb0ebU,
- 0x4f040d56U, 0x4bc510e1U, 0x46863638U, 0x42472b8fU, 0x5c007b8aU,
- 0x58c1663dU, 0x558240e4U, 0x51435d53U, 0x251d3b9eU, 0x21dc2629U,
- 0x2c9f00f0U, 0x285e1d47U, 0x36194d42U, 0x32d850f5U, 0x3f9b762cU,
- 0x3b5a6b9bU, 0x0315d626U, 0x07d4cb91U, 0x0a97ed48U, 0x0e56f0ffU,
- 0x1011a0faU, 0x14d0bd4dU, 0x19939b94U, 0x1d528623U, 0xf12f560eU,
- 0xf5ee4bb9U, 0xf8ad6d60U, 0xfc6c70d7U, 0xe22b20d2U, 0xe6ea3d65U,
- 0xeba91bbcU, 0xef68060bU, 0xd727bbb6U, 0xd3e6a601U, 0xdea580d8U,
- 0xda649d6fU, 0xc423cd6aU, 0xc0e2d0ddU, 0xcda1f604U, 0xc960ebb3U,
- 0xbd3e8d7eU, 0xb9ff90c9U, 0xb4bcb610U, 0xb07daba7U, 0xae3afba2U,
- 0xaafbe615U, 0xa7b8c0ccU, 0xa379dd7bU, 0x9b3660c6U, 0x9ff77d71U,
- 0x92b45ba8U, 0x9675461fU, 0x8832161aU, 0x8cf30badU, 0x81b02d74U,
- 0x857130c3U, 0x5d8a9099U, 0x594b8d2eU, 0x5408abf7U, 0x50c9b640U,
- 0x4e8ee645U, 0x4a4ffbf2U, 0x470cdd2bU, 0x43cdc09cU, 0x7b827d21U,
- 0x7f436096U, 0x7200464fU, 0x76c15bf8U, 0x68860bfdU, 0x6c47164aU,
- 0x61043093U, 0x65c52d24U, 0x119b4be9U, 0x155a565eU, 0x18197087U,
- 0x1cd86d30U, 0x029f3d35U, 0x065e2082U, 0x0b1d065bU, 0x0fdc1becU,
- 0x3793a651U, 0x3352bbe6U, 0x3e119d3fU, 0x3ad08088U, 0x2497d08dU,
- 0x2056cd3aU, 0x2d15ebe3U, 0x29d4f654U, 0xc5a92679U, 0xc1683bceU,
- 0xcc2b1d17U, 0xc8ea00a0U, 0xd6ad50a5U, 0xd26c4d12U, 0xdf2f6bcbU,
- 0xdbee767cU, 0xe3a1cbc1U, 0xe760d676U, 0xea23f0afU, 0xeee2ed18U,
- 0xf0a5bd1dU, 0xf464a0aaU, 0xf9278673U, 0xfde69bc4U, 0x89b8fd09U,
- 0x8d79e0beU, 0x803ac667U, 0x84fbdbd0U, 0x9abc8bd5U, 0x9e7d9662U,
- 0x933eb0bbU, 0x97ffad0cU, 0xafb010b1U, 0xab710d06U, 0xa6322bdfU,
- 0xa2f33668U, 0xbcb4666dU, 0xb8757bdaU, 0xb5365d03U, 0xb1f740b4U
-};
-
-static Sum_t*
-crc_open(const Method_t* method, const char* name)
-{
- register Crc_t* sum;
- register const char* s;
- register const char* t;
- register const char* v;
- register int i;
- register int j;
- Crcnum_t polynomial;
- Crcnum_t x;
-
- if (sum = newof(0, Crc_t, 1, 0))
- {
- sum->method = (Method_t*)method;
- sum->name = name;
- }
-
- if(!strcmp(name, "crc-0x04c11db7-rotate-done-size"))
- {
- sum->init=0;
- sum->done=0xffffffff;
- sum->xorsize=0x0;
- sum->addsize=0x1;
- sum->rotate=1;
-
- /* Optimized codepath for POSIX cksum to save startup time */
- sum->tab=posix_cksum_tab;
- }
- else
- {
- polynomial = 0xedb88320;
- s = name;
- while (*(t = s))
- {
- for (t = s, v = 0; *s && *s != '-'; s++)
- if (*s == '=' && !v)
- v = s;
- i = (v ? v : s) - t;
- if (isdigit(*t) || v && i >= 4 && strneq(t, "poly", 4) && (t = v + 1))
- polynomial = strtoul(t, NiL, 0);
- else if (strneq(t, "done", i))
- sum->done = v ? strtoul(v + 1, NiL, 0) : ~sum->done;
- else if (strneq(t, "init", i))
- sum->init = v ? strtoul(v + 1, NiL, 0) : ~sum->init;
- else if (strneq(t, "rotate", i))
- sum->rotate = 1;
- else if (strneq(t, "size", i))
- {
- sum->addsize = 1;
- if (v)
- sum->xorsize = strtoul(v + 1, NiL, 0);
- }
- if (*s == '-')
- s++;
- }
- if (sum->rotate)
- {
- Crcnum_t t;
- Crcnum_t p[8];
-
- p[0] = polynomial;
- for (i = 1; i < 8; i++)
- p[i] = (p[i-1] << 1) ^ ((p[i-1] & 0x80000000) ? polynomial : 0);
- for (i = 0; i < elementsof(sum->tabdata); i++)
- {
- t = 0;
- x = i;
- for (j = 0; j < 8; j++)
- {
- if (x & 1)
- t ^= p[j];
- x >>= 1;
- }
- sum->tabdata[i] = t;
- }
- }
- else
- {
- for (i = 0; i < elementsof(sum->tabdata); i++)
- {
- x = i;
- for (j = 0; j < 8; j++)
- x = (x>>1) ^ ((x & 1) ? polynomial : 0);
- sum->tabdata[i] = x;
- }
- }
-
- sum->tab=sum->tabdata;
- }
-
- return (Sum_t*)sum;
-}
-
-static int
-crc_init(Sum_t* p)
-{
- Crc_t* sum = (Crc_t*)p;
-
- sum->sum = sum->init;
- return 0;
-}
-
-#if defined(__SUNPRO_C) || defined(__GNUC__)
-
-#if defined(__SUNPRO_C)
-# include <sun_prefetch.h>
-# define sum_prefetch(addr) sun_prefetch_read_many((void *)(addr))
-#elif defined(__GNUC__)
-# define sum_prefetch(addr) __builtin_prefetch((addr), 0, 3)
-#else
-# error Unknown compiler
-#endif
-
-#define CBLOCK_SIZE (64)
-#pragma unroll(16)
-
-static int
-crc_block(Sum_t* p, const void* s, size_t n)
-{
- Crc_t* sum = (Crc_t*)p;
- register Crcnum_t c = sum->sum;
- register const unsigned char* b = (const unsigned char*)s;
- register const unsigned char* e = b + n;
- unsigned short i;
-
- sum_prefetch(b);
-
- if (sum->rotate)
- {
- while (n > CBLOCK_SIZE)
- {
- sum_prefetch(b+CBLOCK_SIZE);
- for(i=0 ; i < CBLOCK_SIZE ; i++)
- {
- CRCROTATE(sum, c, *b++);
- }
-
- n-=CBLOCK_SIZE;
- }
-
- while (b < e)
- {
- CRCROTATE(sum, c, *b++);
- }
- }
- else
- {
- while (n > CBLOCK_SIZE)
- {
- sum_prefetch(b+CBLOCK_SIZE);
- for(i=0 ; i < CBLOCK_SIZE ; i++)
- {
- CRC(sum, c, *b++);
- }
-
- n-=CBLOCK_SIZE;
- }
-
- while (b < e)
- {
- CRC(sum, c, *b++);
- }
- }
-
- sum->sum = c;
- return 0;
-}
-#else
-static int
-crc_block(Sum_t* p, const void* s, size_t n)
-{
- Crc_t* sum = (Crc_t*)p;
- register Crcnum_t c = sum->sum;
- register unsigned char* b = (unsigned char*)s;
- register unsigned char* e = b + n;
-
- if (sum->rotate)
- while (b < e)
- CRCROTATE(sum, c, *b++);
- else
- while (b < e)
- CRC(sum, c, *b++);
- sum->sum = c;
- return 0;
-}
-#endif /* defined(__SUNPRO_C) || defined(__GNUC__) */
-
-static int
-crc_done(Sum_t* p)
-{
- register Crc_t* sum = (Crc_t*)p;
- register Crcnum_t c;
- register uintmax_t n;
- int i;
- int j;
-
- c = sum->sum;
- if (sum->addsize)
- {
- n = sum->size ^ sum->xorsize;
- if (sum->rotate)
- while (n)
- {
- CRCROTATE(sum, c, n);
- n >>= 8;
- }
- else
- for (i = 0, j = 32; i < 4; i++)
- {
- j -= 8;
- CRC(sum, c, n >> j);
- }
- }
- sum->sum = c ^ sum->done;
- sum->total_sum ^= (sum->sum &= 0xffffffff);
- return 0;
-}
diff --git a/usr/src/lib/libsum/common/sum-lmd.c b/usr/src/lib/libsum/common/sum-lmd.c
deleted file mode 100644
index ca104c394b..0000000000
--- a/usr/src/lib/libsum/common/sum-lmd.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * sum(3) wrapper for solaris -lmd message digest library
- */
-
-typedef void (*Lmd_init_f)(void*);
-typedef void (*Lmd_update_f)(void*, const void*, size_t);
-typedef void (*Lmd_final_f)(unsigned char*, void*);
-
-#define _SUM_LMD_ \
- _SUM_PUBLIC_ \
- _SUM_PRIVATE_ \
- Lmd_init_f initf; \
- Lmd_update_f updatef; \
- Lmd_final_f finalf; \
- unsigned int datasize; \
- unsigned char total[64]; \
- unsigned char data[64];
-
-typedef struct Lmd_s
-{
- _SUM_LMD_
- struct
- {
- uintmax_t context;
- } context;
-} Lmd_t;
-
-static int
-lmd_init(Sum_t* p)
-{
- Lmd_t* lmd = (Lmd_t*)p;
-
- (*lmd->initf)(&lmd->context);
- return 0;
-}
-
-static int
-lmd_block(Sum_t* p, const void* s, size_t n)
-{
- Lmd_t* lmd = (Lmd_t*)p;
-
- (*lmd->updatef)(&lmd->context, s, n);
- return 0;
-}
-
-static int
-lmd_done(Sum_t* p)
-{
- register Lmd_t* lmd = (Lmd_t*)p;
- register int i;
-
- (*lmd->finalf)(lmd->data, &lmd->context);
- for (i = 0; i < lmd->datasize; i++)
- lmd->total[i] ^= lmd->data[i];
- return 0;
-}
-
-static int
-lmd_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Lmd_t* lmd = (Lmd_t*)p;
- register unsigned char* d;
- register int i;
-
- d = (flags & SUM_TOTAL) ? lmd->total : lmd->data;
- for (i = 0; i < lmd->datasize; i++)
- sfprintf(sp, "%02x", d[i]);
- return 0;
-}
-
-static int
-lmd_data(Sum_t* p, Sumdata_t* data)
-{
- Lmd_t* lmd = (Lmd_t*)p;
-
- data->size = lmd->datasize;
- data->num = 0;
- data->buf = lmd->data;
- return 0;
-}
-
-#if _lib_MD4Init && _hdr_md4
-
-#include <md4.h>
-
-#define md4_description "RFC1320 MD4 message digest. Cryptographically weak. The block count is not printed."
-#define md4_options "[+(version)?md4 (solaris -lmd) 2005-07-26]"
-#define md4_match "md4|MD4"
-#define md4_scale 0
-#define md4_init lmd_init
-#define md4_block lmd_block
-#define md4_done lmd_done
-#define md4_print lmd_print
-#define md4_data lmd_data
-
-typedef struct Md4_s
-{
- _SUM_LMD_
- MD4_CTX context;
-} Md4_t;
-
-static Sum_t*
-md4_open(const Method_t* method, const char* name)
-{
- Md4_t* lmd;
-
- if (lmd = newof(0, Md4_t, 1, 0))
- {
- lmd->method = (Method_t*)method;
- lmd->name = name;
- lmd->datasize = 16;
- lmd->initf = (Lmd_init_f)MD4Init;
- lmd->updatef = (Lmd_update_f)MD4Update;
- lmd->finalf = (Lmd_final_f)MD4Final;
- md4_init((Sum_t*)lmd);
- }
- return (Sum_t*)lmd;
-}
-
-#endif
-
-#if _lib_MD5Init && _hdr_md5
-
-#include <md5.h>
-
-#define md5_description "RFC1321 MD5 message digest. Cryptographically weak. The block count is not printed."
-#define md5_options "[+(version)?md5 (solaris -lmd) 2005-07-26]"
-#define md5_match "md5|MD5"
-#define md5_scale 0
-#define md5_init lmd_init
-#define md5_block lmd_block
-#define md5_done lmd_done
-#define md5_print lmd_print
-#define md5_data lmd_data
-
-typedef struct Md5_s
-{
- _SUM_LMD_
- MD5_CTX context;
-} Md5_t;
-
-static Sum_t*
-md5_open(const Method_t* method, const char* name)
-{
- Md5_t* lmd;
-
- if (lmd = newof(0, Md5_t, 1, 0))
- {
- lmd->method = (Method_t*)method;
- lmd->name = name;
- lmd->datasize = 16;
- lmd->initf = (Lmd_init_f)MD5Init;
- lmd->updatef = (Lmd_update_f)(uintptr_t)MD5Update;
- lmd->finalf = (Lmd_final_f)MD5Final;
- md5_init((Sum_t*)lmd);
- }
- return (Sum_t*)lmd;
-}
-
-#endif
-
-#if _lib_SHA1Init && _hdr_sha1
-
-#include <sha1.h>
-
-#define sha1_description "RFC3174 / FIPS 180-1 SHA-1 secure hash algorithm 1. Cryptographically weak. The block count is not printed."
-#define sha1_options "[+(version)?sha1 (solaris -lmd) 2005-07-26]"
-#define sha1_match "sha1|SHA1|sha-1|SHA-1"
-#define sha1_scale 0
-#define sha1_init lmd_init
-#define sha1_block lmd_block
-#define sha1_done lmd_done
-#define sha1_print lmd_print
-#define sha1_data lmd_data
-
-typedef struct Sha1_s
-{
- _SUM_LMD_
- SHA1_CTX context;
- unsigned char pad[1024]; /* XXX: who's bug is it? */
-} Sha1_t;
-
-static Sum_t*
-sha1_open(const Method_t* method, const char* name)
-{
- Sha1_t* lmd;
-
- if (lmd = newof(0, Sha1_t, 1, 0))
- {
- lmd->method = (Method_t*)method;
- lmd->name = name;
- lmd->datasize = 20;
- lmd->initf = (Lmd_init_f)SHA1Init;
- lmd->updatef = (Lmd_update_f)SHA1Update;
- lmd->finalf = (Lmd_final_f)SHA1Final;
- sha1_init((Sum_t*)lmd);
- }
- return (Sum_t*)lmd;
-}
-
-#endif
-
-#if _lib_SHA2Init && _hdr_sha2
-
-#include <sha2.h>
-
-#define sha256_description "FIPS 180-2 SHA256 secure hash algorithm. The block count is not printed."
-#define sha256_options "[+(version)?sha256 (solaris -lmd) 2005-07-26]"
-#define sha256_match "sha256|sha-256|SHA256|SHA-256"
-#define sha256_scale 0
-#define sha256_init lmd_init
-#define sha256_block lmd_block
-#define sha256_done lmd_done
-#define sha256_print lmd_print
-#define sha256_data lmd_data
-
-typedef struct Sha256_s
-{
- _SUM_LMD_
- SHA256_CTX context;
-} Sha256_t;
-
-static Sum_t*
-sha256_open(const Method_t* method, const char* name)
-{
- Sha256_t* lmd;
-
- if (lmd = newof(0, Sha256_t, 1, 0))
- {
- lmd->method = (Method_t*)method;
- lmd->name = name;
- lmd->datasize = 32;
- lmd->initf = (Lmd_init_f)SHA256Init;
- lmd->updatef = (Lmd_update_f)SHA256Update;
- lmd->finalf = (Lmd_final_f)SHA256Final;
- sha256_init((Sum_t*)lmd);
- }
- return (Sum_t*)lmd;
-}
-
-#define sha384_description "FIPS 180-2 SHA384 secure hash algorithm. The block count is not printed."
-#define sha384_options "[+(version)?sha384 (solaris -lmd) 2005-07-26]"
-#define sha384_match "sha384|sha-384|SHA384|SHA-384"
-#define sha384_scale 0
-#define sha384_init lmd_init
-#define sha384_block lmd_block
-#define sha384_done lmd_done
-#define sha384_print lmd_print
-#define sha384_data lmd_data
-
-typedef struct Sha384_s
-{
- _SUM_LMD_
- SHA384_CTX context;
-} Sha384_t;
-
-static Sum_t*
-sha384_open(const Method_t* method, const char* name)
-{
- Sha384_t* lmd;
-
- if (lmd = newof(0, Sha384_t, 1, 0))
- {
- lmd->method = (Method_t*)method;
- lmd->name = name;
- lmd->datasize = 48;
- lmd->initf = (Lmd_init_f)SHA384Init;
- lmd->updatef = (Lmd_update_f)SHA384Update;
- lmd->finalf = (Lmd_final_f)SHA384Final;
- sha384_init((Sum_t*)lmd);
- }
- return (Sum_t*)lmd;
-}
-
-#define sha512_description "FIPS 180-2 SHA512 secure hash algorithm. The block count is not printed."
-#define sha512_options "[+(version)?sha512 (solaris -lmd) 2005-07-26]"
-#define sha512_match "sha512|sha-512|SHA512|SHA-512"
-#define sha512_scale 0
-#define sha512_init lmd_init
-#define sha512_block lmd_block
-#define sha512_done lmd_done
-#define sha512_print lmd_print
-#define sha512_data lmd_data
-
-typedef struct Sha512_s
-{
- _SUM_LMD_
- SHA512_CTX context;
-} Sha512_t;
-
-static Sum_t*
-sha512_open(const Method_t* method, const char* name)
-{
- Sha512_t* lmd;
-
- if (lmd = newof(0, Sha512_t, 1, 0))
- {
- lmd->method = (Method_t*)method;
- lmd->name = name;
- lmd->datasize = 64;
- lmd->initf = (Lmd_init_f)SHA512Init;
- lmd->updatef = (Lmd_update_f)SHA512Update;
- lmd->finalf = (Lmd_final_f)SHA512Final;
- sha512_init((Sum_t*)lmd);
- }
- return (Sum_t*)lmd;
-}
-
-#endif
diff --git a/usr/src/lib/libsum/common/sum-md5.c b/usr/src/lib/libsum/common/sum-md5.c
deleted file mode 100644
index ffe49bdc3b..0000000000
--- a/usr/src/lib/libsum/common/sum-md5.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * md5
- */
-
-/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
- rights reserved.
-
- License to copy and use this software is granted provided that it
- is identified as the "RSA Data Security, Inc. MD5 Message-Digest
- Method" in all material mentioning or referencing this software
- or this function.
-
- License is also granted to make and use derivative works provided
- that such works are identified as "derived from the RSA Data
- Security, Inc. MD5 Message-Digest Method" in all material
- mentioning or referencing the derived work.
-
- RSA Data Security, Inc. makes no representations concerning either
- the merchantability of this software or the suitability of this
- software for any particular purpose. It is provided "as is"
- without express or implied warranty of any kind.
-
- These notices must be retained in any copies of any part of this
- documentation and/or software.
- */
-
-#define md5_description \
- "The RSA Data Security, Inc. MD5 Message-Digest Method, 1991-2, \
- used with permission. The block count is not printed."
-#define md5_options "[+(version)?md5 (RSA Data Security, Inc. MD5 Message-Digest, 1991-2) 1996-02-29]"
-#define md5_match "md5|MD5"
-#define md5_scale 0
-
-typedef uint32_t UINT4;
-
-typedef struct Md5_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- UINT4 state[4]; /* state (ABCD) */
- UINT4 count[2]; /* # bits handled mod 2^64 (lsb)*/
- unsigned char buffer[64]; /* input buffer */
- unsigned char digest[16]; /* final digest */
- unsigned char digest_sum[16]; /* sum of all digests */
-} Md5_t;
-
-static const unsigned char md5_pad[] =
-{
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-/*
- * encode input into output
- * len must be a multiple of 4
- */
-
-static void
-md5_encode(register unsigned char* output, register UINT4* input, unsigned int len)
-{
- register unsigned int i;
- register unsigned int j;
-
- for (i = j = 0; j < len; i++, j += 4)
- {
- output[j] = (unsigned char)(input[i] & 0xff);
- output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
- output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
- output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
- }
-}
-
-/*
- * decode input into output
- * len must be a multiple of 4
- */
-
-static void
-md5_decode(register UINT4* output, register unsigned char* input, unsigned int len)
-{
- unsigned int i;
- unsigned int j;
-
- for (i = j = 0; j < len; i++, j += 4)
- output[i] = ((UINT4)input[j]) |
- (((UINT4)input[j+1]) << 8) |
- (((UINT4)input[j+2]) << 16) |
- (((UINT4)input[j+3]) << 24);
-}
-
-static int
-md5_init(Sum_t* p)
-{
- register Md5_t* context = (Md5_t*)p;
-
- context->count[0] = context->count[1] = 0;
- context->state[0] = 0x67452301;
- context->state[1] = 0xefcdab89;
- context->state[2] = 0x98badcfe;
- context->state[3] = 0x10325476;
- return 0;
-}
-
-static Sum_t*
-md5_open(const Method_t* method, const char* name)
-{
- Md5_t* p;
-
- if (p = newof(0, Md5_t, 1, 0))
- {
- p->method = (Method_t*)method;
- p->name = name;
- md5_init((Sum_t*)p);
- }
- return (Sum_t*)p;
-}
-
-/*
- * basic MD5 step -- transforms buf based on in
- */
-
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-/* F, G, H and I are basic MD5 functions */
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits */
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */
-/* Rotation is separate from addition to prevent recomputation */
-#define FF(a, b, c, d, x, s, ac) { \
- (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-#define GG(a, b, c, d, x, s, ac) { \
- (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-#define HH(a, b, c, d, x, s, ac) { \
- (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-#define II(a, b, c, d, x, s, ac) { \
- (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-
-static void
-md5_transform(UINT4 state[4], unsigned char block[64])
-{
- UINT4 a = state[0];
- UINT4 b = state[1];
- UINT4 c = state[2];
- UINT4 d = state[3];
- UINT4 x[16];
-
- md5_decode(x, block, 64);
-
- /* round 1 */
- FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
- FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
- FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
- FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
- FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
- FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
- FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
- FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
- FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
- FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
- FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
- FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
- FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
- FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
- FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
- FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
- /* round 2 */
- GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
- GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
- GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
- GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
- GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
- GG (d, a, b, c, x[10], S22, 0x02441453); /* 22 */
- GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
- GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
- GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
- GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
- GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
- GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
- GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
- GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
- GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
- GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
- /* round 3 */
- HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
- HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
- HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
- HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
- HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
- HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
- HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
- HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
- HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
- HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
- HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
- HH (b, c, d, a, x[ 6], S34, 0x04881d05); /* 44 */
- HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
- HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
- HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
- HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
- /* round 4 */
- II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
- II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
- II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
- II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
- II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
- II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
- II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
- II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
- II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
- II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
- II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
- II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
- II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
- II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
- II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
- II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-
- state[0] += a;
- state[1] += b;
- state[2] += c;
- state[3] += d;
-}
-
-static int
-md5_block(Sum_t* p, const void* s, size_t inputLen)
-{
- register Md5_t* context = (Md5_t*)p;
- unsigned char* input = (unsigned char*)s;
- unsigned int i;
- unsigned int index;
- unsigned int partLen;
-
- /* compute number of bytes mod 64 */
- index = (unsigned int)((context->count[0] >> 3) & 0x3f);
-
- /* update number of bits */
- if ((context->count[0] += ((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3))
- context->count[1]++;
- context->count[1] += ((UINT4)inputLen >> 29);
- partLen = 64 - index;
-
- /* transform as many times as possible */
- if (inputLen >= partLen)
- {
- memcpy(&context->buffer[index], input, partLen);
- md5_transform(context->state, context->buffer);
- for (i = partLen; i + 63 < inputLen; i += 64)
- md5_transform(context->state, &input[i]);
- index = 0;
- }
- else
- i = 0;
-
- /* buffer remaining input */
- memcpy(&context->buffer[index], &input[i], inputLen - i);
-
- return 0;
-}
-
-static int
-md5_done(Sum_t* p)
-{
- register Md5_t* context = (Md5_t*)p;
- unsigned char bits[8];
- unsigned int index;
- unsigned int padLen;
-
- /* save number of bits */
- md5_encode(bits, context->count, sizeof(bits));
-
- /* pad out to 56 mod 64 */
- index = (unsigned int)((context->count[0] >> 3) & 0x3f);
- padLen = (index < 56) ? (56 - index) : (120 - index);
- md5_block(p, md5_pad, padLen);
-
- /* append length (before padding) */
- md5_block(p, bits, sizeof(bits));
-
- /* store state in digest */
- md5_encode(context->digest, context->state, sizeof(context->digest));
-
- /* accumulate the digests */
- for (index = 0; index < elementsof(context->digest); index++)
- context->digest_sum[index] ^= context->digest[index];
-
- return 0;
-}
-
-static int
-md5_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Md5_t* x = (Md5_t*)p;
- register unsigned char* d;
- register int n;
-
- d = (flags & SUM_TOTAL) ? x->digest_sum : x->digest;
- for (n = 0; n < elementsof(x->digest); n++)
- sfprintf(sp, "%02x", d[n]);
- return 0;
-}
-
-static int
-md5_data(Sum_t* p, Sumdata_t* data)
-{
- register Md5_t* x = (Md5_t*)p;
-
- data->size = elementsof(x->digest);
- data->num = 0;
- data->buf = x->digest;
- return 0;
-}
diff --git a/usr/src/lib/libsum/common/sum-prng.c b/usr/src/lib/libsum/common/sum-prng.c
deleted file mode 100644
index 71ec34f25e..0000000000
--- a/usr/src/lib/libsum/common/sum-prng.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * prng
- */
-
-#include <fnv.h>
-
-#define prng_description \
- "32 bit PRNG (pseudo random number generator) hash."
-#define prng_options "\
-[+mpy?The 32 bit PRNG multiplier.]:[number:=0x01000193]\
-[+add?The 32 bit PRNG addend.]:[number:=0]\
-[+init?The PRNG initial value. 0xffffffff is used if \anumber\a is omitted.]:?[number:=0x811c9dc5]\
-"
-#define prng_match "prng"
-#define prng_done long_done
-#define prng_print long_print
-#define prng_data long_data
-#define prng_scale 0
-
-typedef uint32_t Prngnum_t;
-
-typedef struct Prng_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- _INTEGRAL_PRIVATE_
- Prngnum_t init;
- Prngnum_t mpy;
- Prngnum_t add;
-} Prng_t;
-
-static Sum_t*
-prng_open(const Method_t* method, const char* name)
-{
- register Prng_t* sum;
- register const char* s;
- register const char* t;
- register const char* v;
- register int i;
-
- if (sum = newof(0, Prng_t, 1, 0))
- {
- sum->method = (Method_t*)method;
- sum->name = name;
- }
- s = name;
- while (*(t = s))
- {
- for (t = s, v = 0; *s && *s != '-'; s++)
- if (*s == '=' && !v)
- v = s;
- i = (v ? v : s) - t;
- if (isdigit(*t) || v && strneq(t, "mpy", i) && (t = v + 1))
- sum->mpy = strtoul(t, NiL, 0);
- else if (strneq(t, "add", i))
- sum->add = v ? strtoul(v + 1, NiL, 0) : ~sum->add;
- else if (strneq(t, "init", i))
- sum->init = v ? strtoul(v + 1, NiL, 0) : ~sum->init;
- if (*s == '-')
- s++;
- }
- if (!sum->mpy)
- {
- sum->mpy = FNV_MULT;
- if (!sum->init)
- sum->init = FNV_INIT;
- }
- return (Sum_t*)sum;
-}
-
-static int
-prng_init(Sum_t* p)
-{
- Prng_t* sum = (Prng_t*)p;
-
- sum->sum = sum->init;
- return 0;
-}
-
-static int
-prng_block(Sum_t* p, const void* s, size_t n)
-{
- Prng_t* sum = (Prng_t*)p;
- register Prngnum_t c = sum->sum;
- register unsigned char* b = (unsigned char*)s;
- register unsigned char* e = b + n;
-
- while (b < e)
- c = c * sum->mpy + sum->add + *b++;
- sum->sum = c;
- return 0;
-}
diff --git a/usr/src/lib/libsum/common/sum-sha1.c b/usr/src/lib/libsum/common/sum-sha1.c
deleted file mode 100644
index 732bfd3d0c..0000000000
--- a/usr/src/lib/libsum/common/sum-sha1.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * SHA-1 in C
- * By Steve Reid <steve@edmweb.com>
- * 100% Public Domain
- *
- * Test Vectors (from FIPS PUB 180-1)
- * "abc"
- * A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
- * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
- * 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
- * A million repetitions of "a"
- * 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
- */
-
-#define sha1_description "FIPS 180-1 SHA-1 secure hash algorithm 1."
-#define sha1_options "[+(version)?sha1 (FIPS 180-1) 1996-09-26]\
- [+(author)?Steve Reid <steve@edmweb.com>]"
-#define sha1_match "sha1|SHA1|sha-1|SHA-1"
-#define sha1_scale 0
-
-#define sha1_padding md5_pad
-
-typedef struct Sha1_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- uint32_t count[2];
- uint32_t state[5];
- uint8_t buffer[64];
- uint8_t digest[20];
- uint8_t digest_sum[20];
-} Sha1_t;
-
-#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/*
- * blk0() and blk() perform the initial expand.
- * I got the idea of expanding during the round function from SSLeay
- */
-#if _ast_intswap
-# define blk0(i) \
- (block->l[i] = (rol(block->l[i], 24) & 0xFF00FF00) \
- | (rol(block->l[i], 8) & 0x00FF00FF))
-#else
-# define blk0(i) block->l[i]
-#endif
-#define blk(i) \
- (block->l[i & 15] = rol(block->l[(i + 13) & 15] \
- ^ block->l[(i + 8) & 15] \
- ^ block->l[(i + 2) & 15] \
- ^ block->l[i & 15], 1))
-
-/*
- * (R0+R1), R2, R3, R4 are the different operations (rounds) used in SHA1
- */
-#define R0(v,w,x,y,z,i) \
- z += ((w & (x ^ y)) ^ y) + blk0(i) + 0x5A827999 + rol(v, 5); \
- w = rol(w, 30);
-#define R1(v,w,x,y,z,i) \
- z += ((w & (x ^ y)) ^ y) + blk(i) + 0x5A827999 + rol(v, 5); \
- w = rol(w, 30);
-#define R2(v,w,x,y,z,i) \
- z += (w ^ x ^ y) + blk(i) + 0x6ED9EBA1 + rol(v, 5); \
- w = rol(w, 30);
-#define R3(v,w,x,y,z,i) \
- z += (((w | x) & y) | (w & x)) + blk(i) + 0x8F1BBCDC + rol(v, 5); \
- w = rol(w, 30);
-#define R4(v,w,x,y,z,i) \
- z += (w ^ x ^ y) + blk(i) + 0xCA62C1D6 + rol(v, 5); \
- w = rol(w, 30);
-
-typedef union {
- unsigned char c[64];
- unsigned int l[16];
-} CHAR64LONG16;
-
-#ifdef __sparc_v9__
-static void do_R01(uint32_t *a, uint32_t *b, uint32_t *c,
- uint32_t *d, uint32_t *e, CHAR64LONG16 *);
-static void do_R2(uint32_t *a, uint32_t *b, uint32_t *c,
- uint32_t *d, uint32_t *e, CHAR64LONG16 *);
-static void do_R3(uint32_t *a, uint32_t *b, uint32_t *c,
- uint32_t *d, uint32_t *e, CHAR64LONG16 *);
-static void do_R4(uint32_t *a, uint32_t *b, uint32_t *c,
- uint32_t *d, uint32_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(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d,
- uint32_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(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d,
- uint32_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(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d,
- uint32_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(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d,
- uint32_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.
- */
-static void
-sha1_transform(uint32_t state[5], const unsigned char buffer[64]) {
- uint32_t a, b, c, d, e;
- CHAR64LONG16 *block;
- CHAR64LONG16 workspace;
-
- block = &workspace;
- (void)memcpy(block, buffer, 64);
-
- /* Copy sha->state[] to working vars */
- a = state[0];
- b = state[1];
- c = state[2];
- 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);
- 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);
- R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
- R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
- R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
- R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
- R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
- R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
- R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
- R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
- R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
- R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
- R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
- R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
- R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
- R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
- 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;
- state[1] += b;
- state[2] += c;
- state[3] += d;
- state[4] += e;
-
- /* Wipe variables */
- a = b = c = d = e = 0;
-}
-
-static int
-sha1_block(register Sum_t* p, const void* s, size_t len)
-{
- Sha1_t* sha = (Sha1_t*)p;
- uint8_t* data = (uint8_t*)s;
- unsigned int i, j;
-
- if (len) {
- j = sha->count[0];
- if ((sha->count[0] += len << 3) < j)
- sha->count[1] += (len >> 29) + 1;
- j = (j >> 3) & 63;
- if ((j + len) > 63) {
- (void)memcpy(&sha->buffer[j], data, (i = 64 - j));
- sha1_transform(sha->state, sha->buffer);
- for ( ; i + 63 < len; i += 64)
- sha1_transform(sha->state, &data[i]);
- j = 0;
- } else {
- i = 0;
- }
-
- (void)memcpy(&sha->buffer[j], &data[i], len - i);
- }
- return 0;
-}
-
-static int
-sha1_init(Sum_t* p)
-{
- register Sha1_t* sha = (Sha1_t*)p;
-
- sha->count[0] = sha->count[1] = 0;
- sha->state[0] = 0x67452301;
- sha->state[1] = 0xEFCDAB89;
- sha->state[2] = 0x98BADCFE;
- sha->state[3] = 0x10325476;
- sha->state[4] = 0xC3D2E1F0;
-
- return 0;
-}
-
-static Sum_t*
-sha1_open(const Method_t* method, const char* name)
-{
- Sha1_t* sha;
-
- if (sha = newof(0, Sha1_t, 1, 0))
- {
- sha->method = (Method_t*)method;
- sha->name = name;
- sha1_init((Sum_t*)sha);
- }
- return (Sum_t*)sha;
-}
-
-/*
- * Add padding and return the message digest.
- */
-
-static const unsigned char final_200 = 128;
-static const unsigned char final_0 = 0;
-
-static int
-sha1_done(Sum_t* p)
-{
- Sha1_t* sha = (Sha1_t*)p;
- unsigned int i;
- unsigned char finalcount[8];
-
- for (i = 0; i < 8; i++) {
- /* Endian independent */
- finalcount[i] = (unsigned char)
- ((sha->count[(i >= 4 ? 0 : 1)]
- >> ((3 - (i & 3)) * 8)) & 255);
- }
-
- sha1_block(p, &final_200, 1);
- while ((sha->count[0] & 504) != 448)
- sha1_block(p, &final_0, 1);
- /* The next Update should cause a sha1_transform() */
- sha1_block(p, finalcount, 8);
-
- for (i = 0; i < elementsof(sha->digest); i++)
- {
- sha->digest[i] = (unsigned char)((sha->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
- sha->digest_sum[i] ^= sha->digest[i];
- }
- memset(sha->count, 0, sizeof(sha->count));
- memset(sha->state, 0, sizeof(sha->state));
- memset(sha->buffer, 0, sizeof(sha->buffer));
- return 0;
-}
-
-static int
-sha1_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Sha1_t* sha = (Sha1_t*)p;
- register unsigned char* d;
- register int n;
-
- d = (flags & SUM_TOTAL) ? sha->digest_sum : sha->digest;
- for (n = 0; n < elementsof(sha->digest); n++)
- sfprintf(sp, "%02x", d[n]);
- return 0;
-}
-
-static int
-sha1_data(Sum_t* p, Sumdata_t* data)
-{
- register Sha1_t* sha = (Sha1_t*)p;
-
- data->size = elementsof(sha->digest);
- data->num = 0;
- data->buf = sha->digest;
- return 0;
-}
diff --git a/usr/src/lib/libsum/common/sum-sha2.c b/usr/src/lib/libsum/common/sum-sha2.c
deleted file mode 100644
index d42674eba1..0000000000
--- a/usr/src/lib/libsum/common/sum-sha2.c
+++ /dev/null
@@ -1,1248 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-#if _typ_int64_t
-
-/*
- * Aaron D. Gifford's SHA {256,384,512} code transcribed into a -lsum method
- */
-
-/*
- * Copyright (c) 2000-2001, Aaron D. Gifford
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the copyright holder nor the names of contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * ASSERT NOTE:
- * Some sanity checking code is included using assert(). On my FreeBSD
- * system, this additional code can be removed by compiling with NDEBUG
- * defined. Check your own systems manpage on assert() to see how to
- * compile WITHOUT the sanity checking code on your system.
- *
- * UNROLLED TRANSFORM LOOP NOTE:
- * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
- * loop version for the hash transform rounds (defined using macros
- * later in this file). Either define on the command line, for example:
- *
- * cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c
- *
- * or define below:
- *
- * #define SHA2_UNROLL_TRANSFORM
- *
- */
-
-/*** SHA-256/384/512 Machine Architecture Definitions *****************/
-
-#if _PACKAGE_ast
-
-#ifndef __USE_BSD
-#define __undef__USE_BSD
-#define __USE_BSD
-#endif
-#include <endian.h>
-#ifdef __undef__USE_BSD
-#undef __undef__USE_BSD
-#undef __USE_BSD
-#endif
-
-typedef uint8_t sha2_byte; /* Exactly 1 byte */
-typedef uint32_t sha2_word32; /* Exactly 4 bytes */
-typedef uint64_t sha2_word64; /* Exactly 8 bytes */
-
-#define assert(x)
-
-#undef R
-#undef S32
-#undef S64
-
-#else /* _PACKAGE_ast */
-
-/*
- * BYTE_ORDER NOTE:
- *
- * Please make sure that your system defines BYTE_ORDER. If your
- * architecture is little-endian, make sure it also defines
- * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are
- * equivilent.
- *
- * If your system does not define the above, then you can do so by
- * hand like this:
- *
- * #define LITTLE_ENDIAN 1234
- * #define BIG_ENDIAN 4321
- *
- * And for little-endian machines, add:
- *
- * #define BYTE_ORDER LITTLE_ENDIAN
- *
- * Or for big-endian machines:
- *
- * #define BYTE_ORDER BIG_ENDIAN
- *
- * The FreeBSD machine this was written on defines BYTE_ORDER
- * appropriately by including <sys/types.h> (which in turn includes
- * <machine/endian.h> where the appropriate definitions are actually
- * made).
- */
-
-#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
-#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
-#endif
-
-/*
- * Define the following sha2_* types to types of the correct length on
- * the native archtecture. Most BSD systems and Linux define u_intXX_t
- * types. Machines with very recent ANSI C headers, can use the
- * uintXX_t definintions from inttypes.h by defining SHA2_USE_INTTYPES_H
- * during compile or in the sha.h header file.
- *
- * Machines that support neither u_intXX_t nor inttypes.h's uintXX_t
- * will need to define these three typedefs below (and the appropriate
- * ones in sha.h too) by hand according to their system architecture.
- *
- * Thank you, Jun-ichiro itojun Hagino, for suggesting using u_intXX_t
- * types and pointing out recent ANSI C support for uintXX_t in inttypes.h.
- */
-
-#ifdef SHA2_USE_INTTYPES_H
-
-typedef uint8_t sha2_byte; /* Exactly 1 byte */
-typedef uint32_t sha2_word32; /* Exactly 4 bytes */
-typedef uint64_t sha2_word64; /* Exactly 8 bytes */
-
-#else /* SHA2_USE_INTTYPES_H */
-
-typedef u_int8_t sha2_byte; /* Exactly 1 byte */
-typedef u_int32_t sha2_word32; /* Exactly 4 bytes */
-typedef u_int64_t sha2_word64; /* Exactly 8 bytes */
-
-#endif /* SHA2_USE_INTTYPES_H */
-
-#endif /* _PACKAGE_ast */
-
-/*** SHA-256/384/512 Various Length Definitions ***********************/
-
-#define SHA256_BLOCK_LENGTH 64
-#define SHA256_DIGEST_LENGTH 32
-#define SHA384_BLOCK_LENGTH 128
-#define SHA384_DIGEST_LENGTH 48
-#define SHA512_BLOCK_LENGTH 128
-#define SHA512_DIGEST_LENGTH 64
-
-#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
-#define SHA384_SHORT_BLOCK_LENGTH (SHA384_BLOCK_LENGTH - 16)
-#define SHA512_SHORT_BLOCK_LENGTH (SHA512_BLOCK_LENGTH - 16)
-
-/*** ENDIAN REVERSAL MACROS *******************************************/
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define REVERSE32(w,x) { \
- sha2_word32 tmp = (w); \
- tmp = (tmp >> 16) | (tmp << 16); \
- (x) = ((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8); \
-}
-#if _ast_LL
-#define REVERSE64(w,x) { \
- sha2_word64 tmp = (w); \
- tmp = (tmp >> 32) | (tmp << 32); \
- tmp = ((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \
- ((tmp & 0x00ff00ff00ff00ffULL) << 8); \
- (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
- ((tmp & 0x0000ffff0000ffffULL) << 16); \
-}
-#else
-#define REVERSE64(w,x) { \
- sha2_word64 tmp = (w); \
- tmp = (tmp >> 32) | (tmp << 32); \
- tmp = ((tmp & ((sha2_word64)0xff00ff00ff00ff00)) >> 8) | \
- ((tmp & ((sha2_word64)0x00ff00ff00ff00ff)) << 8); \
- (x) = ((tmp & ((sha2_word64)0xffff0000ffff0000)) >> 16) | \
- ((tmp & ((sha2_word64)0x0000ffff0000ffff)) << 16); \
-}
-#endif
-#endif /* BYTE_ORDER == LITTLE_ENDIAN */
-
-/*
- * Macro for incrementally adding the unsigned 64-bit integer n to the
- * unsigned 128-bit integer (represented using a two-element array of
- * 64-bit words):
- */
-
-#define ADDINC128(w,n) { \
- (w)[0] += (sha2_word64)(n); \
- if ((w)[0] < (n)) { \
- (w)[1]++; \
- } \
-}
-
-/*
- * Macros for copying blocks of memory and for zeroing out ranges
- * of memory. Using these macros makes it easy to switch from
- * using memset()/memcpy() and using bzero()/bcopy().
- *
- * Please define either SHA2_USE_MEMSET_MEMCPY or define
- * SHA2_USE_BZERO_BCOPY depending on which function set you
- * choose to use:
- */
-
-#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY)
-/* Default to memset()/memcpy() if no option is specified */
-#define SHA2_USE_MEMSET_MEMCPY 1
-#endif
-#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY)
-/* Abort with an error if BOTH options are defined */
-#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both!
-#endif
-
-#ifdef SHA2_USE_MEMSET_MEMCPY
-#define MEMSET_BZERO(p,l) memset((p), 0, (l))
-#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l))
-#endif
-#ifdef SHA2_USE_BZERO_BCOPY
-#define MEMSET_BZERO(p,l) bzero((p), (l))
-#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l))
-#endif
-
-
-/*** THE SIX LOGICAL FUNCTIONS ****************************************/
-/*
- * Bit shifting and rotation (used by the six SHA-XYZ logical functions:
- *
- * NOTE: The naming of R and S appears backwards here (R is a SHIFT and
- * S is a ROTATION) because the SHA-256/384/512 description document
- * (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this
- * same "backwards" definition.
- */
-
-/* Shift-right (used in SHA-256, SHA-384, and SHA-512): */
-#define R(b,x) ((x) >> (b))
-/* 32-bit Rotate-right (used in SHA-256): */
-#define S32(b,x) (((x) >> (b)) | ((x) << (32 - (b))))
-/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
-#define S64(b,x) (((x) >> (b)) | ((x) << (64 - (b))))
-
-/* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */
-#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z)))
-#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
-
-/* Four of six logical functions used in SHA-256: */
-#define Sigma0_256(x) (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x)))
-#define Sigma1_256(x) (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x)))
-#define sigma0_256(x) (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x)))
-#define sigma1_256(x) (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x)))
-
-/* Four of six logical functions used in SHA-384 and SHA-512: */
-#define Sigma0_512(x) (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x)))
-#define Sigma1_512(x) (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x)))
-#define sigma0_512(x) (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7, (x)))
-#define sigma1_512(x) (S64(19, (x)) ^ S64(61, (x)) ^ R( 6, (x)))
-
-/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
-/* Hash constant words K for SHA-256: */
-static const sha2_word32 K256[64] = {
- 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
- 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
- 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
- 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
- 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
- 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
- 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
- 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
- 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
- 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
- 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
- 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
- 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
- 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
- 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
- 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
-};
-
-/* Initial hash value H for SHA-256: */
-static const sha2_word32 sha256_initial_hash_value[8] = {
- 0x6a09e667UL,
- 0xbb67ae85UL,
- 0x3c6ef372UL,
- 0xa54ff53aUL,
- 0x510e527fUL,
- 0x9b05688cUL,
- 0x1f83d9abUL,
- 0x5be0cd19UL
-};
-
-/* Hash constant words K for SHA-384 and SHA-512: */
-static const sha2_word64 K512[80] = {
-#if _ast_LL
- 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
- 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
- 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
- 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
- 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
- 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
- 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
- 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
- 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
- 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
- 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
- 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
- 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
- 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
- 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
- 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
- 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
- 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
- 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
- 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
- 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
- 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
- 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
- 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
- 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
- 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
- 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
- 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
- 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
- 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
- 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
- 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
- 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
- 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
- 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
- 0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
- 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
- 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
- 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
- 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL
-#else
- ((sha2_word64)0x428a2f98d728ae22), ((sha2_word64)0x7137449123ef65cd),
- ((sha2_word64)0xb5c0fbcfec4d3b2f), ((sha2_word64)0xe9b5dba58189dbbc),
- ((sha2_word64)0x3956c25bf348b538), ((sha2_word64)0x59f111f1b605d019),
- ((sha2_word64)0x923f82a4af194f9b), ((sha2_word64)0xab1c5ed5da6d8118),
- ((sha2_word64)0xd807aa98a3030242), ((sha2_word64)0x12835b0145706fbe),
- ((sha2_word64)0x243185be4ee4b28c), ((sha2_word64)0x550c7dc3d5ffb4e2),
- ((sha2_word64)0x72be5d74f27b896f), ((sha2_word64)0x80deb1fe3b1696b1),
- ((sha2_word64)0x9bdc06a725c71235), ((sha2_word64)0xc19bf174cf692694),
- ((sha2_word64)0xe49b69c19ef14ad2), ((sha2_word64)0xefbe4786384f25e3),
- ((sha2_word64)0x0fc19dc68b8cd5b5), ((sha2_word64)0x240ca1cc77ac9c65),
- ((sha2_word64)0x2de92c6f592b0275), ((sha2_word64)0x4a7484aa6ea6e483),
- ((sha2_word64)0x5cb0a9dcbd41fbd4), ((sha2_word64)0x76f988da831153b5),
- ((sha2_word64)0x983e5152ee66dfab), ((sha2_word64)0xa831c66d2db43210),
- ((sha2_word64)0xb00327c898fb213f), ((sha2_word64)0xbf597fc7beef0ee4),
- ((sha2_word64)0xc6e00bf33da88fc2), ((sha2_word64)0xd5a79147930aa725),
- ((sha2_word64)0x06ca6351e003826f), ((sha2_word64)0x142929670a0e6e70),
- ((sha2_word64)0x27b70a8546d22ffc), ((sha2_word64)0x2e1b21385c26c926),
- ((sha2_word64)0x4d2c6dfc5ac42aed), ((sha2_word64)0x53380d139d95b3df),
- ((sha2_word64)0x650a73548baf63de), ((sha2_word64)0x766a0abb3c77b2a8),
- ((sha2_word64)0x81c2c92e47edaee6), ((sha2_word64)0x92722c851482353b),
- ((sha2_word64)0xa2bfe8a14cf10364), ((sha2_word64)0xa81a664bbc423001),
- ((sha2_word64)0xc24b8b70d0f89791), ((sha2_word64)0xc76c51a30654be30),
- ((sha2_word64)0xd192e819d6ef5218), ((sha2_word64)0xd69906245565a910),
- ((sha2_word64)0xf40e35855771202a), ((sha2_word64)0x106aa07032bbd1b8),
- ((sha2_word64)0x19a4c116b8d2d0c8), ((sha2_word64)0x1e376c085141ab53),
- ((sha2_word64)0x2748774cdf8eeb99), ((sha2_word64)0x34b0bcb5e19b48a8),
- ((sha2_word64)0x391c0cb3c5c95a63), ((sha2_word64)0x4ed8aa4ae3418acb),
- ((sha2_word64)0x5b9cca4f7763e373), ((sha2_word64)0x682e6ff3d6b2b8a3),
- ((sha2_word64)0x748f82ee5defb2fc), ((sha2_word64)0x78a5636f43172f60),
- ((sha2_word64)0x84c87814a1f0ab72), ((sha2_word64)0x8cc702081a6439ec),
- ((sha2_word64)0x90befffa23631e28), ((sha2_word64)0xa4506cebde82bde9),
- ((sha2_word64)0xbef9a3f7b2c67915), ((sha2_word64)0xc67178f2e372532b),
- ((sha2_word64)0xca273eceea26619c), ((sha2_word64)0xd186b8c721c0c207),
- ((sha2_word64)0xeada7dd6cde0eb1e), ((sha2_word64)0xf57d4f7fee6ed178),
- ((sha2_word64)0x06f067aa72176fba), ((sha2_word64)0x0a637dc5a2c898a6),
- ((sha2_word64)0x113f9804bef90dae), ((sha2_word64)0x1b710b35131c471b),
- ((sha2_word64)0x28db77f523047d84), ((sha2_word64)0x32caab7b40c72493),
- ((sha2_word64)0x3c9ebe0a15c9bebc), ((sha2_word64)0x431d67c49c100d4c),
- ((sha2_word64)0x4cc5d4becb3e42b6), ((sha2_word64)0x597f299cfc657e2a),
- ((sha2_word64)0x5fcb6fab3ad6faec), ((sha2_word64)0x6c44198c4a475817)
-#endif
-};
-
-/* Initial hash value H for SHA-384 */
-static const sha2_word64 sha384_initial_hash_value[8] = {
-#if _ast_LL
- 0xcbbb9d5dc1059ed8ULL,
- 0x629a292a367cd507ULL,
- 0x9159015a3070dd17ULL,
- 0x152fecd8f70e5939ULL,
- 0x67332667ffc00b31ULL,
- 0x8eb44a8768581511ULL,
- 0xdb0c2e0d64f98fa7ULL,
- 0x47b5481dbefa4fa4ULL
-#else
- ((sha2_word64)0xcbbb9d5dc1059ed8),
- ((sha2_word64)0x629a292a367cd507),
- ((sha2_word64)0x9159015a3070dd17),
- ((sha2_word64)0x152fecd8f70e5939),
- ((sha2_word64)0x67332667ffc00b31),
- ((sha2_word64)0x8eb44a8768581511),
- ((sha2_word64)0xdb0c2e0d64f98fa7),
- ((sha2_word64)0x47b5481dbefa4fa4)
-#endif
-};
-
-/* Initial hash value H for SHA-512 */
-static const sha2_word64 sha512_initial_hash_value[8] = {
-#if _ast_LL
- 0x6a09e667f3bcc908ULL,
- 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL,
- 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL,
- 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL,
- 0x5be0cd19137e2179ULL
-#else
- ((sha2_word64)0x6a09e667f3bcc908),
- ((sha2_word64)0xbb67ae8584caa73b),
- ((sha2_word64)0x3c6ef372fe94f82b),
- ((sha2_word64)0xa54ff53a5f1d36f1),
- ((sha2_word64)0x510e527fade682d1),
- ((sha2_word64)0x9b05688c2b3e6c1f),
- ((sha2_word64)0x1f83d9abfb41bd6b),
- ((sha2_word64)0x5be0cd19137e2179)
-#endif
-};
-
-/*** SHA-256: *********************************************************/
-
-#define sha256_description "FIPS SHA-256 secure hash algorithm."
-#define sha256_options "\
-[+(version)?sha-256 (FIPS) 2000-01-01]\
-[+(author)?Aaron D. Gifford]\
-"
-#define sha256_match "sha256|sha-256|SHA256|SHA-256"
-#define sha256_scale 0
-
-#define sha256_padding md5_pad
-
-#define SHA256_CTX Sha256_t
-
-typedef struct Sha256_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- sha2_byte digest[SHA256_DIGEST_LENGTH];
- sha2_byte digest_sum[SHA256_DIGEST_LENGTH];
- sha2_word32 state[8];
- sha2_word64 bitcount;
- sha2_byte buffer[SHA256_BLOCK_LENGTH];
-} Sha256_t;
-
-#ifdef SHA2_UNROLL_TRANSFORM
-
-/* Unrolled SHA-256 round macros: */
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-
-#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) \
- REVERSE32(*data++, W256[j]); \
- T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \
- K256[j] + W256[j]; \
- (d) += T1; \
- (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \
- j++
-
-
-#else /* BYTE_ORDER == LITTLE_ENDIAN */
-
-#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) \
- T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \
- K256[j] + (W256[j] = *data++); \
- (d) += T1; \
- (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \
- j++
-
-#endif /* BYTE_ORDER == LITTLE_ENDIAN */
-
-#define ROUND256(a,b,c,d,e,f,g,h) \
- s0 = W256[(j+1)&0x0f]; \
- s0 = sigma0_256(s0); \
- s1 = W256[(j+14)&0x0f]; \
- s1 = sigma1_256(s1); \
- T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + K256[j] + \
- (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); \
- (d) += T1; \
- (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \
- j++
-
-static void SHA256_Transform(SHA256_CTX* sha, const sha2_word32* data) {
- sha2_word32 a, b, c, d, e, f, g, h, s0, s1;
- sha2_word32 T1, *W256;
- int j;
-
- W256 = (sha2_word32*)sha->buffer;
-
- /* Initialize registers with the prev. intermediate value */
- a = sha->state[0];
- b = sha->state[1];
- c = sha->state[2];
- d = sha->state[3];
- e = sha->state[4];
- f = sha->state[5];
- g = sha->state[6];
- h = sha->state[7];
-
- j = 0;
- do {
- /* Rounds 0 to 15 (unrolled): */
- ROUND256_0_TO_15(a,b,c,d,e,f,g,h);
- ROUND256_0_TO_15(h,a,b,c,d,e,f,g);
- ROUND256_0_TO_15(g,h,a,b,c,d,e,f);
- ROUND256_0_TO_15(f,g,h,a,b,c,d,e);
- ROUND256_0_TO_15(e,f,g,h,a,b,c,d);
- ROUND256_0_TO_15(d,e,f,g,h,a,b,c);
- ROUND256_0_TO_15(c,d,e,f,g,h,a,b);
- ROUND256_0_TO_15(b,c,d,e,f,g,h,a);
- } while (j < 16);
-
- /* Now for the remaining rounds to 64: */
- do {
- ROUND256(a,b,c,d,e,f,g,h);
- ROUND256(h,a,b,c,d,e,f,g);
- ROUND256(g,h,a,b,c,d,e,f);
- ROUND256(f,g,h,a,b,c,d,e);
- ROUND256(e,f,g,h,a,b,c,d);
- ROUND256(d,e,f,g,h,a,b,c);
- ROUND256(c,d,e,f,g,h,a,b);
- ROUND256(b,c,d,e,f,g,h,a);
- } while (j < 64);
-
- /* Compute the current intermediate hash value */
- sha->state[0] += a;
- sha->state[1] += b;
- sha->state[2] += c;
- sha->state[3] += d;
- sha->state[4] += e;
- sha->state[5] += f;
- sha->state[6] += g;
- sha->state[7] += h;
-
- /* Clean up */
- a = b = c = d = e = f = g = h = T1 = 0;
-}
-
-#else /* SHA2_UNROLL_TRANSFORM */
-
-static void SHA256_Transform(SHA256_CTX* sha, const sha2_word32* data) {
- sha2_word32 a, b, c, d, e, f, g, h, s0, s1;
- sha2_word32 T1, T2, *W256;
- int j;
-
- W256 = (sha2_word32*)sha->buffer;
-
- /* Initialize registers with the prev. intermediate value */
- a = sha->state[0];
- b = sha->state[1];
- c = sha->state[2];
- d = sha->state[3];
- e = sha->state[4];
- f = sha->state[5];
- g = sha->state[6];
- h = sha->state[7];
-
- j = 0;
- do {
-#if BYTE_ORDER == LITTLE_ENDIAN
- /* Copy data while converting to host byte order */
- REVERSE32(*data++,W256[j]);
- /* Apply the SHA-256 compression function to update a..h */
- T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j];
-#else /* BYTE_ORDER == LITTLE_ENDIAN */
- /* Apply the SHA-256 compression function to update a..h with copy */
- T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + (W256[j] = *data++);
-#endif /* BYTE_ORDER == LITTLE_ENDIAN */
- T2 = Sigma0_256(a) + Maj(a, b, c);
- h = g;
- g = f;
- f = e;
- e = d + T1;
- d = c;
- c = b;
- b = a;
- a = T1 + T2;
-
- j++;
- } while (j < 16);
-
- do {
- /* Part of the message block expansion: */
- s0 = W256[(j+1)&0x0f];
- s0 = sigma0_256(s0);
- s1 = W256[(j+14)&0x0f];
- s1 = sigma1_256(s1);
-
- /* Apply the SHA-256 compression function to update a..h */
- T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] +
- (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0);
- T2 = Sigma0_256(a) + Maj(a, b, c);
- h = g;
- g = f;
- f = e;
- e = d + T1;
- d = c;
- c = b;
- b = a;
- a = T1 + T2;
-
- j++;
- } while (j < 64);
-
- /* Compute the current intermediate hash value */
- sha->state[0] += a;
- sha->state[1] += b;
- sha->state[2] += c;
- sha->state[3] += d;
- sha->state[4] += e;
- sha->state[5] += f;
- sha->state[6] += g;
- sha->state[7] += h;
-
- /* Clean up */
- a = b = c = d = e = f = g = h = T1 = T2 = 0;
-}
-
-#endif /* SHA2_UNROLL_TRANSFORM */
-
-static int
-sha256_block(register Sum_t* p, const void* s, size_t len)
-{
- Sha256_t* sha = (Sha256_t*)p;
- sha2_byte* data = (sha2_byte*)s;
- unsigned int freespace, usedspace;
-
- if (!len)
- return 0;
- usedspace = (sha->bitcount >> 3) % SHA256_BLOCK_LENGTH;
- if (usedspace > 0) {
- /* Calculate how much free space is available in the buffer */
- freespace = SHA256_BLOCK_LENGTH - usedspace;
-
- if (len >= freespace) {
- /* Fill the buffer completely and process it */
- MEMCPY_BCOPY(&sha->buffer[usedspace], data, freespace);
- sha->bitcount += freespace << 3;
- len -= freespace;
- data += freespace;
- SHA256_Transform(sha, (sha2_word32*)sha->buffer);
- } else {
- /* The buffer is not yet full */
- MEMCPY_BCOPY(&sha->buffer[usedspace], data, len);
- sha->bitcount += len << 3;
- /* Clean up: */
- usedspace = freespace = 0;
- return 0;
- }
- }
- while (len >= SHA256_BLOCK_LENGTH) {
- /* Process as many complete blocks as we can */
- SHA256_Transform(sha, (sha2_word32*)data);
- sha->bitcount += SHA256_BLOCK_LENGTH << 3;
- len -= SHA256_BLOCK_LENGTH;
- data += SHA256_BLOCK_LENGTH;
- }
- if (len > 0) {
- /* There's left-overs, so save 'em */
- MEMCPY_BCOPY(sha->buffer, data, len);
- sha->bitcount += len << 3;
- }
- /* Clean up: */
- usedspace = freespace = 0;
-
- return 0;
-}
-
-static int
-sha256_init(Sum_t* p)
-{
- register Sha256_t* sha = (Sha256_t*)p;
-
- MEMCPY_BCOPY(sha->state, sha256_initial_hash_value, SHA256_DIGEST_LENGTH);
- MEMSET_BZERO(sha->buffer, SHA256_BLOCK_LENGTH);
- sha->bitcount = 0;
-
- return 0;
-}
-
-static Sum_t*
-sha256_open(const Method_t* method, const char* name)
-{
- Sha256_t* sha;
-
- if (sha = newof(0, Sha256_t, 1, 0))
- {
- sha->method = (Method_t*)method;
- sha->name = name;
- sha256_init((Sum_t*)sha);
- }
- return (Sum_t*)sha;
-}
-
-static int
-sha256_done(Sum_t* p)
-{
- Sha256_t* sha = (Sha256_t*)p;
- unsigned int usedspace;
- register int i;
-
- /* Sanity check: */
- assert(sha != (SHA256_CTX*)0);
-
- usedspace = (sha->bitcount >> 3) % SHA256_BLOCK_LENGTH;
-#if BYTE_ORDER == LITTLE_ENDIAN
- /* Convert FROM host byte order */
- REVERSE64(sha->bitcount,sha->bitcount);
-#endif
- if (usedspace > 0) {
- /* Begin padding with a 1 bit: */
- sha->buffer[usedspace++] = 0x80;
-
- if (usedspace <= SHA256_SHORT_BLOCK_LENGTH) {
- /* Set-up for the last transform: */
- MEMSET_BZERO(&sha->buffer[usedspace], SHA256_SHORT_BLOCK_LENGTH - usedspace);
- } else {
- if (usedspace < SHA256_BLOCK_LENGTH) {
- MEMSET_BZERO(&sha->buffer[usedspace], SHA256_BLOCK_LENGTH - usedspace);
- }
- /* Do second-to-last transform: */
- SHA256_Transform(sha, (sha2_word32*)sha->buffer);
-
- /* And set-up for the last transform: */
- MEMSET_BZERO(sha->buffer, SHA256_SHORT_BLOCK_LENGTH);
- }
- } else {
- /* Set-up for the last transform: */
- MEMSET_BZERO(sha->buffer, SHA256_SHORT_BLOCK_LENGTH);
-
- /* Begin padding with a 1 bit: */
- *sha->buffer = 0x80;
- }
- /* Set the bit count: */
- *(sha2_word64*)&sha->buffer[SHA256_SHORT_BLOCK_LENGTH] = sha->bitcount;
-
- /* Final transform: */
- SHA256_Transform(sha, (sha2_word32*)sha->buffer);
-
-#if BYTE_ORDER == LITTLE_ENDIAN
- {
- /* Convert TO host byte order */
- int j;
- sha2_word32* d = (sha2_word32*)sha->digest;
- for (j = 0; j < 8; j++) {
- REVERSE32(sha->state[j],sha->state[j]);
- *d++ = sha->state[j];
- }
- }
-#else
- MEMCPY_BCOPY(sha->digest, sha->state, SHA256_DIGEST_LENGTH);
-#endif
-
- /* accumulate the digests */
- for (i = 0; i < SHA256_DIGEST_LENGTH; i++)
- sha->digest_sum[i] ^= sha->digest[i];
-
- /* Clean up state data: */
- MEMSET_BZERO(&sha->state, sizeof(*sha) - offsetof(Sha256_t, state));
- usedspace = 0;
-
- return 0;
-}
-
-static int
-sha256_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Sha256_t* sha = (Sha256_t*)p;
- register sha2_byte* d;
- register sha2_byte* e;
-
- d = (flags & SUM_TOTAL) ? sha->digest_sum : sha->digest;
- e = d + SHA256_DIGEST_LENGTH;
- while (d < e)
- sfprintf(sp, "%02x", *d++);
- return 0;
-}
-
-static int
-sha256_data(Sum_t* p, Sumdata_t* data)
-{
- register Sha256_t* sha = (Sha256_t*)p;
-
- data->size = SHA256_DIGEST_LENGTH;
- data->num = 0;
- data->buf = sha->digest;
- return 0;
-}
-
-/*** SHA-512: *********************************************************/
-
-#define sha512_description "FIPS SHA-512 secure hash algorithm."
-#define sha512_options "\
-[+(version)?sha-512 (FIPS) 2000-01-01]\
-[+(author)?Aaron D. Gifford]\
-"
-#define sha512_match "sha512|sha-512|SHA512|SHA-512"
-#define sha512_scale 0
-
-#define sha512_padding md5_pad
-
-#define SHA512_CTX Sha512_t
-
-typedef struct Sha512_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- sha2_byte digest[SHA512_DIGEST_LENGTH];
- sha2_byte digest_sum[SHA512_DIGEST_LENGTH];
- sha2_word64 state[8];
- sha2_word64 bitcount[2];
- sha2_byte buffer[SHA512_BLOCK_LENGTH];
-} Sha512_t;
-
-#ifdef SHA2_UNROLL_TRANSFORM
-
-/* Unrolled SHA-512 round macros: */
-#if BYTE_ORDER == LITTLE_ENDIAN
-
-#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \
- REVERSE64(*data++, W512[j]); \
- T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \
- K512[j] + W512[j]; \
- (d) += T1, \
- (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)), \
- j++
-
-
-#else /* BYTE_ORDER == LITTLE_ENDIAN */
-
-#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \
- T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \
- K512[j] + (W512[j] = *data++); \
- (d) += T1; \
- (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
- j++
-
-#endif /* BYTE_ORDER == LITTLE_ENDIAN */
-
-#define ROUND512(a,b,c,d,e,f,g,h) \
- s0 = W512[(j+1)&0x0f]; \
- s0 = sigma0_512(s0); \
- s1 = W512[(j+14)&0x0f]; \
- s1 = sigma1_512(s1); \
- T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + K512[j] + \
- (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); \
- (d) += T1; \
- (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
- j++
-
-static void SHA512_Transform(SHA512_CTX* sha, const sha2_word64* data) {
- sha2_word64 a, b, c, d, e, f, g, h, s0, s1;
- sha2_word64 T1, *W512 = (sha2_word64*)sha->buffer;
- int j;
-
- /* Initialize registers with the prev. intermediate value */
- a = sha->state[0];
- b = sha->state[1];
- c = sha->state[2];
- d = sha->state[3];
- e = sha->state[4];
- f = sha->state[5];
- g = sha->state[6];
- h = sha->state[7];
-
- j = 0;
- do {
- ROUND512_0_TO_15(a,b,c,d,e,f,g,h);
- ROUND512_0_TO_15(h,a,b,c,d,e,f,g);
- ROUND512_0_TO_15(g,h,a,b,c,d,e,f);
- ROUND512_0_TO_15(f,g,h,a,b,c,d,e);
- ROUND512_0_TO_15(e,f,g,h,a,b,c,d);
- ROUND512_0_TO_15(d,e,f,g,h,a,b,c);
- ROUND512_0_TO_15(c,d,e,f,g,h,a,b);
- ROUND512_0_TO_15(b,c,d,e,f,g,h,a);
- } while (j < 16);
-
- /* Now for the remaining rounds up to 79: */
- do {
- ROUND512(a,b,c,d,e,f,g,h);
- ROUND512(h,a,b,c,d,e,f,g);
- ROUND512(g,h,a,b,c,d,e,f);
- ROUND512(f,g,h,a,b,c,d,e);
- ROUND512(e,f,g,h,a,b,c,d);
- ROUND512(d,e,f,g,h,a,b,c);
- ROUND512(c,d,e,f,g,h,a,b);
- ROUND512(b,c,d,e,f,g,h,a);
- } while (j < 80);
-
- /* Compute the current intermediate hash value */
- sha->state[0] += a;
- sha->state[1] += b;
- sha->state[2] += c;
- sha->state[3] += d;
- sha->state[4] += e;
- sha->state[5] += f;
- sha->state[6] += g;
- sha->state[7] += h;
-
- /* Clean up */
- a = b = c = d = e = f = g = h = T1 = 0;
-}
-
-#else /* SHA2_UNROLL_TRANSFORM */
-
-static void SHA512_Transform(SHA512_CTX* sha, const sha2_word64* data) {
- sha2_word64 a, b, c, d, e, f, g, h, s0, s1;
- sha2_word64 T1, T2, *W512 = (sha2_word64*)sha->buffer;
- int j;
-
- /* Initialize registers with the prev. intermediate value */
- a = sha->state[0];
- b = sha->state[1];
- c = sha->state[2];
- d = sha->state[3];
- e = sha->state[4];
- f = sha->state[5];
- g = sha->state[6];
- h = sha->state[7];
-
- j = 0;
- do {
-#if BYTE_ORDER == LITTLE_ENDIAN
- /* Convert TO host byte order */
- REVERSE64(*data++, W512[j]);
- /* Apply the SHA-512 compression function to update a..h */
- T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + W512[j];
-#else /* BYTE_ORDER == LITTLE_ENDIAN */
- /* Apply the SHA-512 compression function to update a..h with copy */
- T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + (W512[j] = *data++);
-#endif /* BYTE_ORDER == LITTLE_ENDIAN */
- T2 = Sigma0_512(a) + Maj(a, b, c);
- h = g;
- g = f;
- f = e;
- e = d + T1;
- d = c;
- c = b;
- b = a;
- a = T1 + T2;
-
- j++;
- } while (j < 16);
-
- do {
- /* Part of the message block expansion: */
- s0 = W512[(j+1)&0x0f];
- s0 = sigma0_512(s0);
- s1 = W512[(j+14)&0x0f];
- s1 = sigma1_512(s1);
-
- /* Apply the SHA-512 compression function to update a..h */
- T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] +
- (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0);
- T2 = Sigma0_512(a) + Maj(a, b, c);
- h = g;
- g = f;
- f = e;
- e = d + T1;
- d = c;
- c = b;
- b = a;
- a = T1 + T2;
-
- j++;
- } while (j < 80);
-
- /* Compute the current intermediate hash value */
- sha->state[0] += a;
- sha->state[1] += b;
- sha->state[2] += c;
- sha->state[3] += d;
- sha->state[4] += e;
- sha->state[5] += f;
- sha->state[6] += g;
- sha->state[7] += h;
-
- /* Clean up */
- a = b = c = d = e = f = g = h = T1 = T2 = 0;
-}
-
-#endif /* SHA2_UNROLL_TRANSFORM */
-
-static int
-sha512_block(register Sum_t* p, const void* s, size_t len)
-{
- Sha512_t* sha = (Sha512_t*)p;
- sha2_byte* data = (sha2_byte*)s;
- unsigned int freespace, usedspace;
-
- if (!len)
- return 0;
- usedspace = (sha->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
- if (usedspace > 0) {
- /* Calculate how much free space is available in the buffer */
- freespace = SHA512_BLOCK_LENGTH - usedspace;
-
- if (len >= freespace) {
- /* Fill the buffer completely and process it */
- MEMCPY_BCOPY(&sha->buffer[usedspace], data, freespace);
- ADDINC128(sha->bitcount, freespace << 3);
- len -= freespace;
- data += freespace;
- SHA512_Transform(sha, (sha2_word64*)sha->buffer);
- } else {
- /* The buffer is not yet full */
- MEMCPY_BCOPY(&sha->buffer[usedspace], data, len);
- ADDINC128(sha->bitcount, len << 3);
- /* Clean up: */
- usedspace = freespace = 0;
- return 0;
- }
- }
- while (len >= SHA512_BLOCK_LENGTH) {
- /* Process as many complete blocks as we can */
- SHA512_Transform(sha, (sha2_word64*)data);
- ADDINC128(sha->bitcount, SHA512_BLOCK_LENGTH << 3);
- len -= SHA512_BLOCK_LENGTH;
- data += SHA512_BLOCK_LENGTH;
- }
- if (len > 0) {
- /* There's left-overs, so save 'em */
- MEMCPY_BCOPY(sha->buffer, data, len);
- ADDINC128(sha->bitcount, len << 3);
- }
- /* Clean up: */
- usedspace = freespace = 0;
-
- return 0;
-}
-
-static int
-sha512_init(Sum_t* p)
-{
- register Sha512_t* sha = (Sha512_t*)p;
-
- MEMCPY_BCOPY(sha->state, sha512_initial_hash_value, SHA512_DIGEST_LENGTH);
- MEMSET_BZERO(sha->buffer, SHA512_BLOCK_LENGTH);
- sha->bitcount[0] = sha->bitcount[1] = 0;
-
- return 0;
-}
-
-static Sum_t*
-sha512_open(const Method_t* method, const char* name)
-{
- Sha512_t* sha;
-
- if (sha = newof(0, Sha512_t, 1, 0))
- {
- sha->method = (Method_t*)method;
- sha->name = name;
- sha512_init((Sum_t*)sha);
- }
- return (Sum_t*)sha;
-}
-
-static int
-sha512_done(Sum_t* p)
-{
- Sha512_t* sha = (Sha512_t*)p;
- unsigned int usedspace;
- register int i;
-
- usedspace = (sha->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
-#if BYTE_ORDER == LITTLE_ENDIAN
- /* Convert FROM host byte order */
- REVERSE64(sha->bitcount[0],sha->bitcount[0]);
- REVERSE64(sha->bitcount[1],sha->bitcount[1]);
-#endif
- if (usedspace > 0) {
- /* Begin padding with a 1 bit: */
- sha->buffer[usedspace++] = 0x80;
-
- if (usedspace <= SHA512_SHORT_BLOCK_LENGTH) {
- /* Set-up for the last transform: */
- MEMSET_BZERO(&sha->buffer[usedspace], SHA512_SHORT_BLOCK_LENGTH - usedspace);
- } else {
- if (usedspace < SHA512_BLOCK_LENGTH) {
- MEMSET_BZERO(&sha->buffer[usedspace], SHA512_BLOCK_LENGTH - usedspace);
- }
- /* Do second-to-last transform: */
- SHA512_Transform(sha, (sha2_word64*)sha->buffer);
-
- /* And set-up for the last transform: */
- MEMSET_BZERO(sha->buffer, SHA512_BLOCK_LENGTH - 2);
- }
- } else {
- /* Prepare for final transform: */
- MEMSET_BZERO(sha->buffer, SHA512_SHORT_BLOCK_LENGTH);
-
- /* Begin padding with a 1 bit: */
- *sha->buffer = 0x80;
- }
- /* Store the length of input data (in bits): */
- *(sha2_word64*)&sha->buffer[SHA512_SHORT_BLOCK_LENGTH] = sha->bitcount[1];
- *(sha2_word64*)&sha->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = sha->bitcount[0];
-
- /* Final transform: */
- SHA512_Transform(sha, (sha2_word64*)sha->buffer);
-
-#if BYTE_ORDER == LITTLE_ENDIAN
- {
- /* Convert TO host byte order */
- sha2_word64* d = (sha2_word64*)sha->digest;
- int j;
- for (j = 0; j < 8; j++) {
- REVERSE64(sha->state[j],sha->state[j]);
- *d++ = sha->state[j];
- }
- }
-#else
- MEMCPY_BCOPY(sha->digest, sha->state, SHA512_DIGEST_LENGTH);
-#endif
-
- /* accumulate the digests */
- for (i = 0; i < SHA512_DIGEST_LENGTH; i++)
- sha->digest_sum[i] ^= sha->digest[i];
-
- /* Clean up state data: */
- MEMSET_BZERO(&sha->state, sizeof(*sha) - offsetof(Sha512_t, state));
- usedspace = 0;
-
- return 0;
-}
-
-static int
-sha512_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Sha512_t* sha = (Sha512_t*)p;
- register sha2_byte* d;
- register sha2_byte* e;
-
- d = (flags & SUM_TOTAL) ? sha->digest_sum : sha->digest;
- e = d + SHA512_DIGEST_LENGTH;
- while (d < e)
- sfprintf(sp, "%02x", *d++);
- return 0;
-}
-
-static int
-sha512_data(Sum_t* p, Sumdata_t* data)
-{
- register Sha512_t* sha = (Sha512_t*)p;
-
- data->size = SHA512_DIGEST_LENGTH;
- data->num = 0;
- data->buf = sha->digest;
- return 0;
-}
-
-/*** SHA-384: *********************************************************/
-
-#define sha384_description "FIPS SHA-384 secure hash algorithm."
-#define sha384_options "\
-[+(version)?sha-384 (FIPS) 2000-01-01]\
-[+(author)?Aaron D. Gifford]\
-"
-#define sha384_match "sha384|sha-384|SHA384|SHA-384"
-#define sha384_scale 0
-#define sha384_block sha512_block
-#define sha384_done sha512_done
-
-#define sha384_padding md5_pad
-
-#define Sha384_t Sha512_t
-#define SHA384_CTX Sha384_t
-#define SHA384_DIGEST_LENGTH 48
-
-static int
-sha384_init(Sum_t* p)
-{
- register Sha384_t* sha = (Sha384_t*)p;
-
- MEMCPY_BCOPY(sha->state, sha384_initial_hash_value, SHA512_DIGEST_LENGTH);
- MEMSET_BZERO(sha->buffer, SHA384_BLOCK_LENGTH);
- sha->bitcount[0] = sha->bitcount[1] = 0;
-
- return 0;
-}
-
-static Sum_t*
-sha384_open(const Method_t* method, const char* name)
-{
- Sha384_t* sha;
-
- if (sha = newof(0, Sha384_t, 1, 0))
- {
- sha->method = (Method_t*)method;
- sha->name = name;
- sha384_init((Sum_t*)sha);
- }
- return (Sum_t*)sha;
-}
-
-static int
-sha384_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Sha384_t* sha = (Sha384_t*)p;
- register sha2_byte* d;
- register sha2_byte* e;
-
- d = (flags & SUM_TOTAL) ? sha->digest_sum : sha->digest;
- e = d + SHA384_DIGEST_LENGTH;
- while (d < e)
- sfprintf(sp, "%02x", *d++);
- return 0;
-}
-
-static int
-sha384_data(Sum_t* p, Sumdata_t* data)
-{
- register Sha384_t* sha = (Sha384_t*)p;
-
- data->size = SHA384_DIGEST_LENGTH;
- data->num = 0;
- data->buf = sha->digest;
- return 0;
-}
-
-#endif /* _typ_int64_t */
diff --git a/usr/src/lib/libsum/common/sum.h b/usr/src/lib/libsum/common/sum.h
deleted file mode 100644
index 254130e108..0000000000
--- a/usr/src/lib/libsum/common/sum.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * checksum library interface
- */
-
-#ifndef _SUM_H
-#define _SUM_H
-
-#include <ast.h>
-
-#define SUM_SIZE (1<<0) /* print size too */
-#define SUM_SCALE (1<<1) /* traditional size scale */
-#define SUM_TOTAL (1<<2) /* print totals since sumopen */
-#define SUM_LEGACY (1<<3) /* legacy field widths */
-
-#define _SUM_PUBLIC_ const char* name;
-
-typedef struct Sumdata_s
-{
- uint32_t size;
- uint32_t num;
- void* buf;
-} Sumdata_t;
-
-typedef struct Sum_s
-{
- _SUM_PUBLIC_
-#ifdef _SUM_PRIVATE_
- _SUM_PRIVATE_
-#endif
-} Sum_t;
-
-extern Sum_t* sumopen(const char*);
-extern int suminit(Sum_t*);
-extern int sumblock(Sum_t*, const void*, size_t);
-extern int sumdone(Sum_t*);
-extern int sumdata(Sum_t*, Sumdata_t*);
-extern int sumprint(Sum_t*, Sfio_t*, int, size_t);
-extern int sumusage(Sfio_t*);
-extern int sumclose(Sum_t*);
-
-#endif
diff --git a/usr/src/lib/libsum/common/sumlib.c b/usr/src/lib/libsum/common/sumlib.c
deleted file mode 100644
index 7b87c93986..0000000000
--- a/usr/src/lib/libsum/common/sumlib.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * man this is sum library
- */
-
-#define _SUM_PRIVATE_ \
- struct Method_s* method; \
- uintmax_t total_count; \
- uintmax_t total_size; \
- uintmax_t size;
-
-#include <sum.h>
-#include <ctype.h>
-#include <swap.h>
-#include <hashpart.h>
-
-#define SCALE(n,m) (((n)+(m)-1)/(m))
-
-typedef struct Method_s
-{
- const char* match;
- const char* description;
- const char* options;
- Sum_t* (*open)(const struct Method_s*, const char*);
- int (*init)(Sum_t*);
- int (*block)(Sum_t*, const void*, size_t);
- int (*data)(Sum_t*, Sumdata_t*);
- int (*print)(Sum_t*, Sfio_t*, int, size_t);
- int (*done)(Sum_t*);
- int scale;
-} Method_t;
-
-typedef struct Map_s
-{
- const char* match;
- const char* description;
- const char* map;
-} Map_t;
-
-/*
- * 16 and 32 bit common code
- */
-
-#define _INTEGRAL_PRIVATE_ \
- uint32_t sum; \
- uint32_t total_sum;
-
-typedef struct Integral_s
-{
- _SUM_PUBLIC_
- _SUM_PRIVATE_
- _INTEGRAL_PRIVATE_
-} Integral_t;
-
-static Sum_t*
-long_open(const Method_t* method, const char* name)
-{
- Integral_t* p;
-
- if (p = newof(0, Integral_t, 1, 0))
- {
- p->method = (Method_t*)method;
- p->name = name;
- }
- return (Sum_t*)p;
-}
-
-static int
-long_init(Sum_t* p)
-{
- ((Integral_t*)p)->sum = 0;
- return 0;
-}
-
-static int
-long_done(Sum_t* p)
-{
- register Integral_t* x = (Integral_t*)p;
-
- x->total_sum ^= (x->sum &= 0xffffffff);
- return 0;
-}
-
-static int
-short_done(Sum_t* p)
-{
- register Integral_t* x = (Integral_t*)p;
-
- x->total_sum ^= (x->sum &= 0xffff);
- return 0;
-}
-
-static int
-long_print(Sum_t* p, Sfio_t* sp, register int flags, size_t scale)
-{
- register Integral_t* x = (Integral_t*)p;
- register uint32_t c;
- register uintmax_t z;
- register size_t n;
-
- c = (flags & SUM_TOTAL) ? x->total_sum : x->sum;
- sfprintf(sp, "%.*I*u", (flags & SUM_LEGACY) ? 5 : 1, sizeof(c), c);
- if (flags & SUM_SIZE)
- {
- z = (flags & SUM_TOTAL) ? x->total_size : x->size;
- if ((flags & SUM_SCALE) && ((n = scale) || (n = x->method->scale)))
- z = SCALE(z, n);
- sfprintf(sp, " %*I*u", (flags & SUM_LEGACY) ? 6 : 0, sizeof(z), z);
- }
- if (flags & SUM_TOTAL)
- sfprintf(sp, " %*I*u", (flags & SUM_LEGACY) ? 6 : 0, sizeof(x->total_count), x->total_count);
- return 0;
-}
-
-static int
-long_data(Sum_t* p, Sumdata_t* data)
-{
- register Integral_t* x = (Integral_t*)p;
-
- data->size = sizeof(data->num);
- data->num = x->sum;
- data->buf = 0;
- return 0;
-}
-
-#include "FEATURE/sum"
-
-#include "sum-att.c"
-#include "sum-ast4.c"
-#include "sum-bsd.c"
-#include "sum-crc.c"
-#include "sum-prng.c"
-
-#if _LIB_md && _lib_MD5Init && _hdr_md5 && _lib_SHA2Init && _hdr_sha2
-
-#include "sum-lmd.c"
-
-#else
-
-#include "sum-md5.c"
-#include "sum-sha1.c"
-#include "sum-sha2.c"
-
-#endif
-
-/*
- * now the library interface
- */
-
-#undef METHOD /* solaris <sys/localedef.h>! */
-#define METHOD(x) x##_match,x##_description,x##_options,x##_open,x##_init,x##_block,x##_data,x##_print,x##_done,x##_scale
-
-static const Method_t methods[] =
-{
- METHOD(att),
- METHOD(ast4),
- METHOD(bsd),
- METHOD(crc),
- METHOD(prng),
-#ifdef md4_description
- METHOD(md4),
-#endif
-#ifdef md5_description
- METHOD(md5),
-#endif
-#ifdef sha1_description
- METHOD(sha1),
-#endif
-#ifdef sha256_description
- METHOD(sha256),
-#endif
-#ifdef sha384_description
- METHOD(sha384),
-#endif
-#ifdef sha512_description
- METHOD(sha512),
-#endif
-};
-
-static const Map_t maps[] =
-{
- {
- "posix|cksum|std|standard",
- "The posix 1003.2-1992 32 bit crc checksum. This is the"
- " default \bcksum\b(1) method.",
- "crc-0x04c11db7-rotate-done-size"
- },
- {
- "zip",
- "The \bzip\b(1) crc.",
- "crc-0xedb88320-init-done"
- },
- {
- "fddi",
- "The FDDI crc.",
- "crc-0xedb88320-size=0xcc55cc55"
- },
- {
- "fnv|fnv1",
- "The Fowler-Noll-Vo 32 bit PRNG hash with non-zero"
- " initializer (FNV-1).",
- "prng-0x01000193-init=0x811c9dc5"
- },
- {
- "ast|strsum",
- "The \bast\b \bstrsum\b(3) PRNG hash.",
- "prng-0x63c63cd9-add=0x9c39c33d"
- },
-};
-
-/*
- * simple alternation prefix match
- */
-
-static int
-match(register const char* s, register const char* p)
-{
- register const char* b = s;
-
- for (;;)
- {
- do
- {
- if (*p == '|' || *p == 0)
- return 1;
- } while (*s++ == *p++);
- for (;;)
- {
- switch (*p++)
- {
- case 0:
- return 0;
- case '|':
- break;
- default:
- continue;
- }
- break;
- }
- s = b;
- }
- return 0;
-}
-
-/*
- * open sum method name
- */
-
-Sum_t*
-sumopen(register const char* name)
-{
- register int n;
-
- if (!name || !name[0] || name[0] == '-' && !name[1])
- name = "default";
- for (n = 0; n < elementsof(maps); n++)
- if (match(name, maps[n].match))
- {
- name = maps[n].map;
- break;
- }
- for (n = 0; n < elementsof(methods); n++)
- if (match(name, methods[n].match))
- return (*methods[n].open)(&methods[n], name);
- return 0;
-}
-
-/*
- * initialize for a new run of blocks
- */
-
-int
-suminit(Sum_t* p)
-{
- p->size = 0;
- return (*p->method->init)(p);
-}
-
-/*
- * compute the running sum on buf
- */
-
-int
-sumblock(Sum_t* p, const void* buf, size_t siz)
-{
- p->size += siz;
- return (*p->method->block)(p, buf, siz);
-}
-
-/*
- * done with this run of blocks
- */
-
-int
-sumdone(Sum_t* p)
-{
- p->total_count++;
- p->total_size += p->size;
- return (*p->method->done)(p);
-}
-
-/*
- * print the sum [size] on sp
- */
-
-int
-sumprint(Sum_t* p, Sfio_t* sp, int flags, size_t scale)
-{
- return (*p->method->print)(p, sp, flags, scale);
-}
-
-/*
- * return the current sum (internal) data
- */
-
-int
-sumdata(Sum_t* p, Sumdata_t* d)
-{
- return (*p->method->data)(p, d);
-}
-
-/*
- * close an open sum handle
- */
-
-int
-sumclose(Sum_t* p)
-{
- free(p);
- return 0;
-}
-
-/*
- * print the checksum method optget(3) usage on sp and return the length
- */
-
-int
-sumusage(Sfio_t* sp)
-{
- register int i;
- register int n;
-
- for (i = n = 0; i < elementsof(methods); i++)
- {
- n += sfprintf(sp, "[+%s?%s]", methods[i].match, methods[i].description);
- if (methods[i].options)
- n += sfprintf(sp, "{\n%s\n}", methods[i].options);
- }
- for (i = 0; i < elementsof(maps); i++)
- n += sfprintf(sp, "[+%s?%s Shorthand for \b%s\b.]", maps[i].match, maps[i].description, maps[i].map);
- return n;
-}
diff --git a/usr/src/lib/libsum/i386/Makefile b/usr/src/lib/libsum/i386/Makefile
deleted file mode 100644
index 6c35d1fc88..0000000000
--- a/usr/src/lib/libsum/i386/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-include ../Makefile.com
-
-install: all $(ROOTLIBS) $(ROOTLINKS)
diff --git a/usr/src/lib/libsum/i386/include/ast/sum.h b/usr/src/lib/libsum/i386/include/ast/sum.h
deleted file mode 100644
index f82fee47d6..0000000000
--- a/usr/src/lib/libsum/i386/include/ast/sum.h
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/* : : generated by proto : : */
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-
-
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * checksum library interface
- */
-
-#ifndef _SUM_H
-#if !defined(__PROTO__)
-#include <prototyped.h>
-#endif
-#if !defined(__LINKAGE__)
-#define __LINKAGE__ /* 2004-08-11 transition */
-#endif
-
-#define _SUM_H
-
-#include <ast.h>
-
-#define SUM_SIZE (1<<0) /* print size too */
-#define SUM_SCALE (1<<1) /* traditional size scale */
-#define SUM_TOTAL (1<<2) /* print totals since sumopen */
-#define SUM_LEGACY (1<<3) /* legacy field widths */
-
-#define _SUM_PUBLIC_ const char* name;
-
-typedef struct Sumdata_s
-{
- uint32_t size;
- uint32_t num;
- __V_* buf;
-} Sumdata_t;
-
-typedef struct Sum_s
-{
- _SUM_PUBLIC_
-#ifdef _SUM_PRIVATE_
- _SUM_PRIVATE_
-#endif
-} Sum_t;
-
-extern __MANGLE__ Sum_t* sumopen __PROTO__((const char*));
-extern __MANGLE__ int suminit __PROTO__((Sum_t*));
-extern __MANGLE__ int sumblock __PROTO__((Sum_t*, const __V_*, size_t));
-extern __MANGLE__ int sumdone __PROTO__((Sum_t*));
-extern __MANGLE__ int sumdata __PROTO__((Sum_t*, Sumdata_t*));
-extern __MANGLE__ int sumprint __PROTO__((Sum_t*, Sfio_t*, int, size_t));
-extern __MANGLE__ int sumusage __PROTO__((Sfio_t*));
-extern __MANGLE__ int sumclose __PROTO__((Sum_t*));
-
-#endif
diff --git a/usr/src/lib/libsum/i386/src/lib/libsum/FEATURE/sum b/usr/src/lib/libsum/i386/src/lib/libsum/FEATURE/sum
deleted file mode 100644
index f106d43c71..0000000000
--- a/usr/src/lib/libsum/i386/src/lib/libsum/FEATURE/sum
+++ /dev/null
@@ -1,16 +0,0 @@
-/* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_i386_32bit/src/lib/libsum/features/sum by iffe version 2009-12-04 : : */
-#ifndef _def_sum_sum
-#define _def_sum_sum 1
-#define _sys_types 1 /* #include <sys/types.h> ok */
-#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20100309/build_i386_32bit/arch/sol11.i386/lib/libast.a is a library */
-#define _LIB_m 1 /* -lm is a library */
-#define _hdr_md4 1 /* #include <md4.h> ok */
-#define _LIB_md 1 /* -lmd is a library */
-#define _lib_MD4Init 1 /* MD4Init() in default lib(s) */
-#define _hdr_md5 1 /* #include <md5.h> ok */
-#define _lib_MD5Init 1 /* MD5Init() in default lib(s) */
-#define _hdr_sha1 1 /* #include <sha1.h> ok */
-#define _lib_SHA1Init 1 /* SHA1Init() in default lib(s) */
-#define _hdr_sha2 1 /* #include <sha2.h> ok */
-#define _lib_SHA2Init 1 /* SHA2Init() in default lib(s) */
-#endif
diff --git a/usr/src/lib/libsum/mapfile-vers b/usr/src/lib/libsum/mapfile-vers
deleted file mode 100644
index c17c8e8001..0000000000
--- a/usr/src/lib/libsum/mapfile-vers
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# MAPFILE HEADER START
-#
-# WARNING: STOP NOW. DO NOT MODIFY THIS FILE.
-# Object versioning must comply with the rules detailed in
-#
-# usr/src/lib/README.mapfiles
-#
-# You should not be making modifications here until you've read the most current
-# copy of that file. If you need help, contact a gatekeeper for guidance.
-#
-# MAPFILE HEADER END
-#
-
-$mapfile_version 2
-
-SYMBOL_VERSION SUNWprivate_1.1 {
- global:
- sumopen;
- suminit;
- sumblock;
- sumdone;
- sumdata;
- sumprint;
- sumusage;
- sumclose;
- local:
- *;
-};
diff --git a/usr/src/lib/libsum/sparc/Makefile b/usr/src/lib/libsum/sparc/Makefile
deleted file mode 100644
index 6c35d1fc88..0000000000
--- a/usr/src/lib/libsum/sparc/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-include ../Makefile.com
-
-install: all $(ROOTLIBS) $(ROOTLINKS)
diff --git a/usr/src/lib/libsum/sparc/include/ast/sum.h b/usr/src/lib/libsum/sparc/include/ast/sum.h
deleted file mode 100644
index f82fee47d6..0000000000
--- a/usr/src/lib/libsum/sparc/include/ast/sum.h
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/* : : generated by proto : : */
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-
-
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * checksum library interface
- */
-
-#ifndef _SUM_H
-#if !defined(__PROTO__)
-#include <prototyped.h>
-#endif
-#if !defined(__LINKAGE__)
-#define __LINKAGE__ /* 2004-08-11 transition */
-#endif
-
-#define _SUM_H
-
-#include <ast.h>
-
-#define SUM_SIZE (1<<0) /* print size too */
-#define SUM_SCALE (1<<1) /* traditional size scale */
-#define SUM_TOTAL (1<<2) /* print totals since sumopen */
-#define SUM_LEGACY (1<<3) /* legacy field widths */
-
-#define _SUM_PUBLIC_ const char* name;
-
-typedef struct Sumdata_s
-{
- uint32_t size;
- uint32_t num;
- __V_* buf;
-} Sumdata_t;
-
-typedef struct Sum_s
-{
- _SUM_PUBLIC_
-#ifdef _SUM_PRIVATE_
- _SUM_PRIVATE_
-#endif
-} Sum_t;
-
-extern __MANGLE__ Sum_t* sumopen __PROTO__((const char*));
-extern __MANGLE__ int suminit __PROTO__((Sum_t*));
-extern __MANGLE__ int sumblock __PROTO__((Sum_t*, const __V_*, size_t));
-extern __MANGLE__ int sumdone __PROTO__((Sum_t*));
-extern __MANGLE__ int sumdata __PROTO__((Sum_t*, Sumdata_t*));
-extern __MANGLE__ int sumprint __PROTO__((Sum_t*, Sfio_t*, int, size_t));
-extern __MANGLE__ int sumusage __PROTO__((Sfio_t*));
-extern __MANGLE__ int sumclose __PROTO__((Sum_t*));
-
-#endif
diff --git a/usr/src/lib/libsum/sparc/src/lib/libsum/FEATURE/sum b/usr/src/lib/libsum/sparc/src/lib/libsum/FEATURE/sum
deleted file mode 100644
index c21ba3916a..0000000000
--- a/usr/src/lib/libsum/sparc/src/lib/libsum/FEATURE/sum
+++ /dev/null
@@ -1,16 +0,0 @@
-/* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_sparc_32bit/src/lib/libsum/features/sum by iffe version 2009-12-04 : : */
-#ifndef _def_sum_sum
-#define _def_sum_sum 1
-#define _sys_types 1 /* #include <sys/types.h> ok */
-#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20100309/build_sparc_32bit/arch/sol11.sun4/lib/libast.a is a library */
-#define _LIB_m 1 /* -lm is a library */
-#define _hdr_md4 1 /* #include <md4.h> ok */
-#define _LIB_md 1 /* -lmd is a library */
-#define _lib_MD4Init 1 /* MD4Init() in default lib(s) */
-#define _hdr_md5 1 /* #include <md5.h> ok */
-#define _lib_MD5Init 1 /* MD5Init() in default lib(s) */
-#define _hdr_sha1 1 /* #include <sha1.h> ok */
-#define _lib_SHA1Init 1 /* SHA1Init() in default lib(s) */
-#define _hdr_sha2 1 /* #include <sha2.h> ok */
-#define _lib_SHA2Init 1 /* SHA2Init() in default lib(s) */
-#endif
diff --git a/usr/src/lib/libsum/sparcv9/Makefile b/usr/src/lib/libsum/sparcv9/Makefile
deleted file mode 100644
index 9f293be4fa..0000000000
--- a/usr/src/lib/libsum/sparcv9/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-include ../Makefile.com
-include ../../Makefile.lib.64
-
-install: all $(ROOTLIBS64) $(ROOTLINKS64)
diff --git a/usr/src/lib/libsum/sparcv9/include/ast/sum.h b/usr/src/lib/libsum/sparcv9/include/ast/sum.h
deleted file mode 100644
index f82fee47d6..0000000000
--- a/usr/src/lib/libsum/sparcv9/include/ast/sum.h
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/* : : generated by proto : : */
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1996-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* Glenn Fowler <gsf@research.att.com> *
-* *
-***********************************************************************/
-
-
-/*
- * Glenn Fowler
- * AT&T Research
- *
- * checksum library interface
- */
-
-#ifndef _SUM_H
-#if !defined(__PROTO__)
-#include <prototyped.h>
-#endif
-#if !defined(__LINKAGE__)
-#define __LINKAGE__ /* 2004-08-11 transition */
-#endif
-
-#define _SUM_H
-
-#include <ast.h>
-
-#define SUM_SIZE (1<<0) /* print size too */
-#define SUM_SCALE (1<<1) /* traditional size scale */
-#define SUM_TOTAL (1<<2) /* print totals since sumopen */
-#define SUM_LEGACY (1<<3) /* legacy field widths */
-
-#define _SUM_PUBLIC_ const char* name;
-
-typedef struct Sumdata_s
-{
- uint32_t size;
- uint32_t num;
- __V_* buf;
-} Sumdata_t;
-
-typedef struct Sum_s
-{
- _SUM_PUBLIC_
-#ifdef _SUM_PRIVATE_
- _SUM_PRIVATE_
-#endif
-} Sum_t;
-
-extern __MANGLE__ Sum_t* sumopen __PROTO__((const char*));
-extern __MANGLE__ int suminit __PROTO__((Sum_t*));
-extern __MANGLE__ int sumblock __PROTO__((Sum_t*, const __V_*, size_t));
-extern __MANGLE__ int sumdone __PROTO__((Sum_t*));
-extern __MANGLE__ int sumdata __PROTO__((Sum_t*, Sumdata_t*));
-extern __MANGLE__ int sumprint __PROTO__((Sum_t*, Sfio_t*, int, size_t));
-extern __MANGLE__ int sumusage __PROTO__((Sfio_t*));
-extern __MANGLE__ int sumclose __PROTO__((Sum_t*));
-
-#endif
diff --git a/usr/src/lib/libsum/sparcv9/src/lib/libsum/FEATURE/sum b/usr/src/lib/libsum/sparcv9/src/lib/libsum/FEATURE/sum
deleted file mode 100644
index 6347c2a327..0000000000
--- a/usr/src/lib/libsum/sparcv9/src/lib/libsum/FEATURE/sum
+++ /dev/null
@@ -1,16 +0,0 @@
-/* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_sparc_64bit/src/lib/libsum/features/sum by iffe version 2009-12-04 : : */
-#ifndef _def_sum_sum
-#define _def_sum_sum 1
-#define _sys_types 1 /* #include <sys/types.h> ok */
-#define _LIB_ast 1 /* /home/gisburn/ksh93/ast_ksh_20100309/build_sparc_64bit/arch/sol11.sun4/lib/libast.a is a library */
-#define _LIB_m 1 /* -lm is a library */
-#define _hdr_md4 1 /* #include <md4.h> ok */
-#define _LIB_md 1 /* -lmd is a library */
-#define _lib_MD4Init 1 /* MD4Init() in default lib(s) */
-#define _hdr_md5 1 /* #include <md5.h> ok */
-#define _lib_MD5Init 1 /* MD5Init() in default lib(s) */
-#define _hdr_sha1 1 /* #include <sha1.h> ok */
-#define _lib_SHA1Init 1 /* SHA1Init() in default lib(s) */
-#define _hdr_sha2 1 /* #include <sha2.h> ok */
-#define _lib_SHA2Init 1 /* SHA2Init() in default lib(s) */
-#endif