Class: ActiveCipherStorage::Providers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/active_cipher_storage/providers/base.rb

Direct Known Subclasses

AwsKmsProvider, EnvProvider

Instance Method Summary collapse

Instance Method Details

#decrypt_data_key(encrypted_key) ⇒ Object

Returns the plaintext DEK (32 bytes). Caller must zero it after use.

Raises:

  • (NotImplementedError)


10
11
12
# File 'lib/active_cipher_storage/providers/base.rb', line 10

def decrypt_data_key(encrypted_key)
  raise NotImplementedError, "#{self.class}#decrypt_data_key is not implemented"
end

#generate_data_keyObject

Returns { plaintext_key: String (32 bytes), encrypted_key: String }

Raises:

  • (NotImplementedError)


5
6
7
# File 'lib/active_cipher_storage/providers/base.rb', line 5

def generate_data_key
  raise NotImplementedError, "#{self.class}#generate_data_key is not implemented"
end

#key_idObject

Stable identifier for the specific key material in use (e.g. CMK ARN, env var name). Stored in blob metadata for visibility. Return nil if your provider has no stable key identifier.



22
23
24
# File 'lib/active_cipher_storage/providers/base.rb', line 22

def key_id
  nil
end

#provider_idObject

Short ASCII string embedded in every encrypted file header.

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/active_cipher_storage/providers/base.rb', line 15

def provider_id
  raise NotImplementedError, "#{self.class}#provider_id is not implemented"
end