secureRetrieve method

Future<String?> secureRetrieve(
  1. String key
)

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;
  }
}