generateAndStoreKey method
Future<EncryptionOptions>
generateAndStoreKey({
- String? keyName,
- EncryptionAlgorithm algorithm = EncryptionAlgorithm.aes256,
Generates a secure random key and stores it in secure storage.
The keyName
parameter can be used to specify a custom name for the key.
If not provided, a default name will be used.
Returns the generated encryption options.
Implementation
Future<EncryptionOptions> generateAndStoreKey({
String? keyName,
EncryptionAlgorithm algorithm = EncryptionAlgorithm.aes256,
}) async {
final key = Encryption.generateSecureKey();
final effectiveKeyName = keyName ?? _defaultKeyName;
await _secureStorage.write(
key: _getKey(effectiveKeyName),
value: key,
);
await _secureStorage.write(
key: _getKey(_defaultAlgorithmName),
value: algorithm.toString().split('.').last,
);
_log.info('Generated and stored encryption key: $effectiveKeyName');
return EncryptionOptions(
algorithm: algorithm,
key: key,
);
}