=encoding euc-jp =head1 名前 Crypt::CBCeasy - Crypt::CBCでの簡単なことを本当に簡単にします =head1 概要 use Crypt::CBCeasy; # !!! このモジュールを'require'することはできません !!! IDEA::encipher($my_key, "plain-file", "crypted-file"); $plain_text = DES::decipher($my_key, \*CRYPTO_FILE); $crypted = Blowfish::encipher($my_key, \*PLAIN_SOCKET); =head1 概略 このモジュールは簡単にし、通常の仕事を単なるワンライナーにする、 Crypt::CBCのための単なるヘルパーです。 このモジュールの現行バージョンはCPANで取得することができます。 =head1 説明 以下のようにして、このモジュールを呼び出すと use Crypt::CBCeasy IMPORT-LIST; Cに上げられた全ての名前空間(パッケージ)に 関数C と Cを作成します。 Cがなければ、これら3つの暗号しか扱うことができなかった 以前のバージョンとの互換性を保つため、デフォルトではB、B そしてBに、これら2つの関数を作成します。 Cと一緒に機能するためにはC v. 1.22以降をインストールする 必要があります。 IDEA::関数はCrypt::IDEAをインストールしているときにのみ動きます。 DES::関数 - Crypt::DESを、Blowfish:: - Crypt::BlowfishとCrypt::CBCがバージョン 1.22 以上など。 以下に現在、Cインターフェースを通して呼び出すことが 出来る暗号の一覧をしめします(実際にはC互換のモジュールと 同じです): Here's the list of the ciphers that could be called via the 暗号 CPANモジュール DES Crypt::DES IDEA Crypt::IDEA Blowfish Crypt::Blowfish Twofish2 Crypt::Twofish2 DES_PP Crypt::DES_PP Blowfish_PP Crypt::Blowfish_PP Rijndael Crypt::Rijndael TEA Crypt::TEA Cで、暗号の名前は大文字/小文字が区別されることに 注意してください。そのため"blowfish"はエラーになります。 元になっているモジュールに対応するものと同じになるよう正確に 打ち込んでください。 関数CとCはいずれも3つのパラメータをとります: 1 - 暗号化/復号化キー 2 - 情報元 3 - 出力先 情報元は以下のものを設定することができます:既存のファイル、スカラー(暗号化 される単なる文字列)、オープンされたファイルハンドル、ファイルハンドルを継承した 何らかのオブジェクト、例えばIO::FileやFileHandleオブジェクト、そしてソケット。 ここではスカラーと出力ファイル名を区別することができないためスカラーを除けば、 出力先は上記のすべてを指定することができます。 おそらく、例をみたほうが簡単でしょう: (C<$fh>という変数はIO::Handle、IO::FileあるいはFileHandleオブジェクト、 "GLOB"型の変数、"GLOB"リファレンスあるいはソケットです。) B $my_key, "in-file", "out-file" B<);> B $my_key, *IN, "out-file" B<);> B $my_key, \*IN, "out-file" B<);> B $my_key, $fh_in, "out-file" B<);> B $my_key, "in-file", *OUT B<);> B $my_key, "in-file", \*OUT B<);> B $my_key, "in-file", $fh_out B<);> B $my_key, *IN, *OUT B<);> B $my_key, \*IN, \*OUT B<);> B $my_key, $fh_in, $fh_out B<);> B $my_key, $plain_text, "out-file" B<);> B $my_key, $plain_text, *OUT B<);> B $my_key, $plain_text, \*OUT B<);> B $my_key, $plain_text, $fh_out B<);> 上記のすべてが機能し、予想されていることを行います。 さらに結果をスカラで返す、引数2つのバージョンもあります: $crypted_text = B $my_key, $plain_text B<);> $crypted_text = B $my_key, "in-file" B<);> $crypted_text = B $my_key, *IN B<);> $crypted_text = B $my_key, \*IN B<);> $crypted_text = B $my_key, $fh B<);> 同じことがCにある全ての暗号方法で可能です。 エラーのさいには全ての関数がcroakします("input file not found"のように)、 そのためエラーをトラップしたければ、それらをCブロックの内側で 使用し、C<$@>をチェックしてください。 あなたがCを要求してもしなくても、と全てのファイルハンドルが Cで使われることに注意してください。たとえばWin32では、この 結果、もし "crypted_file" が以下のようにして作成されると DES::encipher($my_key, "text_file", "crypted_file"); こうした後には $plain_text = DES::decipher($my_key, "crypted_file"); $plain_textにはCRLFが入ります。 もしファイルハンドルが前に使われていると - 先頭に戻す/あるいは クローズすることは、あなたの仕事です。 =head1 インストール これは単なるモジュールなので、何も特別なインストールは必要ありません。 @INCのどこかの/Cryptサブディレクトリに入れてください。標準の Makefile.PL make make test make install という手順が提供されています。さらに make html はHTMLドキュメントを作成します。 このモジュールは以下のものを必要とします Lincoln Stein lstein@cshl.org によるCrypt::CBC v.1.20以降 以下のもの1つ以上 Crypt::IDEA, Crypt::DES, Crypt::Blowfish, Crypt::Blowfish_PP, Crypt::Twofish2, Crypt::DES_PP あるいはその他の Crypt::CBC互換モジュール =head1 注意 このモジュールはWin95/98/2000Pro環境でPerl 5.004_02と ActiveState ActivePerl build 618で作成され、テストされてきました 私は他のシステムでも正しく機能することを期待しています。 =head1 変更履歴 0.21 Mon Mar 6 07:28:41 2000 - first public release 0.22 Sun Feb 18 13:11:59 2001 A horrible BUG was found by Michael Drumheller In fact 0.21 was ALWAYS using DES despite of the desired cipher. DAMN! Fixed. And the test is modified so that this will never happen again. Now you can define the list of ciphers that are compatible with Crypt::CBC in the import list. You can not call this module with the "require" statement. This is incompatible with the older versions. 0.23 Crypt::Rijndael 0.02 compatibility was approved. Tests are some more complex now. 0.24 Crypt::TEA 1.01 by Abhijit Menon-Sen is checked and approved. =head1 TODO どんな提案も大歓迎です。 =head1 バグ どうかレポートをください。 =head1 バージョン このマニュアル・ページは"Crypt::CBCeasy" バージョン 0.24 2001年2月18日についての ものです。 =head1 作者 Mike Blazer, blazer@mail.nevalink.ru http://base.dux.ru/guest/fno/perl/ =head1 参考資料 Crypt::CBC =head1 著作権(COPYRIGHT) Copyright (C) 2000-2001 Mike Blazer. This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 翻訳者 川合孝典(GCD00051@nifty.ne.jp)