Module: Syde::Vault::Crypto

Defined in:
lib/syde/crypto.rb

Class Method Summary collapse

Class Method Details

.aes(mode, key, iv, text) ⇒ Object



12
13
14
15
16
17
# File 'lib/syde/crypto.rb', line 12

def self.aes(mode, key, iv, text)
	c = cipher.send(mode)
	c.key = digest(key)
	c.iv = iv
	c.update(text) << c.final
end

.decrypt(key, iv, ciphertext) ⇒ Object



23
24
25
# File 'lib/syde/crypto.rb', line 23

def self.decrypt(key, iv, ciphertext)
	aes(:decrypt, key, iv, ciphertext)
end

.digest(input) ⇒ Object



27
28
29
# File 'lib/syde/crypto.rb', line 27

def self.digest(input)
	OpenSSL::Digest::SHA256.digest(input)
end

.encrypt(key, iv, plaintext) ⇒ Object



19
20
21
# File 'lib/syde/crypto.rb', line 19

def self.encrypt(key, iv, plaintext)
	aes(:encrypt, key, iv, plaintext)
end

.new_ivObject



8
9
10
# File 'lib/syde/crypto.rb', line 8

def self.new_iv
	cipher.random_iv
end

.random_bytes(length) ⇒ Object



4
5
6
# File 'lib/syde/crypto.rb', line 4

def self.random_bytes(length)
	File.open("/dev/urandom") { |f| f.read(length) }
end