UNPKG

@vqp/data-encrypted

Version:

Encrypted data adapter for VQP

53 lines 1.67 kB
/** * Encrypted Data Adapter - Implements DataAccessPort with transparent encryption * This adapter provides AES-256-GCM encryption for vault data storage */ import { DataAccessPort } from '@vqp/core'; export interface EncryptedDataConfig { vaultPath: string; policiesPath?: string; encryptionKey?: string; keyDerivation?: { iterations: number; salt?: string; keyLength: number; }; cacheEnabled?: boolean; compressionEnabled?: boolean; } export declare class EncryptedDataAdapter implements DataAccessPort { private config; private static readonly ALGORITHM; private static readonly DEFAULT_ITERATIONS; private static readonly DEFAULT_KEY_LENGTH; private static readonly VAULT_VERSION; private dataCache; private policiesCache; private encryptionKey; private accessCounts; constructor(config: EncryptedDataConfig); getData(path: string[]): Promise<any>; validateDataAccess(path: string[], requester: string): Promise<boolean>; hasData(path: string[]): Promise<boolean>; /** * Encrypts and saves vault data */ saveVault(data: any): Promise<void>; /** * Clears the data cache */ clearCache(): void; /** * Updates the encryption key and re-encrypts all data */ rotateEncryptionKey(newEncryptionKey: string): Promise<void>; private initializeEncryptionKey; private loadVault; private decryptVaultData; private loadPolicies; private extractNestedData; private hasExplicitAccess; private matchesWildcard; private checkRateLimit; } //# sourceMappingURL=encrypted-adapter.d.ts.map