Skip to content

Commit

Permalink
Add procedures for AES encryption/decryption (#41)
Browse files Browse the repository at this point in the history
  • Loading branch information
chpock authored Jul 8, 2024
1 parent 75b7ca7 commit b4c2dc1
Show file tree
Hide file tree
Showing 13 changed files with 2,058 additions and 175 deletions.
3 changes: 3 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
2024-07-08 Konstantin Kushnir <[email protected]>
* Add procedures for AES encryption/decryption

2024-07-07 Konstantin Kushnir <[email protected]>
* Add basic cryptographic functions
* Add 1 test case for threads
Expand Down
270 changes: 136 additions & 134 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -8748,140 +8748,6 @@ fi



if test ${USECCRYPT} = yes; then
printf "%s\n" "#define COOKFS_USECRYPT 1" >>confdefs.h

printf "%s\n" "#define COOKFS_USECCRYPT 1" >>confdefs.h

COOKFS_PKGCONFIG_USECCRYPT=1
COOKFS_PKGCONFIG_FEATURE_CRYPT=1

vars="crypt.c cryptCmd.c"
for i in $vars; do
case $i in
\$*)
# allow $-var names
PKG_SOURCES="$PKG_SOURCES $i"
PKG_OBJECTS="$PKG_OBJECTS $i"
;;
*)
# check for existence - allows for generic/win/unix VPATH
# To add more dirs here (like 'src'), you have to update VPATH
# in Makefile.in as well
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
-a ! -f "${srcdir}/macosx/$i" \
; then
as_fn_error $? "could not find source file '$i'" "$LINENO" 5
fi
PKG_SOURCES="$PKG_SOURCES $i"
# this assumes it is in a VPATH dir
i=`basename $i`
# handle user calling this before or after TEA_SETUP_COMPILER
if test x"${OBJEXT}" != x ; then
j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
else
j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
fi
PKG_OBJECTS="$PKG_OBJECTS $j"
;;
esac
done




vars="7zip/C/Aes.c 7zip/C/AesOpt.c 7zip/C/Sha256.c 7zip/C/Sha256Opt.c"
for i in $vars; do
case $i in
\$*)
# allow $-var names
PKG_SOURCES="$PKG_SOURCES $i"
PKG_OBJECTS="$PKG_OBJECTS $i"
;;
*)
# check for existence - allows for generic/win/unix VPATH
# To add more dirs here (like 'src'), you have to update VPATH
# in Makefile.in as well
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
-a ! -f "${srcdir}/macosx/$i" \
; then
as_fn_error $? "could not find source file '$i'" "$LINENO" 5
fi
PKG_SOURCES="$PKG_SOURCES $i"
# this assumes it is in a VPATH dir
i=`basename $i`
# handle user calling this before or after TEA_SETUP_COMPILER
if test x"${OBJEXT}" != x ; then
j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
else
j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
fi
PKG_OBJECTS="$PKG_OBJECTS $j"
;;
esac
done



if test "${TEA_PLATFORM}" = "windows" ; then

vars="-lbcrypt"
for i in $vars; do
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
# Convert foo.lib to -lfoo for GCC. No-op if not *.lib
i=`echo "$i" | sed -e 's/^\([^-].*\)\.[lL][iI][bB]$/-l\1/'`
fi
PKG_LIBS="$PKG_LIBS $i"
done


fi
# Include CpuArch.c only if we are not using c-lzma. Otherwise, this file
# will be included when processing the lzma option.
if test ${USECPAGES} != yes || test ${USELZMA} != yes; then

