singleton method OpenSSL::PKCS7.encrypt

encrypt(certs, data, cipher=nil, flags=0) -> OpenSSL::PKCS7[permalink][rdoc][edit]

data を証明書の公開鍵で暗号化します。

暗号化は複数の公開鍵を用いてすることが可能です。そのためには複数の証明書を配列で渡します。

data には任意の文字列を渡せますが、一般的には MIME 形式の文字列を渡します。署名と暗号化の両方をしたい場合は、署名(OpenSSL::PKCS7.sign)された S/MIME 形式の文字列を渡すことが一般的です。

cipher は共通鍵暗号の方式を OpenSSL::Cipher オブジェクトで指定します。 nil を渡すと適当な方式が選ばれます。互換性を気にするのであれば triple DES を使うとよいでしょう。多くのクライアントで利用可能なはずです。

flags には以下のフラグを渡すことができます。

  • OpenSSL::PKCS7::TEXT 暗号化するデータに text/plain タイプの MIME ヘッダを追加します。 MIME形式のデータを渡すときにはこれを使ってはいけません。
  • OpenSSL::PKCS7::BINARY data に MIME 正規化をほどこしません。
[PARAM] certs:
公開鍵を含む証明書(OpenSSL::X509::Certificate オブジェクト)の配列
[PARAM] data:
暗号化対象の文字列
[PARAM] cipher:
共通鍵暗号の方式(OpenSSL::Cipher オブジェクト)
[PARAM] flags:
フラグ