#!/usr/bin/perl use strict ; use Crypt::GPG ; use Archive::Tar ; my $gpg = new Crypt::GPG ; $gpg->gpgbin('/bin/gpg') ; $gpg->secretkey('my_email_address') ; $gpg->passphrase('my_gpg_passphrase') ; $gpg->armor(1) ; my $encryptedFile = '/home/xuo/TheCat.gpg' ; my $tarFile_read = '/home/xuo/TheCat.tar.gz' ; my $tarFile_write = '/home/xuo/TheCat_from_gpg_encrypt.gpg' ; my @encryptedFileArray = () ; my @fileToBeEncrypted = () ; my @fileToBeDecrypted = () ; my @gpgEncryptedFile = () ; open(TAR_FILE, "$tarFile_read") || die "can't open file $tarFile_read !" ; @fileToBeEncrypted = ; close(TAR_FILE) ; my @gpgEncryptedFile = $gpg->encrypt(\@fileToBeEncrypted, 'my_email_address') ; open(GPG_FILE, ">$encryptedFile") || die "can't open file $encryptedFile !" ; print GPG_FILE "@gpgEncryptedFile" ; close(GPG_FILE) ; open(GPG_FILE, "$encryptedFile") || die "can't open file $encryptedFile !" ; @fileToBeDecrypted = ; close(GPG_FILE) ; my ($plaintext, $signature) = $gpg->verify(\@fileToBeDecrypted) ; open(TAR_FILE, ">$tarFile_write") || die "can't open file $tarFile_write !" ; print TAR_FILE "$plaintext" ; close(TAR_FILE) ; exit ;