Class: Virgil::SDK::HighLevel::VirgilKeyManager

Inherits:
Object
  • Object
show all
Defined in:
lib/virgil/sdk/high_level/virgil_key_manager.rb

Overview

this class provides a list of methods to generate the VirgilKey and further them storage in secure place.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ VirgilKeyManager

Returns a new instance of VirgilKeyManager.



42
43
44
# File 'lib/virgil/sdk/high_level/virgil_key_manager.rb', line 42

def initialize(context)
  @context = context
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



40
41
42
# File 'lib/virgil/sdk/high_level/virgil_key_manager.rb', line 40

def context
  @context
end

Instance Method Details

#delete(key_name) ⇒ Object

Remove the VirgilKey from current storage by specified key name.

Args:

key_name: The name of the key.

Raises:

KeyEntryNotFoundException: if key storage doesn't have item with such name
ArgumentError: key_name is not valid if key_name is nil
KeyStorageException: Destination folder doesn't exist or you don't have permission to write there

Raises:

  • (ArgumentError)


97
98
99
100
101
102
# File 'lib/virgil/sdk/high_level/virgil_key_manager.rb', line 97

def delete(key_name)

  raise ArgumentError.new("key_name is not valid") if key_name.nil?

  context.key_storage.delete(key_name)
end

#generateObject

Generates a new VirgilKey with default parameters.



48
49
50
51
# File 'lib/virgil/sdk/high_level/virgil_key_manager.rb', line 48

def generate
  key_pair = context.crypto.generate_keys()
  VirgilKey.new(context, key_pair.private_key)
end

#import(buffer, password = nil) ⇒ Object

Imports the VirgilKey from buffer.

Args:

buffer: The buffer with Key
password: The Key password


82
83
84
85
# File 'lib/virgil/sdk/high_level/virgil_key_manager.rb', line 82

def import(buffer, password=nil)
  private_key = context.crypto.import_private_key(buffer.bytes, password)
  VirgilKey.new(context, private_key)
end

#load(key_name, key_password = nil) ⇒ Object

Loads the VirgilKey from current storage by specified key name.

Args:

key_name: The name of the key.
key_password: The key password.

Returns:

An instance of VirgilKey class

Raises:

KeyEntryNotFoundException: if key storage doesn't have item with such name
ArgumentError: key_name is not valid if key_name is nil
KeyStorageException: Destination folder doesn't exist or you don't have permission to write there

Raises:

  • (ArgumentError)


67
68
69
70
71
72
73
74
75
# File 'lib/virgil/sdk/high_level/virgil_key_manager.rb', line 67

def load(key_name, key_password=nil)

  raise ArgumentError.new("key_name is not valid") if key_name.nil?

  storage_item = context.key_storage.load(key_name)
  private_key = context.crypto.import_private_key(storage_item.data, key_password)
  VirgilKey.new(context, private_key)

end