Class: CcipherBox::MemVault
- Inherits:
-
Object
- Object
- CcipherBox::MemVault
show all
- Includes:
- TR::CondUtils
- Defined in:
- lib/ccipher_box/mem_vault.rb
Overview
Collection of crypto keys in a vault to be used by application. Application can register a key that tie with a name here and later use the name to encrypt a data This only store keys that will be kept in memory Not meant to be persistance
Defined Under Namespace
Classes: MemVaultException
Instance Method Summary
collapse
Constructor Details
#initialize(ringName) ⇒ MemVault
Returns a new instance of MemVault.
18
19
20
|
# File 'lib/ccipher_box/mem_vault.rb', line 18
def initialize(ringName)
@ringName = ringName
end
|
Instance Method Details
#decrypt(cipher) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/ccipher_box/mem_vault.rb', line 42
def decrypt(cipher)
keyID = BinStruct.instance.struct_fields_from_bin(cipher, 2)[0]
keyID = MemKey.to_KeyID(keyID)
foundKey = nil
vault.values.each do |k|
if k.keyID == keyID
foundKey = k
break
end
end
if not_empty?(foundKey)
logger.debug "Found decryption key with label #{vault.invert[foundKey]}"
foundKey.decrypt(cipher)
else
raise KeyNotRegistered, "Encryption key for this cipher not registered (KeyID : #{keyID})"
end
end
|
#deregister(name) ⇒ Object
28
29
30
31
|
# File 'lib/ccipher_box/mem_vault.rb', line 28
def deregister(name)
vault.delete(name)
self
end
|
#derive(name) ⇒ Object
63
64
65
|
# File 'lib/ccipher_box/mem_vault.rb', line 63
def derive(name)
vault[name].derive
end
|
#encrypt(name, data, &block) ⇒ Object
37
38
39
40
|
# File 'lib/ccipher_box/mem_vault.rb', line 37
def encrypt(name, data, &block)
key = vault[name]
key.encrypt(data, &block)
end
|
#get_key(name) ⇒ Object
67
68
69
|
# File 'lib/ccipher_box/mem_vault.rb', line 67
def get_key(name)
vault[name]
end
|
#is_registered?(name) ⇒ Boolean
33
34
35
|
# File 'lib/ccipher_box/mem_vault.rb', line 33
def is_registered?(name)
vault.keys.include?(name)
end
|
#register(name, key) ⇒ Object
22
23
24
25
26
|
# File 'lib/ccipher_box/mem_vault.rb', line 22
def register(name, key)
@dataConv = Ccrypto::UtilFactory.instance(:data_conversion)
vault[name] = MemKey.new(@ringName, key, name)
self
end
|