Skip to content
Eric Chang edited this page Feb 21, 2023 · 3 revisions

Implementation

Package Structure

  • src
    • Contracts
      • KeyManager
      • KeyProvider
      • Securable
    • Models
      • EncrpytionKey
    • Traits
      • Securable
    • Observers
      • ModelObserver
    • KeyProviders
      • AwsKmsKeyProvider
    • KeyManager
    • SecurityModelServiceProvider

Responsibility

  1. Key Provider
    1. encrypt/decrypt data
    2. encapsulate detail of integrating external key management service
  2. Key Manager
    1. retrieve available encryption key
      1. encrypt/decrypt encryption key through key provider
  3. Model Trait
    1. retrieve encryption key thought key manager to encrypt/decrypt model data
    2. update model blind index
    3. define relationship with encryption key
    4. register model observer
  4. Model Observer
    1. listen model event
      1. retrieved event
        1. encrypt data
      2. saving event
        1. encrypt data
      3. saved event
        1. decrypt data

Clone this wiki locally