class Freydis::Cryptsetup
Public Class Methods
new(data)
click to toggle source
# File lib/freydis/cryptsetup.rb, line 5 def initialize(data) @data = data @dev_ids = [ "/dev/disk/by-id/" + @data[:disk_id] ||= " ", "/dev/disk/by-uuid/" + @data[:disk_uuid] ||= " ", "/dev/disk/by-partuuid/" + @data[:disk_partuuid] ||= " ", "/dev/" + @data[:disk] ] @mapper_name = "freydis-enc" @mountpoint ="/mnt/freydis" end
Public Instance Methods
close()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 37 def close umount exec "cryptsetup -v close #{@mapper_name}" if File.exists? "/dev/mapper/#{@mapper_name}" end
encrypt()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 17 def encrypt puts "Encrypting disk..." @dev_ids.each { |f| if File.exists? f exec "cryptsetup -v --type luks2 --verify-passphrase luksFormat #{f}" break if $?.success? end } end
format()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 42 def format exec "mkfs.ext4 /dev/mapper/#{@mapper_name}" end
mount()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 46 def mount create_mountpoint puts "Mounting disk at #{@mountpoint}" exec "mount -t ext4 /dev/mapper/#{@mapper_name} #{@mountpoint}" end
open()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 27 def open puts "Openning disk #{@mapper_name}..." @dev_ids.each { |f| if File.exist? f exec "cryptsetup -v open #{f} #{@mapper_name}" break if $?.success? end } end
Private Instance Methods
create_mountpoint()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 54 def create_mountpoint if Process.uid === 0 Dir.mkdir @mountpoint unless Dir.exist? @mountpoint else exec "mkdir -p #{@mountpoint}" unless Dir.exist? @mountpoint end end
exec(command)
click to toggle source
# File lib/freydis/cryptsetup.rb, line 69 def exec(command) sudo = Process.uid != 0 ? 'sudo' : '' if !system("#{sudo} #{command}") raise StandardError, "[-] #{command}" end end
umount()
click to toggle source
# File lib/freydis/cryptsetup.rb, line 62 def umount dir_length = Dir.glob("#{@mountpoint}/*").length if dir_length >= 1 # should contain lost+found if mount exec "umount #{@mountpoint}" end end