Class: Fripa::Resources::Vault

Inherits:
Base
  • Object
show all
Defined in:
lib/fripa/resources/vault.rb

Instance Attribute Summary

Attributes inherited from Base

#client

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Fripa::Resources::Base

Instance Method Details

#add(cn, **scope) ⇒ Object



13
14
15
16
# File 'lib/fripa/resources/vault.rb', line 13

def add(cn, **scope)
  validate_identifier!(cn, "cn")
  call("vault_add_internal", [cn], { ipavaulttype: "standard" }.merge(scope))
end

#add_member(cn, **scope) ⇒ Object



38
39
40
41
# File 'lib/fripa/resources/vault.rb', line 38

def add_member(cn, **scope)
  validate_identifier!(cn, "cn")
  call("vault_add_member", [cn], scope)
end

#archive(cn, data:, **scope) ⇒ Object



18
19
20
21
22
23
# File 'lib/fripa/resources/vault.rb', line 18

def archive(cn, data:, **scope)
  validate_identifier!(cn, "cn")
  transport_cert_der = fetch_transport_cert
  payload = VaultTransport.wrap(data, transport_cert_der)
  call("vault_archive_internal", [cn], binary_encode(payload).merge(wrapping_algo: VaultTransport::WRAPPING_ALGO).merge(scope))
end

#delete(cn, **scope) ⇒ Object



43
44
45
46
# File 'lib/fripa/resources/vault.rb', line 43

def delete(cn, **scope)
  validate_identifier!(cn, "cn")
  call("vault_del", [cn], scope)
end

#retrieve(cn, **scope) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/fripa/resources/vault.rb', line 25

def retrieve(cn, **scope)
  validate_identifier!(cn, "cn")
  session_key = VaultTransport.generate_session_key
  response = call_retrieve(cn, session_key, **scope)
  result = response.dig("result", "result")

  VaultTransport.decrypt(
    vault_data: extract_value(result["vault_data"]),
    nonce: extract_value(result["nonce"]),
    session_key: session_key
  )
end

#show(cn, **scope) ⇒ Object



8
9
10
11
# File 'lib/fripa/resources/vault.rb', line 8

def show(cn, **scope)
  validate_identifier!(cn, "cn")
  call("vault_show", [cn], scope)
end