Class: OpenLoam::Encryption::KeyProvider
- Inherits:
-
Object
- Object
- OpenLoam::Encryption::KeyProvider
- Defined in:
- lib/open_loam/encryption/key_provider.rb
Overview
The seam a real KMS plugs into. A provider turns (scope, purpose) into a
32-byte data key; swap the default for a Vault/AWS-KMS-backed provider via
OpenLoam::Encryption.key_provider = MyKmsProvider.new and NO call site
changes — Cipher and Encryptable only ever ask for a key.
scope is a namespaced owner string: "tenant/5" for an entity field,
"user/12" for genuinely user-owned data (an MFA secret) that must decrypt
regardless of which tenant the user is currently acting in.
Direct Known Subclasses
Instance Method Summary collapse
Instance Method Details
#data_key(scope:, purpose:) ⇒ Object
12 13 14 |
# File 'lib/open_loam/encryption/key_provider.rb', line 12 def data_key(scope:, purpose:) raise NotImplementedError, "#{self.class} must implement #data_key(scope:, purpose:)" end |