Class: Duse::Client::UpdateSecret

Inherits:
Object
  • Object
show all
Defined in:
lib/duse/client/secret.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(secret, values_to_update) ⇒ UpdateSecret

Possible Scenarios


change title change secret -> changes cipher + shares change users -> changes shares



13
14
15
16
# File 'lib/duse/client/secret.rb', line 13

def initialize(secret, values_to_update)
  @secret = secret
  @values = values_to_update
end

Class Method Details

.values(secret, value_hash) ⇒ Object



39
40
41
# File 'lib/duse/client/secret.rb', line 39

def self.values(secret, value_hash)
  new(secret, value_hash)
end

Instance Method Details

#buildObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/duse/client/secret.rb', line 23

def build
  result = {}
  result[:title] = @values[:title] if @values[:title]
  if @values[:secret_text]
    users = @secret.users || @values[:current_users]
    cipher_text, shares = Encryption.encrypt(@values[:secret_text], users, @private_key)
    result[:cipher_text] = cipher_text
    result[:shares] = shares
  end
  if @values[:secret_text].nil? && @values[:users]
    symmetric_key = Encryption.decrypt_symmetric_key(@secret.shares, @private_key)
    result[:shares] = Encryption.encrypt_symmetric_key(symmetric_key, @values[:users], @private_key)
  end
  result
end

#encrypt_with(private_key) ⇒ Object



18
19
20
21
# File 'lib/duse/client/secret.rb', line 18

def encrypt_with(private_key)
  @private_key = private_key
  self
end