Class: SecretX::AES

Inherits:
Object
  • Object
show all
Includes:
Encode
Defined in:
lib/secretx/aes.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Encode

#decode_if_need, #encode_if_need

Constructor Details

#initialize(mode = Mode::AES_256_CBC) ⇒ AES

Returns a new instance of AES.



9
10
11
# File 'lib/secretx/aes.rb', line 9

def initialize(mode = Mode::AES_256_CBC)
  @cipher = OpenSSL::Cipher::Cipher.new mode
end

Class Method Details

.decrypt(msg) ⇒ Object



21
22
23
# File 'lib/secretx/aes.rb', line 21

def self.decrypt(msg)
  self.mode.decrypt msg
end

.encrypt(msg) ⇒ Object



17
18
19
# File 'lib/secretx/aes.rb', line 17

def self.encrypt(msg)
  self.mode.encrypt msg
end

.mode(mode = Mode::AES_256_CBC) ⇒ Object



13
14
15
# File 'lib/secretx/aes.rb', line 13

def self.mode(mode = Mode::AES_256_CBC)
  self.new(mode)
end

Instance Method Details

#decrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.conf.aes_iv) ⇒ Object



32
33
34
35
36
37
# File 'lib/secretx/aes.rb', line 32

def decrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.conf.aes_iv)
  @cipher.decrypt
  @cipher.key = digest_key(key)
  @cipher.iv = iv if iv != nil
  @cipher.update(decode_if_need(msg)) + @cipher.final
end

#encrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.conf.aes_iv) ⇒ Object



25
26
27
28
29
30
# File 'lib/secretx/aes.rb', line 25

def encrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.conf.aes_iv)
  @cipher.encrypt
  @cipher.key = digest_key(key)
  @cipher.iv = iv if iv != nil
  encode_if_need(@cipher.update(msg) + @cipher.final)
end