Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Little silly changes ... #12

Merged
merged 4 commits into from
Jan 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 23 additions & 24 deletions encpass.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,22 @@ checks() {

if [ ! -x "$(command -v openssl)" ]; then
echo "Error: OpenSSL is not installed or not accessible in the current path." \
"Please install it and try again." >&2
"Please install it and try again." >&2
exit 1
fi

ENCPASS_HOME_DIR=$(get_abs_filename ~)/.encpass

if [ ! -d $ENCPASS_HOME_DIR ]; then
mkdir -m 700 $ENCPASS_HOME_DIR
mkdir -m 700 $ENCPASS_HOME_DIR/keys
mkdir -m 700 $ENCPASS_HOME_DIR/secrets
if [ ! -d "$ENCPASS_HOME_DIR" ]; then
mkdir -m 700 "$ENCPASS_HOME_DIR"
mkdir -m 700 "$ENCPASS_HOME_DIR/keys"
mkdir -m 700 "$ENCPASS_HOME_DIR/secrets"
fi

if [ ! -z $1 ] && [ ! -z $2 ]; then
if [ -n "$1" ] && [ -n "$2" ]; then
LABEL=$1
SECRET_NAME=$2
elif [ ! -z $1 ]; then
elif [ -n "$1" ]; then
LABEL=$(basename "$0")
SECRET_NAME=$1
else
Expand All @@ -60,12 +60,12 @@ checks() {
generate_private_key() {
KEY_DIR="$ENCPASS_HOME_DIR/keys/$LABEL"

if [ ! -d $KEY_DIR ]; then
mkdir -m 700 $KEY_DIR
if [ ! -d "$KEY_DIR" ]; then
mkdir -m 700 "$KEY_DIR"
fi

if [ ! -f $KEY_DIR/private.key ]; then
(umask 0377 && printf "%s" "$(openssl rand -hex 32)" > $KEY_DIR/private.key)
if [ ! -f "$KEY_DIR/private.key" ]; then
(umask 0377 && printf "%s" "$(openssl rand -hex 32)" >"$KEY_DIR/private.key")
fi
}

Expand All @@ -81,26 +81,26 @@ get_secret_abs_name() {
SECRET_ABS_NAME="$ENCPASS_HOME_DIR/secrets/$LABEL/$SECRET_NAME.enc"

if [ ! -f "$SECRET_ABS_NAME" ]; then
set_secret $1 $2
set_secret "$1" "$2"
fi
}

get_secret() {
checks $1 $2
checks "$1" "$2"
get_private_key_abs_name
get_secret_abs_name $1 $2
get_secret_abs_name "$1" "$2"

dd if=$SECRET_ABS_NAME ibs=1 skip=32 2> /dev/null | openssl enc -aes-256-cbc \
-d -a -iv $(head -c 32 $SECRET_ABS_NAME) -K $(cat $PRIVATE_KEY_ABS_NAME)
dd if="$SECRET_ABS_NAME" ibs=1 skip=32 2>/dev/null | openssl enc -aes-256-cbc \
-d -a -iv "$(head -c 32 "$SECRET_ABS_NAME")" -K "$(cat "$PRIVATE_KEY_ABS_NAME")"
}

set_secret() {
checks $1 $2
checks "$1" "$2"
get_private_key_abs_name
SECRET_DIR="$ENCPASS_HOME_DIR/secrets/$LABEL"

if [ ! -d $SECRET_DIR ]; then
mkdir -m 700 $SECRET_DIR
if [ ! -d "$SECRET_DIR" ]; then
mkdir -m 700 "$SECRET_DIR"
fi

echo "Enter $SECRET_NAME:" >&2
Expand All @@ -112,13 +112,12 @@ set_secret() {
read -r CSECRET
stty echo
if [ "$SECRET" = "$CSECRET" ]; then
printf "%s" "$(openssl rand -hex 16)" > \
$SECRET_DIR/$SECRET_NAME.enc
printf "%s" "$(openssl rand -hex 16)" >"$SECRET_DIR/$SECRET_NAME.enc"

echo "$SECRET" | openssl enc -aes-256-cbc -e -a -iv \
$(cat $SECRET_DIR/$SECRET_NAME.enc) -K \
$(cat $ENCPASS_HOME_DIR/keys/$LABEL/private.key) 1>> \
$SECRET_DIR/$SECRET_NAME.enc
"$(cat "$SECRET_DIR/$SECRET_NAME.enc")" -K \
"$(cat "$ENCPASS_HOME_DIR/keys/$LABEL/private.key")" 1>>\
"$SECRET_DIR/$SECRET_NAME.enc"
else
echo "Error: secrets do not match. Please try again." >&2
exit 1
Expand Down
5 changes: 2 additions & 3 deletions tests/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
FROM ubuntu:18.04

RUN apt-get update && \
apt-get install -qy zsh ksh expect openssl
RUN apt-get update \
&& apt-get install -qy zsh ksh expect openssl

RUN mkdir /opt/encpass

VOLUME /opt/encpass

14 changes: 6 additions & 8 deletions tests/helpers/helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,21 @@ else
TEST_FAILURE_COUNT=0
fi


test_success() {
echo "`tput setaf 2``tput bold`[SUCCESS]`tput sgr0`"
TEST_SUCCESS_COUNT=$((TEST_SUCCESS_COUNT+1))
echo "$(tput setaf 2)$(tput bold)[SUCCESS]$(tput sgr0)"
TEST_SUCCESS_COUNT=$((TEST_SUCCESS_COUNT + 1))
}

test_failure() {
echo "`tput setaf 1``tput bold`[FAILURE]`tput sgr0`"
TEST_FAILURE_COUNT=$((TEST_FAILURE_COUNT+1))
echo "$(tput setaf 1)$(tput bold)[FAILURE]$(tput sgr0)"
TEST_FAILURE_COUNT=$((TEST_FAILURE_COUNT + 1))
}


test_print() {
echo -n "$prefix $1"
}

test_complete() {
echo "$TEST_SUCCESS_COUNT" > /tmp/encpass_test_success_count
echo "$TEST_FAILURE_COUNT" > /tmp/encpass_test_failure_count
echo "$TEST_SUCCESS_COUNT" >/tmp/encpass_test_success_count
echo "$TEST_FAILURE_COUNT" >/tmp/encpass_test_failure_count
}
6 changes: 0 additions & 6 deletions tests/suite.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ printf "\n\nRunning ZSH test...\n"
printf "\n\nRunning KSH test...\n"
./ksh.sh


TEST_SUCCESS_COUNT=$(cat /tmp/encpass_test_success_count)
TEST_FAILURE_COUNT=$(cat /tmp/encpass_test_failure_count)
TEST_TOTAL_COUNT=$((TEST_SUCCESS_COUNT + TEST_FAILURE_COUNT))
Expand All @@ -23,12 +22,7 @@ printf "Total tests completed $TEST_TOTAL_COUNT\n"
printf "Tests succeded: $TEST_SUCCESS_COUNT\n"
printf "Tests failed: $TEST_FAILURE_COUNT\n"



if [ "$TEST_FAILURE_COUNT" -gt 0 ]; then
printf "Marking tests as FAILURE\n"
exit 1
fi