write_smime(p7sig, data=nil, flags = 0) -> String
[permalink][rdoc][edit]-
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
data には署名対象のデータを渡します。 data に nil を渡すと OpenSSL::PKCS7#data で得られる文字列を用います。通常は nil を渡してください。
flags には以下の定数の or を渡します。
- OpenSSL::PKCS7::DETACHED クリア署名をします。これは OpenSSL::PKCS7.sign で OpenSSL::PKCS7::DETACHED を渡した場合にのみ意味を持ちます。
- OpenSSL::PKCS7::TEXT MIME ヘッダに text/plain を付加します。 これは OpenSSL::PKCS7.sign で OpenSSL::PKCS7::DETACHED を渡した場合にのみ意味を持ちます。
例:
require 'openssl' data = "foobar" p7 = OpenSSL::PKCS7.sign( OpenSSL::X509::Certificate.new(File.read('cert.pem')), OpenSSL::PKey::RSA.new(File.read('privkey.pem')), data) smime = PKCS7.write_smime(p7)
- [PARAM] p7sig:
- PKCS#7 オブジェクト
- [PARAM] data:
- 署名されたデータ文字列
- [PARAM] flags:
- フラグ(整数値)
- [EXCEPTION] OpenSSL::PKCS::PKCS7Error:
- S/MIME形式への変換に失敗した場合に発生します