singleton method OpenSSL::PKCS7.sign

sign(cert, key, data, certs = [], flags = 0) -> OpenSSL::PKCS7[permalink][rdoc][edit]

data に証明書と秘密鍵で署名します。

cert に署名に使う証明書を、key にその証明書に対応する秘密鍵を渡します。certs に OpenSSL::X509::Certificate オブジェクトの配列 を渡すと OpenSSL::PKCS7 オブジェクトにそれらの証明書が追加で保持されます。例えば中間 CA 証明書などを渡します。 flags は以下の値の OR を渡します。

  • OpenSSL::PKCS7::TEXT text/plain 用の MIME ヘッダをデータに付け加える。
  • OpenSSL::PKCS7::NOCERTS 署名者の証明書を署名に含めません。送り先がすでに証明書をもっている場合 など、他の方法で証明書を手に入れることができる場合に データ量を減らすために用います。
  • OpenSSL::PKCS7::DETACHED クリア署名(multipart/signed)をする。
  • OpenSSL::PKCS7::BINARY data に MIME 正規化を施さない。
  • OpenSSL::PKCS7::NOATTR PKCS#7 autenticatedAttributes (署名時刻など)をオブジェクトに含めない。
  • OpenSSL::PKCS7::NOSMIMECAP 署名者が使用可能な暗号アルゴリズムの情報など(SMIMECapabilities)を省略する。

返り値は署名結果を含む OpenSSL::PKCS7 オブジェクトを返します。

[PARAM] cert:
署名に用いる証明書(OpenSSL::X509::Certificate オブジェクト)
[PARAM] key:
署名に用いる秘密鍵(OpenSSL::PKey::PKey のサブクラスのオブジェクト)
[PARAM] data:
署名対象のデータ文字列
[PARAM] certs:
添付する証明書群(OpenSSL::X509::Certificate オブジェクトの配列)
[PARAM] flags:
フラグ(整数値)
[EXCEPTION] OpenSSL::PKCS7::PKCS7Error:
署名に失敗した場合に発生します