@vqp/data-encrypted
Version:
Encrypted data adapter for VQP
53 lines • 1.67 kB
TypeScript
/**
* 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