Fix Makefile
This commit is contained in:
parent
f4d68fdb9e
commit
87b6b80ff9
@ -9,7 +9,7 @@ cd "$(dirname "$0")"
|
|||||||
apk add build-base clang bash libsodium-dev libsodium-static libressl-dev
|
apk add build-base clang bash libsodium-dev libsodium-static libressl-dev
|
||||||
|
|
||||||
# first build for libressl, which doesn't have "EVP_PBE_scrypt" so can only be compiled with libsodium
|
# first build for libressl, which doesn't have "EVP_PBE_scrypt" so can only be compiled with libsodium
|
||||||
make clean all PEGH_LIBSODIUM=1 PEGH_OPENSSL=1 CC=clang LDFLAGS="-static -lcrypto" || clang pegh.c -DPEGH_LIBSODIUM -DPEGH_OPENSSL -static -lsodium -lcrypto -O3 -o pegh
|
make clean all PEGH_LIBSODIUM=1 PEGH_OPENSSL=1 CC=clang LDFLAGS="-static"
|
||||||
mv pegh pegh.static.libsodium-libressl
|
mv pegh pegh.static.libsodium-libressl
|
||||||
|
|
||||||
# now remove libressl and install openssl
|
# now remove libressl and install openssl
|
||||||
@ -17,11 +17,11 @@ apk del libressl-dev
|
|||||||
apk add openssl-dev openssl-libs-static
|
apk add openssl-dev openssl-libs-static
|
||||||
|
|
||||||
# gcc is apparantly incapable of building a static binary, even gcc -static helloworld.c ends up linked to libc, instead of solving, use clang
|
# gcc is apparantly incapable of building a static binary, even gcc -static helloworld.c ends up linked to libc, instead of solving, use clang
|
||||||
make clean all PEGH_LIBSODIUM=1 CC=clang LDFLAGS="-static -lsodium" || clang pegh.c -DPEGH_LIBSODIUM -static -lsodium -O3 -o pegh
|
make clean all PEGH_LIBSODIUM=1 CC=clang LDFLAGS="-static"
|
||||||
mv pegh pegh.static.libsodium
|
mv pegh pegh.static.libsodium
|
||||||
make clean all PEGH_OPENSSL=1 CC=clang LDFLAGS="-static -lcrypto" || clang pegh.c -DPEGH_OPENSSL -static -lcrypto -O3 -o pegh
|
make clean all PEGH_OPENSSL=1 CC=clang LDFLAGS="-static"
|
||||||
mv pegh pegh.static.openssl
|
mv pegh pegh.static.openssl
|
||||||
make clean all PEGH_LIBSODIUM=1 PEGH_OPENSSL=1 CC=clang LDFLAGS="-static -lcrypto" || clang pegh.c -DPEGH_LIBSODIUM -DPEGH_OPENSSL -static -lsodium -lcrypto -O3 -o pegh
|
make clean all PEGH_LIBSODIUM=1 PEGH_OPENSSL=1 CC=clang LDFLAGS="-static"
|
||||||
mv pegh pegh.static.libsodium-openssl
|
mv pegh pegh.static.libsodium-openssl
|
||||||
|
|
||||||
./pegh.static.libsodium-openssl -h
|
./pegh.static.libsodium-openssl -h
|
||||||
|
10
Makefile
10
Makefile
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
CFLAGS += -Wall -Wextra -Werror -std=c89 -pedantic \
|
CFLAGS += -Wall -Wextra -Werror -std=c89 -pedantic \
|
||||||
-Wstrict-prototypes -Wold-style-definition -Wconversion \
|
-Wstrict-prototypes -Wold-style-definition -Wconversion \
|
||||||
-Wno-missing-prototypes -Wno-missing-noreturn \
|
-Wno-missing-prototypes -Wno-missing-noreturn -Wno-format \
|
||||||
-O3
|
-O3
|
||||||
|
|
||||||
ifdef PEGH_OPENSSL
|
ifdef PEGH_OPENSSL
|
||||||
@ -13,22 +13,22 @@ ifdef PEGH_OPENSSL
|
|||||||
ifdef PEGH_LIBSODIUM
|
ifdef PEGH_LIBSODIUM
|
||||||
# both libsodium and openssl
|
# both libsodium and openssl
|
||||||
CFLAGS += -DPEGH_LIBSODIUM -DPEGH_OPENSSL
|
CFLAGS += -DPEGH_LIBSODIUM -DPEGH_OPENSSL
|
||||||
LDFLAGS += -lsodium -lcrypto
|
LDLIBS += -lsodium -lcrypto
|
||||||
else
|
else
|
||||||
# only openssl
|
# only openssl
|
||||||
CFLAGS += -DPEGH_OPENSSL
|
CFLAGS += -DPEGH_OPENSSL
|
||||||
LDFLAGS += -lcrypto
|
LDLIBS += -lcrypto
|
||||||
endif
|
endif
|
||||||
|
|
||||||
else
|
else
|
||||||
ifdef PEGH_LIBSODIUM
|
ifdef PEGH_LIBSODIUM
|
||||||
# only libsodium
|
# only libsodium
|
||||||
CFLAGS += -DPEGH_LIBSODIUM
|
CFLAGS += -DPEGH_LIBSODIUM
|
||||||
LDFLAGS += -lsodium
|
LDLIBS += -lsodium
|
||||||
else
|
else
|
||||||
# default of only openssl
|
# default of only openssl
|
||||||
CFLAGS += -DPEGH_OPENSSL
|
CFLAGS += -DPEGH_OPENSSL
|
||||||
LDFLAGS += -lcrypto
|
LDLIBS += -lcrypto
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
8
pegh.c
8
pegh.c
@ -515,10 +515,10 @@ int gcm_stream(const unsigned char *key, size_t buffer_size,
|
|||||||
if(buffer_size > CHUNK_SIZE_MAX) {
|
if(buffer_size > CHUNK_SIZE_MAX) {
|
||||||
if(NULL != err) {
|
if(NULL != err) {
|
||||||
#ifdef PEGH_OPENSSL
|
#ifdef PEGH_OPENSSL
|
||||||
fprintf(err, "due to openssl API limitation, buffer_size can at most be %ld\n", CHUNK_SIZE_MAX);
|
fprintf(err, "due to openssl API limitation, buffer_size can at most be %lu\n", CHUNK_SIZE_MAX);
|
||||||
#endif
|
#endif
|
||||||
#ifdef PEGH_LIBSODIUM
|
#ifdef PEGH_LIBSODIUM
|
||||||
fprintf(err, "due to AES-256-GCM security constraints, buffer_size can at most be %ld\n", CHUNK_SIZE_MAX);
|
fprintf(err, "due to AES-256-GCM security constraints, buffer_size can at most be %lu\n", CHUNK_SIZE_MAX);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -686,7 +686,7 @@ usage: pegh [options...] password\n\
|
|||||||
fprintf(stderr, "\
|
fprintf(stderr, "\
|
||||||
only allocated after scrypt is finished so max usage will be\n\
|
only allocated after scrypt is finished so max usage will be\n\
|
||||||
the highest of these only, not both combined,\n\
|
the highest of these only, not both combined,\n\
|
||||||
max: %ld, default: %d\n\
|
max: %lu, default: %d\n\
|
||||||
-m <max_mb> maximum megabytes of ram to use when deriving key from password\n\
|
-m <max_mb> maximum megabytes of ram to use when deriving key from password\n\
|
||||||
with scrypt, applies for encryption AND decryption, must\n\
|
with scrypt, applies for encryption AND decryption, must\n\
|
||||||
almost linearly scale with -N, if too low operation will fail,\n\
|
almost linearly scale with -N, if too low operation will fail,\n\
|
||||||
@ -823,7 +823,7 @@ int main(int argc, char **argv)
|
|||||||
case 'c':
|
case 'c':
|
||||||
buffer_size = parse_int_arg(++optind, argc, argv) * 1024 * 1024;
|
buffer_size = parse_int_arg(++optind, argc, argv) * 1024 * 1024;
|
||||||
if(buffer_size > CHUNK_SIZE_MAX) {
|
if(buffer_size > CHUNK_SIZE_MAX) {
|
||||||
fprintf(stderr, "Error: %s chunk size cannot exceed %ld megabytes\n", argv[optind - 1], CHUNK_SIZE_MAX / 1024 / 1024);
|
fprintf(stderr, "Error: %s chunk size cannot exceed %lu megabytes\n", argv[optind - 1], CHUNK_SIZE_MAX / 1024 / 1024);
|
||||||
return help(2);
|
return help(2);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
6
test.sh
6
test.sh
@ -18,15 +18,15 @@ set -euxo pipefail
|
|||||||
rm -f pegh
|
rm -f pegh
|
||||||
|
|
||||||
# compile against openssl
|
# compile against openssl
|
||||||
make PEGH_OPENSSL=1 || cc pegh.c -DPEGH_OPENSSL -lcrypto -O3 -o pegh
|
make PEGH_OPENSSL=1 || cc -O3 -DPEGH_OPENSSL pegh.c -lcrypto -o pegh
|
||||||
mv pegh pegh.openssl
|
mv pegh pegh.openssl
|
||||||
|
|
||||||
# compile against libsodium
|
# compile against libsodium
|
||||||
make PEGH_LIBSODIUM=1 || cc pegh.c -DPEGH_LIBSODIUM -lsodium -O3 -o pegh
|
make PEGH_LIBSODIUM=1 || cc -O3 -DPEGH_LIBSODIUM pegh.c -lsodium -o pegh
|
||||||
mv pegh pegh.libsodium
|
mv pegh pegh.libsodium
|
||||||
|
|
||||||
# compile against both libsodium and openssl as a fallback for CPUs libsodium doesn't support
|
# compile against both libsodium and openssl as a fallback for CPUs libsodium doesn't support
|
||||||
make PEGH_LIBSODIUM=1 PEGH_OPENSSL=1 || cc pegh.c -DPEGH_LIBSODIUM -DPEGH_OPENSSL -lsodium -lcrypto -O3 -o pegh
|
make PEGH_LIBSODIUM=1 PEGH_OPENSSL=1 || cc -O3 -DPEGH_LIBSODIUM -DPEGH_OPENSSL pegh.c -lsodium -lcrypto -o pegh
|
||||||
mv pegh pegh.libsodium-openssl
|
mv pegh pegh.libsodium-openssl
|
||||||
|
|
||||||
export key="$(< /dev/urandom tr -dc 'a-z0-9' | head -c12)"
|
export key="$(< /dev/urandom tr -dc 'a-z0-9' | head -c12)"
|
||||||
|
Loading…
Reference in New Issue
Block a user