class As2::Message
Attributes
original_message[R]
Public Class Methods
new(message, private_key, public_certificate)
click to toggle source
# File lib/as2/message.rb, line 7 def initialize(message, private_key, public_certificate) @original_message = message @private_key = private_key @public_certificate = public_certificate end
Public Instance Methods
attachment()
click to toggle source
Return the attached file, use .filename and .body on the return value
# File lib/as2/message.rb, line 27 def attachment if mail.has_attachments? mail.attachments.find{|a| a.content_type == "application/edi-consent"} else mail end end
decrypted_message()
click to toggle source
# File lib/as2/message.rb, line 13 def decrypted_message @decrypted_message ||= decrypt_smime(original_message) end
valid_signature?(partner_certificate)
click to toggle source
# File lib/as2/message.rb, line 17 def valid_signature?(partner_certificate) store = OpenSSL::X509::Store.new store.add_cert(partner_certificate) smime = Base64Helper.ensure_body_base64(decrypted_message) message = read_smime(smime) message.verify [partner_certificate], store end
Private Instance Methods
decrypt_smime(smime)
click to toggle source
# File lib/as2/message.rb, line 44 def decrypt_smime(smime) message = read_smime(smime) message.decrypt @private_key, @public_certificate end
mail()
click to toggle source
# File lib/as2/message.rb, line 36 def mail @mail ||= Mail.new(decrypted_message) end
read_smime(smime)
click to toggle source
# File lib/as2/message.rb, line 40 def read_smime(smime) OpenSSL::PKCS7.read_smime(smime) end