Module: Kingdom

Defined in:
lib/kingdom.rb,
lib/kingdom/box.rb,
lib/kingdom/key.rb,
lib/kingdom/version.rb

Defined Under Namespace

Classes: Box, Error, Key, King

Constant Summary collapse

VERSION =
"0.1.2"
@@CIPHER =
'AES-256-CBC'
@@SIZE =
2048

Class Method Summary collapse

Class Method Details

.[](k) ⇒ Object



87
88
89
# File 'lib/kingdom.rb', line 87

def self.[] k
  King.new(k)
end

.box(k) ⇒ Object



51
52
53
# File 'lib/kingdom/box.rb', line 51

def self.box k
  Box.new(k)
end

.cipher(*c) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/kingdom/box.rb', line 6

def self.cipher *c
  if c[0]
    @@CIPHER = c[0]
  else
    OpenSSL::Cipher.new(@@CIPHER)
  end
end

.contextObject

generic ssl context



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

def self.context
  OpenSSL::SSL::SSLContext.new
end

.decode(s) ⇒ Object



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

def self.decode s
  Base64.strict_decode64(s)
end

.digestObject



10
11
12
# File 'lib/kingdom/key.rb', line 10

def self.digest
  OpenSSL::Digest::SHA256.new
end

.encode(s) ⇒ Object



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

def self.encode s
  Base64.strict_encode64(s)
end

.key(*a, &b) ⇒ Object

Kingdom.key() #=> create new key Kingdom.key(key) #=> load unexported key Kingdom.key(key, “password”) #=> load exported key



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/kingdom/key.rb', line 21

def self.key *a, &b
  if a[1]
    b.call(Key.new(OpenSSL::PKey::RSA.new(a[0], a[1])))
  else
    if a[0]
      b.call(Key.new(OpenSSL::PKey::RSA.new(a[0])))
    else
      b.call(Key.new(OpenSSL::PKey::RSA.new(Kingdom.size)))
    end
  end
end

.size(*s) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/kingdom/key.rb', line 3

def self.size *s
  if s[0]
    @@SIZE = s[0]
  else
    @@SIZE
  end
end