どんなことでも

この人 blog を書くのだろうか?

マニュアルを読んで再挑戦 (PGP を perl で)

2007-12-19 04:13:13 | perl
祝1000! え?何かって? これが、記事番号 1000個目なのです。去年の 1月からなので、2年で 1000件。結構書きましたねぇ。
で、余計なことは置いておいて以下本文。

Crypt::OpenPGP のマニュアルを読んでみると Crypt::OpenPGP で慣用暗号化方式の暗号化が出来るらしい事が発覚。CPAN で、「PGP symmetric」で検索したのが仇か?
Crypt::OpenPGP::Cipher - PGP symmetric cipher factory」ってあったら、こっちを使おうとするのが心情というものではないか。
#!/usr/bin/perl -w
use lib qw(...);

use strict;
# use diagnostics;
# use warnings;
use Carp::Clan qw(verbose);
use Crypt::OpenPGP;

my $password = "Xevious";
my $cipher = "Twofish";

my $orig_file = "$ENV{HOME}/file";
my $enc_file = "$ENV{HOME}/file.enc";

my $pgp = Crypt::OpenPGP->new;
my $ciphertext = $pgp->encrypt(
Filename => $orig_file,
Passphrase => $password,
Cipher => $cipher,
Compress => "ZIP",
Armour => 1,
);

open ENC_FILE, ">$enc_file";
print ENC_FILE $ciphertext;
close ENC_FILE;
で、実行すると、
> ./test_pgp.pl
Use of uninitialized value in concatenation (.) or
string at $HOME/opt/perl/lib/perl5/site_perl/5.8.5/
Crypt/OpenPGP/SKSessionKey.pm line 31.
なんか、ワーニングが出ているのですがきちんと暗号化したファイルは作成されています。で、保存したファイルをデコードさせると
> gpg -o - ~/file.enc
gpg: TWOFISH暗号化済みデータ
gpg: 1 個のパスフレーズで暗号化
gpg: 警告: メッセージの完全性は保護されていません
dummy data
デコードできたけど perl のワーニングと、GPG に「警告: メッセージの完全性は保護されていません」と言われるのは気に食わん。
さて、どうしたものか。「-w」を外せ?ごもっとも。でもそれは対処療法かと。

最新の画像もっと見る

コメントを投稿