diff --git a/wolfCLU/.gitignore b/wolfCLU/.gitignore index e08e477d..f95fe260 100644 --- a/wolfCLU/.gitignore +++ b/wolfCLU/.gitignore @@ -22,10 +22,7 @@ lt*.m4 *.deps *.libs *.dirstamp -build-aux/config.guess -build-aux/config.sub -build-aux/install-sh -build-aux/ltmain.sh +build-aux/* m4/libtool.m4 wolfssl test-suite.log diff --git a/wolfCLU/build-aux/compile b/wolfCLU/build-aux/compile deleted file mode 100755 index a85b723c..00000000 --- a/wolfCLU/build-aux/compile +++ /dev/null @@ -1,347 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2012-10-14.11; # UTC - -# Copyright (C) 1999-2014 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# 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, see . - -# 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. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# 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-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/wolfCLU/build-aux/depcomp b/wolfCLU/build-aux/depcomp deleted file mode 100755 index fc98710e..00000000 --- a/wolfCLU/build-aux/depcomp +++ /dev/null @@ -1,791 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2013-05-30.07; # UTC - -# Copyright (C) 1999-2014 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, see . - -# 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 . - -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 outputting dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - -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" - -# Avoid interferences from the environment. -gccflag= dashmflag= - -# 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 - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -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 -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). -## 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). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. -## - 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 -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # 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. -## 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. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -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 -ne 0; then - 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 ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" - echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" - ;; - -xlc) - # 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 - ;; - -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. - set_dir_from "$object" - set_base_from "$object" - 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 -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then - 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. - set_dir_from "$object" - set_base_from "$object" - 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 -ne 0; then - 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,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - make_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. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool 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$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; - -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/'"$tab"'/ - G - p -}' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # 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 - ;; - -#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 "X$1" != 'X--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|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | 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 "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - 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. - -arch) - eat=yes ;; - -*|$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" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | 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 "X$1" != 'X--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. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # 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 - ;; - -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-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/wolfCLU/build-aux/missing b/wolfCLU/build-aux/missing deleted file mode 100755 index f62bbae3..00000000 --- a/wolfCLU/build-aux/missing +++ /dev/null @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2013-10-28.13; # UTC - -# Copyright (C) 1996-2014 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard , 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, see . - -# 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 - -case $1 in - - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; - - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man - -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. - -Send bug reports to ." - 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 - -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi - -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/wolfCLU/build-aux/test-driver b/wolfCLU/build-aux/test-driver deleted file mode 100755 index 8e575b01..00000000 --- a/wolfCLU/build-aux/test-driver +++ /dev/null @@ -1,148 +0,0 @@ -#! /bin/sh -# test-driver - basic testsuite driver script. - -scriptversion=2013-07-13.22; # UTC - -# Copyright (C) 2011-2014 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, see . - -# 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. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -# Make unconditional expansion of undefined variables an error. This -# helps a lot in preventing typo-related bugs. -set -u - -usage_error () -{ - echo "$0: $*" >&2 - print_usage >&2 - exit 2 -} - -print_usage () -{ - cat <$log_file 2>&1 -estatus=$? - -if test $enable_hard_errors = no && test $estatus -eq 99; then - tweaked_estatus=1 -else - tweaked_estatus=$estatus -fi - -case $tweaked_estatus:$expect_failure in - 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; - 0:*) col=$grn res=PASS recheck=no gcopy=no;; - 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; - 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; - *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; - *:*) col=$red res=FAIL recheck=yes gcopy=yes;; -esac - -# Report the test outcome and exit status in the logs, so that one can -# know whether the test passed or failed simply by looking at the '.log' -# file, without the need of also peaking into the corresponding '.trs' -# file (automake bug#11814). -echo "$res $test_name (exit status: $estatus)" >>$log_file - -# Report outcome to console. -echo "${col}${res}${std}: $test_name" - -# Register the test result, and other relevant metadata. -echo ":test-result: $res" > $trs_file -echo ":global-test-result: $res" >> $trs_file -echo ":recheck: $recheck" >> $trs_file -echo ":copy-in-global-log: $gcopy" >> $trs_file - -# 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-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/wolfCLU/clu_src/clu_main.c b/wolfCLU/clu_src/clu_main.c index 4341b657..2b8ce07a 100644 --- a/wolfCLU/clu_src/clu_main.c +++ b/wolfCLU/clu_src/clu_main.c @@ -168,22 +168,22 @@ int main(int argc, char** argv) case GEN_KEY: ret = wolfCLU_genKeySetup(argc, argv); break; - + case RSA: ret = wolfCLU_sign_verify_setup(argc, argv); break; - + case ECC: ret = wolfCLU_sign_verify_setup(argc, argv); break; - + case ED25519: ret = wolfCLU_sign_verify_setup(argc, argv); break; - + } - - if (ret <= 0) + + if (ret < 0) printf("Error returned: %d.\n", ret); return ret; diff --git a/wolfCLU/clu_src/sign-verify/clu_sign.c b/wolfCLU/clu_src/sign-verify/clu_sign.c index 3a6094f4..967fceae 100644 --- a/wolfCLU/clu_src/sign-verify/clu_sign.c +++ b/wolfCLU/clu_src/sign-verify/clu_sign.c @@ -28,7 +28,7 @@ int wolfCLU_sign_data(char* in, char* out, char* privKey, int keyType) { int ret; int fSz; FILE* f = fopen(in,"rb"); - + fseek(f, 0, SEEK_END); fSz = ftell(f); @@ -39,24 +39,24 @@ int wolfCLU_sign_data(char* in, char* out, char* privKey, int keyType) { fclose(f); switch(keyType) { - + case RSA_SIG_VER: ret = wolfCLU_sign_data_rsa(data, out, fSz, privKey); break; - + case ECC_SIG_VER: ret = wolfCLU_sign_data_ecc(data, out, fSz, privKey); break; - + case ED25519_SIG_VER: ret = wolfCLU_sign_data_ed25519(data, out, fSz, privKey); break; - - default: + + default: printf("No valid sign algorithm selected.\n"); ret = -1; } - + return ret; } @@ -66,22 +66,22 @@ int wolfCLU_sign_data_rsa(byte* data, char* out, word32 dataSz, char* privKey) { int privFileSz; size_t rsaKeySz; word32 index = 0; - + FILE* privKeyFile; - + RsaKey key; WC_RNG rng; - + XMEMSET(&rng, 0, sizeof(rng)); XMEMSET(&key, 0, sizeof(key)); - + /* init the RsaKey */ ret = wc_InitRsaKey(&key, NULL); if (ret != 0) { printf("Failed to initialize RsaKey\nRET: %d\n", ret); return ret; } - + /* read in and store private key */ privKeyFile = fopen(privKey, "rb"); fseek(privKeyFile, 0, SEEK_END); @@ -90,7 +90,7 @@ int wolfCLU_sign_data_rsa(byte* data, char* out, word32 dataSz, char* privKey) { fseek(privKeyFile, 0, SEEK_SET); fread(keyBuf, 1, privFileSz, privKeyFile); fclose(privKeyFile); - + /* retrieving private key and storing in the RsaKey */ ret = wc_RsaPrivateKeyDecode(keyBuf, &index, &key, privFileSz); if (ret != 0 ) { @@ -101,7 +101,7 @@ int wolfCLU_sign_data_rsa(byte* data, char* out, word32 dataSz, char* privKey) { /* setting up output buffer based on key size */ byte outBuf[wc_RsaEncryptSize(&key)]; XMEMSET(&outBuf, 0, sizeof(outBuf)); - + ret = wc_InitRng(&rng); #ifdef WC_RSA_BLINDING ret = wc_RsaSetRNG(&key, &rng); @@ -115,7 +115,7 @@ int wolfCLU_sign_data_rsa(byte* data, char* out, word32 dataSz, char* privKey) { return ret; } #endif - + ret = wc_RsaSSL_Sign(data, dataSz, outBuf, sizeof(outBuf), &key, &rng); if (ret < 0) { printf("Failed to sign data with RSA private key.\nRET: %d\n", ret); @@ -127,7 +127,7 @@ int wolfCLU_sign_data_rsa(byte* data, char* out, word32 dataSz, char* privKey) { fwrite(outBuf, 1, sizeof(outBuf), s); fclose(s); } - + return 0; #else return NOT_COMPILED_IN; @@ -141,22 +141,22 @@ int wolfCLU_sign_data_ecc(byte* data, char* out, word32 fSz, char* privKey) { size_t eccKeySz; word32 index = 0; word32 outLen; - + FILE* privKeyFile; - + ecc_key key; WC_RNG rng; - + XMEMSET(&rng, 0, sizeof(rng)); XMEMSET(&key, 0, sizeof(key)); - + /* init the ecc key */ ret = wc_ecc_init(&key); if (ret != 0) { printf("Failed to initialize ecc key\nRET: %d\n", ret); return ret; } - + ret = wc_InitRng(&rng); if (ret != 0) { printf("Failed to initialize rng.\nRET: %d\n", ret); @@ -193,17 +193,17 @@ int wolfCLU_sign_data_ecc(byte* data, char* out, word32 fSz, char* privKey) { else { FILE* s; s = fopen(out, "wb"); - fwrite(outBuf, 1, sizeof(outBuf), s); + fwrite(outBuf, 1, outLen, s); fclose(s); } - + return ret; #else return NOT_COMPILED_IN; #endif } -int wolfCLU_sign_data_ed25519 (byte* data, char* out, +int wolfCLU_sign_data_ed25519 (byte* data, char* out, word32 fSz, char* privKey) { #ifdef HAVE_ED25519 @@ -213,22 +213,22 @@ int wolfCLU_sign_data_ed25519 (byte* data, char* out, word32 index = 0; word32 outLen; word32 pubLen; - + FILE* privKeyFile; - + ed25519_key key; WC_RNG rng; - + XMEMSET(&rng, 0, sizeof(rng)); XMEMSET(&key, 0, sizeof(key)); - + /* init the ED25519 key */ ret = wc_ed25519_init(&key); if (ret != 0) { printf("Failed to initialize ed25519 key\nRET: %d\n", ret); return ret; } - + ret = wc_InitRng(&rng); if (ret != 0) { printf("Failed to initialize rng.\nRET: %d\n", ret); @@ -253,7 +253,7 @@ int wolfCLU_sign_data_ed25519 (byte* data, char* out, printf("Failed to import private key.\nRET: %d\n", ret); return ret; } - + /* setting up output buffer based on key size */ byte outBuf[ED25519_SIG_SIZE]; XMEMSET(&outBuf, 0, sizeof(outBuf)); @@ -271,7 +271,7 @@ int wolfCLU_sign_data_ed25519 (byte* data, char* out, fwrite(outBuf, 1, sizeof(outBuf), s); fclose(s); } - + return ret; #else return NOT_COMPILED_IN; diff --git a/wolfCLU/clu_src/sign-verify/clu_sign_verify_setup.c b/wolfCLU/clu_src/sign-verify/clu_sign_verify_setup.c index 9baa5823..e6ad3856 100644 --- a/wolfCLU/clu_src/sign-verify/clu_sign_verify_setup.c +++ b/wolfCLU/clu_src/sign-verify/clu_sign_verify_setup.c @@ -25,22 +25,22 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) { - int ret = 0; /* return variable, counter */ - int i = 0; /* loop variable */ + int ret = 0; /* return variable, counter */ + int i = 0; /* loop variable */ char* in; /* input variable */ char* out; /* output variable */ char* priv; /* private key variable */ char* sig; char* alg; /* algorithm being used */ - int algCheck= -1; /* acceptable algorithm check */ - int inCheck = 0; /* input check */ - int privCheck = 0; /* private key check */ - int signCheck = 0; + int algCheck = -1; /* acceptable algorithm check */ + int inCheck = 0; /* input check */ + int privCheck = 0; /* private key check */ + int signCheck = 0; int verifyCheck = 0; - int pubInCheck = 0; - int sigCheck = 0; - + int pubInCheck = 0; + int sigCheck = 0; + if (wolfCLU_checkForArg("-rsa", 4, argc, argv) > 0) { algCheck = RSA_SIG_VER; } else if (wolfCLU_checkForArg("-ed25519", 8, argc, argv) > 0) { @@ -50,19 +50,19 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) } else { return FATAL_ERROR; } - + ret = wolfCLU_checkForArg("-sign", 5, argc, argv); if (ret > 0) { /* output file */ signCheck = 1; } - + ret = wolfCLU_checkForArg("-verify", 7, argc, argv); if (ret > 0) { /* output file */ verifyCheck = 1; } - + /* help checking */ ret = wolfCLU_checkForArg("-help", 5, argc, argv); if (ret > 0) { @@ -81,7 +81,7 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) ret = wolfCLU_checkForArg("-inkey", 6, argc, argv); if (ret > 0) { - priv = XMALLOC(strlen(argv[ret+1]), HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); + priv = XMALLOC(XSTRLEN(argv[ret+1]) + 1, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); if (priv == NULL) { return MEMORY_E; } else if (access(argv[ret+1], F_OK) == -1) { @@ -91,7 +91,7 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) XSTRNCPY(priv, &argv[ret+1][0], XSTRLEN(argv[ret+1])); priv[XSTRLEN(argv[ret+1])] = '\0'; - privCheck = 1; + privCheck = 1; } else { printf("Please specify an -inkey option when " @@ -100,17 +100,18 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) wolfCLU_verifyHelp(algCheck); return ret; } - + ret = wolfCLU_checkForArg("-pubin", 6, argc, argv); if (ret > 0) { /* output file */ pubInCheck = 1; } - + ret = wolfCLU_checkForArg("-in", 3, argc, argv); if (ret > 0) { /* input file/text */ - in = XMALLOC(strlen(argv[ret+1]), HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); + in = XMALLOC(XSTRLEN(argv[ret+1]) + 1, HEAP_HINT, + DYNAMIC_TYPE_TMP_BUFFER); if (in == NULL) { return MEMORY_E; } else if (access(argv[ret+1], F_OK) == -1) { @@ -122,10 +123,11 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) in[XSTRLEN(argv[ret+1])] = '\0'; inCheck = 1; } - + ret = wolfCLU_checkForArg("-sigfile", 8, argc, argv); if (ret > 0) { - sig = XMALLOC(strlen(argv[ret+1]), HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); + sig = XMALLOC(strlen(argv[ret+1]) + 1, HEAP_HINT, + DYNAMIC_TYPE_TMP_BUFFER); if (sig == NULL) { return MEMORY_E; } else if (access(argv[ret+1], F_OK) == -1) { @@ -142,7 +144,7 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) wolfCLU_verifyHelp(algCheck); return ret; } - + ret = wolfCLU_checkForArg("-out", 4, argc, argv); if (ret > 0) { /* output file */ @@ -175,19 +177,19 @@ int wolfCLU_sign_verify_setup(int argc, char** argv) return FATAL_ERROR; } } - + if (signCheck == 1) { ret = wolfCLU_sign_data(in, out, priv, algCheck); } else if (verifyCheck == 1) { - + ret = wolfCLU_verify_signature(sig, in, out, priv, algCheck, pubInCheck); - + if(ret >= 0) { return 0; } } - + XFREE(in, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); return ret; diff --git a/wolfCLU/clu_src/sign-verify/clu_verify.c b/wolfCLU/clu_src/sign-verify/clu_verify.c index f7aa29bc..8d22849c 100644 --- a/wolfCLU/clu_src/sign-verify/clu_verify.c +++ b/wolfCLU/clu_src/sign-verify/clu_verify.c @@ -26,7 +26,8 @@ #include #include "clu_include/clu_header_main.h" -byte* wolfCLU_generate_public_key_rsa(char* privKey, byte* outBuf, int* outBufSz) { +byte* wolfCLU_generate_public_key_rsa(char* privKey, byte* outBuf, + int* outBufSz) { #ifndef NO_RSA int ret; int privFileSz; @@ -35,17 +36,17 @@ byte* wolfCLU_generate_public_key_rsa(char* privKey, byte* outBuf, int* outBufSz RsaKey key; WC_RNG rng; byte* keyBuf; - + XMEMSET(&rng, 0, sizeof(rng)); XMEMSET(&key, 0, sizeof(key)); - + ret = wc_InitRsaKey(&key, NULL); if (ret != 0) { printf("Failed to initialize RsaKey.\nRet: %d", ret); *outBufSz = ret; return outBuf; } - + /* read in and store private key */ @@ -56,7 +57,7 @@ byte* wolfCLU_generate_public_key_rsa(char* privKey, byte* outBuf, int* outBufSz fseek(privKeyFile, 0, SEEK_SET); fread(keyBuf, 1, privFileSz, privKeyFile); fclose(privKeyFile); - + /* retrieving private key and storing in the RsaKey */ ret = wc_RsaPrivateKeyDecode(keyBuf, &index, &key, privFileSz); if (ret < 0 ) { @@ -64,17 +65,18 @@ byte* wolfCLU_generate_public_key_rsa(char* privKey, byte* outBuf, int* outBufSz *outBufSz = ret; return outBuf; } - + /* set output buffer to twice the private key size to ensure enough space */ *outBufSz = 2*wc_RsaEncryptSize(&key); - + /* setting up output buffer based on privateKeyFile size */ outBuf = malloc(*outBufSz); XMEMSET(outBuf, 0, *outBufSz); - + ret = wc_RsaKeyToPublicDer(&key, outBuf, *outBufSz); if (ret < 0) { - printf("Failed to create RSA public key.\nBuf size: %d\nRET: %d\n", *outBufSz, ret); + printf("Failed to create RSA public key.\nBuf size: %d\nRET: %d\n", + *outBufSz, ret); *outBufSz = ret; return outBuf; } @@ -92,34 +94,34 @@ int wolfCLU_generate_public_key_ed25519(char* privKey, byte* outBuf) { FILE* privKeyFile; ed25519_key key; byte privBuf[ED25519_SIG_SIZE]; - + XMEMSET(&key, 0, sizeof(key)); XMEMSET(privBuf, 0, ED25519_SIG_SIZE); - + ret = wc_ed25519_init(&key); if (ret != 0) { printf("Failed to initialize ED25519.\nRet: %d", ret); return ret; } - + /* read in and store private key */ privKeyFile = fopen(privKey, "rb"); fread(privBuf, 1, ED25519_SIG_SIZE, privKeyFile); fclose(privKeyFile); - + /* retrieving private key and storing in the ED25519 */ - ret = wc_ed25519_import_private_key(privBuf, + ret = wc_ed25519_import_private_key(privBuf, ED25519_KEY_SIZE, - privBuf + ED25519_KEY_SIZE, + privBuf + ED25519_KEY_SIZE, ED25519_KEY_SIZE, &key); if (ret < 0 ) { printf("Failed to decode private key.\nRET: %d\n", ret); return ret; } - + /* retrive public key from private */ ret = wc_ed25519_export_public(&key, outBuf, &outLen); if (ret != 0) { @@ -132,18 +134,18 @@ int wolfCLU_generate_public_key_ed25519(char* privKey, byte* outBuf) { #endif } -int wolfCLU_verify_signature(char* sig, char* hash, +int wolfCLU_verify_signature(char* sig, char* hash, char* out, char* keyPath, int keyType, int pubIn) { int hSz; int fSz; int ret; - + FILE* h; FILE* f = fopen(sig,"rb"); - + byte* h_mssg; - + fseek(f, 0, SEEK_END); fSz = ftell(f); @@ -156,10 +158,10 @@ int wolfCLU_verify_signature(char* sig, char* hash, case RSA_SIG_VER: ret = wolfCLU_verify_signature_rsa(data, out, fSz, keyPath, pubIn); break; - + case ECC_SIG_VER: h = fopen(hash,"rb"); - + fseek(h, 0, SEEK_END); hSz = ftell(h); @@ -168,12 +170,13 @@ int wolfCLU_verify_signature(char* sig, char* hash, fseek(h, 0, SEEK_SET); fread(h_mssg, 1, hSz, h); fclose(h); - ret = wolfCLU_verify_signature_ecc(data, fSz, h_mssg, hSz, keyPath, pubIn); + ret = wolfCLU_verify_signature_ecc(data, fSz, h_mssg, hSz, keyPath, + pubIn); break; - + case ED25519_SIG_VER: h = fopen(hash,"rb"); - + fseek(h, 0, SEEK_END); hSz = ftell(h); @@ -182,9 +185,10 @@ int wolfCLU_verify_signature(char* sig, char* hash, fseek(h, 0, SEEK_SET); fread(h_mssg, 1, hSz, h); fclose(h); - ret = wolfCLU_verify_signature_ed25519(data, fSz, h_mssg, hSz, keyPath, pubIn); + ret = wolfCLU_verify_signature_ed25519(data, fSz, h_mssg, hSz, + keyPath, pubIn); break; - + default: printf("No valid verify algorithm selected.\n"); ret = -1; @@ -192,9 +196,10 @@ int wolfCLU_verify_signature(char* sig, char* hash, return ret; } -int wolfCLU_verify_signature_rsa(byte* sig, char* out, int sigSz, char* keyPath, int pubIn) { +int wolfCLU_verify_signature_rsa(byte* sig, char* out, int sigSz, char* keyPath, + int pubIn) { -#ifndef NO_RSA +#ifndef NO_RSA int ret; int keyFileSz; word32 index = 0; @@ -202,18 +207,18 @@ int wolfCLU_verify_signature_rsa(byte* sig, char* out, int sigSz, char* keyPath, RsaKey key; WC_RNG rng; byte* keyBuf; - + XMEMSET(&rng, 0, sizeof(rng)); XMEMSET(&key, 0, sizeof(key)); - + ret = wc_InitRsaKey(&key, NULL); if (ret != 0) { printf("Failed to initialize RsaKey.\nRet: %d", ret); return ret; } - + if (pubIn == 1) { - + /* read in and store rsa key */ keyPathFile = fopen(keyPath, "rb"); fseek(keyPathFile, 0, SEEK_END); @@ -229,18 +234,18 @@ int wolfCLU_verify_signature_rsa(byte* sig, char* out, int sigSz, char* keyPath, return ret; } } - + /* retrieving public key and storing in the RsaKey */ ret = wc_RsaPublicKeyDecode(keyBuf, &index, &key, keyFileSz); if (ret < 0 ) { printf("Failed to decode public key.\nRET: %d\n", ret); return ret; } - + /* setting up output buffer based on key size */ byte outBuf[wc_RsaEncryptSize(&key)]; XMEMSET(&outBuf, 0, sizeof(outBuf)); - + ret = wc_RsaSSL_Verify(sig, sigSz, outBuf, sizeof(outBuf), &key); if (ret < 0) { printf("Failed to verify data with RSA public key.\nRET: %d\n", ret); @@ -250,14 +255,14 @@ int wolfCLU_verify_signature_rsa(byte* sig, char* out, int sigSz, char* keyPath, FILE* s = fopen(out, "wb"); fwrite(outBuf, 1, sizeof(outBuf), s); } - + return ret; #else return NOT_COMPILED_IN; #endif } -int wolfCLU_verify_signature_ecc(byte* sig, int sigSz, byte* hash, int hashSz, +int wolfCLU_verify_signature_ecc(byte* sig, int sigSz, byte* hash, int hashSz, char* keyPath, int pubIn) { #ifdef HAVE_ECC @@ -265,21 +270,21 @@ int wolfCLU_verify_signature_ecc(byte* sig, int sigSz, byte* hash, int hashSz, int keyFileSz; int stat = 0; word32 index = 0; - + FILE* keyPathFile; ecc_key key; WC_RNG rng; byte* keyBuf; - + XMEMSET(&rng, 0, sizeof(rng)); XMEMSET(&key, 0, sizeof(key)); - + ret = wc_ecc_init(&key); if (ret != 0) { printf("Failed to initialize ecc key.\nRet: %d", ret); return ret; } - + /* read in and store ecc key */ keyPathFile = fopen(keyPath, "rb"); fseek(keyPathFile, 0, SEEK_END); @@ -288,13 +293,14 @@ int wolfCLU_verify_signature_ecc(byte* sig, int sigSz, byte* hash, int hashSz, fseek(keyPathFile, 0, SEEK_SET); fread(keyBuf, 1, keyFileSz, keyPathFile); fclose(keyPathFile); + if (pubIn == 1) { /* retrieving public key and storing in the ecc key */ ret = wc_EccPublicKeyDecode(keyBuf, &index, &key, keyFileSz); if (ret < 0 ) { printf("Failed to decode public key.\nRET: %d\n", ret); return ret; - } + } } else { /* retrieving private key and storing in the Ecc Key */ ret = wc_EccPrivateKeyDecode(keyBuf, &index, &key, keyFileSz); @@ -303,7 +309,7 @@ int wolfCLU_verify_signature_ecc(byte* sig, int sigSz, byte* hash, int hashSz, return ret; } } - + ret = wc_ecc_verify_hash(sig, sigSz, hash, hashSz, &stat, &key); if (ret < 0) { printf("Failed to verify data with Ecc public key.\nRET: %d\n", ret); @@ -313,51 +319,51 @@ int wolfCLU_verify_signature_ecc(byte* sig, int sigSz, byte* hash, int hashSz, } else { printf("Invalid Signature.\n"); } - + return ret; #else return NOT_COMPILED_IN; #endif } -int wolfCLU_verify_signature_ed25519(byte* sig, int sigSz, +int wolfCLU_verify_signature_ed25519(byte* sig, int sigSz, byte* hash, int hashSz, char* keyPath, int pubIn) { - + #ifdef HAVE_ED25519 int ret; int keyFileSz; int stat = 0; - + FILE* keyPathFile; ed25519_key key; byte* keyBuf = malloc(ED25519_KEY_SIZE); XMEMSET(&key, 0, sizeof(key)); - XMEMSET(keyBuf, 0, ED25519_KEY_SIZE); - + XMEMSET(keyBuf, 0, ED25519_KEY_SIZE); + ret = wc_ed25519_init(&key); if (ret != 0) { printf("Failed to initialize ED25519 key.\nRet: %d", ret); return ret; } - + /* retrieving public key and storing in the ED25519 key */ if (pubIn == 1) { - + /* read in and store ED25519 key */ keyPathFile = fopen(keyPath, "rb"); fread(keyBuf, 1, ED25519_KEY_SIZE, keyPathFile); fclose(keyPathFile); - + } else { - + ret = wolfCLU_generate_public_key_ed25519(keyPath, keyBuf); if (ret != 0) { printf("Failed to derive public key from private key.\n"); return ret; } } - + ret = wc_ed25519_import_public(keyBuf, ED25519_KEY_SIZE, &key); if (ret != 0 ) { printf("Failed to decode public key.\nRET: %d\n", ret); diff --git a/wolfCLU/clu_src/tools/clu_funcs.c b/wolfCLU/clu_src/tools/clu_funcs.c index 8c600fa0..e5939f0a 100644 --- a/wolfCLU/clu_src/tools/clu_funcs.c +++ b/wolfCLU/clu_src/tools/clu_funcs.c @@ -714,7 +714,7 @@ int wolfCLU_checkForArg(char* searchTerm, int length, int argc, char** argv) return 1; } else if (XSTRNCMP(argv[i], searchTerm, length) == 0 && - XSTRNCMP(argv[i], searchTerm, XSTRLEN(argv[i])) == 0) { + XSTRLEN(argv[i]) == length) { ret = i; if (argFound == 1) {