secureRetrieve method
Secure data retrieval
Implementation
Future<String?> secureRetrieve(String key) async {
try {
final data = _secureStorage[key];
if (data == null) return null;
// Check expiration
if (data['expires_at'] != null) {
final expiresAt = DateTime.parse(data['expires_at']);
if (DateTime.now().isAfter(expiresAt)) {
_secureStorage.remove(key);
return null;
}
}
// Decrypt the data
final decryptedValue = await decryptSensitiveData(data['value']);
_logSecurityEvent('Data retrieved securely: $key', LogLevel.info);
return decryptedValue;
} catch (e) {
_logSecurityEvent('Secure retrieve failed: $e', LogLevel.error);
return null;
}
}