Class: MrSmime::Interceptor

Inherits:
Object
  • Object
show all
Defined in:
lib/mr_smime/interceptor.rb

Class Method Summary collapse

Class Method Details

.delivering_email(message) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/mr_smime/interceptor.rb', line 4

def delivering_email(message)
  return message unless MrSmime.configuration.enabled

  encrypted_message = Mail.new(encrypted_data(message, signed_data(message, message.encoded)))

  overwrite_body(message, encrypted_message)
  overwrite_headers(message, encrypted_message)
end

.encrypted_data(message, data) ⇒ Object



17
18
19
# File 'lib/mr_smime/interceptor.rb', line 17

def encrypted_data(message, data)
  Encrypter.new(message).encrypted_data(data)
end

.overwrite_body(message, encrypted_message) ⇒ Object



21
22
23
24
# File 'lib/mr_smime/interceptor.rb', line 21

def overwrite_body(message, encrypted_message)
  message.body = nil
  message.body = encrypted_message.body.encoded
end

.overwrite_headers(message, encrypted_message) ⇒ Object



26
27
28
29
30
# File 'lib/mr_smime/interceptor.rb', line 26

def overwrite_headers(message, encrypted_message)
  message.content_disposition = encrypted_message.content_disposition if encrypted_message.content_disposition
  message.content_transfer_encoding = encrypted_message.content_transfer_encoding
  message.content_type = encrypted_message.content_type
end

.signed_data(message, data) ⇒ Object



13
14
15
# File 'lib/mr_smime/interceptor.rb', line 13

def signed_data(message, data)
  Signer.new(message).signed_data(data)
end