<?xml version="1.0" encoding="windows-1252"?>
<node id="959324" title="Re: Getting Started with GnuPG and GPG" created="2012-03-13 09:10:44" updated="2012-03-13 09:10:44">
<type id="11">
note</type>
<author id="958878">
jaf0faj</author>
<data>
<field name="doctext">
&lt;p&gt;OK, I have been banging my head over the last little while trying to get GPG working through PERL and finally came across this gem of a tutorial.  Thank you!&lt;/p&gt;
&lt;p&gt;My only issue is that I still cannot get it to work.  In an attempt to emulate the tutorial on my machine, I created two scripts &lt;tt&gt;trialencode&lt;/tt&gt; and &lt;tt&gt;trialdecode&lt;/tt&gt;, listed here&lt;/p&gt;
&lt;code&gt;
#################
## trialencode ##
#################

use strict;
use GPG;

my $gpg = new GPG(homedir =&gt; '/home/jaf/.gnupg');

my $plain="ARGHH!!";

my $phrase=$gpg-&gt;encrypt($plain,"jaf0faj\@xxxxxxx");
die $gpg-&gt;error() if $gpg-&gt;error();

print "Plain: $plain\n\nEncoded:\n$phrase\n";
open (OUT, "&gt;trialencoded");
print OUT $phrase;
close (OUT);
&lt;/code&gt;

&lt;code&gt;
#################
## trialdecode ##
#################

use strict;
use GPG;

my $gpg = new GPG(homedir =&gt; '/home/jaf/.gnupg');

open (IN, "trialencoded");
my $phrase=join("",&lt;IN&gt;);
close(IN);

my $message=$gpg-&gt;decrypt('HtfdIggtw?',$phrase);

print "\n==========================\n\nEncoded:\n$phrase\n\nDecoded: [$message]\n";
print "\n\n\$gpg-&gt;error message: ".$gpg-&gt;error() if $gpg-&gt;error();
&lt;/code&gt;

&lt;p&gt;When I run them consecutively via "&lt;tt&gt;perl trialencode &amp;amp;&amp;amp; perl trialdecode&lt;/tt&gt;" encoding works fine, but decoding fails.  Here is the output from this:&lt;br&gt;&lt;br&gt;
&lt;tt&gt;
Plain: ARGHH!!&lt;br&gt;
&lt;br&gt;
Encoded:&lt;br&gt;
-----BEGIN PGP MESSAGE-----&lt;br&gt;
&lt;br&gt;
hIwDZMVp08Pd6AkBA/9RMIUI66urMEDQXgwgaQC6K4u2v5RCt8N7iMW/a+W5xnWI&lt;br&gt;
ZTInl912BtPs/KZTJvfDEjkjqSc0vrzPZzoT2EMDgjwwPh+uNe2z8PHFALTDUGpb&lt;br&gt;
x+EfIi0etb+4QlWL+MkHFoIeB1ZgTb2zEz7sIndrUEBf2MqF3mpZyrFISdAJPNJC&lt;br&gt;
AaS/x6aTC1hRIs0kYjf9m/laq29bebfsZUPEUR9fDuQeR8bD6KVEn3TT+7Chlv7E&lt;br&gt;
a7Uh1x041RlG/BTareLke0qq&lt;br&gt;
=0kR7&lt;br&gt;
-----END PGP MESSAGE-----&lt;br&gt;
&lt;br&gt;
==========================&lt;br&gt;&lt;br&gt;
Encoded:&lt;br&gt;
-----BEGIN PGP MESSAGE-----&lt;br&gt;
&lt;br&gt;
hIwDZMVp08Pd6AkBA/9RMIUI66urMEDQXgwgaQC6K4u2v5RCt8N7iMW/a+W5xnWI&lt;br&gt;
ZTInl912BtPs/KZTJvfDEjkjqSc0vrzPZzoT2EMDgjwwPh+uNe2z8PHFALTDUGpb&lt;br&gt;
x+EfIi0etb+4QlWL+MkHFoIeB1ZgTb2zEz7sIndrUEBf2MqF3mpZyrFISdAJPNJC&lt;br&gt;
AaS/x6aTC1hRIs0kYjf9m/laq29bebfsZUPEUR9fDuQeR8bD6KVEn3TT+7Chlv7E&lt;br&gt;
a7Uh1x041RlG/BTareLke0qq&lt;br&gt;
=0kR7&lt;br&gt;
-----END PGP MESSAGE-----&lt;br&gt;
&lt;br&gt;
Decoded: []&lt;br&gt;
&lt;br&gt;
$gpg-&gt;error message: gpg: encrypted with 1024-bit RSA key, ID C3DDE809, created 2012-03-13&lt;br&gt;
      "Jaf O Faj (Testing sundry perl GPG packages) &lt;jaf0faj@xxxxxxx&gt;"&lt;br&gt;
&lt;/tt&gt;

&lt;br&gt;&lt;br&gt;What am I doing wrong?  BTW, if I perform a "&lt;tt&gt;gpg --decrypt trialencoded&lt;/tt&gt; on the command line, where &lt;tt&gt;trialencoded&lt;/tt&gt; is the dump of the encoded phase generated in &lt;tt&gt;trialencode&lt;/tt&gt;, &lt;tt&gt;gpg&lt;/tt&gt; successfully decodes the text, as shown below (using &lt;tt&gt;HtfdIggtw?&lt;/tt&gt; as the passphrase for the secret key)!&lt;br&gt;&lt;br&gt;
&lt;tt&gt;
gpg --decrypt trialencoded &lt;br&gt;
&lt;br&gt;
You need a passphrase to unlock the secret key for&lt;br&gt;
user: "Jaf O Faj (Testing sundry perl GPG packages) &lt;jaf0faj@xxxxxxx&gt;"&lt;br&gt;
1024-bit RSA key, ID C3DDE809, created 2012-03-13 (main key ID B5A7838C)&lt;br&gt;
&lt;br&gt;
gpg: encrypted with 1024-bit RSA key, ID C3DDE809, created 2012-03-13&lt;br&gt;
      "Jaf O Faj (Testing sundry perl GPG packages) &lt;jaf0faj@xxxxxxx&gt;"&lt;br&gt;
ARGHH!!
&lt;/tt&gt;
&lt;/P&gt;</field>
<field name="root_node">
152489</field>
<field name="parent_node">
152489</field>
</data>
</node>
