Module: Passcard

Defined in:
lib/passcard.rb,
lib/passcard/cli.rb,
lib/passcard/grid.rb,
lib/passcard/reader.rb,
lib/passcard/palette.rb,
lib/passcard/version.rb,
lib/passcard/generator.rb,
lib/passcard/outputter.rb,
lib/passcard/outputter/html_outputter.rb,
lib/passcard/outputter/ascii_outputter.rb

Defined Under Namespace

Classes: AsciiOutputter, CLI, Error, Generator, Grid, HtmlOutputter, Outputter, Palette, Reader

Constant Summary collapse

GRID_SIZE =
[80, 80]
ALPHA_GRID =
[40, 40]
NUMERIC_GRID =
[20, 20]
CHARSET =
'0123456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ@#$%&*<>?-+{}[]()\/'
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.create!(*args) ⇒ Object



53
54
55
# File 'lib/passcard.rb', line 53

def self.create!(*args)
  Passcard::Generator.create_key_file(*args)
end

.decrypt!(key, enc_str) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/passcard.rb', line 45

def self.decrypt!(key, enc_str)
  cipher     = OpenSSL::Cipher.new('DES-EDE3-CBC').decrypt
  cipher.key = Random.new(key.to_i(36)).bytes(24)
  decrypted  = cipher.update(Base64.decode64(enc_str))
  output     = decrypted << cipher.final
  JSON.parse(output)
end

.encrypt!(key, object) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/passcard.rb', line 37

def self.encrypt!(key, object)
  object = object.to_json
  cipher = OpenSSL::Cipher.new('DES-EDE3-CBC').encrypt
  cipher.key = Random.new(key.to_i(36)).bytes(24)
  output = cipher.update(object) + cipher.final
  Base64.encode64(output)
end

.outputter_class_for(name) ⇒ Object



31
32
33
34
35
# File 'lib/passcard.rb', line 31

def self.outputter_class_for(name)
  klass = outputters[name.to_sym].first
  return klass if klass.is_a?(Class)
  Kernel.const_get(klass.to_s)
end

.outputtersObject



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

def self.outputters
  @@outputters ||= {}
end

.read!(*args) ⇒ Object



57
58
59
# File 'lib/passcard.rb', line 57

def self.read!(*args)
  Passcard::Reader.read_key_file(*args)
end

.register_outputter(name, klass, method_name) ⇒ Object



22
23
24
25
# File 'lib/passcard.rb', line 22

def self.register_outputter(name, klass, method_name)
  @@outputters ||= {}
  @@outputters[name.to_sym] = [klass, method_name.to_sym]
end

.rootObject



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

def self.root
  Pathname.new(File.dirname(File.dirname(__FILE__)))
end

.unregister_outputter(name) ⇒ Object



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

def self.unregister_outputter(name)
  @@outputters.delete(name.to_sym)
end