Class: MrSmime::Encrypter
- Inherits:
-
Object
- Object
- MrSmime::Encrypter
- Defined in:
- lib/mr_smime/encrypter.rb
Instance Method Summary collapse
- #cipher ⇒ Object
- #encryptable? ⇒ Boolean
- #encrypted_data(data) ⇒ Object
-
#initialize(message) ⇒ Encrypter
constructor
A new instance of Encrypter.
- #recipient_certificates ⇒ Object
Constructor Details
#initialize(message) ⇒ Encrypter
Returns a new instance of Encrypter.
5 6 7 |
# File 'lib/mr_smime/encrypter.rb', line 5 def initialize() = end |
Instance Method Details
#cipher ⇒ Object
26 27 28 |
# File 'lib/mr_smime/encrypter.rb', line 26 def cipher @cipher ||= OpenSSL::Cipher.new('AES-128-CBC') end |
#encryptable? ⇒ Boolean
21 22 23 24 |
# File 'lib/mr_smime/encrypter.rb', line 21 def encryptable? Signer.new().signable? && recipient_certificates.all? { |certificate| !certificate.nil? && certificate.present? } end |
#encrypted_data(data) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/mr_smime/encrypter.rb', line 9 def encrypted_data(data) return data unless encryptable? OpenSSL::PKCS7.write_smime( OpenSSL::PKCS7.encrypt( recipient_certificates.map(&:certificate), data, cipher ) ) end |
#recipient_certificates ⇒ Object
30 31 32 33 34 |
# File 'lib/mr_smime/encrypter.rb', line 30 def recipient_certificates .to.map do |email_address| Certificate.find(email_address) end end |