vars="7zip/C/CpuArch.c"
for i in $vars; do
case $i in
\$*)
# allow $-var names
PKG_SOURCES="$PKG_SOURCES $i"
PKG_OBJECTS="$PKG_OBJECTS $i"
;;
*)
# check for existence - allows for generic/win/unix VPATH
# To add more dirs here (like 'src'), you have to update VPATH
# in Makefile.in as well
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
-a ! -f "${srcdir}/macosx/$i" \
; then
as_fn_error $? "could not find source file '$i'" "$LINENO" 5
fi
PKG_SOURCES="$PKG_SOURCES $i"
# this assumes it is in a VPATH dir
i=`basename $i`
# handle user calling this before or after TEA_SETUP_COMPILER
if test x"${OBJEXT}" != x ; then
j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
else
j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
fi
PKG_OBJECTS="$PKG_OBJECTS $j"
;;
esac
done



fi
else
COOKFS_PKGCONFIG_USECCRYPT=0
COOKFS_PKGCONFIG_FEATURE_CRYPT=0
fi

if test ${USECPAGES} = yes; then
printf "%s\n" "#define COOKFS_USECPAGES 1" >>confdefs.h

Expand Down Expand Up @@ -9543,6 +9409,142 @@ else
USECWRITERCHAN="no"
# c-writer requires c-pages
USECWRITER="no"
# c-crypt requires c-pages
USECCRYPT="no"
fi

if test ${USECCRYPT} = yes; then
printf "%s\n" "#define COOKFS_USECRYPT 1" >>confdefs.h

printf "%s\n" "#define COOKFS_USECCRYPT 1" >>confdefs.h

COOKFS_PKGCONFIG_USECCRYPT=1
COOKFS_PKGCONFIG_FEATURE_CRYPT=1

vars="crypt.c cryptCmd.c"
for i in $vars; do
case $i in
\$*)
# allow $-var names
PKG_SOURCES="$PKG_SOURCES $i"
PKG_OBJECTS="$PKG_OBJECTS $i"
;;
*)
# check for existence - allows for generic/win/unix VPATH
# To add more dirs here (like 'src'), you have to update VPATH
# in Makefile.in as well
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
-a ! -f "${srcdir}/macosx/$i" \
; then
as_fn_error $? "could not find source file '$i'" "$LINENO" 5
fi
PKG_SOURCES="$PKG_SOURCES $i"
# this assumes it is in a VPATH dir
i=`basename $i`
# handle user calling this before or after TEA_SETUP_COMPILER
if test x"${OBJEXT}" != x ; then
j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
else
j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
fi
PKG_OBJECTS="$PKG_OBJECTS $j"
;;
esac
done




vars="7zip/C/Aes.c 7zip/C/AesOpt.c 7zip/C/Sha256.c 7zip/C/Sha256Opt.c"
for i in $vars; do
case $i in
\$*)
# allow $-var names
PKG_SOURCES="$PKG_SOURCES $i"
PKG_OBJECTS="$PKG_OBJECTS $i"
;;
*)
# check for existence - allows for generic/win/unix VPATH
# To add more dirs here (like 'src'), you have to update VPATH
# in Makefile.in as well
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
-a ! -f "${srcdir}/macosx/$i" \
; then
as_fn_error $? "could not find source file '$i'" "$LINENO" 5
fi
PKG_SOURCES="$PKG_SOURCES $i"
# this assumes it is in a VPATH dir
i=`basename $i`
# handle user calling this before or after TEA_SETUP_COMPILER
if test x"${OBJEXT}" != x ; then
j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
else
j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
fi
PKG_OBJECTS="$PKG_OBJECTS $j"
;;
esac
done



if test "${TEA_PLATFORM}" = "windows" ; then

vars="-lbcrypt"
for i in $vars; do
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
# Convert foo.lib to -lfoo for GCC. No-op if not *.lib
i=`echo "$i" | sed -e 's/^\([^-].*\)\.[lL][iI][bB]$/-l\1/'`
fi
PKG_LIBS="$PKG_LIBS $i"
done


fi
# Include CpuArch.c only if we are not using c-lzma. Otherwise, this file
# will be included when processing the lzma option.
if test ${USELZMA} != yes; then

