Class: EasyAES

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

Class Method Summary collapse

Class Method Details

.decrypt(data, secret) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/easy_aes.rb', line 39

def self.decrypt data, secret
  # create the cipher for encrypting
  cipher = OpenSSL::Cipher::Cipher.new 'aes-256-cbc'
  cipher.decrypt

  # load secret into the cipher
  secret = deserialize secret
  cipher.key = secret.first
  cipher.iv = secret.last

  # decrypt the message
  data = deserialize data
  decrypted = cipher.update data
  decrypted << cipher.final

  decrypted
end

.deserialize(data) ⇒ Object



18
19
20
# File 'lib/easy_aes.rb', line 18

def self.deserialize data
  YAML.load Base64.decode64(data)
end

.encrypt(data, secret) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/easy_aes.rb', line 22

def self.encrypt data, secret
  # create the cipher for encrypting
  cipher = OpenSSL::Cipher::Cipher.new 'aes-256-cbc'
  cipher.encrypt

  # load secret into the cipher
  secret = deserialize secret
  cipher.key = secret.first
  cipher.iv = secret.last

  # encrypt the message
  encrypted = cipher.update data
  encrypted << cipher.final

  serialize encrypted
end

.generate_secretObject



9
10
11
12
# File 'lib/easy_aes.rb', line 9

def self.generate_secret
  cipher = OpenSSL::Cipher::Cipher.new 'aes-256-cbc'
  serialize [cipher.random_key, cipher.random_iv]
end

.serialize(data) ⇒ Object



14
15
16
# File 'lib/easy_aes.rb', line 14

def self.serialize data
  Base64.encode64 data.to_yaml
end