#!/bin/bash
#encrypt.sh
FILENAME="$1" # Имя файла для шифрование
PUBLICKEY="$2" # Публичный ключь шифрование
SESSIONKEY="$3" # Скрытый ключь шифрование
RESULT="$4" # Зашифрованный файл
# Generate the random symmetric-key
# Создать случайный симметричный ключ
PASSIZE=30
if [ -c /dev/urandom ] ; then
KEY=`head -c 30 /dev/urandom | openssl enc -base64`
else
KEY=`openssl rand -base64 30`
fi
export KEY
# Encrypt the symmetric key using the public key
# Шифрование симметричного ключа с помощью открытого ключа
openssl rsautl -encrypt -inkey "$PUBLICKEY" -out "$SESSIONKEY" -pubin<<EOF
$KEY
EOF
# Encrypt the file
# Зашифровать файл
openssl enc -aes-256-cbc -pass env:KEY -in "$FILENAME" -out "$RESULT"