diff --git a/.ci/build.sh b/.ci/build.sh index 7e27d32..50e675e 100755 --- a/.ci/build.sh +++ b/.ci/build.sh @@ -62,13 +62,13 @@ if [ "$ARCH" == "i386" ] then make CC=i686-w64-mingw32-cc PEGH_LIBSODIUM_WIN="${STATIC_LIB_DIR}/libsodium-win32" clean all -mv pegh.exe pegh-i386-libsodium.exe +mv pegh.exe pegh-windows-i386-libsodium.exe make CC=i686-w64-mingw32-cc PEGH_OPENSSL_WIN="${STATIC_LIB_DIR}/openssl-1.1.1d-win32-mingw" clean all -mv pegh.exe pegh-i386-openssl.exe +mv pegh.exe pegh-windows-i386-openssl.exe make CC=i686-w64-mingw32-cc PEGH_OPENSSL_WIN="${STATIC_LIB_DIR}/openssl-1.1.1d-win32-mingw" PEGH_LIBSODIUM_WIN="${STATIC_LIB_DIR}/libsodium-win32" clean all -mv pegh.exe pegh-i386-libsodium-openssl.exe +mv pegh.exe pegh-windows-i386-libsodium-openssl.exe fi @@ -80,13 +80,13 @@ then export wine="wine64" make CC=x86_64-w64-mingw32-cc PEGH_LIBSODIUM_WIN="${STATIC_LIB_DIR}/libsodium-win64" clean all -mv pegh.exe pegh-amd64-libsodium.exe +mv pegh.exe pegh-windows-amd64-libsodium.exe make CC=x86_64-w64-mingw32-cc PEGH_OPENSSL_WIN="${STATIC_LIB_DIR}/openssl-1.1.1d-win64-mingw" clean all -mv pegh.exe pegh-amd64-openssl.exe +mv pegh.exe pegh-windows-amd64-openssl.exe make CC=x86_64-w64-mingw32-cc PEGH_OPENSSL_WIN="${STATIC_LIB_DIR}/openssl-1.1.1d-win64-mingw" PEGH_LIBSODIUM_WIN="${STATIC_LIB_DIR}/libsodium-win64" clean all -mv pegh.exe pegh-amd64-libsodium-openssl.exe +mv pegh.exe pegh-windows-amd64-libsodium-openssl.exe fi diff --git a/.ci/docker_build.sh b/.ci/docker_build.sh index 9bc2d0a..b73fdef 100755 --- a/.ci/docker_build.sh +++ b/.ci/docker_build.sh @@ -12,12 +12,17 @@ cp * .ci/build.sh "$BUILD_DIR" docker run --rm -v "$BUILD_DIR":/tmp "$DOCKER_IMAGE" /tmp/build.sh "$ARCH" || exit 1 -mv "$BUILD_DIR"pegh.static.openssl "./pegh-$ARCH-openssl" -mv "$BUILD_DIR"pegh.static.libsodium "./pegh-$ARCH-libsodium" -mv "$BUILD_DIR"pegh.static.libsodium-openssl "./pegh-$ARCH-libsodium-openssl" +mv "$BUILD_DIR"pegh.static.openssl "./pegh-linux-$ARCH-openssl" +mv "$BUILD_DIR"pegh.static.libsodium "./pegh-linux-$ARCH-libsodium" +mv "$BUILD_DIR"pegh.static.libsodium-openssl "./pegh-linux-$ARCH-libsodium-openssl" mv "$BUILD_DIR"pegh-*.exe ./ +git archive HEAD -9 --format zip -o pegh-source.zip +git archive HEAD -9 --format tar.gz -o pegh-source.tar.gz + +sha256sum pegh-* > pegh-sha256sum.txt + rm -rf "$BUILD_DIR" 2>/dev/null exit 0 diff --git a/README.md b/README.md index af9f6a3..bb12861 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ pegh is a file encryption tool using passwords with modern, standardized, and au [pegh](http://klingonska.org/dict/?q=tlh%3Apegh) is Klingon for secret -This implementation is built in C and can link with OpenSSL, libsodium, *or* libsodium AND OpenSSL in which case it falls back to OpenSSL's software AES implementation if the CPU does not support libsodium's. Every commit is built and tested in every combination and currently on 3 different architectures on Linux. The code aims to be fully portable C that should compile on anything with a C89 compiler (depending on crypto backend chosen). +This implementation is built in C and can link with OpenSSL, libsodium, *or* libsodium AND OpenSSL in which case it falls back to OpenSSL's software AES implementation if the CPU does not support libsodium's. Every commit is built and tested in every combination and currently on 3 different architectures on Linux and 2 on Windows. The code aims to be fully portable C that should compile on anything with a C89 compiler (depending on crypto backend chosen). Releases -------- @@ -18,11 +18,11 @@ Releases * Windows amd64, i386 * more to come? -what do the names mean? +what do the names mean? where `$OS` is your Operating System and `$ARCH` is your CPU architecture: - * `pegh-$ARCH-openssl` - supports AES-256-GCM and Chacha20-Poly1305 on all CPUs - * `pegh-$ARCH-libsodium` - supports Chacha20-Poly1305 on all CPUs, but AES-256-GCM only on CPUs with hardware support for aes-ni - * `pegh-$ARCH-libsodium-openssl` - supports AES-256-GCM and Chacha20-Poly1305 on all CPUs, uses libsodium for everything if possible, but OpenSSL's software AES implementation if the CPU does not support aes-ni + * `pegh-$OS-$ARCH-openssl` - supports AES-256-GCM and Chacha20-Poly1305 on all CPUs + * `pegh-$OS-$ARCH-libsodium` - supports Chacha20-Poly1305 on all CPUs, but AES-256-GCM only on CPUs with hardware support for aes-ni + * `pegh-$OS-$ARCH-libsodium-openssl` - supports AES-256-GCM and Chacha20-Poly1305 on all CPUs, uses libsodium for everything if possible, but OpenSSL's software AES implementation if the CPU does not support aes-ni Usage ----- diff --git a/pegh.c b/pegh.c index ca760c2..9cb75ba 100644 --- a/pegh.c +++ b/pegh.c @@ -115,7 +115,7 @@ const size_t MANUAL_ENTRY_PASSWORD_MAX_LEN = 66; /* don't touch below here unless you know what you are doing */ -#define PEGH_VERSION "1.0.0" +#define PEGH_VERSION "0.9.3" /* 256 bit key required for AES-256 */ #define KEY_LEN 32