Problemas básicos de script de criptografia openssl

1

Atualmente, estou trabalhando em uma série de exercícios para melhorar meu conhecimento de script bash.

O exercício em que estou trabalhando é o seguinte: Escreva um script chamado encrypt.sh que é usado para criptografar arquivos. Aqui estão os requisitos para o script:

  1. It must use openssl to encrypt files.
  2. It must take the name of a file to encrypt as a parameter
  3. When it encrypts a file it must put the encrypted version in a file with the same name but ".enc" appended.
  4. It must be safe to run on a system with other users. That is, it must not pass any passwords as command line arguments.
  5. It must read the password to use from an environment variable called ENCRYPTION_KEY.
  6. If that environment variable is not set, it should prompt the user to enter a password and use that instead.
  7. It should display an error if no parameter is provided and exit with exit code 2.
  8. It should display a message if the user calls the script with a --help switch.
  9. It should work with files with spaces in the name.

Sinto que meu script atual atendeu aos requisitos 1-5,7-8. No entanto, estou um pouco debatido em relação a 6 e 9.

Qualquer feedback sobre meus trabalhos atuais ou soluções para meus requisitos ausentes seria muito apreciado.

Obrigado antecipadamente.

usage="Usage: Enter the name of the file you would like to encrypt as a parameter, eg. $0 words"
ENCRYPTION_KEY="1234"
export ENCRYPTION_KEY
openssl enc -e -aes256 -in "$1" -out "$1".enc -pass env:ENCRYPTION_KEY
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
    echo $usage
fi

if test -z ${1}
    then
        echo "${0} :ERROR: No parameters provided. Please see -h or --help for usage." 1>&2
        exit 1
fi

#DECODE (script is not required to decode, just here for testing purposes)
#openssl enc -d -aes256 -in words.enc -out words.enc.dec -pass env:ENCRYPTION_KEY
    
por NigerianWizard 09.10.2018 / 03:05

1 resposta

0

Para # 6, o read bash embutido será útil. Para o número 9, verifique se os nomes das variáveis estão entre aspas duplas em todos os lugares em que você os usa.

    
por 09.10.2018 / 03:40