Crypt-SMIME

 view release on metacpan or  search on metacpan

lib/SMIME/JA.pod  view on Meta::CPAN

署名を行い、MIMEメッセージを返す。可能な署名はクリア署名のみ。

C<Content-*>, C<MIME-*> 及び C<Subject> を除いたヘッダは
multipartのトップレベルに移される。
C<Subject> はS/MIMEを認識できないメーラのために, multipartの
トップレベルと保護されるメッセージの両側に配置される。

元の MIME メッセージ、秘密鍵、またはその証明書のいずれかが汚染されている
(tainted) ならば、署名されたメッセージも汚染される。

=item signonly()

  $sign = $smime->signonly($prepared_mime);

署名の計算を行う。
C<$sign> はBASE64でエンコードされて返る。
C<$prepared_mime> には, L</prepareSmimeMessage> で返される値を渡す。

元の MIME メッセージ、秘密鍵、またはその証明書のいずれかが汚染されている
(tainted) ならば、生成された署名も汚染される。

=item prepareSmimeMessage()

  ($prepared_mime, $outer_header)
      = $smime->prepareSmimeMessage($source_mime);

署名用のメッセージを準備する。
C<$prepared_mime> には署名用に修正されたMIMEメッセージを返す。
C<$outer_header> は、S/MIMEの外側に付与するヘッダを返す。

C<$prepared_mime> の本文はC<$source_mime>と同じ物となるが、
ヘッダに関してはC<Content-*>, C<MIME-*>, C<Subject> を除く全てが
取り除かれる。取り除かれたヘッダは C<$outer_header> に返される。
S/MIMEメッセージを構築する際にはこれをS/MIMEメッセージのヘッダに追加する。
C<Subject> ヘッダのみは C<$prepared_mime> と C<$outer_header> の両方に
現れる点に注意。

=item check()

  use Crypt::SMIME qw(:constants);

  $source_mime = $smime->check($signed_mime);
  $source_mime = $smime->check($signed_mime, $flags);

検証を行う。検証に失敗した場合はその理由と共にdieする。

C<$flags> として C<Crypt::SMIME::NO_CHECK_CERTIFICATE>
オプションを指定した場合には、署名者の証明書チェーンを検証しない。
C<$flags> のデフォルト値は C<0>
であり、この場合には全ての整合性についての検証を行う。

元の S/MIME メッセージ, C<$flags>, 検証時刻 (L</setAtTime>), または
公開鍵の少なくとも一つが汚染されている(tainted) ならば、検証されたメッセージも汚染される。

=item encrypt()

  $encrypted_mime = $smime->encrypt($raw_mime);
  $encrypted_mime = $smime->encrypt($raw_mime, $cipher);

暗号化を行う. 利用している OpenSSL の理解するようなどのような C<$cipher>
でも指定できる. デフォルトは "AES-128-CBC" である.

C<Content-*>, C<MIME-*> 及び C<Subject> を除いたヘッダは
multipartのトップレベルにコピーされる。
C<Subject> はS/MIMEを認識できないメーラのために, multipartの
トップレベルと保護されるメッセージの両側に配置される。

元の MIME メッセージ、または公開鍵の少なくとも一つが汚染されている
(tainted) ならば、暗号化されたメッセージも汚染される。

=item decrypt()

  $decrypted_mime = $smime->decrypt($encrypted_mime);

復号を行う。復号に失敗した場合はその理由と共にdieする。

元の S/MIME メッセージ、秘密鍵、またはその証明書のいずれかが汚染されている
(tainted) ならば、復号されたメッセージも汚染される。

=item isSigned()

  $is_signed = $smime->isSigned($mime);

渡されたMIMEメッセージがS/MIMEで署名されたものなら真を返す。
クリア署名かどうかは問わない。
署名後に暗号化したメッセージを渡した場合は、署名が直接見えない為、
偽を返す事に注意。

=item isEncrypted()

  $is_encrypted = $smime->isEncrypted($mime);

渡されたMIMEメッセージがS/MIMEで暗号化されたものなら真を返す。
暗号化後に署名したメッセージを渡した場合は、暗号文が直接見えない為、
偽を返す事に注意。

=back

=over

=item setAtTime()

  $yesterday = time - (60*60*24);
  $smime->setAtTime($yesterday);

検証時に用いる時刻を設定する。デフォルトは現在時刻。
UNIX epoch 形式でなければならない。

=item setVerifyFlags()

  $smime->setVerifyFlags(C<Crypt::SMIME::CRL_CHECK>);

検証時に用いるフラグを設定する.
C<Crypt::SMIME::CRL_CHECK> 署名者の証明書の CRL を検証する.
C<Crypt::SMIME::CRL_CHECK_ALL> 証明書チェイン全体の CRL を検証する.
必要な CRL が存在しない場合は検証に失敗する.

=back

=head1 関数



( run in 0.579 second using v1.01-cache-2.11-cpan-e1769b4cff6 )