Crypt-CBCeasy-0.24 > Crypt::CBCeasy

名前

Crypt::CBCeasy - Crypt::CBCでの簡単なことを本当に簡単にします

概要

 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);

概略

このモジュールは簡単にし、通常の仕事を単なるワンライナーにする、 Crypt::CBCのための単なるヘルパーです。

このモジュールの現行バージョンはCPANで取得することができます。

説明

以下のようにして、このモジュールを呼び出すと

  use Crypt::CBCeasy IMPORT-LIST;

IMPORT-LISTに上げられた全ての名前空間(パッケージ)に 関数encipher()decipher()を作成します。

IMPORT-LISTがなければ、これら3つの暗号しか扱うことができなかった 以前のバージョンとの互換性を保つため、デフォルトではDES::IDEA:: そしてBlowfish::に、これら2つの関数を作成します。

Blowfishと一緒に機能するためにはCrypt::CBC v. 1.22以降をインストールする 必要があります。

IDEA::関数はCrypt::IDEAをインストールしているときにのみ動きます。 DES::関数 - Crypt::DESを、Blowfish:: - Crypt::BlowfishとCrypt::CBCがバージョン 1.22 以上など。

以下に現在、Crypt::CBCeasyインターフェースを通して呼び出すことが 出来る暗号の一覧をしめします(実際にはCrypt::CBC互換のモジュールと 同じです): 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

IMPORT-LISTで、暗号の名前は大文字/小文字が区別されることに 注意してください。そのため"blowfish"はエラーになります。 元になっているモジュールに対応するものと同じになるよう正確に 打ち込んでください。

関数encipher()decipher()はいずれも3つのパラメータをとります:

  1 - 暗号化/復号化キー
  2 - 情報元
  3 - 出力先

情報元は以下のものを設定することができます:既存のファイル、スカラー(暗号化 される単なる文字列)、オープンされたファイルハンドル、ファイルハンドルを継承した 何らかのオブジェクト、例えばIO::FileやFileHandleオブジェクト、そしてソケット。

ここではスカラーと出力ファイル名を区別することができないためスカラーを除けば、 出力先は上記のすべてを指定することができます。

おそらく、例をみたほうが簡単でしょう:

($fhという変数はIO::Handle、IO::FileあるいはFileHandleオブジェクト、 "GLOB"型の変数、"GLOB"リファレンスあるいはソケットです。)

IDEA::encipher( $my_key, "in-file", "out-file" );

IDEA::encipher( $my_key, *IN, "out-file" );

IDEA::encipher( $my_key, \*IN, "out-file" );

IDEA::encipher( $my_key, $fh_in, "out-file" );

IDEA::encipher( $my_key, "in-file", *OUT );

IDEA::encipher( $my_key, "in-file", \*OUT );

IDEA::encipher( $my_key, "in-file", $fh_out );

IDEA::encipher( $my_key, *IN, *OUT );

IDEA::encipher( $my_key, \*IN, \*OUT );

IDEA::encipher( $my_key, $fh_in, $fh_out );

IDEA::encipher( $my_key, $plain_text, "out-file" );

IDEA::encipher( $my_key, $plain_text, *OUT );

IDEA::encipher( $my_key, $plain_text, \*OUT );

IDEA::encipher( $my_key, $plain_text, $fh_out );

上記のすべてが機能し、予想されていることを行います。

さらに結果をスカラで返す、引数2つのバージョンもあります:

$crypted_text = IDEA::encipher( $my_key, $plain_text );

$crypted_text = IDEA::encipher( $my_key, "in-file" );

$crypted_text = IDEA::encipher( $my_key, *IN );

$crypted_text = IDEA::encipher( $my_key, \*IN );

$crypted_text = IDEA::encipher( $my_key, $fh );

同じことがIMPORT-LISTにある全ての暗号方法で可能です。

エラーのさいには全ての関数がcroakします("input file not found"のように)、 そのためエラーをトラップしたければ、それらをeval{}ブロックの内側で 使用し、$@をチェックしてください。

あなたがbinmodeを要求してもしなくても、と全てのファイルハンドルが binmodeで使われることに注意してください。たとえばWin32では、この 結果、もし "crypted_file" が以下のようにして作成されると

 DES::encipher($my_key, "text_file", "crypted_file");

こうした後には

 $plain_text = DES::decipher($my_key, "crypted_file");

$plain_textにはCRLFが入ります。

もしファイルハンドルが前に使われていると - 先頭に戻す/あるいは クローズすることは、あなたの仕事です。

インストール

これは単なるモジュールなので、何も特別なインストールは必要ありません。 @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互換モジュール

注意

このモジュールはWin95/98/2000Pro環境でPerl 5.004_02と ActiveState ActivePerl build 618で作成され、テストされてきました 私は他のシステムでも正しく機能することを期待しています。

変更履歴

 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 <drumheller@alum.mit.edu>
    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 <ams@wiw.org> is checked
    and approved.

TODO

どんな提案も大歓迎です。

バグ

どうかレポートをください。

バージョン

このマニュアル・ページは"Crypt::CBCeasy" バージョン 0.24 2001年2月18日についての ものです。

作者

Mike Blazer, blazer@mail.nevalink.ru

http://base.dux.ru/guest/fno/perl/

参考資料

Crypt::CBC

著作権(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.

翻訳者

川合孝典(GCD00051@nifty.ne.jp)