-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathe.sh
83 lines (63 loc) · 2 KB
/
e.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#! /bin/bash
# inc
# ARCH_DIR=""
# ENCR_DIR=""
. ./conf.sh
. ./log.sh
. ./reg.sh
log "+++ Session start"
echo "======================"
log "Source path: ${ARCH_DIR}"
log "Enc path: ${ENCR_DIR}"
log "Work path: ${WORK_PATH}"
echo "======================"
# encrypt files list
cd ${ARCH_DIR}
log "PWD: `pwd`"
ARCH_LST=$(find -iregex ".*\.\(z[0-9]+\|zip\|tar\.gz\)")
log $'Found archives:\n'"$ARCH_LST"
# checking directory with archives
if [[ -z ${ARCH_LST// } ]]; then
log "No files to encrypt"
exit 0
fi
# iterating
for ARCH in ${ARCH_LST}; do
log "arch $ARCH"
log "Calc md5sum...wait..."
MD5FULL=$(md5sum ${ARCH})
MD5=(${MD5FULL})
log "<--md5: $MD5"
log "<--reg_file: $REG_FILE"
if grep "${MD5}" "${REG_FILE}";then
log "Already enc'ted $ARCH md5sum: $MD5 Continuing."
continue
fi
# get filename
FILE_NAME=$(basename ${ARCH})
log "filename: ${FILE_NAME}"
# get file destination path in enc folders mirror
DEST_FILE=$(echo ${ARCH} | sed -e 's/\.\///')
log "dest file: $DEST_FILE"
DEST_FILE_FULL_PATH=$(dirname ${ENCR_DIR}/${DEST_FILE})
log "fullpath: $DEST_FILE_FULL_PATH"
if [[ ! -d ${DEST_FILE_FULL_PATH} ]]; then
mkdir -p ${DEST_FILE_FULL_PATH}
fi
# enc
log "Starting to enc ${ARCH_DIR}/${FILE_NAME} to ${ENCR_DIR}/${FILE_NAME}.enc"
# 1. gen key for archive
KEY_PATH=./${FILE_NAME}.key
openssl rand -base64 32 -out ${KEY_PATH}
# 2. enc archive with key
openssl enc -aes-256-cbc -salt -in "${ARCH_DIR}/${DEST_FILE}" -out "${ENCR_DIR}/${DEST_FILE}.enc" -pass file:${KEY_PATH}
# 3. enc key for that archive
openssl rsautl -encrypt -inkey ${WORK_PATH}/public.pem -pubin -in ${KEY_PATH} -out "${DEST_FILE_FULL_PATH}/${FILE_NAME}.key.enc"
# 4. removinng unenc'ted key
rm -f ${KEY_PATH}
log "${ARCH} from ${ARCH_DIR}/${FILE_NAME} to ${ENCR_DIR}/${FILE_NAME}.enc encted successfuly."
# register
log "--^Registering $MD5FULL"
reg "$MD5FULL"
done
log "--- Ending session."