/* Copyright (c) Edgeless Systems GmbH SPDX-License-Identifier: AGPL-3.0-only */ // Package memfs implements a storage backend for the KMS that stores keys in memory only. // This package should be used for testing only. package memfs import ( "context" "github.com/edgelesssys/constellation/v2/internal/kms/storage" ) // Storage is the standard implementation of the Storage interface, storing keys in memory only. type Storage struct { dekPool map[string][]byte } // New creates and initializes a new Storage object. func New() *Storage { s := &Storage{ dekPool: make(map[string][]byte), } return s } // Get returns a DEK from Storage by key ID. func (s *Storage) Get(_ context.Context, keyID string) ([]byte, error) { encDEK, ok := s.dekPool[keyID] if ok { return encDEK, nil } return nil, storage.ErrDEKUnset } // Put saves a DEK to Storage by key ID. func (s *Storage) Put(_ context.Context, keyID string, encDEK []byte) error { s.dekPool[keyID] = encDEK return nil }