class YamlVault::Main

Public Class Methods

from_file(filename, keys, cryptor_name = nil, prefix = nil, suffix = nil, **options) click to toggle source
# File lib/yaml_vault.rb, line 14
def from_file(filename, keys, cryptor_name = nil, prefix = nil, suffix = nil, **options)
  yaml_content = ERB.new(File.read(filename)).result
  new(yaml_content, keys, cryptor_name, prefix, suffix, **options)
end
new( yaml_content, keys, cryptor_name = nil, prefix = nil, suffix = nil, passphrase: nil, sign_passphrase: nil, salt: nil, cipher: "aes-256-cbc", key_len: 32, signature_key_len: 64, digest: "SHA256", aws_kms_key_id: nil, aws_region: nil, aws_access_key_id: nil, aws_secret_access_key: nil, aws_profile: nil, gcp_kms_resource_id: nil, gcp_credential_file: nil ) click to toggle source
# File lib/yaml_vault.rb, line 22
def initialize(
  yaml_content, keys, cryptor_name = nil, prefix = nil, suffix = nil,
  passphrase: nil, sign_passphrase: nil, salt: nil, cipher: "aes-256-cbc", key_len: 32, signature_key_len: 64, digest: "SHA256",
  aws_kms_key_id: nil, aws_region: nil, aws_access_key_id: nil, aws_secret_access_key: nil, aws_profile: nil,
  gcp_kms_resource_id: nil, gcp_credential_file: nil
)
  @yaml = yaml_content
  @keys = keys
  @prefix = prefix
  @suffix = suffix

  @passphrase = passphrase
  @sign_passphrase = sign_passphrase
  @salt = salt.to_s
  @cipher = cipher
  @key_len = key_len
  @signature_key_len = signature_key_len
  @digest = digest

  @aws_kms_key_id = aws_kms_key_id
  @aws_region = aws_region
  @aws_access_key_id = aws_access_key_id
  @aws_secret_access_key = aws_secret_access_key
  @aws_profile = aws_profile

  @gcp_kms_resource_id = gcp_kms_resource_id
  @gcp_credential_file = gcp_credential_file

  @cryptor = get_cryptor(cryptor_name)
end

Public Instance Methods

decrypt() click to toggle source
# File lib/yaml_vault.rb, line 58
def decrypt
  parser = YAML::Parser.new(YamlVault::YAMLTreeBuilder.new(@keys, @prefix, @suffix, @cryptor, :decrypt))
  parser.parse(@yaml).handler.root
end
decrypt_hash() click to toggle source
# File lib/yaml_vault.rb, line 67
def decrypt_hash
  decrypt.to_ruby[0]
end
decrypt_yaml() click to toggle source
# File lib/yaml_vault.rb, line 75
def decrypt_yaml
  decrypt.to_yaml
end
encrypt() click to toggle source
# File lib/yaml_vault.rb, line 53
def encrypt
  parser = YAML::Parser.new(YamlVault::YAMLTreeBuilder.new(@keys, @prefix, @suffix, @cryptor, :encrypt))
  parser.parse(@yaml).handler.root
end
encrypt_hash() click to toggle source
# File lib/yaml_vault.rb, line 63
def encrypt_hash
  encrypt.to_ruby[0]
end
encrypt_yaml() click to toggle source
# File lib/yaml_vault.rb, line 71
def encrypt_yaml
  encrypt.to_yaml
end

Private Instance Methods

get_cryptor(name) click to toggle source
# File lib/yaml_vault.rb, line 81
def get_cryptor(name)
  case name
  when "simple"
    ValueCryptor::Simple.new(@passphrase, @sign_passphrase, @salt, @cipher, @digest, @key_len, @signature_key_len)
  when "aws-kms", "kms"
    ValueCryptor::KMS.new(@aws_kms_key_id, region: @aws_region, aws_access_key_id: @aws_access_key_id, aws_secret_access_key: @aws_secret_access_key, aws_profile: @aws_profile)
  when "gcp-kms"
    ValueCryptor::GCPKMS.new(@gcp_kms_resource_id, @gcp_credential_file)
  else
    ValueCryptor::Simple.new(@passphrase, @sign_passphrase, @salt, @cipher, @digest, @key_len, @signature_key_len)
  end
end