Eu acredito que esse código está certo porque ele pega a ideia dos estados e transforma em etapas organizadas. Ele também usa criptografia e a verificação dos dados, que eram partes importantes do trabalho. Assim, os dados ficam protegidos durante o envio e não ficam expostos. Pelo que foi pedido, esse modelo atende os requisitos de segurança e faz o processo funcionar da forma correta. Peço aos instrutores confirmar se a logica fez sentido. Obrigada
INÍCIO
estado ← "ORIGEM"
ENQUANTO estado ≠ "FINALIZADO" FAÇA
SE estado = "ORIGEM" ENTÃO
// Processamento inicial
dados ← coletarDados()
// Segurança
dadosCriptografados ← criptografar(dados)
hashIntegridade ← gerarHash(dadosCriptografados)
// Próximo estado
estado ← "TRÂNSITO"
FIMSE
SE estado = "TRÂNSITO" ENTÃO
// Dados trafegam protegidos
transmitir(dadosCriptografados, hashIntegridade)
// Mantém criptografia ativa
estado ← "RECEPÇÃO"
FIMSE
SE estado = "RECEPÇÃO" ENTÃO
// Validação de segurança
hashRecebido ← gerarHash(dadosCriptografados)
SE hashRecebido = hashIntegridade ENTÃO
dadosFinais ← descriptografar(dadosCriptografados)
ESCREVA "Transferência segura concluída"
SENÃO
ESCREVA "Falha: dados alterados"
FIMSE
estado ← "FINALIZADO"
FIMSE
FIMENQUANTO
FIM