Compare commits
81 Commits
master
...
tlim_quote
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15a0fa9490 | ||
|
|
e01f740504 | ||
|
|
4cf6fc53a8 | ||
|
|
308cf06c15 | ||
|
|
b5fe156b5f | ||
|
|
f71466f49d | ||
|
|
e17e80eb19 | ||
|
|
96950da9ec | ||
|
|
efda6e25ec | ||
|
|
d9c1b2ef60 | ||
|
|
7f144fdfc9 | ||
|
|
e3c214567f | ||
|
|
24fa4d1e8b | ||
|
|
018d2274dd | ||
|
|
f359f8adb8 | ||
|
|
c06ee80778 | ||
|
|
6c46834309 | ||
|
|
45fc12c062 | ||
|
|
87efc79af4 | ||
|
|
f95df2cdb7 | ||
|
|
8b944f3ac9 | ||
|
|
60cfa8a8e7 | ||
|
|
9b5e91c57c | ||
|
|
b5dfb744f5 | ||
|
|
0386308e4e | ||
|
|
d4d0992151 | ||
|
|
0918d76b52 | ||
|
|
4b9595788e | ||
|
|
03fda67945 | ||
|
|
e12f55b5b5 | ||
|
|
890b1ce628 | ||
|
|
d7b4fd544d | ||
|
|
9165a77d15 | ||
|
|
74c6d34721 | ||
|
|
25c135ac29 | ||
|
|
245e1b2750 | ||
|
|
25bc3e64b7 | ||
|
|
6831a83196 | ||
|
|
3784c0551c | ||
|
|
620f77fbe9 | ||
|
|
bdd983b96d | ||
|
|
e1f03e4a74 | ||
|
|
ddda729b7f | ||
|
|
aa2e2a4dc6 | ||
|
|
4e0bba8756 | ||
|
|
9ee69f7f5a | ||
|
|
e99e9056ad | ||
|
|
4435e577ff | ||
|
|
63ac594751 | ||
|
|
3e60c0c80e | ||
|
|
d81cc6653f | ||
|
|
0002c97878 | ||
|
|
3b0f0194a0 | ||
|
|
ca1d10ba80 | ||
|
|
d9f1c9ef1f | ||
|
|
836657ebdf | ||
|
|
5767f22445 | ||
|
|
c2ce39b719 | ||
|
|
fa0b4c6087 | ||
|
|
415f7664b5 | ||
|
|
5a05be06c7 | ||
|
|
dd0234874b | ||
|
|
bb9f8584c3 | ||
|
|
1ce8546efa | ||
|
|
c89951c3db | ||
|
|
ba2bfcc0de | ||
|
|
f3d27240e2 | ||
|
|
24c9a22bae | ||
|
|
653cfb618e | ||
|
|
d7ed89da4c | ||
|
|
7e3eb624f5 | ||
|
|
d4e8acd5ef | ||
|
|
7ca433361e | ||
|
|
2f3dc405f1 | ||
|
|
ad0673841e | ||
|
|
05c87ad601 | ||
|
|
1aba4d8503 | ||
|
|
21cdc52355 | ||
|
|
05df9fdb52 | ||
|
|
689952582d | ||
|
|
180ee4076e |
@@ -92,6 +92,10 @@ SECRING="${KEYRINGDIR}/secring.gpg"
|
|||||||
: "${DECRYPT_UMASK:=0022}" ;
|
: "${DECRYPT_UMASK:=0022}" ;
|
||||||
# : ${DECRYPT_UMASK:=o=} ;
|
# : ${DECRYPT_UMASK:=o=} ;
|
||||||
|
|
||||||
|
# $BB_FILES file format:
|
||||||
|
# Filenames are listed one per line, relative to the base directory of the repo.
|
||||||
|
# Each line is listed in "printf %q" format, which escapes special chars.
|
||||||
|
|
||||||
# Checks if $1 is 0 bytes, and if $1/keyrings
|
# Checks if $1 is 0 bytes, and if $1/keyrings
|
||||||
# is a directory
|
# is a directory
|
||||||
function is_blackbox_repo() {
|
function is_blackbox_repo() {
|
||||||
@@ -102,10 +106,18 @@ function is_blackbox_repo() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Return error if not on cryptlist.
|
# is_on_cryptlist resturns an error if $1 not on cryptlist.
|
||||||
function is_on_cryptlist() {
|
function is_on_cryptlist() {
|
||||||
|
# $1: The filename.
|
||||||
# Assumes $1 does NOT have the .gpg extension
|
# Assumes $1 does NOT have the .gpg extension
|
||||||
file_contains_line "$BB_FILES" "$(vcs_relative_path "$1")"
|
|
||||||
|
# https://github.com/koalaman/shellcheck/wiki/SC2155
|
||||||
|
local name
|
||||||
|
name=$(vcs_relative_path "$1")
|
||||||
|
local encodedname
|
||||||
|
encodedname=$(printf "%q" "$name")
|
||||||
|
|
||||||
|
file_contains_line "$BB_FILES" "$encodedname"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Exit with error if a file exists.
|
# Exit with error if a file exists.
|
||||||
@@ -167,16 +179,33 @@ function get_pubring_path() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Output the unencrypted filename.
|
# normalize_filename_arg takes a filename from the command line and
|
||||||
function get_unencrypted_filename() {
|
# outputs the non-encrypted filename.
|
||||||
echo "$(dirname "$1")/$(basename "$1" .gpg)" | sed -e 's#^\./##'
|
function normalize_filename() {
|
||||||
|
# $1: the input from a user
|
||||||
|
# Use this if the user may have entered the encrypted or
|
||||||
|
# non-encrypted filename.
|
||||||
|
local name
|
||||||
|
name=$(vcs_relative_path "$1")
|
||||||
|
echo "$(dirname "$name")/$(basename "$name" .gpg)" | sed -e 's#^\./##'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Output the encrypted filename.
|
# Output the encrypted filename.
|
||||||
function get_encrypted_filename() {
|
function get_gpg_filename() {
|
||||||
echo "$(dirname "$1")/$(basename "$1" .gpg).gpg" | sed -e 's#^\./##'
|
# $1: normalized file path
|
||||||
|
echo "$1".gpg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## Output the unencrypted filename.
|
||||||
|
#function get_unencrypted_filename() {
|
||||||
|
# echo "$(dirname "$1")/$(basename "$1" .gpg)" | sed -e 's#^\./##'
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
## Output the encrypted filename.
|
||||||
|
#function get_encrypted_filename() {
|
||||||
|
# echo "$(dirname "$1")/$(basename "$1" .gpg).gpg" | sed -e 's#^\./##'
|
||||||
|
#}
|
||||||
|
|
||||||
# Prepare keychain for use.
|
# Prepare keychain for use.
|
||||||
function prepare_keychain() {
|
function prepare_keychain() {
|
||||||
local keyringasc
|
local keyringasc
|
||||||
@@ -199,37 +228,43 @@ function prepare_keychain() {
|
|||||||
echo '========== Importing keychain: DONE' >&2
|
echo '========== Importing keychain: DONE' >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add file to list of encrypted files.
|
# add_filename_to_cryptlist adds $1 to the list of encrypted files.
|
||||||
function add_filename_to_cryptlist() {
|
function add_filename_to_cryptlist() {
|
||||||
|
# $1: The filename.
|
||||||
# If the name is already on the list, this is a no-op.
|
# If the name is already on the list, this is a no-op.
|
||||||
# However no matter what the datestamp is updated.
|
|
||||||
|
|
||||||
# https://github.com/koalaman/shellcheck/wiki/SC2155
|
# https://github.com/koalaman/shellcheck/wiki/SC2155
|
||||||
local name
|
local name
|
||||||
name=$(vcs_relative_path "$1")
|
name=$(vcs_relative_path "$1")
|
||||||
|
local encodedname
|
||||||
|
encodedname=$(printf "%q" "$name")
|
||||||
|
|
||||||
if file_contains_line "$BB_FILES" "$name" ; then
|
|
||||||
|
if file_contains_line "$BB_FILES" "$encodedname" ; then
|
||||||
echo "========== File is registered. No need to add to list."
|
echo "========== File is registered. No need to add to list."
|
||||||
else
|
else
|
||||||
echo "========== Adding file to list."
|
echo "========== Adding file to list."
|
||||||
touch "$BB_FILES"
|
touch "$BB_FILES"
|
||||||
sort -u -o "$BB_FILES" <(echo "$name") "$BB_FILES"
|
sort -u -o "$BB_FILES" <(printf "%q\n" "$name") "$BB_FILES"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Removes a file from the list of encrypted files
|
# remove_filename_from_cryptlist removes $1 from the list of encrypted files.
|
||||||
function remove_filename_from_cryptlist() {
|
function remove_filename_from_cryptlist() {
|
||||||
|
# $1: The filename.
|
||||||
# If the name is not already on the list, this is a no-op.
|
# If the name is not already on the list, this is a no-op.
|
||||||
|
|
||||||
# https://github.com/koalaman/shellcheck/wiki/SC2155
|
# https://github.com/koalaman/shellcheck/wiki/SC2155
|
||||||
local name
|
local name
|
||||||
name=$(vcs_relative_path "$1")
|
name=$(vcs_relative_path "$1")
|
||||||
|
local encodedname
|
||||||
|
encodedname=$(printf "%q" "$name")
|
||||||
|
|
||||||
if ! file_contains_line "$BB_FILES" "$name" ; then
|
if ! file_contains_line "$BB_FILES" "$encodedname" ; then
|
||||||
echo "========== File is not registered. No need to remove from list."
|
echo "========== File is not registered. No need to remove from list."
|
||||||
else
|
else
|
||||||
echo "========== Removing file from list."
|
echo "========== Removing file from list."
|
||||||
remove_line "$BB_FILES" "$name"
|
remove_line "$BB_FILES" "$encodedname"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
. "${0%/*}/_blackbox_common.sh"
|
. "${0%/*}/_blackbox_common.sh"
|
||||||
. tools/test_functions.sh
|
. /Users/tlimoncelli/gitwork/blackbox/tools/test_functions.sh
|
||||||
|
|
||||||
PHASE 'Test cp-permissions: TestA'
|
PHASE 'Test cp-permissions: TestA'
|
||||||
touch TestA TestB TestC TestD
|
touch TestA TestB TestC TestD
|
||||||
@@ -22,4 +22,18 @@ assert_file_perm '--wxr--rwx' TestC
|
|||||||
assert_file_perm '----rwx---' TestD # TestD doesn't change.
|
assert_file_perm '----rwx---' TestD # TestD doesn't change.
|
||||||
rm -f TestA TestB TestC TestD
|
rm -f TestA TestB TestC TestD
|
||||||
|
|
||||||
|
PHASE 'Test vcs_relative_path: TestA'
|
||||||
|
export REPOBASE='/Users/tlimoncelli/Applications (Parallels)/{fd3049c8-9fdd-48d5-aa16-d31daf3a6879} Applications.localized'
|
||||||
|
FILE='Microsoft Windows Fax and Scan.app/Contents'
|
||||||
|
result=$(vcs_relative_path Contents)
|
||||||
|
echo result=XXX${result}XXX
|
||||||
|
if [[ $FILE != $result ]] ; then
|
||||||
|
echo FAIL
|
||||||
|
fi
|
||||||
|
|
||||||
|
unencrypted_file=$(get_unencrypted_filename "${result}.gpg")
|
||||||
|
echo un=XXX${unencrypted_file}XXX
|
||||||
|
encrypted_file=$(get_encrypted_filename "${result}")
|
||||||
|
echo en=XXX${encrypted_file}XXX
|
||||||
|
|
||||||
echo '========== DONE.'
|
echo '========== DONE.'
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ source "${0%/*}/_blackbox_common.sh"
|
|||||||
|
|
||||||
for param in "$@" ; do
|
for param in "$@" ; do
|
||||||
shreddable=0
|
shreddable=0
|
||||||
unencrypted_file=$(get_unencrypted_filename "$param")
|
unencrypted_file=$(normalize_filename "$param")
|
||||||
if [[ ! -e "$unencrypted_file" ]]; then
|
if [[ ! -e "$unencrypted_file" ]]; then
|
||||||
"${BLACKBOX_HOME}/blackbox_edit_start" "$param"
|
"${BLACKBOX_HOME}/blackbox_edit_start" "$param"
|
||||||
shreddable=1
|
shreddable=1
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ prepare_keychain
|
|||||||
modified_files=()
|
modified_files=()
|
||||||
modifications=()
|
modifications=()
|
||||||
echo '========== DIFFING FILES: START'
|
echo '========== DIFFING FILES: START'
|
||||||
while IFS= read <&99 -r unencrypted_file; do
|
while IFS= read <&99 -r encodedname; do
|
||||||
unencrypted_file=$(get_unencrypted_filename "$unencrypted_file")
|
local name
|
||||||
|
name=$(echo $encodedname)
|
||||||
|
unencrypted_file=$(get_unencrypted_filename "$name")
|
||||||
encrypted_file=$(get_encrypted_filename "$unencrypted_file")
|
encrypted_file=$(get_encrypted_filename "$unencrypted_file")
|
||||||
fail_if_not_on_cryptlist "$unencrypted_file"
|
fail_if_not_on_cryptlist "$unencrypted_file"
|
||||||
if [[ -f "$unencrypted_file" ]]; then
|
if [[ -f "$unencrypted_file" ]]; then
|
||||||
|
|||||||
@@ -5,4 +5,7 @@
|
|||||||
#
|
#
|
||||||
set -e
|
set -e
|
||||||
source "${0%/*}/_blackbox_common.sh"
|
source "${0%/*}/_blackbox_common.sh"
|
||||||
cat "$BB_FILES"
|
|
||||||
|
while IFS= read <&99 -r encodedname; do
|
||||||
|
echo $encodedname
|
||||||
|
done 99<"$BB_FILES"
|
||||||
|
|||||||
@@ -27,8 +27,12 @@ prepare_keychain
|
|||||||
|
|
||||||
# Decrypt:
|
# Decrypt:
|
||||||
echo '========== Decrypting new/changed files: START'
|
echo '========== Decrypting new/changed files: START'
|
||||||
while IFS= read <&99 -r unencrypted_file; do
|
while IFS= read <&99 -r encodedname; do
|
||||||
encrypted_file=$(get_encrypted_filename "$unencrypted_file")
|
local name
|
||||||
|
name=$(echo $name)
|
||||||
|
|
||||||
|
encrypted_file=$(get_encrypted_filename "$name")
|
||||||
|
unencrypted_file=$(get_unencrypted_filename "$name")
|
||||||
decrypt_file_overwrite "$encrypted_file" "$unencrypted_file"
|
decrypt_file_overwrite "$encrypted_file" "$unencrypted_file"
|
||||||
cp_permissions "$encrypted_file" "$unencrypted_file"
|
cp_permissions "$encrypted_file" "$unencrypted_file"
|
||||||
if [[ ! -z "$FILE_GROUP" ]]; then
|
if [[ ! -z "$FILE_GROUP" ]]; then
|
||||||
|
|||||||
@@ -12,15 +12,19 @@ disclose_admins
|
|||||||
prepare_keychain
|
prepare_keychain
|
||||||
|
|
||||||
echo '========== ENCRYPTED FILES TO BE RE-ENCRYPTED:'
|
echo '========== ENCRYPTED FILES TO BE RE-ENCRYPTED:'
|
||||||
while IFS= read <&99 -r unencrypted_file; do
|
while IFS= read <&99 -r encodedname; do
|
||||||
echo " $unencrypted_file.gpg"
|
local name
|
||||||
|
name=$(echo $encodedname)
|
||||||
|
echo " $name.gpg"
|
||||||
done 99<"$BB_FILES"
|
done 99<"$BB_FILES"
|
||||||
|
|
||||||
echo '========== FILES IN THE WAY:'
|
echo '========== FILES IN THE WAY:'
|
||||||
need_warning=false
|
need_warning=false
|
||||||
while IFS= read <&99 -r unencrypted_file; do
|
while IFS= read <&99 -r encodedname; do
|
||||||
unencrypted_file=$(get_unencrypted_filename "$unencrypted_file")
|
local name
|
||||||
encrypted_file=$(get_encrypted_filename "$unencrypted_file")
|
name=$(echo $encodedname)
|
||||||
|
unencrypted_file=$(get_unencrypted_filename "$name")
|
||||||
|
encrypted_file=$(get_encrypted_filename "$name")
|
||||||
if [[ -f "$unencrypted_file" ]]; then
|
if [[ -f "$unencrypted_file" ]]; then
|
||||||
need_warning=true
|
need_warning=true
|
||||||
echo " $unencrypted_file"
|
echo " $unencrypted_file"
|
||||||
@@ -35,9 +39,11 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo '========== RE-ENCRYPTING FILES:'
|
echo '========== RE-ENCRYPTING FILES:'
|
||||||
while IFS= read <&99 -r unencrypted_file; do
|
while IFS= read <&99 -r encodedname; do
|
||||||
unencrypted_file=$(get_unencrypted_filename "$unencrypted_file")
|
local name
|
||||||
encrypted_file=$(get_encrypted_filename "$unencrypted_file")
|
name=$(echo $encodedname)
|
||||||
|
unencrypted_file=$(get_unencrypted_filename "$name")
|
||||||
|
encrypted_file=$(get_encrypted_filename "$name")
|
||||||
echo ========== PROCESSING '"'$unencrypted_file'"'
|
echo ========== PROCESSING '"'$unencrypted_file'"'
|
||||||
fail_if_not_on_cryptlist "$unencrypted_file"
|
fail_if_not_on_cryptlist "$unencrypted_file"
|
||||||
decrypt_file_overwrite "$encrypted_file" "$unencrypted_file"
|
decrypt_file_overwrite "$encrypted_file" "$unencrypted_file"
|
||||||
|
|||||||
Reference in New Issue
Block a user