summaryrefslogtreecommitdiffstats
path: root/third_party
diff options
context:
space:
mode:
authorjschuh@chromium.org <jschuh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-05 01:51:28 +0000
committerjschuh@chromium.org <jschuh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-05 01:51:28 +0000
commit9f25b0694258824f4933761ece7c5cdfa3684dd6 (patch)
treed0e5075562bfc978ea3a8cc04718474e33d88136 /third_party
parentcbe57cf37c2af0273e57aabbd38dda09b903cbad (diff)
downloadchromium_src-9f25b0694258824f4933761ece7c5cdfa3684dd6.zip
chromium_src-9f25b0694258824f4933761ece7c5cdfa3684dd6.tar.gz
chromium_src-9f25b0694258824f4933761ece7c5cdfa3684dd6.tar.bz2
Revert 175069
> Add "scrypt" to third_party for use in generating secure hash of user password that can later be used for off-line authentication in the case when on-line authentication is not available. > > The planned use for this is profile-locking where unlocking has to be possible even when not connected to a network. > > BUG= > > > Review URL: https://chromiumcodereview.appspot.com/11637016 TBR=bcwhite@chromium.org Review URL: https://codereview.chromium.org/11776013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175256 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party')
-rw-r--r--third_party/scrypt/.gitattributes11
-rw-r--r--third_party/scrypt/FORMAT18
-rw-r--r--third_party/scrypt/LICENSE27
-rw-r--r--third_party/scrypt/Makefile.in763
-rw-r--r--third_party/scrypt/README.chromium25
-rw-r--r--third_party/scrypt/chromium.patch170
-rwxr-xr-xthird_party/scrypt/config.aux/depcomp589
-rwxr-xr-xthird_party/scrypt/config.aux/install-sh519
-rwxr-xr-xthird_party/scrypt/config.aux/missing367
-rw-r--r--third_party/scrypt/config.h.in98
-rwxr-xr-xthird_party/scrypt/configure0
-rw-r--r--third_party/scrypt/lib/README6
-rw-r--r--third_party/scrypt/lib/crypto/crypto_aesctr.c124
-rw-r--r--third_party/scrypt/lib/crypto/crypto_aesctr.h59
-rw-r--r--third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c338
-rw-r--r--third_party/scrypt/lib/crypto/crypto_scrypt-ref.c284
-rw-r--r--third_party/scrypt/lib/crypto/crypto_scrypt-sse.c366
-rw-r--r--third_party/scrypt/lib/crypto/crypto_scrypt.h56
-rw-r--r--third_party/scrypt/lib/crypto/sha256.c412
-rw-r--r--third_party/scrypt/lib/crypto/sha256.h62
-rw-r--r--third_party/scrypt/lib/scryptenc/scryptenc.c606
-rw-r--r--third_party/scrypt/lib/scryptenc/scryptenc.h112
-rw-r--r--third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.c185
-rw-r--r--third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.h39
-rw-r--r--third_party/scrypt/lib/util/memlimit.c302
-rw-r--r--third_party/scrypt/lib/util/memlimit.h42
-rw-r--r--third_party/scrypt/lib/util/readpass.c143
-rw-r--r--third_party/scrypt/lib/util/readpass.h45
-rw-r--r--third_party/scrypt/lib/util/sysendian.h140
-rw-r--r--third_party/scrypt/lib/util/warn.c75
-rw-r--r--third_party/scrypt/lib/util/warn.h42
-rw-r--r--third_party/scrypt/main.c181
-rw-r--r--third_party/scrypt/scrypt.1114
-rw-r--r--third_party/scrypt/scrypt.gyp19
-rw-r--r--third_party/scrypt/scrypt_platform.h41
-rw-r--r--third_party/scrypt/sysendian.h42
36 files changed, 0 insertions, 6422 deletions
diff --git a/third_party/scrypt/.gitattributes b/third_party/scrypt/.gitattributes
deleted file mode 100644
index 42e966b..0000000
--- a/third_party/scrypt/.gitattributes
+++ /dev/null
@@ -1,11 +0,0 @@
-# ./configure has an embedded CR (ac_cr='^M'). When treated as text, this gets
-# converted to a CRLF pair by the codereview site which then makes the patch
-# file invalid as such:
-#
-# +
-# +ac_cr='
-# '
-# +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-#
-# All attempts to apply this patch then fail.
-configure binary
diff --git a/third_party/scrypt/FORMAT b/third_party/scrypt/FORMAT
deleted file mode 100644
index 10f699d..0000000
--- a/third_party/scrypt/FORMAT
+++ /dev/null
@@ -1,18 +0,0 @@
-scrypt encrypted data format
-----------------------------
-
-offset length
-0 6 "scrypt"
-6 1 scrypt data file version number (== 0)
-7 1 log2(N) (must be between 1 and 63 inclusive)
-8 4 r (big-endian integer; must satisfy r * p < 2^30)
-12 4 p (big-endian integer; must satisfy r * p < 2^30)
-16 32 salt
-48 16 first 16 bytes of SHA256(bytes 0 .. 47)
-64 32 HMAC-SHA256(bytes 0 .. 63)
-96 X data xor AES256-CTR key stream generated with nonce == 0
-96+X 32 HMAC-SHA256(bytes 96 .. 96 + (X - 1))
-
-AES256-CTR is computed with a 256-bit AES key key_enc, and HMAC-SHA256 is
-computed with a 256-bit key key_hmac, where
- scrypt(password, salt, N, r, p, 64) == [key_enc][key_hmac]
diff --git a/third_party/scrypt/LICENSE b/third_party/scrypt/LICENSE
deleted file mode 100644
index f39883b..0000000
--- a/third_party/scrypt/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-(extracted from main.c)
-
--------------------------------------------------------------------------------
-
-Copyright 2009 Colin Percival
-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.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
diff --git a/third_party/scrypt/Makefile.in b/third_party/scrypt/Makefile.in
deleted file mode 100644
index b825a3f..0000000
--- a/third_party/scrypt/Makefile.in
+++ /dev/null
@@ -1,763 +0,0 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-bin_PROGRAMS = scrypt$(EXEEXT)
-subdir = .
-DIST_COMMON = $(am__configure_deps) $(dist_man_MANS) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/config.h.in $(top_srcdir)/configure TODO \
- config.aux/depcomp config.aux/install-sh config.aux/missing
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acscrypt.m4 \
- $(top_srcdir)/scrypt-version $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_scrypt_OBJECTS = scrypt-main.$(OBJEXT) scrypt-memlimit.$(OBJEXT) \
- scrypt-readpass.$(OBJEXT) scrypt-warn.$(OBJEXT) \
- scrypt-scryptenc.$(OBJEXT) scrypt-scryptenc_cpuperf.$(OBJEXT) \
- scrypt-crypto_aesctr.$(OBJEXT) scrypt-sha256.$(OBJEXT) \
- scrypt-crypto_scrypt-@SCRYPTVER@.$(OBJEXT)
-scrypt_OBJECTS = $(am_scrypt_OBJECTS)
-scrypt_DEPENDENCIES =
-scrypt_LINK = $(CCLD) $(scrypt_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/config.aux/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(scrypt_SOURCES)
-DIST_SOURCES = $(scrypt_SOURCES)
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(dist_man_MANS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-HAVE_SYSCTL_HW_USERMEM = @HAVE_SYSCTL_HW_USERMEM@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-SCRYPTVER = @SCRYPTVER@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-dist_man_MANS = $(scrypt_man_MANS)
-scrypt_SOURCES = main.c \
- lib/util/memlimit.c \
- lib/util/readpass.c \
- lib/util/warn.c \
- lib/scryptenc/scryptenc.c \
- lib/scryptenc/scryptenc_cpuperf.c \
- lib/crypto/crypto_aesctr.c \
- lib/crypto/sha256.c \
- lib/crypto/crypto_scrypt-@SCRYPTVER@.c
-
-scrypt_CFLAGS = -I . -I lib/util -I lib/scryptenc -I lib/crypto
-scrypt_LDADD = -lcrypto
-scrypt_man_MANS = scrypt.1
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-am--refresh:
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-
-config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
- else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_srcdir) && $(AUTOHEADER)
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-scrypt$(EXEEXT): $(scrypt_OBJECTS) $(scrypt_DEPENDENCIES)
- @rm -f scrypt$(EXEEXT)
- $(scrypt_LINK) $(scrypt_OBJECTS) $(scrypt_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-crypto_aesctr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-memlimit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-readpass.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-scryptenc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-scryptenc_cpuperf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-sha256.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt-warn.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-scrypt-main.o: main.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-main.o -MD -MP -MF $(DEPDIR)/scrypt-main.Tpo -c -o scrypt-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-main.Tpo $(DEPDIR)/scrypt-main.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='scrypt-main.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
-
-scrypt-main.obj: main.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-main.obj -MD -MP -MF $(DEPDIR)/scrypt-main.Tpo -c -o scrypt-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-main.Tpo $(DEPDIR)/scrypt-main.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='scrypt-main.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
-
-scrypt-memlimit.o: lib/util/memlimit.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-memlimit.o -MD -MP -MF $(DEPDIR)/scrypt-memlimit.Tpo -c -o scrypt-memlimit.o `test -f 'lib/util/memlimit.c' || echo '$(srcdir)/'`lib/util/memlimit.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-memlimit.Tpo $(DEPDIR)/scrypt-memlimit.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/util/memlimit.c' object='scrypt-memlimit.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-memlimit.o `test -f 'lib/util/memlimit.c' || echo '$(srcdir)/'`lib/util/memlimit.c
-
-scrypt-memlimit.obj: lib/util/memlimit.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-memlimit.obj -MD -MP -MF $(DEPDIR)/scrypt-memlimit.Tpo -c -o scrypt-memlimit.obj `if test -f 'lib/util/memlimit.c'; then $(CYGPATH_W) 'lib/util/memlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/util/memlimit.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-memlimit.Tpo $(DEPDIR)/scrypt-memlimit.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/util/memlimit.c' object='scrypt-memlimit.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-memlimit.obj `if test -f 'lib/util/memlimit.c'; then $(CYGPATH_W) 'lib/util/memlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/util/memlimit.c'; fi`
-
-scrypt-readpass.o: lib/util/readpass.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-readpass.o -MD -MP -MF $(DEPDIR)/scrypt-readpass.Tpo -c -o scrypt-readpass.o `test -f 'lib/util/readpass.c' || echo '$(srcdir)/'`lib/util/readpass.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-readpass.Tpo $(DEPDIR)/scrypt-readpass.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/util/readpass.c' object='scrypt-readpass.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-readpass.o `test -f 'lib/util/readpass.c' || echo '$(srcdir)/'`lib/util/readpass.c
-
-scrypt-readpass.obj: lib/util/readpass.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-readpass.obj -MD -MP -MF $(DEPDIR)/scrypt-readpass.Tpo -c -o scrypt-readpass.obj `if test -f 'lib/util/readpass.c'; then $(CYGPATH_W) 'lib/util/readpass.c'; else $(CYGPATH_W) '$(srcdir)/lib/util/readpass.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-readpass.Tpo $(DEPDIR)/scrypt-readpass.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/util/readpass.c' object='scrypt-readpass.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-readpass.obj `if test -f 'lib/util/readpass.c'; then $(CYGPATH_W) 'lib/util/readpass.c'; else $(CYGPATH_W) '$(srcdir)/lib/util/readpass.c'; fi`
-
-scrypt-warn.o: lib/util/warn.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-warn.o -MD -MP -MF $(DEPDIR)/scrypt-warn.Tpo -c -o scrypt-warn.o `test -f 'lib/util/warn.c' || echo '$(srcdir)/'`lib/util/warn.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-warn.Tpo $(DEPDIR)/scrypt-warn.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/util/warn.c' object='scrypt-warn.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-warn.o `test -f 'lib/util/warn.c' || echo '$(srcdir)/'`lib/util/warn.c
-
-scrypt-warn.obj: lib/util/warn.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-warn.obj -MD -MP -MF $(DEPDIR)/scrypt-warn.Tpo -c -o scrypt-warn.obj `if test -f 'lib/util/warn.c'; then $(CYGPATH_W) 'lib/util/warn.c'; else $(CYGPATH_W) '$(srcdir)/lib/util/warn.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-warn.Tpo $(DEPDIR)/scrypt-warn.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/util/warn.c' object='scrypt-warn.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-warn.obj `if test -f 'lib/util/warn.c'; then $(CYGPATH_W) 'lib/util/warn.c'; else $(CYGPATH_W) '$(srcdir)/lib/util/warn.c'; fi`
-
-scrypt-scryptenc.o: lib/scryptenc/scryptenc.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-scryptenc.o -MD -MP -MF $(DEPDIR)/scrypt-scryptenc.Tpo -c -o scrypt-scryptenc.o `test -f 'lib/scryptenc/scryptenc.c' || echo '$(srcdir)/'`lib/scryptenc/scryptenc.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-scryptenc.Tpo $(DEPDIR)/scrypt-scryptenc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/scryptenc/scryptenc.c' object='scrypt-scryptenc.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-scryptenc.o `test -f 'lib/scryptenc/scryptenc.c' || echo '$(srcdir)/'`lib/scryptenc/scryptenc.c
-
-scrypt-scryptenc.obj: lib/scryptenc/scryptenc.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-scryptenc.obj -MD -MP -MF $(DEPDIR)/scrypt-scryptenc.Tpo -c -o scrypt-scryptenc.obj `if test -f 'lib/scryptenc/scryptenc.c'; then $(CYGPATH_W) 'lib/scryptenc/scryptenc.c'; else $(CYGPATH_W) '$(srcdir)/lib/scryptenc/scryptenc.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-scryptenc.Tpo $(DEPDIR)/scrypt-scryptenc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/scryptenc/scryptenc.c' object='scrypt-scryptenc.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-scryptenc.obj `if test -f 'lib/scryptenc/scryptenc.c'; then $(CYGPATH_W) 'lib/scryptenc/scryptenc.c'; else $(CYGPATH_W) '$(srcdir)/lib/scryptenc/scryptenc.c'; fi`
-
-scrypt-scryptenc_cpuperf.o: lib/scryptenc/scryptenc_cpuperf.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-scryptenc_cpuperf.o -MD -MP -MF $(DEPDIR)/scrypt-scryptenc_cpuperf.Tpo -c -o scrypt-scryptenc_cpuperf.o `test -f 'lib/scryptenc/scryptenc_cpuperf.c' || echo '$(srcdir)/'`lib/scryptenc/scryptenc_cpuperf.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-scryptenc_cpuperf.Tpo $(DEPDIR)/scrypt-scryptenc_cpuperf.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/scryptenc/scryptenc_cpuperf.c' object='scrypt-scryptenc_cpuperf.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-scryptenc_cpuperf.o `test -f 'lib/scryptenc/scryptenc_cpuperf.c' || echo '$(srcdir)/'`lib/scryptenc/scryptenc_cpuperf.c
-
-scrypt-scryptenc_cpuperf.obj: lib/scryptenc/scryptenc_cpuperf.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-scryptenc_cpuperf.obj -MD -MP -MF $(DEPDIR)/scrypt-scryptenc_cpuperf.Tpo -c -o scrypt-scryptenc_cpuperf.obj `if test -f 'lib/scryptenc/scryptenc_cpuperf.c'; then $(CYGPATH_W) 'lib/scryptenc/scryptenc_cpuperf.c'; else $(CYGPATH_W) '$(srcdir)/lib/scryptenc/scryptenc_cpuperf.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-scryptenc_cpuperf.Tpo $(DEPDIR)/scrypt-scryptenc_cpuperf.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/scryptenc/scryptenc_cpuperf.c' object='scrypt-scryptenc_cpuperf.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-scryptenc_cpuperf.obj `if test -f 'lib/scryptenc/scryptenc_cpuperf.c'; then $(CYGPATH_W) 'lib/scryptenc/scryptenc_cpuperf.c'; else $(CYGPATH_W) '$(srcdir)/lib/scryptenc/scryptenc_cpuperf.c'; fi`
-
-scrypt-crypto_aesctr.o: lib/crypto/crypto_aesctr.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-crypto_aesctr.o -MD -MP -MF $(DEPDIR)/scrypt-crypto_aesctr.Tpo -c -o scrypt-crypto_aesctr.o `test -f 'lib/crypto/crypto_aesctr.c' || echo '$(srcdir)/'`lib/crypto/crypto_aesctr.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-crypto_aesctr.Tpo $(DEPDIR)/scrypt-crypto_aesctr.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/crypto/crypto_aesctr.c' object='scrypt-crypto_aesctr.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-crypto_aesctr.o `test -f 'lib/crypto/crypto_aesctr.c' || echo '$(srcdir)/'`lib/crypto/crypto_aesctr.c
-
-scrypt-crypto_aesctr.obj: lib/crypto/crypto_aesctr.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-crypto_aesctr.obj -MD -MP -MF $(DEPDIR)/scrypt-crypto_aesctr.Tpo -c -o scrypt-crypto_aesctr.obj `if test -f 'lib/crypto/crypto_aesctr.c'; then $(CYGPATH_W) 'lib/crypto/crypto_aesctr.c'; else $(CYGPATH_W) '$(srcdir)/lib/crypto/crypto_aesctr.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-crypto_aesctr.Tpo $(DEPDIR)/scrypt-crypto_aesctr.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/crypto/crypto_aesctr.c' object='scrypt-crypto_aesctr.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-crypto_aesctr.obj `if test -f 'lib/crypto/crypto_aesctr.c'; then $(CYGPATH_W) 'lib/crypto/crypto_aesctr.c'; else $(CYGPATH_W) '$(srcdir)/lib/crypto/crypto_aesctr.c'; fi`
-
-scrypt-sha256.o: lib/crypto/sha256.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-sha256.o -MD -MP -MF $(DEPDIR)/scrypt-sha256.Tpo -c -o scrypt-sha256.o `test -f 'lib/crypto/sha256.c' || echo '$(srcdir)/'`lib/crypto/sha256.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-sha256.Tpo $(DEPDIR)/scrypt-sha256.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/crypto/sha256.c' object='scrypt-sha256.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-sha256.o `test -f 'lib/crypto/sha256.c' || echo '$(srcdir)/'`lib/crypto/sha256.c
-
-scrypt-sha256.obj: lib/crypto/sha256.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-sha256.obj -MD -MP -MF $(DEPDIR)/scrypt-sha256.Tpo -c -o scrypt-sha256.obj `if test -f 'lib/crypto/sha256.c'; then $(CYGPATH_W) 'lib/crypto/sha256.c'; else $(CYGPATH_W) '$(srcdir)/lib/crypto/sha256.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-sha256.Tpo $(DEPDIR)/scrypt-sha256.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/crypto/sha256.c' object='scrypt-sha256.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-sha256.obj `if test -f 'lib/crypto/sha256.c'; then $(CYGPATH_W) 'lib/crypto/sha256.c'; else $(CYGPATH_W) '$(srcdir)/lib/crypto/sha256.c'; fi`
-
-scrypt-crypto_scrypt-@SCRYPTVER@.o: lib/crypto/crypto_scrypt-@SCRYPTVER@.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-crypto_scrypt-@SCRYPTVER@.o -MD -MP -MF $(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Tpo -c -o scrypt-crypto_scrypt-@SCRYPTVER@.o `test -f 'lib/crypto/crypto_scrypt-@SCRYPTVER@.c' || echo '$(srcdir)/'`lib/crypto/crypto_scrypt-@SCRYPTVER@.c
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Tpo $(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/crypto/crypto_scrypt-@SCRYPTVER@.c' object='scrypt-crypto_scrypt-@SCRYPTVER@.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-crypto_scrypt-@SCRYPTVER@.o `test -f 'lib/crypto/crypto_scrypt-@SCRYPTVER@.c' || echo '$(srcdir)/'`lib/crypto/crypto_scrypt-@SCRYPTVER@.c
-
-scrypt-crypto_scrypt-@SCRYPTVER@.obj: lib/crypto/crypto_scrypt-@SCRYPTVER@.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -MT scrypt-crypto_scrypt-@SCRYPTVER@.obj -MD -MP -MF $(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Tpo -c -o scrypt-crypto_scrypt-@SCRYPTVER@.obj `if test -f 'lib/crypto/crypto_scrypt-@SCRYPTVER@.c'; then $(CYGPATH_W) 'lib/crypto/crypto_scrypt-@SCRYPTVER@.c'; else $(CYGPATH_W) '$(srcdir)/lib/crypto/crypto_scrypt-@SCRYPTVER@.c'; fi`
-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Tpo $(DEPDIR)/scrypt-crypto_scrypt-@SCRYPTVER@.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/crypto/crypto_scrypt-@SCRYPTVER@.c' object='scrypt-crypto_scrypt-@SCRYPTVER@.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scrypt_CFLAGS) $(CFLAGS) -c -o scrypt-crypto_scrypt-@SCRYPTVER@.obj `if test -f 'lib/crypto/crypto_scrypt-@SCRYPTVER@.c'; then $(CYGPATH_W) 'lib/crypto/crypto_scrypt-@SCRYPTVER@.c'; else $(CYGPATH_W) '$(srcdir)/lib/crypto/crypto_scrypt-@SCRYPTVER@.c'; fi`
-install-man1: $(man1_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d $(distdir) || mkdir $(distdir)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-lzma: distdir
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lzma*) \
- unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && cd $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @cd $(distuninstallcheck_dir) \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS) config.h
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-hdr distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
- clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \
- dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \
- distclean distclean-compile distclean-generic distclean-hdr \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-man1 install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
- ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-man uninstall-man1
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/third_party/scrypt/README.chromium b/third_party/scrypt/README.chromium
deleted file mode 100644
index c66f7c8..0000000
--- a/third_party/scrypt/README.chromium
+++ /dev/null
@@ -1,25 +0,0 @@
-Short Name: scrypt
-Name: Secure Encryption
-Version: 1.1.6
-URL: http://www.tarsnap.com/scrypt.html
-Date: 2012-12-13
-License: BSD 2-Clause License
-License File: LICENSE
-Security Critical: yes
-
-Description:
-The scrypt key derivation function was originally developed for use in
-the Tarsnap online backup system and is designed to be far more secure
-against hardware brute-force attacks than alternative functions such
-as PBKDF2 or bcrypt.
-
-We estimate that on modern (2009) hardware, if 5 seconds are spent
-computing a derived key, the cost of a hardware brute-force attack
-against scrypt is roughly 4000 times greater than the cost of a
-similar attack against bcrypt (to find the same password), and 20000
-times greater than a similar attack against PBKDF2.
-
-Local Modifications:
-chromium.patch
-- make it compile under Windows and accessible from C++
-- no functional changes
diff --git a/third_party/scrypt/chromium.patch b/third_party/scrypt/chromium.patch
deleted file mode 100644
index 04a48d4..0000000
--- a/third_party/scrypt/chromium.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-diff --git a/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c b/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c
-index cad4d0e..8adecff 100644
---- a/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c
-+++ b/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c
-@@ -29,7 +29,7 @@
- #include "scrypt_platform.h"
-
- #include <sys/types.h>
--#include <sys/mman.h>
-+//#include <sys/mman.h> // GOOGLE (not available on all platforms)
-
- #include <errno.h>
- #include <stdint.h>
-diff --git a/third_party/scrypt/lib/crypto/crypto_scrypt.h b/third_party/scrypt/lib/crypto/crypto_scrypt.h
-index f72e1f4..0b7909a 100644
---- a/third_party/scrypt/lib/crypto/crypto_scrypt.h
-+++ b/third_party/scrypt/lib/crypto/crypto_scrypt.h
-@@ -31,6 +31,11 @@
-
- #include <stdint.h>
-
-+// GOOGLE
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
- /**
- * crypto_scrypt(passwd, passwdlen, salt, saltlen, N, r, p, buf, buflen):
- * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,
-@@ -43,4 +48,9 @@
- int crypto_scrypt(const uint8_t *, size_t, const uint8_t *, size_t, uint64_t,
- uint32_t, uint32_t, uint8_t *, size_t);
-
-+// GOOGLE
-+#ifdef __cplusplus
-+}
-+#endif
-+
- #endif /* !_CRYPTO_SCRYPT_H_ */
-diff --git a/third_party/scrypt/lib/util/warn.h b/third_party/scrypt/lib/util/warn.h
-index 262d24b..4ebc7e5 100644
---- a/third_party/scrypt/lib/util/warn.h
-+++ b/third_party/scrypt/lib/util/warn.h
-@@ -1,3 +1,32 @@
-+/*-
-+ * Copyright 2009 Colin Percival
-+ * 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.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
-+ *
-+ * This file was originally written by Colin Percival as part of the Tarsnap
-+ * online backup system.
-+ */
-+
- #ifndef _WARN_H_
- #define _WARN_H_
-
-diff --git a/third_party/scrypt/scrypt_platform.h b/third_party/scrypt/scrypt_platform.h
-index 5cec236..8e406f3 100644
---- a/third_party/scrypt/scrypt_platform.h
-+++ b/third_party/scrypt/scrypt_platform.h
-@@ -1,3 +1,32 @@
-+/*-
-+ * Copyright 2009 Colin Percival
-+ * 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.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
-+ *
-+ * This file was originally written by Colin Percival as part of the Tarsnap
-+ * online backup system.
-+ */
-+
- #ifndef _SCRYPT_PLATFORM_H_
- #define _SCRYPT_PLATFORM_H_
-
-@@ -6,7 +35,7 @@
- #elif defined(HAVE_CONFIG_H)
- #include "config.h"
- #else
--#error Need either CONFIG_H_FILE or HAVE_CONFIG_H defined.
-+/* GOOGLE: assume all defines are done on the command line */
- #endif
-
- #endif /* !_SCRYPT_PLATFORM_H_ */
-diff --git a/third_party/scrypt/sysendian.h b/third_party/scrypt/sysendian.h
-new file mode 100644
-index 0000000..c147511
---- /dev/null
-+++ b/third_party/scrypt/sysendian.h
-@@ -0,0 +1,42 @@
-+/*
-+ * Copyright (c) 2012 The Chromium Authors. All rights reserved.
-+ * Use of this source code is governed by a BSD-style license.
-+ *
-+ * Some functions commonly found in sys/endian.h, a header file not available
-+ * on Windows platforms.
-+ */
-+
-+#ifndef _SCRYPT_SYSENDIAN_H
-+#define _SCRYPT_SYSENDIAN_H
-+
-+static __inline void be32enc(void *buf, uint32_t u)
-+{
-+ uint8_t *p = (uint8_t *)buf;
-+ p[0] = (uint8_t)((u >> 24) & 0xff);
-+ p[1] = (uint8_t)((u >> 16) & 0xff);
-+ p[2] = (uint8_t)((u >> 8) & 0xff);
-+ p[3] = (uint8_t)(u & 0xff);
-+}
-+
-+static __inline void le32enc(void *buf, uint32_t u)
-+{
-+ uint8_t *p = (uint8_t *)buf;
-+ p[0] = (uint8_t)(u & 0xff);
-+ p[1] = (uint8_t)((u >> 8) & 0xff);
-+ p[2] = (uint8_t)((u >> 16) & 0xff);
-+ p[3] = (uint8_t)((u >> 24) & 0xff);
-+}
-+
-+static __inline uint32_t be32dec(const void *buf)
-+{
-+ const uint8_t *p = (const uint8_t *)buf;
-+ return ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
-+}
-+
-+static __inline uint32_t le32dec(const void *buf)
-+{
-+ const uint8_t *p = (const uint8_t *)buf;
-+ return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]);
-+}
-+
-+#endif // _SCRYPT_SYSENDIAN_H
diff --git a/third_party/scrypt/config.aux/depcomp b/third_party/scrypt/config.aux/depcomp
deleted file mode 100755
index e5f9736..0000000
--- a/third_party/scrypt/config.aux/depcomp
+++ /dev/null
@@ -1,589 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2007-03-29.01
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
-# Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by `PROGRAMS ARGS'.
- object Object file output by `PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputing dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-esac
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
- tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'. On the theory
-## that the space means something, we add a space to the output as
-## well.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like `#:fec' to the end of the
- # dependency line.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr '
-' ' ' >> $depfile
- echo >> $depfile
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> $depfile
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts `$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$base.u
- tmpdepfile3=$dir.libs/$base.u
- "$@" -Wc,-M
- else
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$dir$base.u
- tmpdepfile3=$dir$base.u
- "$@" -M
- fi
- stat=$?
-
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- # Each line is of the form `foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-icc)
- # Intel's C compiler understands `-MD -MF file'. However on
- # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want:
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using \ :
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
-
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
- sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add `dependent.h:' lines.
- sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in `foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove `-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for `:'
- # in the target name. This is to cope with DOS-style filenames:
- # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
- "$@" $dashmflag |
- sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no
- for arg in "$@"; do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test $1 != '--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove `-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- "$@" || exit $?
- IFS=" "
- for arg
- do
- case "$arg" in
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/third_party/scrypt/config.aux/install-sh b/third_party/scrypt/config.aux/install-sh
deleted file mode 100755
index a5897de..0000000
--- a/third_party/scrypt/config.aux/install-sh
+++ /dev/null
@@ -1,519 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2006-12-25.00
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" "" $nl"
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-no_target_directory=
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
- --help display this help and exit.
- --version display version info and exit.
-
- -c (ignored)
- -C install only if different (preserve the last data modification time)
- -d create directories instead of installing files.
- -g GROUP $chgrpprog installed files to GROUP.
- -m MODE $chmodprog installed files to MODE.
- -o USER $chownprog installed files to USER.
- -s $stripprog installed files.
- -t DIRECTORY install into DIRECTORY.
- -T report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
- RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
- case $1 in
- -c) ;;
-
- -C) copy_on_change=true;;
-
- -d) dir_arg=true;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
-
- -o) chowncmd="$chownprog $2"
- shift;;
-
- -s) stripcmd=$stripprog;;
-
- -t) dst_arg=$2
- shift;;
-
- -T) no_target_directory=true;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- --) shift
- break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
- esac
- shift
-done
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dst_arg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dst_arg"
- shift # fnord
- fi
- shift # arg
- dst_arg=$arg
- done
-fi
-
-if test $# -eq 0; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call `install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
-for src
-do
- # Protect names starting with `-'.
- case $src in
- -*) src=./$src;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dst_arg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
-
- dst=$dst_arg
- # Protect names starting with `-'.
- case $dst in
- -*) dst=./$dst;;
- esac
-
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
- if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writeable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
-
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
-
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix='/';;
- -*) prefix='./';;
- *) prefix='';;
- esac
-
- eval "$initialize_posix_glob"
-
- oIFS=$IFS
- IFS=/
- $posix_glob set -f
- set fnord $dstdir
- shift
- $posix_glob set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test -z "$d" && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
- fi
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
- # If -C, don't bother to copy if it wouldn't change the file.
- if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
- set X $old && old=:$2:$4:$5:$6 &&
- set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
- test "$old" = "$new" &&
- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
- then
- rm -f "$dsttmp"
- else
- # Rename the file to the real destination.
- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
- {
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- fi || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/third_party/scrypt/config.aux/missing b/third_party/scrypt/config.aux/missing
deleted file mode 100755
index 1c8ff70..0000000
--- a/third_party/scrypt/config.aux/missing
+++ /dev/null
@@ -1,367 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-
-scriptversion=2006-05-10.23
-
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
-
-msg="missing on your system"
-
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
-
-Send bug reports to <bug-automake@gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).
-case $1 in
- lex|yacc)
- # Not GNU programs, they don't have --version.
- ;;
-
- tar)
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- exit 1
- fi
- ;;
-
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $1 in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG="\${$#}"
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG="\${$#}"
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit 1
- fi
- ;;
-
- makeinfo)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- tar)
- shift
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case $firstarg in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case $firstarg in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/third_party/scrypt/config.h.in b/third_party/scrypt/config.h.in
deleted file mode 100644
index f495f06..0000000
--- a/third_party/scrypt/config.h.in
+++ /dev/null
@@ -1,98 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the declaration of `be64enc', and to 0 if you
- don't. */
-#undef HAVE_DECL_BE64ENC
-
-/* Define to 1 if you have the <err.h> header file. */
-#undef HAVE_ERR_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `rt' library (-lrt). */
-#undef HAVE_LIBRT
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `posix_memalign' function. */
-#undef HAVE_POSIX_MEMALIGN
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if the system has the type `struct sysinfo'. */
-#undef HAVE_STRUCT_SYSINFO
-
-/* Define to 1 if `mem_unit' is member of `struct sysinfo'. */
-#undef HAVE_STRUCT_SYSINFO_MEM_UNIT
-
-/* Define to 1 if `totalram' is member of `struct sysinfo'. */
-#undef HAVE_STRUCT_SYSINFO_TOTALRAM
-
-/* Define to 1 if the OS has a hw.usermem sysctl */
-#undef HAVE_SYSCTL_HW_USERMEM
-
-/* Define to 1 if you have the `sysinfo' function. */
-#undef HAVE_SYSINFO
-
-/* Define to 1 if you have the <sys/endian.h> header file. */
-#undef HAVE_SYS_ENDIAN_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/sysinfo.h> header file. */
-#undef HAVE_SYS_SYSINFO_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
diff --git a/third_party/scrypt/configure b/third_party/scrypt/configure
deleted file mode 100755
index e69de29..0000000
--- a/third_party/scrypt/configure
+++ /dev/null
diff --git a/third_party/scrypt/lib/README b/third_party/scrypt/lib/README
deleted file mode 100644
index 3bb211e..0000000
--- a/third_party/scrypt/lib/README
+++ /dev/null
@@ -1,6 +0,0 @@
-The source code under this directory is taken from the client for the
-Tarsnap online backup system (and released under the 2-clause BSD license
-with permission of the author); keeping this code in sync with the Tarsnap
-code is highly desirable and explains why there is some functionality
-included here which is not actually used by the scrypt file encryption
-utility.
diff --git a/third_party/scrypt/lib/crypto/crypto_aesctr.c b/third_party/scrypt/lib/crypto/crypto_aesctr.c
deleted file mode 100644
index 00db8f0..0000000
--- a/third_party/scrypt/lib/crypto/crypto_aesctr.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*-
- * Copyright 2007-2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <stdint.h>
-#include <stdlib.h>
-
-#include <openssl/aes.h>
-
-#include "sysendian.h"
-
-#include "crypto_aesctr.h"
-
-struct crypto_aesctr {
- AES_KEY * key;
- uint64_t nonce;
- uint64_t bytectr;
- uint8_t buf[16];
-};
-
-/**
- * crypto_aesctr_init(key, nonce):
- * Prepare to encrypt/decrypt data with AES in CTR mode, using the provided
- * expanded key and nonce. The key provided must remain valid for the
- * lifetime of the stream.
- */
-struct crypto_aesctr *
-crypto_aesctr_init(AES_KEY * key, uint64_t nonce)
-{
- struct crypto_aesctr * stream;
-
- /* Allocate memory. */
- if ((stream = malloc(sizeof(struct crypto_aesctr))) == NULL)
- goto err0;
-
- /* Initialize values. */
- stream->key = key;
- stream->nonce = nonce;
- stream->bytectr = 0;
-
- /* Success! */
- return (stream);
-
-err0:
- /* Failure! */
- return (NULL);
-}
-
-/**
- * crypto_aesctr_stream(stream, inbuf, outbuf, buflen):
- * Generate the next ${buflen} bytes of the AES-CTR stream and xor them with
- * bytes from ${inbuf}, writing the result into ${outbuf}. If the buffers
- * ${inbuf} and ${outbuf} overlap, they must be identical.
- */
-void
-crypto_aesctr_stream(struct crypto_aesctr * stream, const uint8_t * inbuf,
- uint8_t * outbuf, size_t buflen)
-{
- uint8_t pblk[16];
- size_t pos;
- int bytemod;
-
- for (pos = 0; pos < buflen; pos++) {
- /* How far through the buffer are we? */
- bytemod = stream->bytectr % 16;
-
- /* Generate a block of cipherstream if needed. */
- if (bytemod == 0) {
- be64enc(pblk, stream->nonce);
- be64enc(pblk + 8, stream->bytectr / 16);
- AES_encrypt(pblk, stream->buf, stream->key);
- }
-
- /* Encrypt a byte. */
- outbuf[pos] = inbuf[pos] ^ stream->buf[bytemod];
-
- /* Move to the next byte of cipherstream. */
- stream->bytectr += 1;
- }
-}
-
-/**
- * crypto_aesctr_free(stream):
- * Free the provided stream object.
- */
-void
-crypto_aesctr_free(struct crypto_aesctr * stream)
-{
- int i;
-
- /* Zero potentially sensitive information. */
- for (i = 0; i < 16; i++)
- stream->buf[i] = 0;
- stream->bytectr = stream->nonce = 0;
-
- /* Free the stream. */
- free(stream);
-}
diff --git a/third_party/scrypt/lib/crypto/crypto_aesctr.h b/third_party/scrypt/lib/crypto/crypto_aesctr.h
deleted file mode 100644
index b50398f..0000000
--- a/third_party/scrypt/lib/crypto/crypto_aesctr.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _CRYPTO_AESCTR_H_
-#define _CRYPTO_AESCTR_H_
-
-#include <stdint.h>
-
-#include <openssl/aes.h>
-
-/**
- * crypto_aesctr_init(key, nonce):
- * Prepare to encrypt/decrypt data with AES in CTR mode, using the provided
- * expanded key and nonce. The key provided must remain valid for the
- * lifetime of the stream.
- */
-struct crypto_aesctr * crypto_aesctr_init(AES_KEY *, uint64_t);
-
-/**
- * crypto_aesctr_stream(stream, inbuf, outbuf, buflen):
- * Generate the next ${buflen} bytes of the AES-CTR stream and xor them with
- * bytes from ${inbuf}, writing the result into ${outbuf}. If the buffers
- * ${inbuf} and ${outbuf} overlap, they must be identical.
- */
-void crypto_aesctr_stream(struct crypto_aesctr *, const uint8_t *,
- uint8_t *, size_t);
-
-/**
- * crypto_aesctr_free(stream):
- * Free the provided stream object.
- */
-void crypto_aesctr_free(struct crypto_aesctr *);
-
-#endif /* !_CRYPTO_AESCTR_H_ */
diff --git a/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c b/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c
deleted file mode 100644
index 8adecff..0000000
--- a/third_party/scrypt/lib/crypto/crypto_scrypt-nosse.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <sys/types.h>
-//#include <sys/mman.h> // GOOGLE (not available on all platforms)
-
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "sha256.h"
-#include "sysendian.h"
-
-#include "crypto_scrypt.h"
-
-static void blkcpy(void *, void *, size_t);
-static void blkxor(void *, void *, size_t);
-static void salsa20_8(uint32_t[16]);
-static void blockmix_salsa8(uint32_t *, uint32_t *, uint32_t *, size_t);
-static uint64_t integerify(void *, size_t);
-static void smix(uint8_t *, size_t, uint64_t, uint32_t *, uint32_t *);
-
-static void
-blkcpy(void * dest, void * src, size_t len)
-{
- size_t * D = dest;
- size_t * S = src;
- size_t L = len / sizeof(size_t);
- size_t i;
-
- for (i = 0; i < L; i++)
- D[i] = S[i];
-}
-
-static void
-blkxor(void * dest, void * src, size_t len)
-{
- size_t * D = dest;
- size_t * S = src;
- size_t L = len / sizeof(size_t);
- size_t i;
-
- for (i = 0; i < L; i++)
- D[i] ^= S[i];
-}
-
-/**
- * salsa20_8(B):
- * Apply the salsa20/8 core to the provided block.
- */
-static void
-salsa20_8(uint32_t B[16])
-{
- uint32_t x[16];
- size_t i;
-
- blkcpy(x, B, 64);
- for (i = 0; i < 8; i += 2) {
-#define R(a,b) (((a) << (b)) | ((a) >> (32 - (b))))
- /* Operate on columns. */
- x[ 4] ^= R(x[ 0]+x[12], 7); x[ 8] ^= R(x[ 4]+x[ 0], 9);
- x[12] ^= R(x[ 8]+x[ 4],13); x[ 0] ^= R(x[12]+x[ 8],18);
-
- x[ 9] ^= R(x[ 5]+x[ 1], 7); x[13] ^= R(x[ 9]+x[ 5], 9);
- x[ 1] ^= R(x[13]+x[ 9],13); x[ 5] ^= R(x[ 1]+x[13],18);
-
- x[14] ^= R(x[10]+x[ 6], 7); x[ 2] ^= R(x[14]+x[10], 9);
- x[ 6] ^= R(x[ 2]+x[14],13); x[10] ^= R(x[ 6]+x[ 2],18);
-
- x[ 3] ^= R(x[15]+x[11], 7); x[ 7] ^= R(x[ 3]+x[15], 9);
- x[11] ^= R(x[ 7]+x[ 3],13); x[15] ^= R(x[11]+x[ 7],18);
-
- /* Operate on rows. */
- x[ 1] ^= R(x[ 0]+x[ 3], 7); x[ 2] ^= R(x[ 1]+x[ 0], 9);
- x[ 3] ^= R(x[ 2]+x[ 1],13); x[ 0] ^= R(x[ 3]+x[ 2],18);
-
- x[ 6] ^= R(x[ 5]+x[ 4], 7); x[ 7] ^= R(x[ 6]+x[ 5], 9);
- x[ 4] ^= R(x[ 7]+x[ 6],13); x[ 5] ^= R(x[ 4]+x[ 7],18);
-
- x[11] ^= R(x[10]+x[ 9], 7); x[ 8] ^= R(x[11]+x[10], 9);
- x[ 9] ^= R(x[ 8]+x[11],13); x[10] ^= R(x[ 9]+x[ 8],18);
-
- x[12] ^= R(x[15]+x[14], 7); x[13] ^= R(x[12]+x[15], 9);
- x[14] ^= R(x[13]+x[12],13); x[15] ^= R(x[14]+x[13],18);
-#undef R
- }
- for (i = 0; i < 16; i++)
- B[i] += x[i];
-}
-
-/**
- * blockmix_salsa8(Bin, Bout, X, r):
- * Compute Bout = BlockMix_{salsa20/8, r}(Bin). The input Bin must be 128r
- * bytes in length; the output Bout must also be the same size. The
- * temporary space X must be 64 bytes.
- */
-static void
-blockmix_salsa8(uint32_t * Bin, uint32_t * Bout, uint32_t * X, size_t r)
-{
- size_t i;
-
- /* 1: X <-- B_{2r - 1} */
- blkcpy(X, &Bin[(2 * r - 1) * 16], 64);
-
- /* 2: for i = 0 to 2r - 1 do */
- for (i = 0; i < 2 * r; i += 2) {
- /* 3: X <-- H(X \xor B_i) */
- blkxor(X, &Bin[i * 16], 64);
- salsa20_8(X);
-
- /* 4: Y_i <-- X */
- /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */
- blkcpy(&Bout[i * 8], X, 64);
-
- /* 3: X <-- H(X \xor B_i) */
- blkxor(X, &Bin[i * 16 + 16], 64);
- salsa20_8(X);
-
- /* 4: Y_i <-- X */
- /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */
- blkcpy(&Bout[i * 8 + r * 16], X, 64);
- }
-}
-
-/**
- * integerify(B, r):
- * Return the result of parsing B_{2r-1} as a little-endian integer.
- */
-static uint64_t
-integerify(void * B, size_t r)
-{
- uint32_t * X = (void *)((uintptr_t)(B) + (2 * r - 1) * 64);
-
- return (((uint64_t)(X[1]) << 32) + X[0]);
-}
-
-/**
- * smix(B, r, N, V, XY):
- * Compute B = SMix_r(B, N). The input B must be 128r bytes in length;
- * the temporary storage V must be 128rN bytes in length; the temporary
- * storage XY must be 256r + 64 bytes in length. The value N must be a
- * power of 2 greater than 1. The arrays B, V, and XY must be aligned to a
- * multiple of 64 bytes.
- */
-static void
-smix(uint8_t * B, size_t r, uint64_t N, uint32_t * V, uint32_t * XY)
-{
- uint32_t * X = XY;
- uint32_t * Y = &XY[32 * r];
- uint32_t * Z = &XY[64 * r];
- uint64_t i;
- uint64_t j;
- size_t k;
-
- /* 1: X <-- B */
- for (k = 0; k < 32 * r; k++)
- X[k] = le32dec(&B[4 * k]);
-
- /* 2: for i = 0 to N - 1 do */
- for (i = 0; i < N; i += 2) {
- /* 3: V_i <-- X */
- blkcpy(&V[i * (32 * r)], X, 128 * r);
-
- /* 4: X <-- H(X) */
- blockmix_salsa8(X, Y, Z, r);
-
- /* 3: V_i <-- X */
- blkcpy(&V[(i + 1) * (32 * r)], Y, 128 * r);
-
- /* 4: X <-- H(X) */
- blockmix_salsa8(Y, X, Z, r);
- }
-
- /* 6: for i = 0 to N - 1 do */
- for (i = 0; i < N; i += 2) {
- /* 7: j <-- Integerify(X) mod N */
- j = integerify(X, r) & (N - 1);
-
- /* 8: X <-- H(X \xor V_j) */
- blkxor(X, &V[j * (32 * r)], 128 * r);
- blockmix_salsa8(X, Y, Z, r);
-
- /* 7: j <-- Integerify(X) mod N */
- j = integerify(Y, r) & (N - 1);
-
- /* 8: X <-- H(X \xor V_j) */
- blkxor(Y, &V[j * (32 * r)], 128 * r);
- blockmix_salsa8(Y, X, Z, r);
- }
-
- /* 10: B' <-- X */
- for (k = 0; k < 32 * r; k++)
- le32enc(&B[4 * k], X[k]);
-}
-
-/**
- * crypto_scrypt(passwd, passwdlen, salt, saltlen, N, r, p, buf, buflen):
- * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,
- * p, buflen) and write the result into buf. The parameters r, p, and buflen
- * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32. The parameter N
- * must be a power of 2 greater than 1.
- *
- * Return 0 on success; or -1 on error.
- */
-int
-crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
- const uint8_t * salt, size_t saltlen, uint64_t N, uint32_t r, uint32_t p,
- uint8_t * buf, size_t buflen)
-{
- void * B0, * V0, * XY0;
- uint8_t * B;
- uint32_t * V;
- uint32_t * XY;
- uint32_t i;
-
- /* Sanity-check parameters. */
-#if SIZE_MAX > UINT32_MAX
- if (buflen > (((uint64_t)(1) << 32) - 1) * 32) {
- errno = EFBIG;
- goto err0;
- }
-#endif
- if ((uint64_t)(r) * (uint64_t)(p) >= (1 << 30)) {
- errno = EFBIG;
- goto err0;
- }
- if (((N & (N - 1)) != 0) || (N == 0)) {
- errno = EINVAL;
- goto err0;
- }
- if ((r > SIZE_MAX / 128 / p) ||
-#if SIZE_MAX / 256 <= UINT32_MAX
- (r > SIZE_MAX / 256) ||
-#endif
- (N > SIZE_MAX / 128 / r)) {
- errno = ENOMEM;
- goto err0;
- }
-
- /* Allocate memory. */
-#ifdef HAVE_POSIX_MEMALIGN
- if ((errno = posix_memalign(&B0, 64, 128 * r * p)) != 0)
- goto err0;
- B = (uint8_t *)(B0);
- if ((errno = posix_memalign(&XY0, 64, 256 * r + 64)) != 0)
- goto err1;
- XY = (uint32_t *)(XY0);
-#ifndef MAP_ANON
- if ((errno = posix_memalign(&V0, 64, 128 * r * N)) != 0)
- goto err2;
- V = (uint32_t *)(V0);
-#endif
-#else
- if ((B0 = malloc(128 * r * p + 63)) == NULL)
- goto err0;
- B = (uint8_t *)(((uintptr_t)(B0) + 63) & ~ (uintptr_t)(63));
- if ((XY0 = malloc(256 * r + 64 + 63)) == NULL)
- goto err1;
- XY = (uint32_t *)(((uintptr_t)(XY0) + 63) & ~ (uintptr_t)(63));
-#ifndef MAP_ANON
- if ((V0 = malloc(128 * r * N + 63)) == NULL)
- goto err2;
- V = (uint32_t *)(((uintptr_t)(V0) + 63) & ~ (uintptr_t)(63));
-#endif
-#endif
-#ifdef MAP_ANON
- if ((V0 = mmap(NULL, 128 * r * N, PROT_READ | PROT_WRITE,
-#ifdef MAP_NOCORE
- MAP_ANON | MAP_PRIVATE | MAP_NOCORE,
-#else
- MAP_ANON | MAP_PRIVATE,
-#endif
- -1, 0)) == MAP_FAILED)
- goto err2;
- V = (uint32_t *)(V0);
-#endif
-
- /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */
- PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r);
-
- /* 2: for i = 0 to p - 1 do */
- for (i = 0; i < p; i++) {
- /* 3: B_i <-- MF(B_i, N) */
- smix(&B[i * 128 * r], r, N, V, XY);
- }
-
- /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */
- PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen);
-
- /* Free memory. */
-#ifdef MAP_ANON
- if (munmap(V0, 128 * r * N))
- goto err2;
-#else
- free(V0);
-#endif
- free(XY0);
- free(B0);
-
- /* Success! */
- return (0);
-
-err2:
- free(XY0);
-err1:
- free(B0);
-err0:
- /* Failure! */
- return (-1);
-}
diff --git a/third_party/scrypt/lib/crypto/crypto_scrypt-ref.c b/third_party/scrypt/lib/crypto/crypto_scrypt-ref.c
deleted file mode 100644
index b47ca45..0000000
--- a/third_party/scrypt/lib/crypto/crypto_scrypt-ref.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "sha256.h"
-#include "sysendian.h"
-
-#include "crypto_scrypt.h"
-
-static void blkcpy(uint8_t *, uint8_t *, size_t);
-static void blkxor(uint8_t *, uint8_t *, size_t);
-static void salsa20_8(uint8_t[64]);
-static void blockmix_salsa8(uint8_t *, uint8_t *, size_t);
-static uint64_t integerify(uint8_t *, size_t);
-static void smix(uint8_t *, size_t, uint64_t, uint8_t *, uint8_t *);
-
-static void
-blkcpy(uint8_t * dest, uint8_t * src, size_t len)
-{
- size_t i;
-
- for (i = 0; i < len; i++)
- dest[i] = src[i];
-}
-
-static void
-blkxor(uint8_t * dest, uint8_t * src, size_t len)
-{
- size_t i;
-
- for (i = 0; i < len; i++)
- dest[i] ^= src[i];
-}
-
-/**
- * salsa20_8(B):
- * Apply the salsa20/8 core to the provided block.
- */
-static void
-salsa20_8(uint8_t B[64])
-{
- uint32_t B32[16];
- uint32_t x[16];
- size_t i;
-
- /* Convert little-endian values in. */
- for (i = 0; i < 16; i++)
- B32[i] = le32dec(&B[i * 4]);
-
- /* Compute x = doubleround^4(B32). */
- for (i = 0; i < 16; i++)
- x[i] = B32[i];
- for (i = 0; i < 8; i += 2) {
-#define R(a,b) (((a) << (b)) | ((a) >> (32 - (b))))
- /* Operate on columns. */
- x[ 4] ^= R(x[ 0]+x[12], 7); x[ 8] ^= R(x[ 4]+x[ 0], 9);
- x[12] ^= R(x[ 8]+x[ 4],13); x[ 0] ^= R(x[12]+x[ 8],18);
-
- x[ 9] ^= R(x[ 5]+x[ 1], 7); x[13] ^= R(x[ 9]+x[ 5], 9);
- x[ 1] ^= R(x[13]+x[ 9],13); x[ 5] ^= R(x[ 1]+x[13],18);
-
- x[14] ^= R(x[10]+x[ 6], 7); x[ 2] ^= R(x[14]+x[10], 9);
- x[ 6] ^= R(x[ 2]+x[14],13); x[10] ^= R(x[ 6]+x[ 2],18);
-
- x[ 3] ^= R(x[15]+x[11], 7); x[ 7] ^= R(x[ 3]+x[15], 9);
- x[11] ^= R(x[ 7]+x[ 3],13); x[15] ^= R(x[11]+x[ 7],18);
-
- /* Operate on rows. */
- x[ 1] ^= R(x[ 0]+x[ 3], 7); x[ 2] ^= R(x[ 1]+x[ 0], 9);
- x[ 3] ^= R(x[ 2]+x[ 1],13); x[ 0] ^= R(x[ 3]+x[ 2],18);
-
- x[ 6] ^= R(x[ 5]+x[ 4], 7); x[ 7] ^= R(x[ 6]+x[ 5], 9);
- x[ 4] ^= R(x[ 7]+x[ 6],13); x[ 5] ^= R(x[ 4]+x[ 7],18);
-
- x[11] ^= R(x[10]+x[ 9], 7); x[ 8] ^= R(x[11]+x[10], 9);
- x[ 9] ^= R(x[ 8]+x[11],13); x[10] ^= R(x[ 9]+x[ 8],18);
-
- x[12] ^= R(x[15]+x[14], 7); x[13] ^= R(x[12]+x[15], 9);
- x[14] ^= R(x[13]+x[12],13); x[15] ^= R(x[14]+x[13],18);
-#undef R
- }
-
- /* Compute B32 = B32 + x. */
- for (i = 0; i < 16; i++)
- B32[i] += x[i];
-
- /* Convert little-endian values out. */
- for (i = 0; i < 16; i++)
- le32enc(&B[4 * i], B32[i]);
-}
-
-/**
- * blockmix_salsa8(B, Y, r):
- * Compute B = BlockMix_{salsa20/8, r}(B). The input B must be 128r bytes in
- * length; the temporary space Y must also be the same size.
- */
-static void
-blockmix_salsa8(uint8_t * B, uint8_t * Y, size_t r)
-{
- uint8_t X[64];
- size_t i;
-
- /* 1: X <-- B_{2r - 1} */
- blkcpy(X, &B[(2 * r - 1) * 64], 64);
-
- /* 2: for i = 0 to 2r - 1 do */
- for (i = 0; i < 2 * r; i++) {
- /* 3: X <-- H(X \xor B_i) */
- blkxor(X, &B[i * 64], 64);
- salsa20_8(X);
-
- /* 4: Y_i <-- X */
- blkcpy(&Y[i * 64], X, 64);
- }
-
- /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */
- for (i = 0; i < r; i++)
- blkcpy(&B[i * 64], &Y[(i * 2) * 64], 64);
- for (i = 0; i < r; i++)
- blkcpy(&B[(i + r) * 64], &Y[(i * 2 + 1) * 64], 64);
-}
-
-/**
- * integerify(B, r):
- * Return the result of parsing B_{2r-1} as a little-endian integer.
- */
-static uint64_t
-integerify(uint8_t * B, size_t r)
-{
- uint8_t * X = &B[(2 * r - 1) * 64];
-
- return (le64dec(X));
-}
-
-/**
- * smix(B, r, N, V, XY):
- * Compute B = SMix_r(B, N). The input B must be 128r bytes in length; the
- * temporary storage V must be 128rN bytes in length; the temporary storage
- * XY must be 256r bytes in length. The value N must be a power of 2.
- */
-static void
-smix(uint8_t * B, size_t r, uint64_t N, uint8_t * V, uint8_t * XY)
-{
- uint8_t * X = XY;
- uint8_t * Y = &XY[128 * r];
- uint64_t i;
- uint64_t j;
-
- /* 1: X <-- B */
- blkcpy(X, B, 128 * r);
-
- /* 2: for i = 0 to N - 1 do */
- for (i = 0; i < N; i++) {
- /* 3: V_i <-- X */
- blkcpy(&V[i * (128 * r)], X, 128 * r);
-
- /* 4: X <-- H(X) */
- blockmix_salsa8(X, Y, r);
- }
-
- /* 6: for i = 0 to N - 1 do */
- for (i = 0; i < N; i++) {
- /* 7: j <-- Integerify(X) mod N */
- j = integerify(X, r) & (N - 1);
-
- /* 8: X <-- H(X \xor V_j) */
- blkxor(X, &V[j * (128 * r)], 128 * r);
- blockmix_salsa8(X, Y, r);
- }
-
- /* 10: B' <-- X */
- blkcpy(B, X, 128 * r);
-}
-
-/**
- * crypto_scrypt(passwd, passwdlen, salt, saltlen, N, r, p, buf, buflen):
- * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,
- * p, buflen) and write the result into buf. The parameters r, p, and buflen
- * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32. The parameter N
- * must be a power of 2.
- *
- * Return 0 on success; or -1 on error.
- */
-int
-crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
- const uint8_t * salt, size_t saltlen, uint64_t N, uint32_t r, uint32_t p,
- uint8_t * buf, size_t buflen)
-{
- uint8_t * B;
- uint8_t * V;
- uint8_t * XY;
- uint32_t i;
-
- /* Sanity-check parameters. */
-#if SIZE_MAX > UINT32_MAX
- if (buflen > (((uint64_t)(1) << 32) - 1) * 32) {
- errno = EFBIG;
- goto err0;
- }
-#endif
- if ((uint64_t)(r) * (uint64_t)(p) >= (1 << 30)) {
- errno = EFBIG;
- goto err0;
- }
- if (((N & (N - 1)) != 0) || (N == 0)) {
- errno = EINVAL;
- goto err0;
- }
- if ((r > SIZE_MAX / 128 / p) ||
-#if SIZE_MAX / 256 <= UINT32_MAX
- (r > SIZE_MAX / 256) ||
-#endif
- (N > SIZE_MAX / 128 / r)) {
- errno = ENOMEM;
- goto err0;
- }
-
- /* Allocate memory. */
- if ((B = malloc(128 * r * p)) == NULL)
- goto err0;
- if ((XY = malloc(256 * r)) == NULL)
- goto err1;
- if ((V = malloc(128 * r * N)) == NULL)
- goto err2;
-
- /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */
- PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r);
-
- /* 2: for i = 0 to p - 1 do */
- for (i = 0; i < p; i++) {
- /* 3: B_i <-- MF(B_i, N) */
- smix(&B[i * 128 * r], r, N, V, XY);
- }
-
- /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */
- PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen);
-
- /* Free memory. */
- free(V);
- free(XY);
- free(B);
-
- /* Success! */
- return (0);
-
-err2:
- free(XY);
-err1:
- free(B);
-err0:
- /* Failure! */
- return (-1);
-}
diff --git a/third_party/scrypt/lib/crypto/crypto_scrypt-sse.c b/third_party/scrypt/lib/crypto/crypto_scrypt-sse.c
deleted file mode 100644
index 875175e..0000000
--- a/third_party/scrypt/lib/crypto/crypto_scrypt-sse.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <sys/types.h>
-#include <sys/mman.h>
-
-#include <emmintrin.h>
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "sha256.h"
-#include "sysendian.h"
-
-#include "crypto_scrypt.h"
-
-static void blkcpy(void *, void *, size_t);
-static void blkxor(void *, void *, size_t);
-static void salsa20_8(__m128i *);
-static void blockmix_salsa8(__m128i *, __m128i *, __m128i *, size_t);
-static uint64_t integerify(void *, size_t);
-static void smix(uint8_t *, size_t, uint64_t, void *, void *);
-
-static void
-blkcpy(void * dest, void * src, size_t len)
-{
- __m128i * D = dest;
- __m128i * S = src;
- size_t L = len / 16;
- size_t i;
-
- for (i = 0; i < L; i++)
- D[i] = S[i];
-}
-
-static void
-blkxor(void * dest, void * src, size_t len)
-{
- __m128i * D = dest;
- __m128i * S = src;
- size_t L = len / 16;
- size_t i;
-
- for (i = 0; i < L; i++)
- D[i] = _mm_xor_si128(D[i], S[i]);
-}
-
-/**
- * salsa20_8(B):
- * Apply the salsa20/8 core to the provided block.
- */
-static void
-salsa20_8(__m128i B[4])
-{
- __m128i X0, X1, X2, X3;
- __m128i T;
- size_t i;
-
- X0 = B[0];
- X1 = B[1];
- X2 = B[2];
- X3 = B[3];
-
- for (i = 0; i < 8; i += 2) {
- /* Operate on "columns". */
- T = _mm_add_epi32(X0, X3);
- X1 = _mm_xor_si128(X1, _mm_slli_epi32(T, 7));
- X1 = _mm_xor_si128(X1, _mm_srli_epi32(T, 25));
- T = _mm_add_epi32(X1, X0);
- X2 = _mm_xor_si128(X2, _mm_slli_epi32(T, 9));
- X2 = _mm_xor_si128(X2, _mm_srli_epi32(T, 23));
- T = _mm_add_epi32(X2, X1);
- X3 = _mm_xor_si128(X3, _mm_slli_epi32(T, 13));
- X3 = _mm_xor_si128(X3, _mm_srli_epi32(T, 19));
- T = _mm_add_epi32(X3, X2);
- X0 = _mm_xor_si128(X0, _mm_slli_epi32(T, 18));
- X0 = _mm_xor_si128(X0, _mm_srli_epi32(T, 14));
-
- /* Rearrange data. */
- X1 = _mm_shuffle_epi32(X1, 0x93);
- X2 = _mm_shuffle_epi32(X2, 0x4E);
- X3 = _mm_shuffle_epi32(X3, 0x39);
-
- /* Operate on "rows". */
- T = _mm_add_epi32(X0, X1);
- X3 = _mm_xor_si128(X3, _mm_slli_epi32(T, 7));
- X3 = _mm_xor_si128(X3, _mm_srli_epi32(T, 25));
- T = _mm_add_epi32(X3, X0);
- X2 = _mm_xor_si128(X2, _mm_slli_epi32(T, 9));
- X2 = _mm_xor_si128(X2, _mm_srli_epi32(T, 23));
- T = _mm_add_epi32(X2, X3);
- X1 = _mm_xor_si128(X1, _mm_slli_epi32(T, 13));
- X1 = _mm_xor_si128(X1, _mm_srli_epi32(T, 19));
- T = _mm_add_epi32(X1, X2);
- X0 = _mm_xor_si128(X0, _mm_slli_epi32(T, 18));
- X0 = _mm_xor_si128(X0, _mm_srli_epi32(T, 14));
-
- /* Rearrange data. */
- X1 = _mm_shuffle_epi32(X1, 0x39);
- X2 = _mm_shuffle_epi32(X2, 0x4E);
- X3 = _mm_shuffle_epi32(X3, 0x93);
- }
-
- B[0] = _mm_add_epi32(B[0], X0);
- B[1] = _mm_add_epi32(B[1], X1);
- B[2] = _mm_add_epi32(B[2], X2);
- B[3] = _mm_add_epi32(B[3], X3);
-}
-
-/**
- * blockmix_salsa8(Bin, Bout, X, r):
- * Compute Bout = BlockMix_{salsa20/8, r}(Bin). The input Bin must be 128r
- * bytes in length; the output Bout must also be the same size. The
- * temporary space X must be 64 bytes.
- */
-static void
-blockmix_salsa8(__m128i * Bin, __m128i * Bout, __m128i * X, size_t r)
-{
- size_t i;
-
- /* 1: X <-- B_{2r - 1} */
- blkcpy(X, &Bin[8 * r - 4], 64);
-
- /* 2: for i = 0 to 2r - 1 do */
- for (i = 0; i < r; i++) {
- /* 3: X <-- H(X \xor B_i) */
- blkxor(X, &Bin[i * 8], 64);
- salsa20_8(X);
-
- /* 4: Y_i <-- X */
- /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */
- blkcpy(&Bout[i * 4], X, 64);
-
- /* 3: X <-- H(X \xor B_i) */
- blkxor(X, &Bin[i * 8 + 4], 64);
- salsa20_8(X);
-
- /* 4: Y_i <-- X */
- /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */
- blkcpy(&Bout[(r + i) * 4], X, 64);
- }
-}
-
-/**
- * integerify(B, r):
- * Return the result of parsing B_{2r-1} as a little-endian integer.
- */
-static uint64_t
-integerify(void * B, size_t r)
-{
- uint32_t * X = (void *)((uintptr_t)(B) + (2 * r - 1) * 64);
-
- return (((uint64_t)(X[13]) << 32) + X[0]);
-}
-
-/**
- * smix(B, r, N, V, XY):
- * Compute B = SMix_r(B, N). The input B must be 128r bytes in length;
- * the temporary storage V must be 128rN bytes in length; the temporary
- * storage XY must be 256r + 64 bytes in length. The value N must be a
- * power of 2 greater than 1. The arrays B, V, and XY must be aligned to a
- * multiple of 64 bytes.
- */
-static void
-smix(uint8_t * B, size_t r, uint64_t N, void * V, void * XY)
-{
- __m128i * X = XY;
- __m128i * Y = (void *)((uintptr_t)(XY) + 128 * r);
- __m128i * Z = (void *)((uintptr_t)(XY) + 256 * r);
- uint32_t * X32 = (void *)X;
- uint64_t i, j;
- size_t k;
-
- /* 1: X <-- B */
- for (k = 0; k < 2 * r; k++) {
- for (i = 0; i < 16; i++) {
- X32[k * 16 + i] =
- le32dec(&B[(k * 16 + (i * 5 % 16)) * 4]);
- }
- }
-
- /* 2: for i = 0 to N - 1 do */
- for (i = 0; i < N; i += 2) {
- /* 3: V_i <-- X */
- blkcpy((void *)((uintptr_t)(V) + i * 128 * r), X, 128 * r);
-
- /* 4: X <-- H(X) */
- blockmix_salsa8(X, Y, Z, r);
-
- /* 3: V_i <-- X */
- blkcpy((void *)((uintptr_t)(V) + (i + 1) * 128 * r),
- Y, 128 * r);
-
- /* 4: X <-- H(X) */
- blockmix_salsa8(Y, X, Z, r);
- }
-
- /* 6: for i = 0 to N - 1 do */
- for (i = 0; i < N; i += 2) {
- /* 7: j <-- Integerify(X) mod N */
- j = integerify(X, r) & (N - 1);
-
- /* 8: X <-- H(X \xor V_j) */
- blkxor(X, (void *)((uintptr_t)(V) + j * 128 * r), 128 * r);
- blockmix_salsa8(X, Y, Z, r);
-
- /* 7: j <-- Integerify(X) mod N */
- j = integerify(Y, r) & (N - 1);
-
- /* 8: X <-- H(X \xor V_j) */
- blkxor(Y, (void *)((uintptr_t)(V) + j * 128 * r), 128 * r);
- blockmix_salsa8(Y, X, Z, r);
- }
-
- /* 10: B' <-- X */
- for (k = 0; k < 2 * r; k++) {
- for (i = 0; i < 16; i++) {
- le32enc(&B[(k * 16 + (i * 5 % 16)) * 4],
- X32[k * 16 + i]);
- }
- }
-}
-
-/**
- * crypto_scrypt(passwd, passwdlen, salt, saltlen, N, r, p, buf, buflen):
- * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,
- * p, buflen) and write the result into buf. The parameters r, p, and buflen
- * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32. The parameter N
- * must be a power of 2 greater than 1.
- *
- * Return 0 on success; or -1 on error.
- */
-int
-crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
- const uint8_t * salt, size_t saltlen, uint64_t N, uint32_t r, uint32_t p,
- uint8_t * buf, size_t buflen)
-{
- void * B0, * V0, * XY0;
- uint8_t * B;
- uint32_t * V;
- uint32_t * XY;
- uint32_t i;
-
- /* Sanity-check parameters. */
-#if SIZE_MAX > UINT32_MAX
- if (buflen > (((uint64_t)(1) << 32) - 1) * 32) {
- errno = EFBIG;
- goto err0;
- }
-#endif
- if ((uint64_t)(r) * (uint64_t)(p) >= (1 << 30)) {
- errno = EFBIG;
- goto err0;
- }
- if (((N & (N - 1)) != 0) || (N == 0)) {
- errno = EINVAL;
- goto err0;
- }
- if ((r > SIZE_MAX / 128 / p) ||
-#if SIZE_MAX / 256 <= UINT32_MAX
- (r > (SIZE_MAX - 64) / 256) ||
-#endif
- (N > SIZE_MAX / 128 / r)) {
- errno = ENOMEM;
- goto err0;
- }
-
- /* Allocate memory. */
-#ifdef HAVE_POSIX_MEMALIGN
- if ((errno = posix_memalign(&B0, 64, 128 * r * p)) != 0)
- goto err0;
- B = (uint8_t *)(B0);
- if ((errno = posix_memalign(&XY0, 64, 256 * r + 64)) != 0)
- goto err1;
- XY = (uint32_t *)(XY0);
-#ifndef MAP_ANON
- if ((errno = posix_memalign(&V0, 64, 128 * r * N)) != 0)
- goto err2;
- V = (uint32_t *)(V0);
-#endif
-#else
- if ((B0 = malloc(128 * r * p + 63)) == NULL)
- goto err0;
- B = (uint8_t *)(((uintptr_t)(B0) + 63) & ~ (uintptr_t)(63));
- if ((XY0 = malloc(256 * r + 64 + 63)) == NULL)
- goto err1;
- XY = (uint32_t *)(((uintptr_t)(XY0) + 63) & ~ (uintptr_t)(63));
-#ifndef MAP_ANON
- if ((V0 = malloc(128 * r * N + 63)) == NULL)
- goto err2;
- V = (uint32_t *)(((uintptr_t)(V0) + 63) & ~ (uintptr_t)(63));
-#endif
-#endif
-#ifdef MAP_ANON
- if ((V0 = mmap(NULL, 128 * r * N, PROT_READ | PROT_WRITE,
-#ifdef MAP_NOCORE
- MAP_ANON | MAP_PRIVATE | MAP_NOCORE,
-#else
- MAP_ANON | MAP_PRIVATE,
-#endif
- -1, 0)) == MAP_FAILED)
- goto err2;
- V = (uint32_t *)(V0);
-#endif
-
- /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */
- PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r);
-
- /* 2: for i = 0 to p - 1 do */
- for (i = 0; i < p; i++) {
- /* 3: B_i <-- MF(B_i, N) */
- smix(&B[i * 128 * r], r, N, V, XY);
- }
-
- /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */
- PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen);
-
- /* Free memory. */
-#ifdef MAP_ANON
- if (munmap(V0, 128 * r * N))
- goto err2;
-#else
- free(V0);
-#endif
- free(XY0);
- free(B0);
-
- /* Success! */
- return (0);
-
-err2:
- free(XY0);
-err1:
- free(B0);
-err0:
- /* Failure! */
- return (-1);
-}
diff --git a/third_party/scrypt/lib/crypto/crypto_scrypt.h b/third_party/scrypt/lib/crypto/crypto_scrypt.h
deleted file mode 100644
index 0b7909a..0000000
--- a/third_party/scrypt/lib/crypto/crypto_scrypt.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _CRYPTO_SCRYPT_H_
-#define _CRYPTO_SCRYPT_H_
-
-#include <stdint.h>
-
-// GOOGLE
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * crypto_scrypt(passwd, passwdlen, salt, saltlen, N, r, p, buf, buflen):
- * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,
- * p, buflen) and write the result into buf. The parameters r, p, and buflen
- * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32. The parameter N
- * must be a power of 2 greater than 1.
- *
- * Return 0 on success; or -1 on error.
- */
-int crypto_scrypt(const uint8_t *, size_t, const uint8_t *, size_t, uint64_t,
- uint32_t, uint32_t, uint8_t *, size_t);
-
-// GOOGLE
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_CRYPTO_SCRYPT_H_ */
diff --git a/third_party/scrypt/lib/crypto/sha256.c b/third_party/scrypt/lib/crypto/sha256.c
deleted file mode 100644
index 52148a3..0000000
--- a/third_party/scrypt/lib/crypto/sha256.c
+++ /dev/null
@@ -1,412 +0,0 @@
-/*-
- * Copyright 2005,2007,2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- */
-#include "scrypt_platform.h"
-
-#include <sys/types.h>
-
-#include <stdint.h>
-#include <string.h>
-
-#include "sysendian.h"
-
-#include "sha256.h"
-
-/*
- * Encode a length len/4 vector of (uint32_t) into a length len vector of
- * (unsigned char) in big-endian form. Assumes len is a multiple of 4.
- */
-static void
-be32enc_vect(unsigned char *dst, const uint32_t *src, size_t len)
-{
- size_t i;
-
- for (i = 0; i < len / 4; i++)
- be32enc(dst + i * 4, src[i]);
-}
-
-/*
- * Decode a big-endian length len vector of (unsigned char) into a length
- * len/4 vector of (uint32_t). Assumes len is a multiple of 4.
- */
-static void
-be32dec_vect(uint32_t *dst, const unsigned char *src, size_t len)
-{
- size_t i;
-
- for (i = 0; i < len / 4; i++)
- dst[i] = be32dec(src + i * 4);
-}
-
-/* Elementary functions used by SHA256 */
-#define Ch(x, y, z) ((x & (y ^ z)) ^ z)
-#define Maj(x, y, z) ((x & (y | z)) | (y & z))
-#define SHR(x, n) (x >> n)
-#define ROTR(x, n) ((x >> n) | (x << (32 - n)))
-#define S0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22))
-#define S1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25))
-#define s0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3))
-#define s1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10))
-
-/* SHA256 round function */
-#define RND(a, b, c, d, e, f, g, h, k) \
- t0 = h + S1(e) + Ch(e, f, g) + k; \
- t1 = S0(a) + Maj(a, b, c); \
- d += t0; \
- h = t0 + t1;
-
-/* Adjusted round function for rotating state */
-#define RNDr(S, W, i, k) \
- RND(S[(64 - i) % 8], S[(65 - i) % 8], \
- S[(66 - i) % 8], S[(67 - i) % 8], \
- S[(68 - i) % 8], S[(69 - i) % 8], \
- S[(70 - i) % 8], S[(71 - i) % 8], \
- W[i] + k)
-
-/*
- * SHA256 block compression function. The 256-bit state is transformed via
- * the 512-bit input block to produce a new state.
- */
-static void
-SHA256_Transform(uint32_t * state, const unsigned char block[64])
-{
- uint32_t W[64];
- uint32_t S[8];
- uint32_t t0, t1;
- int i;
-
- /* 1. Prepare message schedule W. */
- be32dec_vect(W, block, 64);
- for (i = 16; i < 64; i++)
- W[i] = s1(W[i - 2]) + W[i - 7] + s0(W[i - 15]) + W[i - 16];
-
- /* 2. Initialize working variables. */
- memcpy(S, state, 32);
-
- /* 3. Mix. */
- RNDr(S, W, 0, 0x428a2f98);
- RNDr(S, W, 1, 0x71374491);
- RNDr(S, W, 2, 0xb5c0fbcf);
- RNDr(S, W, 3, 0xe9b5dba5);
- RNDr(S, W, 4, 0x3956c25b);
- RNDr(S, W, 5, 0x59f111f1);
- RNDr(S, W, 6, 0x923f82a4);
- RNDr(S, W, 7, 0xab1c5ed5);
- RNDr(S, W, 8, 0xd807aa98);
- RNDr(S, W, 9, 0x12835b01);
- RNDr(S, W, 10, 0x243185be);
- RNDr(S, W, 11, 0x550c7dc3);
- RNDr(S, W, 12, 0x72be5d74);
- RNDr(S, W, 13, 0x80deb1fe);
- RNDr(S, W, 14, 0x9bdc06a7);
- RNDr(S, W, 15, 0xc19bf174);
- RNDr(S, W, 16, 0xe49b69c1);
- RNDr(S, W, 17, 0xefbe4786);
- RNDr(S, W, 18, 0x0fc19dc6);
- RNDr(S, W, 19, 0x240ca1cc);
- RNDr(S, W, 20, 0x2de92c6f);
- RNDr(S, W, 21, 0x4a7484aa);
- RNDr(S, W, 22, 0x5cb0a9dc);
- RNDr(S, W, 23, 0x76f988da);
- RNDr(S, W, 24, 0x983e5152);
- RNDr(S, W, 25, 0xa831c66d);
- RNDr(S, W, 26, 0xb00327c8);
- RNDr(S, W, 27, 0xbf597fc7);
- RNDr(S, W, 28, 0xc6e00bf3);
- RNDr(S, W, 29, 0xd5a79147);
- RNDr(S, W, 30, 0x06ca6351);
- RNDr(S, W, 31, 0x14292967);
- RNDr(S, W, 32, 0x27b70a85);
- RNDr(S, W, 33, 0x2e1b2138);
- RNDr(S, W, 34, 0x4d2c6dfc);
- RNDr(S, W, 35, 0x53380d13);
- RNDr(S, W, 36, 0x650a7354);
- RNDr(S, W, 37, 0x766a0abb);
- RNDr(S, W, 38, 0x81c2c92e);
- RNDr(S, W, 39, 0x92722c85);
- RNDr(S, W, 40, 0xa2bfe8a1);
- RNDr(S, W, 41, 0xa81a664b);
- RNDr(S, W, 42, 0xc24b8b70);
- RNDr(S, W, 43, 0xc76c51a3);
- RNDr(S, W, 44, 0xd192e819);
- RNDr(S, W, 45, 0xd6990624);
- RNDr(S, W, 46, 0xf40e3585);
- RNDr(S, W, 47, 0x106aa070);
- RNDr(S, W, 48, 0x19a4c116);
- RNDr(S, W, 49, 0x1e376c08);
- RNDr(S, W, 50, 0x2748774c);
- RNDr(S, W, 51, 0x34b0bcb5);
- RNDr(S, W, 52, 0x391c0cb3);
- RNDr(S, W, 53, 0x4ed8aa4a);
- RNDr(S, W, 54, 0x5b9cca4f);
- RNDr(S, W, 55, 0x682e6ff3);
- RNDr(S, W, 56, 0x748f82ee);
- RNDr(S, W, 57, 0x78a5636f);
- RNDr(S, W, 58, 0x84c87814);
- RNDr(S, W, 59, 0x8cc70208);
- RNDr(S, W, 60, 0x90befffa);
- RNDr(S, W, 61, 0xa4506ceb);
- RNDr(S, W, 62, 0xbef9a3f7);
- RNDr(S, W, 63, 0xc67178f2);
-
- /* 4. Mix local working variables into global state */
- for (i = 0; i < 8; i++)
- state[i] += S[i];
-
- /* Clean the stack. */
- memset(W, 0, 256);
- memset(S, 0, 32);
- t0 = t1 = 0;
-}
-
-static unsigned char PAD[64] = {
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/* Add padding and terminating bit-count. */
-static void
-SHA256_Pad(SHA256_CTX * ctx)
-{
- unsigned char len[8];
- uint32_t r, plen;
-
- /*
- * Convert length to a vector of bytes -- we do this now rather
- * than later because the length will change after we pad.
- */
- be32enc_vect(len, ctx->count, 8);
-
- /* Add 1--64 bytes so that the resulting length is 56 mod 64 */
- r = (ctx->count[1] >> 3) & 0x3f;
- plen = (r < 56) ? (56 - r) : (120 - r);
- SHA256_Update(ctx, PAD, (size_t)plen);
-
- /* Add the terminating bit-count */
- SHA256_Update(ctx, len, 8);
-}
-
-/* SHA-256 initialization. Begins a SHA-256 operation. */
-void
-SHA256_Init(SHA256_CTX * ctx)
-{
-
- /* Zero bits processed so far */
- ctx->count[0] = ctx->count[1] = 0;
-
- /* Magic initialization constants */
- ctx->state[0] = 0x6A09E667;
- ctx->state[1] = 0xBB67AE85;
- ctx->state[2] = 0x3C6EF372;
- ctx->state[3] = 0xA54FF53A;
- ctx->state[4] = 0x510E527F;
- ctx->state[5] = 0x9B05688C;
- ctx->state[6] = 0x1F83D9AB;
- ctx->state[7] = 0x5BE0CD19;
-}
-
-/* Add bytes into the hash */
-void
-SHA256_Update(SHA256_CTX * ctx, const void *in, size_t len)
-{
- uint32_t bitlen[2];
- uint32_t r;
- const unsigned char *src = in;
-
- /* Number of bytes left in the buffer from previous updates */
- r = (ctx->count[1] >> 3) & 0x3f;
-
- /* Convert the length into a number of bits */
- bitlen[1] = ((uint32_t)len) << 3;
- bitlen[0] = (uint32_t)(len >> 29);
-
- /* Update number of bits */
- if ((ctx->count[1] += bitlen[1]) < bitlen[1])
- ctx->count[0]++;
- ctx->count[0] += bitlen[0];
-
- /* Handle the case where we don't need to perform any transforms */
- if (len < 64 - r) {
- memcpy(&ctx->buf[r], src, len);
- return;
- }
-
- /* Finish the current block */
- memcpy(&ctx->buf[r], src, 64 - r);
- SHA256_Transform(ctx->state, ctx->buf);
- src += 64 - r;
- len -= 64 - r;
-
- /* Perform complete blocks */
- while (len >= 64) {
- SHA256_Transform(ctx->state, src);
- src += 64;
- len -= 64;
- }
-
- /* Copy left over data into buffer */
- memcpy(ctx->buf, src, len);
-}
-
-/*
- * SHA-256 finalization. Pads the input data, exports the hash value,
- * and clears the context state.
- */
-void
-SHA256_Final(unsigned char digest[32], SHA256_CTX * ctx)
-{
-
- /* Add padding */
- SHA256_Pad(ctx);
-
- /* Write the hash */
- be32enc_vect(digest, ctx->state, 32);
-
- /* Clear the context state */
- memset((void *)ctx, 0, sizeof(*ctx));
-}
-
-/* Initialize an HMAC-SHA256 operation with the given key. */
-void
-HMAC_SHA256_Init(HMAC_SHA256_CTX * ctx, const void * _K, size_t Klen)
-{
- unsigned char pad[64];
- unsigned char khash[32];
- const unsigned char * K = _K;
- size_t i;
-
- /* If Klen > 64, the key is really SHA256(K). */
- if (Klen > 64) {
- SHA256_Init(&ctx->ictx);
- SHA256_Update(&ctx->ictx, K, Klen);
- SHA256_Final(khash, &ctx->ictx);
- K = khash;
- Klen = 32;
- }
-
- /* Inner SHA256 operation is SHA256(K xor [block of 0x36] || data). */
- SHA256_Init(&ctx->ictx);
- memset(pad, 0x36, 64);
- for (i = 0; i < Klen; i++)
- pad[i] ^= K[i];
- SHA256_Update(&ctx->ictx, pad, 64);
-
- /* Outer SHA256 operation is SHA256(K xor [block of 0x5c] || hash). */
- SHA256_Init(&ctx->octx);
- memset(pad, 0x5c, 64);
- for (i = 0; i < Klen; i++)
- pad[i] ^= K[i];
- SHA256_Update(&ctx->octx, pad, 64);
-
- /* Clean the stack. */
- memset(khash, 0, 32);
-}
-
-/* Add bytes to the HMAC-SHA256 operation. */
-void
-HMAC_SHA256_Update(HMAC_SHA256_CTX * ctx, const void *in, size_t len)
-{
-
- /* Feed data to the inner SHA256 operation. */
- SHA256_Update(&ctx->ictx, in, len);
-}
-
-/* Finish an HMAC-SHA256 operation. */
-void
-HMAC_SHA256_Final(unsigned char digest[32], HMAC_SHA256_CTX * ctx)
-{
- unsigned char ihash[32];
-
- /* Finish the inner SHA256 operation. */
- SHA256_Final(ihash, &ctx->ictx);
-
- /* Feed the inner hash to the outer SHA256 operation. */
- SHA256_Update(&ctx->octx, ihash, 32);
-
- /* Finish the outer SHA256 operation. */
- SHA256_Final(digest, &ctx->octx);
-
- /* Clean the stack. */
- memset(ihash, 0, 32);
-}
-
-/**
- * PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):
- * Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and
- * write the output to buf. The value dkLen must be at most 32 * (2^32 - 1).
- */
-void
-PBKDF2_SHA256(const uint8_t * passwd, size_t passwdlen, const uint8_t * salt,
- size_t saltlen, uint64_t c, uint8_t * buf, size_t dkLen)
-{
- HMAC_SHA256_CTX PShctx, hctx;
- size_t i;
- uint8_t ivec[4];
- uint8_t U[32];
- uint8_t T[32];
- uint64_t j;
- int k;
- size_t clen;
-
- /* Compute HMAC state after processing P and S. */
- HMAC_SHA256_Init(&PShctx, passwd, passwdlen);
- HMAC_SHA256_Update(&PShctx, salt, saltlen);
-
- /* Iterate through the blocks. */
- for (i = 0; i * 32 < dkLen; i++) {
- /* Generate INT(i + 1). */
- be32enc(ivec, (uint32_t)(i + 1));
-
- /* Compute U_1 = PRF(P, S || INT(i)). */
- memcpy(&hctx, &PShctx, sizeof(HMAC_SHA256_CTX));
- HMAC_SHA256_Update(&hctx, ivec, 4);
- HMAC_SHA256_Final(U, &hctx);
-
- /* T_i = U_1 ... */
- memcpy(T, U, 32);
-
- for (j = 2; j <= c; j++) {
- /* Compute U_j. */
- HMAC_SHA256_Init(&hctx, passwd, passwdlen);
- HMAC_SHA256_Update(&hctx, U, 32);
- HMAC_SHA256_Final(U, &hctx);
-
- /* ... xor U_j ... */
- for (k = 0; k < 32; k++)
- T[k] ^= U[k];
- }
-
- /* Copy as many bytes as necessary into buf. */
- clen = dkLen - i * 32;
- if (clen > 32)
- clen = 32;
- memcpy(&buf[i * 32], T, clen);
- }
-
- /* Clean PShctx, since we never called _Final on it. */
- memset(&PShctx, 0, sizeof(HMAC_SHA256_CTX));
-}
diff --git a/third_party/scrypt/lib/crypto/sha256.h b/third_party/scrypt/lib/crypto/sha256.h
deleted file mode 100644
index 289a523..0000000
--- a/third_party/scrypt/lib/crypto/sha256.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*-
- * Copyright 2005,2007,2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * $FreeBSD: src/lib/libmd/sha256.h,v 1.2 2006/01/17 15:35:56 phk Exp $
- */
-
-#ifndef _SHA256_H_
-#define _SHA256_H_
-
-#include <sys/types.h>
-
-#include <stdint.h>
-
-typedef struct SHA256Context {
- uint32_t state[8];
- uint32_t count[2];
- unsigned char buf[64];
-} SHA256_CTX;
-
-typedef struct HMAC_SHA256Context {
- SHA256_CTX ictx;
- SHA256_CTX octx;
-} HMAC_SHA256_CTX;
-
-void SHA256_Init(SHA256_CTX *);
-void SHA256_Update(SHA256_CTX *, const void *, size_t);
-void SHA256_Final(unsigned char [32], SHA256_CTX *);
-void HMAC_SHA256_Init(HMAC_SHA256_CTX *, const void *, size_t);
-void HMAC_SHA256_Update(HMAC_SHA256_CTX *, const void *, size_t);
-void HMAC_SHA256_Final(unsigned char [32], HMAC_SHA256_CTX *);
-
-/**
- * PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):
- * Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and
- * write the output to buf. The value dkLen must be at most 32 * (2^32 - 1).
- */
-void PBKDF2_SHA256(const uint8_t *, size_t, const uint8_t *, size_t,
- uint64_t, uint8_t *, size_t);
-
-#endif /* !_SHA256_H_ */
diff --git a/third_party/scrypt/lib/scryptenc/scryptenc.c b/third_party/scrypt/lib/scryptenc/scryptenc.c
deleted file mode 100644
index 3b7fd0f..0000000
--- a/third_party/scrypt/lib/scryptenc/scryptenc.c
+++ /dev/null
@@ -1,606 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <openssl/aes.h>
-
-#include "crypto_aesctr.h"
-#include "crypto_scrypt.h"
-#include "memlimit.h"
-#include "scryptenc_cpuperf.h"
-#include "sha256.h"
-#include "sysendian.h"
-
-#include "scryptenc.h"
-
-#define ENCBLOCK 65536
-
-static int pickparams(size_t, double, double,
- int *, uint32_t *, uint32_t *);
-static int checkparams(size_t, double, double, int, uint32_t, uint32_t);
-static int getsalt(uint8_t[32]);
-
-static int
-pickparams(size_t maxmem, double maxmemfrac, double maxtime,
- int * logN, uint32_t * r, uint32_t * p)
-{
- size_t memlimit;
- double opps;
- double opslimit;
- double maxN, maxrp;
- int rc;
-
- /* Figure out how much memory to use. */
- if (memtouse(maxmem, maxmemfrac, &memlimit))
- return (1);
-
- /* Figure out how fast the CPU is. */
- if ((rc = scryptenc_cpuperf(&opps)) != 0)
- return (rc);
- opslimit = opps * maxtime;
-
- /* Allow a minimum of 2^15 salsa20/8 cores. */
- if (opslimit < 32768)
- opslimit = 32768;
-
- /* Fix r = 8 for now. */
- *r = 8;
-
- /*
- * The memory limit requires that 128Nr <= memlimit, while the CPU
- * limit requires that 4Nrp <= opslimit. If opslimit < memlimit/32,
- * opslimit imposes the stronger limit on N.
- */
-#ifdef DEBUG
- fprintf(stderr, "Requiring 128Nr <= %zu, 4Nrp <= %f\n",
- memlimit, opslimit);
-#endif
- if (opslimit < memlimit/32) {
- /* Set p = 1 and choose N based on the CPU limit. */
- *p = 1;
- maxN = opslimit / (*r * 4);
- for (*logN = 1; *logN < 63; *logN += 1) {
- if ((uint64_t)(1) << *logN > maxN / 2)
- break;
- }
- } else {
- /* Set N based on the memory limit. */
- maxN = memlimit / (*r * 128);
- for (*logN = 1; *logN < 63; *logN += 1) {
- if ((uint64_t)(1) << *logN > maxN / 2)
- break;
- }
-
- /* Choose p based on the CPU limit. */
- maxrp = (opslimit / 4) / ((uint64_t)(1) << *logN);
- if (maxrp > 0x3fffffff)
- maxrp = 0x3fffffff;
- *p = (uint32_t)(maxrp) / *r;
- }
-
-#ifdef DEBUG
- fprintf(stderr, "N = %zu r = %d p = %d\n",
- (size_t)(1) << *logN, (int)(*r), (int)(*p));
-#endif
-
- /* Success! */
- return (0);
-}
-
-static int
-checkparams(size_t maxmem, double maxmemfrac, double maxtime,
- int logN, uint32_t r, uint32_t p)
-{
- size_t memlimit;
- double opps;
- double opslimit;
- uint64_t N;
- int rc;
-
- /* Figure out the maximum amount of memory we can use. */
- if (memtouse(maxmem, maxmemfrac, &memlimit))
- return (1);
-
- /* Figure out how fast the CPU is. */
- if ((rc = scryptenc_cpuperf(&opps)) != 0)
- return (rc);
- opslimit = opps * maxtime;
-
- /* Sanity-check values. */
- if ((logN < 1) || (logN > 63))
- return (7);
- if ((uint64_t)(r) * (uint64_t)(p) >= 0x40000000)
- return (7);
-
- /* Check limits. */
- N = (uint64_t)(1) << logN;
- if ((memlimit / N) / r < 128)
- return (9);
- if ((opslimit / N) / (r * p) < 4)
- return (10);
-
- /* Success! */
- return (0);
-}
-
-static int
-getsalt(uint8_t salt[32])
-{
- int fd;
- ssize_t lenread;
- uint8_t * buf = salt;
- size_t buflen = 32;
-
- /* Open /dev/urandom. */
- if ((fd = open("/dev/urandom", O_RDONLY)) == -1)
- goto err0;
-
- /* Read bytes until we have filled the buffer. */
- while (buflen > 0) {
- if ((lenread = read(fd, buf, buflen)) == -1)
- goto err1;
-
- /* The random device should never EOF. */
- if (lenread == 0)
- goto err1;
-
- /* We're partly done. */
- buf += lenread;
- buflen -= lenread;
- }
-
- /* Close the device. */
- while (close(fd) == -1) {
- if (errno != EINTR)
- goto err0;
- }
-
- /* Success! */
- return (0);
-
-err1:
- close(fd);
-err0:
- /* Failure! */
- return (4);
-}
-
-static int
-scryptenc_setup(uint8_t header[96], uint8_t dk[64],
- const uint8_t * passwd, size_t passwdlen,
- size_t maxmem, double maxmemfrac, double maxtime)
-{
- uint8_t salt[32];
- uint8_t hbuf[32];
- int logN;
- uint64_t N;
- uint32_t r;
- uint32_t p;
- SHA256_CTX ctx;
- uint8_t * key_hmac = &dk[32];
- HMAC_SHA256_CTX hctx;
- int rc;
-
- /* Pick values for N, r, p. */
- if ((rc = pickparams(maxmem, maxmemfrac, maxtime,
- &logN, &r, &p)) != 0)
- return (rc);
- N = (uint64_t)(1) << logN;
-
- /* Get some salt. */
- if ((rc = getsalt(salt)) != 0)
- return (rc);
-
- /* Generate the derived keys. */
- if (crypto_scrypt(passwd, passwdlen, salt, 32, N, r, p, dk, 64))
- return (3);
-
- /* Construct the file header. */
- memcpy(header, "scrypt", 6);
- header[6] = 0;
- header[7] = logN;
- be32enc(&header[8], r);
- be32enc(&header[12], p);
- memcpy(&header[16], salt, 32);
-
- /* Add header checksum. */
- SHA256_Init(&ctx);
- SHA256_Update(&ctx, header, 48);
- SHA256_Final(hbuf, &ctx);
- memcpy(&header[48], hbuf, 16);
-
- /* Add header signature (used for verifying password). */
- HMAC_SHA256_Init(&hctx, key_hmac, 32);
- HMAC_SHA256_Update(&hctx, header, 64);
- HMAC_SHA256_Final(hbuf, &hctx);
- memcpy(&header[64], hbuf, 32);
-
- /* Success! */
- return (0);
-}
-
-static int
-scryptdec_setup(const uint8_t header[96], uint8_t dk[64],
- const uint8_t * passwd, size_t passwdlen,
- size_t maxmem, double maxmemfrac, double maxtime)
-{
- uint8_t salt[32];
- uint8_t hbuf[32];
- int logN;
- uint32_t r;
- uint32_t p;
- uint64_t N;
- SHA256_CTX ctx;
- uint8_t * key_hmac = &dk[32];
- HMAC_SHA256_CTX hctx;
- int rc;
-
- /* Parse N, r, p, salt. */
- logN = header[7];
- r = be32dec(&header[8]);
- p = be32dec(&header[12]);
- memcpy(salt, &header[16], 32);
-
- /* Verify header checksum. */
- SHA256_Init(&ctx);
- SHA256_Update(&ctx, header, 48);
- SHA256_Final(hbuf, &ctx);
- if (memcmp(&header[48], hbuf, 16))
- return (7);
-
- /*
- * Check whether the provided parameters are valid and whether the
- * key derivation function can be computed within the allowed memory
- * and CPU time.
- */
- if ((rc = checkparams(maxmem, maxmemfrac, maxtime, logN, r, p)) != 0)
- return (rc);
-
- /* Compute the derived keys. */
- N = (uint64_t)(1) << logN;
- if (crypto_scrypt(passwd, passwdlen, salt, 32, N, r, p, dk, 64))
- return (3);
-
- /* Check header signature (i.e., verify password). */
- HMAC_SHA256_Init(&hctx, key_hmac, 32);
- HMAC_SHA256_Update(&hctx, header, 64);
- HMAC_SHA256_Final(hbuf, &hctx);
- if (memcmp(hbuf, &header[64], 32))
- return (11);
-
- /* Success! */
- return (0);
-}
-
-/**
- * scryptenc_buf(inbuf, inbuflen, outbuf, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Encrypt inbuflen bytes from inbuf, writing the resulting inbuflen + 128
- * bytes to outbuf.
- */
-int
-scryptenc_buf(const uint8_t * inbuf, size_t inbuflen, uint8_t * outbuf,
- const uint8_t * passwd, size_t passwdlen,
- size_t maxmem, double maxmemfrac, double maxtime)
-{
- uint8_t dk[64];
- uint8_t hbuf[32];
- uint8_t header[96];
- uint8_t * key_enc = dk;
- uint8_t * key_hmac = &dk[32];
- int rc;
- HMAC_SHA256_CTX hctx;
- AES_KEY key_enc_exp;
- struct crypto_aesctr * AES;
-
- /* Generate the header and derived key. */
- if ((rc = scryptenc_setup(header, dk, passwd, passwdlen,
- maxmem, maxmemfrac, maxtime)) != 0)
- return (rc);
-
- /* Copy header into output buffer. */
- memcpy(outbuf, header, 96);
-
- /* Encrypt data. */
- if (AES_set_encrypt_key(key_enc, 256, &key_enc_exp))
- return (5);
- if ((AES = crypto_aesctr_init(&key_enc_exp, 0)) == NULL)
- return (6);
- crypto_aesctr_stream(AES, inbuf, &outbuf[96], inbuflen);
- crypto_aesctr_free(AES);
-
- /* Add signature. */
- HMAC_SHA256_Init(&hctx, key_hmac, 32);
- HMAC_SHA256_Update(&hctx, outbuf, 96 + inbuflen);
- HMAC_SHA256_Final(hbuf, &hctx);
- memcpy(&outbuf[96 + inbuflen], hbuf, 32);
-
- /* Zero sensitive data. */
- memset(dk, 0, 64);
- memset(&key_enc_exp, 0, sizeof(AES_KEY));
-
- /* Success! */
- return (0);
-}
-
-/**
- * scryptdec_buf(inbuf, inbuflen, outbuf, outlen, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Decrypt inbuflen bytes fro inbuf, writing the result into outbuf and the
- * decrypted data length to outlen. The allocated length of outbuf must
- * be at least inbuflen.
- */
-int
-scryptdec_buf(const uint8_t * inbuf, size_t inbuflen, uint8_t * outbuf,
- size_t * outlen, const uint8_t * passwd, size_t passwdlen,
- size_t maxmem, double maxmemfrac, double maxtime)
-{
- uint8_t hbuf[32];
- uint8_t dk[64];
- uint8_t * key_enc = dk;
- uint8_t * key_hmac = &dk[32];
- int rc;
- HMAC_SHA256_CTX hctx;
- AES_KEY key_enc_exp;
- struct crypto_aesctr * AES;
-
- /*
- * All versions of the scrypt format will start with "scrypt" and
- * have at least 7 bytes of header.
- */
- if ((inbuflen < 7) || (memcmp(inbuf, "scrypt", 6) != 0))
- return (7);
-
- /* Check the format. */
- if (inbuf[6] != 0)
- return (8);
-
- /* We must have at least 128 bytes. */
- if (inbuflen < 128)
- return (7);
-
- /* Parse the header and generate derived keys. */
- if ((rc = scryptdec_setup(inbuf, dk, passwd, passwdlen,
- maxmem, maxmemfrac, maxtime)) != 0)
- return (rc);
-
- /* Decrypt data. */
- if (AES_set_encrypt_key(key_enc, 256, &key_enc_exp))
- return (5);
- if ((AES = crypto_aesctr_init(&key_enc_exp, 0)) == NULL)
- return (6);
- crypto_aesctr_stream(AES, &inbuf[96], outbuf, inbuflen - 128);
- crypto_aesctr_free(AES);
- *outlen = inbuflen - 128;
-
- /* Verify signature. */
- HMAC_SHA256_Init(&hctx, key_hmac, 32);
- HMAC_SHA256_Update(&hctx, inbuf, inbuflen - 32);
- HMAC_SHA256_Final(hbuf, &hctx);
- if (memcmp(hbuf, &inbuf[inbuflen - 32], 32))
- return (7);
-
- /* Zero sensitive data. */
- memset(dk, 0, 64);
- memset(&key_enc_exp, 0, sizeof(AES_KEY));
-
- /* Success! */
- return (0);
-}
-
-/**
- * scryptenc_file(infile, outfile, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Read a stream from infile and encrypt it, writing the resulting stream to
- * outfile.
- */
-int
-scryptenc_file(FILE * infile, FILE * outfile,
- const uint8_t * passwd, size_t passwdlen,
- size_t maxmem, double maxmemfrac, double maxtime)
-{
- uint8_t buf[ENCBLOCK];
- uint8_t dk[64];
- uint8_t hbuf[32];
- uint8_t header[96];
- uint8_t * key_enc = dk;
- uint8_t * key_hmac = &dk[32];
- size_t readlen;
- HMAC_SHA256_CTX hctx;
- AES_KEY key_enc_exp;
- struct crypto_aesctr * AES;
- int rc;
-
- /* Generate the header and derived key. */
- if ((rc = scryptenc_setup(header, dk, passwd, passwdlen,
- maxmem, maxmemfrac, maxtime)) != 0)
- return (rc);
-
- /* Hash and write the header. */
- HMAC_SHA256_Init(&hctx, key_hmac, 32);
- HMAC_SHA256_Update(&hctx, header, 96);
- if (fwrite(header, 96, 1, outfile) != 1)
- return (12);
-
- /*
- * Read blocks of data, encrypt them, and write them out; hash the
- * data as it is produced.
- */
- if (AES_set_encrypt_key(key_enc, 256, &key_enc_exp))
- return (5);
- if ((AES = crypto_aesctr_init(&key_enc_exp, 0)) == NULL)
- return (6);
- do {
- if ((readlen = fread(buf, 1, ENCBLOCK, infile)) == 0)
- break;
- crypto_aesctr_stream(AES, buf, buf, readlen);
- HMAC_SHA256_Update(&hctx, buf, readlen);
- if (fwrite(buf, 1, readlen, outfile) < readlen)
- return (12);
- } while (1);
- crypto_aesctr_free(AES);
-
- /* Did we exit the loop due to a read error? */
- if (ferror(infile))
- return (13);
-
- /* Compute the final HMAC and output it. */
- HMAC_SHA256_Final(hbuf, &hctx);
- if (fwrite(hbuf, 32, 1, outfile) != 1)
- return (12);
-
- /* Zero sensitive data. */
- memset(dk, 0, 64);
- memset(&key_enc_exp, 0, sizeof(AES_KEY));
-
- /* Success! */
- return (0);
-}
-
-/**
- * scryptdec_file(infile, outfile, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Read a stream from infile and decrypt it, writing the resulting stream to
- * outfile.
- */
-int
-scryptdec_file(FILE * infile, FILE * outfile,
- const uint8_t * passwd, size_t passwdlen,
- size_t maxmem, double maxmemfrac, double maxtime)
-{
- uint8_t buf[ENCBLOCK + 32];
- uint8_t header[96];
- uint8_t hbuf[32];
- uint8_t dk[64];
- uint8_t * key_enc = dk;
- uint8_t * key_hmac = &dk[32];
- size_t buflen = 0;
- size_t readlen;
- HMAC_SHA256_CTX hctx;
- AES_KEY key_enc_exp;
- struct crypto_aesctr * AES;
- int rc;
-
- /*
- * Read the first 7 bytes of the file; all future version of scrypt
- * are guaranteed to have at least 7 bytes of header.
- */
- if (fread(header, 7, 1, infile) < 1) {
- if (ferror(infile))
- return (13);
- else
- return (7);
- }
-
- /* Do we have the right magic? */
- if (memcmp(header, "scrypt", 6))
- return (7);
- if (header[6] != 0)
- return (8);
-
- /*
- * Read another 89 bytes of the file; version 0 of the srypt file
- * format has a 96-byte header.
- */
- if (fread(&header[7], 89, 1, infile) < 1) {
- if (ferror(infile))
- return (13);
- else
- return (7);
- }
-
- /* Parse the header and generate derived keys. */
- if ((rc = scryptdec_setup(header, dk, passwd, passwdlen,
- maxmem, maxmemfrac, maxtime)) != 0)
- return (rc);
-
- /* Start hashing with the header. */
- HMAC_SHA256_Init(&hctx, key_hmac, 32);
- HMAC_SHA256_Update(&hctx, header, 96);
-
- /*
- * We don't know how long the encrypted data block is (we can't know,
- * since data can be streamed into 'scrypt enc') so we need to read
- * data and decrypt all of it except the final 32 bytes, then check
- * if that final 32 bytes is the correct signature.
- */
- if (AES_set_encrypt_key(key_enc, 256, &key_enc_exp))
- return (5);
- if ((AES = crypto_aesctr_init(&key_enc_exp, 0)) == NULL)
- return (6);
- do {
- /* Read data until we have more than 32 bytes of it. */
- if ((readlen = fread(&buf[buflen], 1,
- ENCBLOCK + 32 - buflen, infile)) == 0)
- break;
- buflen += readlen;
- if (buflen <= 32)
- continue;
-
- /*
- * Decrypt, hash, and output everything except the last 32
- * bytes out of what we have in our buffer.
- */
- HMAC_SHA256_Update(&hctx, buf, buflen - 32);
- crypto_aesctr_stream(AES, buf, buf, buflen - 32);
- if (fwrite(buf, 1, buflen - 32, outfile) < buflen - 32)
- return (12);
-
- /* Move the last 32 bytes to the start of the buffer. */
- memmove(buf, &buf[buflen - 32], 32);
- buflen = 32;
- } while (1);
- crypto_aesctr_free(AES);
-
- /* Did we exit the loop due to a read error? */
- if (ferror(infile))
- return (13);
-
- /* Did we read enough data that we *might* have a valid signature? */
- if (buflen < 32)
- return (7);
-
- /* Verify signature. */
- HMAC_SHA256_Final(hbuf, &hctx);
- if (memcmp(hbuf, buf, 32))
- return (7);
-
- /* Zero sensitive data. */
- memset(dk, 0, 64);
- memset(&key_enc_exp, 0, sizeof(AES_KEY));
-
- return (0);
-}
diff --git a/third_party/scrypt/lib/scryptenc/scryptenc.h b/third_party/scrypt/lib/scryptenc/scryptenc.h
deleted file mode 100644
index 7dc3dd3..0000000
--- a/third_party/scrypt/lib/scryptenc/scryptenc.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _SCRYPTENC_H_
-#define _SCRYPTENC_H_
-
-#include <stdint.h>
-#include <stdio.h>
-
-/**
- * The parameters maxmem, maxmemfrac, and maxtime used by all of these
- * functions are defined as follows:
- * maxmem - maximum number of bytes of storage to use for V array (which is
- * by far the largest consumer of memory). If this value is set to 0, no
- * maximum will be enforced; any other value less than 1 MiB will be
- * treated as 1 MiB.
- * maxmemfrac - maximum fraction of available storage to use for the V array,
- * where "available storage" is defined as the minimum out of the
- * RLIMIT_AS, RLIMIT_DATA. and RLIMIT_RSS resource limits (if any are
- * set). If this value is set to 0 or more than 0.5 it will be treated
- * as 0.5; and this value will never cause a limit of less than 1 MiB to
- * be enforced.
- * maxtime - maximum amount of CPU time to spend computing the derived keys,
- * in seconds. This limit is only approximately enforced; the CPU
- * performance is estimated and parameter limits are chosen accordingly.
- * For the encryption functions, the parameters to the scrypt key derivation
- * function are chosen to make the key as strong as possible subject to the
- * specified limits; for the decryption functions, the parameters used are
- * compared to the computed limits and an error is returned if decrypting
- * the data would take too much memory or CPU time.
- */
-/**
- * Return codes from scrypt(enc|dec)_(buf|file):
- * 0 success
- * 1 getrlimit or sysctl(hw.usermem) failed
- * 2 clock_getres or clock_gettime failed
- * 3 error computing derived key
- * 4 could not read salt from /dev/urandom
- * 5 error in OpenSSL
- * 6 malloc failed
- * 7 data is not a valid scrypt-encrypted block
- * 8 unrecognized scrypt format
- * 9 decrypting file would take too much memory
- * 10 decrypting file would take too long
- * 11 password is incorrect
- * 12 error writing output file
- * 13 error reading input file
- */
-
-/**
- * scryptenc_buf(inbuf, inbuflen, outbuf, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Encrypt inbuflen bytes from inbuf, writing the resulting inbuflen + 128
- * bytes to outbuf.
- */
-int scryptenc_buf(const uint8_t *, size_t, uint8_t *,
- const uint8_t *, size_t, size_t, double, double);
-
-/**
- * scryptdec_buf(inbuf, inbuflen, outbuf, outlen, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Decrypt inbuflen bytes from inbuf, writing the result into outbuf and the
- * decrypted data length to outlen. The allocated length of outbuf must
- * be at least inbuflen.
- */
-int scryptdec_buf(const uint8_t *, size_t, uint8_t *, size_t *,
- const uint8_t *, size_t, size_t, double, double);
-
-/**
- * scryptenc_file(infile, outfile, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Read a stream from infile and encrypt it, writing the resulting stream to
- * outfile.
- */
-int scryptenc_file(FILE *, FILE *, const uint8_t *, size_t,
- size_t, double, double);
-
-/**
- * scryptdec_file(infile, outfile, passwd, passwdlen,
- * maxmem, maxmemfrac, maxtime):
- * Read a stream from infile and decrypt it, writing the resulting stream to
- * outfile.
- */
-int scryptdec_file(FILE *, FILE *, const uint8_t *, size_t,
- size_t, double, double);
-
-#endif /* !_SCRYPTENC_H_ */
diff --git a/third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.c b/third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.c
deleted file mode 100644
index aa2d503..0000000
--- a/third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <sys/time.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <time.h>
-
-#include "crypto_scrypt.h"
-
-#include "scryptenc_cpuperf.h"
-
-#ifdef HAVE_CLOCK_GETTIME
-
-static clock_t clocktouse;
-
-static int
-getclockres(double * resd)
-{
- struct timespec res;
-
- /*
- * Try clocks in order of preference until we find one which works.
- * (We assume that if clock_getres works, clock_gettime will, too.)
- * The use of if/else/if/else/if/else rather than if/elif/elif/else
- * is ugly but legal, and allows us to #ifdef things appropriately.
- */
-#ifdef CLOCK_VIRTUAL
- if (clock_getres(CLOCK_VIRTUAL, &res) == 0)
- clocktouse = CLOCK_VIRTUAL;
- else
-#endif
-#ifdef CLOCK_MONOTONIC
- if (clock_getres(CLOCK_MONOTONIC, &res) == 0)
- clocktouse = CLOCK_MONOTONIC;
- else
-#endif
- if (clock_getres(CLOCK_REALTIME, &res) == 0)
- clocktouse = CLOCK_REALTIME;
- else
- return (-1);
-
- /* Convert clock resolution to a double. */
- *resd = res.tv_sec + res.tv_nsec * 0.000000001;
-
- return (0);
-}
-
-static int
-getclocktime(struct timespec * ts)
-{
-
- if (clock_gettime(clocktouse, ts))
- return (-1);
-
- return (0);
-}
-
-#else
-static int
-getclockres(double * resd)
-{
-
- *resd = 1.0 / CLOCKS_PER_SEC;
-
- return (0);
-}
-
-static int
-getclocktime(struct timespec * ts)
-{
- struct timeval tv;
-
- if (gettimeofday(&tv, NULL))
- return (-1);
- ts->tv_sec = tv.tv_sec;
- ts->tv_nsec = tv.tv_usec * 1000;
-
- return (0);
-}
-#endif
-
-static int
-getclockdiff(struct timespec * st, double * diffd)
-{
- struct timespec en;
-
- if (getclocktime(&en))
- return (1);
- *diffd = (en.tv_nsec - st->tv_nsec) * 0.000000001 +
- (en.tv_sec - st->tv_sec);
-
- return (0);
-}
-
-/**
- * scryptenc_cpuperf(opps):
- * Estimate the number of salsa20/8 cores which can be executed per second,
- * and return the value via opps.
- */
-int
-scryptenc_cpuperf(double * opps)
-{
- struct timespec st;
- double resd, diffd;
- uint64_t i = 0;
-
- /* Get the clock resolution. */
- if (getclockres(&resd))
- return (2);
-
-#ifdef DEBUG
- fprintf(stderr, "Clock resolution is %f\n", resd);
-#endif
-
- /* Loop until the clock ticks. */
- if (getclocktime(&st))
- return (2);
- do {
- /* Do an scrypt. */
- if (crypto_scrypt(NULL, 0, NULL, 0, 16, 1, 1, NULL, 0))
- return (3);
-
- /* Has the clock ticked? */
- if (getclockdiff(&st, &diffd))
- return (2);
- if (diffd > 0)
- break;
- } while (1);
-
- /* Could how many scryps we can do before the next tick. */
- if (getclocktime(&st))
- return (2);
- do {
- /* Do an scrypt. */
- if (crypto_scrypt(NULL, 0, NULL, 0, 128, 1, 1, NULL, 0))
- return (3);
-
- /* We invoked the salsa20/8 core 512 times. */
- i += 512;
-
- /* Check if we have looped for long enough. */
- if (getclockdiff(&st, &diffd))
- return (2);
- if (diffd > resd)
- break;
- } while (1);
-
-#ifdef DEBUG
- fprintf(stderr, "%ju salsa20/8 cores performed in %f seconds\n",
- (uintmax_t)i, diffd);
-#endif
-
- /* We can do approximately i salsa20/8 cores per diffd seconds. */
- *opps = i / diffd;
- return (0);
-}
diff --git a/third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.h b/third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.h
deleted file mode 100644
index e236fff..0000000
--- a/third_party/scrypt/lib/scryptenc/scryptenc_cpuperf.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _SCRYPTENC_CPUPERF_H_
-#define _SCRYPTENC_CPUPERF_H_
-
-/**
- * scryptenc_cpuperf(opps):
- * Estimate the number of salsa20/8 cores which can be executed per second,
- * and return the value via opps.
- */
-int scryptenc_cpuperf(double *);
-
-#endif /* !_SCRYPTENC_CPUPERF_H_ */
diff --git a/third_party/scrypt/lib/util/memlimit.c b/third_party/scrypt/lib/util/memlimit.c
deleted file mode 100644
index 8303f5c..0000000
--- a/third_party/scrypt/lib/util/memlimit.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#include <sys/types.h>
-#include <sys/resource.h>
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYSCTL_HW_USERMEM
-#include <sys/sysctl.h>
-#endif
-#ifdef HAVE_SYS_SYSINFO_H
-#include <sys/sysinfo.h>
-#endif
-
-#include <errno.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
-
-#ifdef DEBUG
-#include <stdio.h>
-#endif
-
-#include "memlimit.h"
-
-#ifdef HAVE_SYSCTL_HW_USERMEM
-static int
-memlimit_sysctl_hw_usermem(size_t * memlimit)
-{
- int mib[2];
- uint8_t usermembuf[8];
- size_t usermemlen = 8;
- uint64_t usermem;
-
- /* Ask the kernel how much RAM we have. */
- mib[0] = CTL_HW;
- mib[1] = HW_USERMEM;
- if (sysctl(mib, 2, usermembuf, &usermemlen, NULL, 0))
- return (1);
-
- /*
- * Parse as either a uint64_t or a uint32_t based on the length of
- * output the kernel reports having copied out. It appears that all
- * systems providing a sysctl interface for reading integers copy
- * them out as system-endian values, so we don't need to worry about
- * parsing them.
- */
- if (usermemlen == sizeof(uint64_t))
- usermem = *(uint64_t *)usermembuf;
- else if (usermemlen == sizeof(uint32_t))
- usermem = *(uint32_t *)usermembuf;
- else
- return (1);
-
- /* Return the sysctl value, but clamp to SIZE_MAX if necessary. */
-#if UINT64_MAX > SIZE_MAX
- if (usermem > SIZE_MAX)
- *memlimit = SIZE_MAX;
- else
- *memlimit = usermem;
-#else
- *memlimit = usermem;
-#endif
-
- /* Success! */
- return (0);
-}
-#endif
-
-/* If we don't HAVE_STRUCT_SYSINFO, we can't use sysinfo. */
-#ifndef HAVE_STRUCT_SYSINFO
-#undef HAVE_SYSINFO
-#endif
-
-/* If we don't HAVE_STRUCT_SYSINFO_TOTALRAM, we can't use sysinfo. */
-#ifndef HAVE_STRUCT_SYSINFO_TOTALRAM
-#undef HAVE_SYSINFO
-#endif
-
-#ifdef HAVE_SYSINFO
-static int
-memlimit_sysinfo(size_t * memlimit)
-{
- struct sysinfo info;
- uint64_t totalmem;
-
- /* Get information from the kernel. */
- if (sysinfo(&info))
- return (1);
- totalmem = info.totalram;
-
- /* If we're on a modern kernel, adjust based on mem_unit. */
-#ifdef HAVE_STRUCT_SYSINFO_MEM_UNIT
- totalmem = totalmem * info.mem_unit;
-#endif
-
- /* Return the value, but clamp to SIZE_MAX if necessary. */
-#if UINT64_MAX > SIZE_MAX
- if (totalmem > SIZE_MAX)
- *memlimit = SIZE_MAX;
- else
- *memlimit = totalmem;
-#else
- *memlimit = totalmem;
-#endif
-
- /* Success! */
- return (0);
-}
-#endif /* HAVE_SYSINFO */
-
-static int
-memlimit_rlimit(size_t * memlimit)
-{
- struct rlimit rl;
- uint64_t memrlimit;
-
- /* Find the least of... */
- memrlimit = (uint64_t)(-1);
-
- /* ... RLIMIT_AS... */
-#ifdef RLIMIT_AS
- if (getrlimit(RLIMIT_AS, &rl))
- return (1);
- if ((rl.rlim_cur != RLIM_INFINITY) &&
- ((uint64_t)rl.rlim_cur < memrlimit))
- memrlimit = rl.rlim_cur;
-#endif
-
- /* ... RLIMIT_DATA... */
- if (getrlimit(RLIMIT_DATA, &rl))
- return (1);
- if ((rl.rlim_cur != RLIM_INFINITY) &&
- ((uint64_t)rl.rlim_cur < memrlimit))
- memrlimit = rl.rlim_cur;
-
- /* ... and RLIMIT_RSS. */
-#ifdef RLIMIT_RSS
- if (getrlimit(RLIMIT_RSS, &rl))
- return (1);
- if ((rl.rlim_cur != RLIM_INFINITY) &&
- ((uint64_t)rl.rlim_cur < memrlimit))
- memrlimit = rl.rlim_cur;
-#endif
-
- /* Return the value, but clamp to SIZE_MAX if necessary. */
-#if UINT64_MAX > SIZE_MAX
- if (memrlimit > SIZE_MAX)
- *memlimit = SIZE_MAX;
- else
- *memlimit = memrlimit;
-#else
- *memlimit = memrlimit;
-#endif
-
- /* Success! */
- return (0);
-}
-
-#ifdef _SC_PHYS_PAGES
-
-/* Some systems define _SC_PAGESIZE instead of _SC_PAGE_SIZE. */
-#ifndef _SC_PAGE_SIZE
-#define _SC_PAGE_SIZE _SC_PAGESIZE
-#endif
-
-static int
-memlimit_sysconf(size_t * memlimit)
-{
- long pagesize;
- long physpages;
- uint64_t totalmem;
-
- /* Set errno to 0 in order to distinguish "no limit" from "error". */
- errno = 0;
-
- /* Read the two limits. */
- if (((pagesize = sysconf(_SC_PAGE_SIZE)) == -1) ||
- ((physpages = sysconf(_SC_PHYS_PAGES)) == -1)) {
- /* Did an error occur? */
- if (errno != 0)
- return (1);
-
- /* If not, there is no limit. */
- totalmem = (uint64_t)(-1);
- } else {
- /* Compute the limit. */
- totalmem = (uint64_t)(pagesize) * (uint64_t)(physpages);
- }
-
- /* Return the value, but clamp to SIZE_MAX if necessary. */
-#if UINT64_MAX > SIZE_MAX
- if (totalmem > SIZE_MAX)
- *memlimit = SIZE_MAX;
- else
- *memlimit = totalmem;
-#else
- *memlimit = totalmem;
-#endif
-
- /* Success! */
- return (0);
-}
-#endif
-
-int
-memtouse(size_t maxmem, double maxmemfrac, size_t * memlimit)
-{
- size_t sysctl_memlimit, sysinfo_memlimit, rlimit_memlimit;
- size_t sysconf_memlimit;
- size_t memlimit_min;
- size_t memavail;
-
- /* Get memory limits. */
-#ifdef HAVE_SYSCTL_HW_USERMEM
- if (memlimit_sysctl_hw_usermem(&sysctl_memlimit))
- return (1);
-#else
- sysctl_memlimit = (size_t)(-1);
-#endif
-#ifdef HAVE_SYSINFO
- if (memlimit_sysinfo(&sysinfo_memlimit))
- return (1);
-#else
- sysinfo_memlimit = (size_t)(-1);
-#endif
- if (memlimit_rlimit(&rlimit_memlimit))
- return (1);
-#ifdef _SC_PHYS_PAGES
- if (memlimit_sysconf(&sysconf_memlimit))
- return (1);
-#else
- sysconf_memlimit = (size_t)(-1);
-#endif
-
-#ifdef DEBUG
- fprintf(stderr, "Memory limits are %zu %zu %zu %zu\n",
- sysctl_memlimit, sysinfo_memlimit, rlimit_memlimit,
- sysconf_memlimit);
-#endif
-
- /* Find the smallest of them. */
- memlimit_min = (size_t)(-1);
- if (memlimit_min > sysctl_memlimit)
- memlimit_min = sysctl_memlimit;
- if (memlimit_min > sysinfo_memlimit)
- memlimit_min = sysinfo_memlimit;
- if (memlimit_min > rlimit_memlimit)
- memlimit_min = rlimit_memlimit;
- if (memlimit_min > sysconf_memlimit)
- memlimit_min = sysconf_memlimit;
-
- /* Only use the specified fraction of the available memory. */
- if ((maxmemfrac > 0.5) || (maxmemfrac == 0.0))
- maxmemfrac = 0.5;
- memavail = maxmemfrac * memlimit_min;
-
- /* Don't use more than the specified maximum. */
- if ((maxmem > 0) && (memavail > maxmem))
- memavail = maxmem;
-
- /* But always allow at least 1 MiB. */
- if (memavail < 1048576)
- memavail = 1048576;
-
-#ifdef DEBUG
- fprintf(stderr, "Allowing up to %zu memory to be used\n", memavail);
-#endif
-
- /* Return limit via the provided pointer. */
- *memlimit = memavail;
- return (0);
-}
diff --git a/third_party/scrypt/lib/util/memlimit.h b/third_party/scrypt/lib/util/memlimit.h
deleted file mode 100644
index d3b4891..0000000
--- a/third_party/scrypt/lib/util/memlimit.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _MEMLIMIT_H_
-#define _MEMLIMIT_H_
-
-#include <stddef.h>
-
-/**
- * memtouse(maxmem, maxmemfrac, memlimit):
- * Examine the system and return via memlimit the amount of RAM which should
- * be used -- the specified fraction of the available RAM, but no more than
- * maxmem, and no less than 1MiB.
- */
-int memtouse(size_t, double, size_t *);
-
-#endif /* !_MEMLIMIT_H_ */
diff --git a/third_party/scrypt/lib/util/readpass.c b/third_party/scrypt/lib/util/readpass.c
deleted file mode 100644
index 91f77e0..0000000
--- a/third_party/scrypt/lib/util/readpass.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- */
-#include "scrypt_platform.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-
-#include "warn.h"
-
-#include "readpass.h"
-
-#define MAXPASSLEN 2048
-
-/**
- * tarsnap_getpass(passwd, prompt, confirmprompt, devtty)
- * If ${devtty} is non-zero, read a password from /dev/tty if possible; if
- * not, read from stdin. If reading from a tty (either /dev/tty or stdin),
- * disable echo and prompt the user by printing ${prompt} to stderr. If
- * ${confirmprompt} is non-NULL, read a second password (prompting if a
- * terminal is being used) and repeat until the user enters the same password
- * twice. Return the password as a malloced NUL-terminated string via
- * ${passwd}. The obscure name is to avoid namespace collisions due to the
- * getpass / readpass / readpassphrase / etc. functions in various libraries.
- */
-int
-tarsnap_readpass(char ** passwd, const char * prompt,
- const char * confirmprompt, int devtty)
-{
- FILE * readfrom;
- char passbuf[MAXPASSLEN];
- char confpassbuf[MAXPASSLEN];
- struct termios term, term_old;
- int usingtty;
-
- /*
- * If devtty != 0, try to open /dev/tty; if that fails, or if devtty
- * is zero, we'll read the password from stdin instead.
- */
- if ((devtty == 0) || ((readfrom = fopen("/dev/tty", "r")) == NULL))
- readfrom = stdin;
-
- /* If we're reading from a terminal, try to disable echo. */
- if ((usingtty = isatty(fileno(readfrom))) != 0) {
- if (tcgetattr(fileno(readfrom), &term_old)) {
- warn("Cannot read terminal settings");
- goto err1;
- }
- memcpy(&term, &term_old, sizeof(struct termios));
- term.c_lflag = (term.c_lflag & ~ECHO) | ECHONL;
- if (tcsetattr(fileno(readfrom), TCSANOW, &term)) {
- warn("Cannot set terminal settings");
- goto err1;
- }
- }
-
-retry:
- /* If we have a terminal, prompt the user to enter the password. */
- if (usingtty)
- fprintf(stderr, "%s: ", prompt);
-
- /* Read the password. */
- if (fgets(passbuf, MAXPASSLEN, readfrom) == NULL) {
- warn("Cannot read password");
- goto err2;
- }
-
- /* Confirm the password if necessary. */
- if (confirmprompt != NULL) {
- if (usingtty)
- fprintf(stderr, "%s: ", confirmprompt);
- if (fgets(confpassbuf, MAXPASSLEN, readfrom) == NULL) {
- warn("Cannot read password");
- goto err2;
- }
- if (strcmp(passbuf, confpassbuf)) {
- fprintf(stderr,
- "Passwords mismatch, please try again\n");
- goto retry;
- }
- }
-
- /* Terminate the string at the first "\r" or "\n" (if any). */
- passbuf[strcspn(passbuf, "\r\n")] = '\0';
-
- /* If we changed terminal settings, reset them. */
- if (usingtty)
- tcsetattr(fileno(readfrom), TCSANOW, &term_old);
-
- /* Close /dev/tty if we opened it. */
- if (readfrom != stdin)
- fclose(readfrom);
-
- /* Copy the password out. */
- if ((*passwd = strdup(passbuf)) == NULL) {
- warn("Cannot allocate memory");
- goto err1;
- }
-
- /* Zero any stored passwords. */
- memset(passbuf, 0, MAXPASSLEN);
- memset(confpassbuf, 0, MAXPASSLEN);
-
- /* Success! */
- return (0);
-
-err2:
- /* Reset terminal settings if necessary. */
- if (usingtty)
- tcsetattr(fileno(readfrom), TCSAFLUSH, &term_old);
-err1:
- /* Close /dev/tty if we opened it. */
- if (readfrom != stdin)
- fclose(readfrom);
-
- /* Failure! */
- return (-1);
-}
diff --git a/third_party/scrypt/lib/util/readpass.h b/third_party/scrypt/lib/util/readpass.h
deleted file mode 100644
index da57278..0000000
--- a/third_party/scrypt/lib/util/readpass.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _READPASS_H_
-#define _READPASS_H_
-
-/**
- * tarsnap_getpass(passwd, prompt, confirmprompt, devtty)
- * If ${devtty} is non-zero, read a password from /dev/tty if possible; if
- * not, read from stdin. If reading from a tty (either /dev/tty or stdin),
- * disable echo and prompt the user by printing ${prompt} to stderr. If
- * ${confirmprompt} is non-NULL, read a second password (prompting if a
- * terminal is being used) and repeat until the user enters the same password
- * twice. Return the password as a malloced NUL-terminated string via
- * ${passwd}. The obscure name is to avoid namespace collisions due to the
- * getpass / readpass / readpassphrase / etc. functions in various libraries.
- */
-int tarsnap_readpass(char **, const char *, const char *, int);
-
-#endif /* !_READPASS_H_ */
diff --git a/third_party/scrypt/lib/util/sysendian.h b/third_party/scrypt/lib/util/sysendian.h
deleted file mode 100644
index 62ef31a..0000000
--- a/third_party/scrypt/lib/util/sysendian.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*-
- * Copyright 2007-2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#ifndef _SYSENDIAN_H_
-#define _SYSENDIAN_H_
-
-#include "scrypt_platform.h"
-
-/* If we don't have be64enc, the <sys/endian.h> we have isn't usable. */
-#if !HAVE_DECL_BE64ENC
-#undef HAVE_SYS_ENDIAN_H
-#endif
-
-#ifdef HAVE_SYS_ENDIAN_H
-
-#include <sys/endian.h>
-
-#else
-
-#include <stdint.h>
-
-static inline uint32_t
-be32dec(const void *pp)
-{
- const uint8_t *p = (uint8_t const *)pp;
-
- return ((uint32_t)(p[3]) + ((uint32_t)(p[2]) << 8) +
- ((uint32_t)(p[1]) << 16) + ((uint32_t)(p[0]) << 24));
-}
-
-static inline void
-be32enc(void *pp, uint32_t x)
-{
- uint8_t * p = (uint8_t *)pp;
-
- p[3] = x & 0xff;
- p[2] = (x >> 8) & 0xff;
- p[1] = (x >> 16) & 0xff;
- p[0] = (x >> 24) & 0xff;
-}
-
-static inline uint64_t
-be64dec(const void *pp)
-{
- const uint8_t *p = (uint8_t const *)pp;
-
- return ((uint64_t)(p[7]) + ((uint64_t)(p[6]) << 8) +
- ((uint64_t)(p[5]) << 16) + ((uint64_t)(p[4]) << 24) +
- ((uint64_t)(p[3]) << 32) + ((uint64_t)(p[2]) << 40) +
- ((uint64_t)(p[1]) << 48) + ((uint64_t)(p[0]) << 56));
-}
-
-static inline void
-be64enc(void *pp, uint64_t x)
-{
- uint8_t * p = (uint8_t *)pp;
-
- p[7] = x & 0xff;
- p[6] = (x >> 8) & 0xff;
- p[5] = (x >> 16) & 0xff;
- p[4] = (x >> 24) & 0xff;
- p[3] = (x >> 32) & 0xff;
- p[2] = (x >> 40) & 0xff;
- p[1] = (x >> 48) & 0xff;
- p[0] = (x >> 56) & 0xff;
-}
-
-static inline uint32_t
-le32dec(const void *pp)
-{
- const uint8_t *p = (uint8_t const *)pp;
-
- return ((uint32_t)(p[0]) + ((uint32_t)(p[1]) << 8) +
- ((uint32_t)(p[2]) << 16) + ((uint32_t)(p[3]) << 24));
-}
-
-static inline void
-le32enc(void *pp, uint32_t x)
-{
- uint8_t * p = (uint8_t *)pp;
-
- p[0] = x & 0xff;
- p[1] = (x >> 8) & 0xff;
- p[2] = (x >> 16) & 0xff;
- p[3] = (x >> 24) & 0xff;
-}
-
-static inline uint64_t
-le64dec(const void *pp)
-{
- const uint8_t *p = (uint8_t const *)pp;
-
- return ((uint64_t)(p[0]) + ((uint64_t)(p[1]) << 8) +
- ((uint64_t)(p[2]) << 16) + ((uint64_t)(p[3]) << 24) +
- ((uint64_t)(p[4]) << 32) + ((uint64_t)(p[5]) << 40) +
- ((uint64_t)(p[6]) << 48) + ((uint64_t)(p[7]) << 56));
-}
-
-static inline void
-le64enc(void *pp, uint64_t x)
-{
- uint8_t * p = (uint8_t *)pp;
-
- p[0] = x & 0xff;
- p[1] = (x >> 8) & 0xff;
- p[2] = (x >> 16) & 0xff;
- p[3] = (x >> 24) & 0xff;
- p[4] = (x >> 32) & 0xff;
- p[5] = (x >> 40) & 0xff;
- p[6] = (x >> 48) & 0xff;
- p[7] = (x >> 56) & 0xff;
-}
-#endif /* !HAVE_SYS_ENDIAN_H */
-
-#endif /* !_SYSENDIAN_H_ */
diff --git a/third_party/scrypt/lib/util/warn.c b/third_party/scrypt/lib/util/warn.c
deleted file mode 100644
index 504f935..0000000
--- a/third_party/scrypt/lib/util/warn.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-#include "scrypt_platform.h"
-
-#ifdef HAVE_ERR_H
-/*
- * Everything is provided through err.h and the associated library, so we
- * don't need to do anything here.
- */
-#else
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "warn.h"
-
-const char * warn_progname = "(null)";
-
-void
-warn(const char * fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- fprintf(stderr, "%s", warn_progname);
- if (fmt != NULL) {
- fprintf(stderr, ": ");
- vfprintf(stderr, fmt, ap);
- }
- fprintf(stderr, ": %s\n", strerror(errno));
- va_end(ap);
-}
-
-void
-warnx(const char * fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- fprintf(stderr, "%s", warn_progname);
- if (fmt != NULL) {
- fprintf(stderr, ": ");
- vfprintf(stderr, fmt, ap);
- }
- fprintf(stderr, "\n");
- va_end(ap);
-}
-#endif
diff --git a/third_party/scrypt/lib/util/warn.h b/third_party/scrypt/lib/util/warn.h
deleted file mode 100644
index 4ebc7e5..0000000
--- a/third_party/scrypt/lib/util/warn.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-
-#ifndef _WARN_H_
-#define _WARN_H_
-
-#ifdef HAVE_ERR_H
-#include <err.h>
-#else
-#define NEED_WARN_PROGNAME
-const char * warn_progname;
-void warn(const char *, ...);
-void warnx(const char *, ...);
-#endif
-
-#endif /* !_WARN_H_ */
diff --git a/third_party/scrypt/main.c b/third_party/scrypt/main.c
deleted file mode 100644
index 3bfcdc2..0000000
--- a/third_party/scrypt/main.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- */
-#include "scrypt_platform.h"
-
-#include <inttypes.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "readpass.h"
-#include "scryptenc.h"
-#include "warn.h"
-
-static void
-usage(void)
-{
-
- fprintf(stderr,
- "usage: scrypt {enc | dec} [...] infile [outfile]\n");
- exit(1);
-}
-
-int
-main(int argc, char *argv[])
-{
- FILE * infile = NULL;
- FILE * outfile = stdout;
- int dec = 0;
- size_t maxmem = 0;
- double maxmemfrac = 0.5;
- double maxtime = 300.0;
- char ch;
- char * passwd;
- int rc;
-
-#ifdef NEED_WARN_PROGNAME
- warn_progname = "scrypt";
-#endif
-
- /* We should have "enc" or "dec" first. */
- if (argc < 2)
- usage();
- if (strcmp(argv[1], "enc") == 0) {
- maxmem = 0;
- maxmemfrac = 0.125;
- maxtime = 5.0;
- } else if (strcmp(argv[1], "dec") == 0) {
- dec = 1;
- } else
- usage();
- argc--;
- argv++;
-
- /* Parse arguments. */
- while ((ch = getopt(argc, argv, "hm:M:t:")) != -1) {
- switch (ch) {
- case 'M':
- maxmem = strtoumax(optarg, NULL, 0);
- break;
- case 'm':
- maxmemfrac = strtod(optarg, NULL);
- break;
- case 't':
- maxtime = strtod(optarg, NULL);
- break;
- default:
- usage();
- }
- }
- argc -= optind;
- argv += optind;
-
- /* We must have one or two parameters left. */
- if ((argc < 1) || (argc > 2))
- usage();
-
- /* Open the input file. */
- if ((infile = fopen(argv[0], "r")) == NULL) {
- warn("Cannot open input file: %s", argv[0]);
- exit(1);
- }
-
- /* If we have an output file, open it. */
- if (argc > 1) {
- if ((outfile = fopen(argv[1], "w")) == NULL) {
- warn("Cannot open output file: %s", argv[1]);
- exit(1);
- }
- }
-
- /* Prompt for a password. */
- if (tarsnap_readpass(&passwd, "Please enter passphrase",
- dec ? NULL : "Please confirm passphrase", 1))
- exit(1);
-
- /* Encrypt or decrypt. */
- if (dec)
- rc = scryptdec_file(infile, outfile, (uint8_t *)passwd,
- strlen(passwd), maxmem, maxmemfrac, maxtime);
- else
- rc = scryptenc_file(infile, outfile, (uint8_t *)passwd,
- strlen(passwd), maxmem, maxmemfrac, maxtime);
-
- /* Zero and free the password. */
- memset(passwd, 0, strlen(passwd));
- free(passwd);
-
- /* If we failed, print the right error message and exit. */
- if (rc != 0) {
- switch (rc) {
- case 1:
- warn("Error determining amount of available memory");
- break;
- case 2:
- warn("Error reading clocks");
- break;
- case 3:
- warn("Error computing derived key");
- break;
- case 4:
- warn("Error reading salt");
- break;
- case 5:
- warn("OpenSSL error");
- break;
- case 6:
- warn("Error allocating memory");
- break;
- case 7:
- warnx("Input is not valid scrypt-encrypted block");
- break;
- case 8:
- warnx("Unrecognized scrypt format version");
- break;
- case 9:
- warnx("Decrypting file would require too much memory");
- break;
- case 10:
- warnx("Decrypting file would take too much CPU time");
- break;
- case 11:
- warnx("Passphrase is incorrect");
- break;
- case 12:
- warn("Error writing file: %s",
- (argc > 1) ? argv[1] : "standard output");
- break;
- case 13:
- warn("Error reading file: %s", argv[0]);
- break;
- }
- exit(1);
- }
-
- return (0);
-}
diff --git a/third_party/scrypt/scrypt.1 b/third_party/scrypt/scrypt.1
deleted file mode 100644
index c0d432e..0000000
--- a/third_party/scrypt/scrypt.1
+++ /dev/null
@@ -1,114 +0,0 @@
-.\" Copyright 2009 Colin Percival
-.\" 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.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
-.Dd May 24, 2009
-.Dt SCRYPT 1
-.Os
-.Sh NAME
-.Nm scrypt
-.Nd encrypt and decrypt files.
-.Sh SYNOPSIS
-.Nm
-.Brq Cm enc | Cm dec
-.Op Fl M Ar maxmem
-.Op Fl m Ar maxmemfrac
-.Op Fl t Ar maxtime
-.Ar infile
-.Op Ar outfile
-.Sh DESCRIPTION
-.Nm Cm enc
-encrypts
-.Ar infile
-and writes the result to
-.Ar outfile
-if specified, or the standard output otherwise.
-The user will be prompted to enter a passphrase (twice) to
-be used to generate a derived encryption key.
-.Pp
-.Nm Cm dec
-decrypts
-.Ar infile
-and writes the result to
-.Ar outfile
-if specified, or the standard output otherwise.
-The user will be prompted to enter the passphrase used at
-encryption time to generate the derived encryption key.
-.Sh OPTIONS
-.Bl -tag -width "-m maxmemfrac"
-.It Fl M Ar maxmem
-Use at most
-.Ar maxmem
-bytes of RAM to compute the derived encryption key.
-.It Fl m Ar maxmemfrac
-Use at most the fraction
-.Ar maxmemfrac
-of the available RAM to compute the derived encryption key.
-.It Fl t Ar maxtime
-Usr at most
-.Ar maxtime
-seconds of CPU time to compute the derived encryption key.
-.El
-In
-.Nm Cm enc ,
-the memory and CPU time limits are enforced by picking
-appropriate parameters to the
-.Nm
-key derivation function.
-In
-.Nm Cm dec ,
-the memory and CPU time limits are enforced by exiting with
-an error if decrypting the file would require too much memory
-or CPU time.
-.Sh EXIT STATUS
-The
-.Nm
-utility exits 0 on success, and >0 if an error occurs.
-.Pp
-Note that if the input encrypted file is corrupted,
-.Nm Cm dec
-may produce output prior to determining that the input
-was corrupt and exiting with a non-zero status; so
-users should direct the output to a safe location and
-check the exit status of
-.Nm
-before using the decrypted data.
-.Sh SEE ALSO
-.Rs
-.%A "Colin Percival"
-.%T "Stronger Key Derivation via Sequential Memory-Hard Functions"
-.%O "Presented at BSDCan'09"
-.%D "May 2009"
-.Re
-.Sh HISTORY
-The
-.Nm
-utility was written in May 2009 by Colin Percival as a
-demonstration of the
-.Nm
-key derivation function.
-The
-.Nm
-key derivation function was invented in March 2009 by Colin
-Percival in order to allow key files from the
-.Nm tarsnap
-backup system to be passphrase protected.
diff --git a/third_party/scrypt/scrypt.gyp b/third_party/scrypt/scrypt.gyp
deleted file mode 100644
index 9277928..0000000
--- a/third_party/scrypt/scrypt.gyp
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
- 'targets': [
- {
- 'target_name': 'libscrypt',
- 'type': 'static_library',
- 'sources': [
- 'lib/crypto/sha256.c',
- 'lib/crypto/crypto_scrypt-nosse.c',
- ],
- 'include_dirs': [
- '.',
- ],
- },
- ],
-}
diff --git a/third_party/scrypt/scrypt_platform.h b/third_party/scrypt/scrypt_platform.h
deleted file mode 100644
index 8e406f3..0000000
--- a/third_party/scrypt/scrypt_platform.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * Copyright 2009 Colin Percival
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 CONTRIBUTORS 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.
- *
- * This file was originally written by Colin Percival as part of the Tarsnap
- * online backup system.
- */
-
-#ifndef _SCRYPT_PLATFORM_H_
-#define _SCRYPT_PLATFORM_H_
-
-#if defined(CONFIG_H_FILE)
-#include CONFIG_H_FILE
-#elif defined(HAVE_CONFIG_H)
-#include "config.h"
-#else
-/* GOOGLE: assume all defines are done on the command line */
-#endif
-
-#endif /* !_SCRYPT_PLATFORM_H_ */
diff --git a/third_party/scrypt/sysendian.h b/third_party/scrypt/sysendian.h
deleted file mode 100644
index c147511..0000000
--- a/third_party/scrypt/sysendian.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license.
- *
- * Some functions commonly found in sys/endian.h, a header file not available
- * on Windows platforms.
- */
-
-#ifndef _SCRYPT_SYSENDIAN_H
-#define _SCRYPT_SYSENDIAN_H
-
-static __inline void be32enc(void *buf, uint32_t u)
-{
- uint8_t *p = (uint8_t *)buf;
- p[0] = (uint8_t)((u >> 24) & 0xff);
- p[1] = (uint8_t)((u >> 16) & 0xff);
- p[2] = (uint8_t)((u >> 8) & 0xff);
- p[3] = (uint8_t)(u & 0xff);
-}
-
-static __inline void le32enc(void *buf, uint32_t u)
-{
- uint8_t *p = (uint8_t *)buf;
- p[0] = (uint8_t)(u & 0xff);
- p[1] = (uint8_t)((u >> 8) & 0xff);
- p[2] = (uint8_t)((u >> 16) & 0xff);
- p[3] = (uint8_t)((u >> 24) & 0xff);
-}
-
-static __inline uint32_t be32dec(const void *buf)
-{
- const uint8_t *p = (const uint8_t *)buf;
- return ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
-}
-
-static __inline uint32_t le32dec(const void *buf)
-{
- const uint8_t *p = (const uint8_t *)buf;
- return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]);
-}
-
-#endif // _SCRYPT_SYSENDIAN_H