vars="7zip/C/CpuArch.c"
for i in $vars; do
case $i in
\$*)
# allow $-var names
PKG_SOURCES="$PKG_SOURCES $i"
PKG_OBJECTS="$PKG_OBJECTS $i"
;;
*)
# check for existence - allows for generic/win/unix VPATH
# To add more dirs here (like 'src'), you have to update VPATH
# in Makefile.in as well
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
-a ! -f "${srcdir}/macosx/$i" \
; then
as_fn_error $? "could not find source file '$i'" "$LINENO" 5
fi
PKG_SOURCES="$PKG_SOURCES $i"
# this assumes it is in a VPATH dir
i=`basename $i`
# handle user calling this before or after TEA_SETUP_COMPILER
if test x"${OBJEXT}" != x ; then
j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}"
else
j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}"
fi
PKG_OBJECTS="$PKG_OBJECTS $j"
;;
esac
done



fi
else
COOKFS_PKGCONFIG_USECCRYPT=0
COOKFS_PKGCONFIG_FEATURE_CRYPT=0
fi

if test ${USECFSINDEX} = yes; then
Expand Down
42 changes: 22 additions & 20 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -139,26 +139,6 @@ TEA_ADD_TCL_SOURCES([scripts/pages.tcl])
TEA_ADD_TCL_SOURCES([scripts/readerchannel.tcl])
TEA_ADD_TCL_SOURCES([scripts/fsindex.tcl])

if test ${USECCRYPT} = yes; then
AC_DEFINE(COOKFS_USECRYPT)
AC_DEFINE(COOKFS_USECCRYPT)
COOKFS_PKGCONFIG_USECCRYPT=1
COOKFS_PKGCONFIG_FEATURE_CRYPT=1
TEA_ADD_SOURCES([crypt.c cryptCmd.c])
TEA_ADD_SOURCES([7zip/C/Aes.c 7zip/C/AesOpt.c 7zip/C/Sha256.c 7zip/C/Sha256Opt.c])
if test "${TEA_PLATFORM}" = "windows" ; then
TEA_ADD_LIBS([-lbcrypt])
fi
# Include CpuArch.c only if we are not using c-lzma. Otherwise, this file
# will be included when processing the lzma option.
if test ${USECPAGES} != yes || test ${USELZMA} != yes; then
TEA_ADD_SOURCES([7zip/C/CpuArch.c])
fi
else
COOKFS_PKGCONFIG_USECCRYPT=0
COOKFS_PKGCONFIG_FEATURE_CRYPT=0
fi

if test ${USECPAGES} = yes; then
AC_DEFINE(COOKFS_USECPAGES)
COOKFS_PKGCONFIG_USECPAGES=1
Expand Down Expand Up @@ -318,6 +298,28 @@ else
USECWRITERCHAN="no"
# c-writer requires c-pages
USECWRITER="no"
# c-crypt requires c-pages
USECCRYPT="no"
fi

if test ${USECCRYPT} = yes; then
AC_DEFINE(COOKFS_USECRYPT)
AC_DEFINE(COOKFS_USECCRYPT)
COOKFS_PKGCONFIG_USECCRYPT=1
COOKFS_PKGCONFIG_FEATURE_CRYPT=1
TEA_ADD_SOURCES([crypt.c cryptCmd.c])
TEA_ADD_SOURCES([7zip/C/Aes.c 7zip/C/AesOpt.c 7zip/C/Sha256.c 7zip/C/Sha256Opt.c])
if test "${TEA_PLATFORM}" = "windows" ; then
TEA_ADD_LIBS([-lbcrypt])
fi
# Include CpuArch.c only if we are not using c-lzma. Otherwise, this file
# will be included when processing the lzma option.
if test ${USELZMA} != yes; then
TEA_ADD_SOURCES([7zip/C/CpuArch.c])
fi
else
COOKFS_PKGCONFIG_USECCRYPT=0
COOKFS_PKGCONFIG_FEATURE_CRYPT=0
fi

if test ${USECFSINDEX} = yes; then
Expand Down
Loading

0 comments on commit b4c2dc1

Please sign in to comment.