store method

Future<void> store(
  1. Map<String, String> data
)

Stores sensitive data securely.

Example:

await secureStorage.store({
  'gemini_key': 'AIza...',
  'openai_key': 'sk-...',
});

Implementation

Future<void> store(Map<String, String> data) async {
  final key = await _getMachineKey();
  final jsonData = json.encode(data);
  final encrypted = _encrypt(utf8.encode(jsonData), key);

  // Write-then-rename so a crash mid-write can never leave a torn
  // creds.enc (rename is atomic on POSIX).
  final tempFile = File('${_credentialsFile.path}.tmp');
  await tempFile.writeAsBytes(encrypted);
  _restrictPermissions(tempFile.path, '600');
  tempFile.renameSync(_credentialsFile.path);
}