どんなことでも

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

PGP を perl で

2007-12-18 18:53:12 | perl
また、perl ですよ。
ほんとに、MSX-BASIC をちょっと知ってるぐらいで perl をいじり初めて...
で「gpg -ca --cipher-algo TWOFISH」みたいなことを perl でしようと思い
#!/usr/bin/perl -w

use lib qw(...);

# use strict;
use Crypt::OpenPGP::Cipher;

my $orignal;
my $password = "Xevious";
my $algorithm = "Twofish";

# 「key must be 16, 24, or 32 bytes long at Crypt/Twofish.pm line 24.」
# なんて出るので、後ろに NULL をくっつけて 16 bit 単位に揃える。
my $align = 16;
my $length = int((length($password)+($align-1))/$align) * $align - length($password);
$password = $password . ("\000" x $length);

my $cipher = Crypt::OpenPGP::Cipher->new($algorithm,$password);

open BODY, "<$ENV{HOME}/file";
while (<BODY>){$orignal .= $_;}
close BODY;

my $encrepted = $cipher->encrypt($orignal);

open BODY, ">$ENV{HOME}/file.enc";
print BODY $encrepted;
close BODY;
かなり省略。でも、多分動く。
しかし、出来たファイルを gpg に食わせてみる。
> gpg -o - ~/file.enc
gpg: 有効なOpenPGPデータが見つかりません。
gpg: processing message failed: eof
Exit 2
デコードできず。
う~ん、どっか例が転がってないかなぁ。慣用暗号化ってので先ず敷居が上がるんだよねぇ。
大体、perl 自身で複合化できるかどうかを試していない時点で(^^; perl 自身で複合化できるのなら、pgp コマンドを使わずに perl コマンドで暗号化すれば良いとも言えなくもない。gpg コマンドに関わり合う必要は全くないか。
# でも、出来ないのは悔しい。

最新の画像もっと見る

コメントを投稿