Class: Virgil::SDK::HighLevel::VirgilKeyManager
- Inherits:
-
Object
- Object
- Virgil::SDK::HighLevel::VirgilKeyManager
- 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
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Instance Method Summary collapse
-
#delete(key_name) ⇒ Object
Remove the VirgilKey from current storage by specified key name.
-
#generate ⇒ Object
Generates a new VirgilKey with default parameters.
-
#import(buffer, password = nil) ⇒ Object
Imports the VirgilKey from buffer.
-
#initialize(context) ⇒ VirgilKeyManager
constructor
A new instance of VirgilKeyManager.
-
#load(key_name, key_password = nil) ⇒ Object
Loads the VirgilKey from current storage by specified key name.
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
#context ⇒ Object (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
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 |
#generate ⇒ Object
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
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 |