module Linecook::Crypto

Public Class Methods

keygen() click to toggle source
# File lib/linecook-gem/image/crypt.rb, line 6
def self.keygen
   RbNaCl::Random.random_bytes(RbNaCl::SecretBox.key_bytes).unpack('H*').first
end

Public Instance Methods

decrypt(source, dest: nil) click to toggle source
# File lib/linecook-gem/image/crypt.rb, line 16
def decrypt(source, dest: nil)
  dest ||= "/tmp/#{File.basename(source)}-decrypted"
  File.write(dest, box.decrypt(IO.binread(source)))
  dest
end
encrypt(source, dest: nil) click to toggle source
# File lib/linecook-gem/image/crypt.rb, line 10
def encrypt(source, dest: nil)
  dest ||= "/tmp/#{File.basename(source)}"
  File.write(dest, box.encrypt(IO.binread(source)))
  dest
end

Private Instance Methods

box() click to toggle source
# File lib/linecook-gem/image/crypt.rb, line 23
def box
  @box ||= RbNaCl::SimpleBox.from_secret_key([Linecook.config[:imagekey]].pack('H*'))
end