encrypt static method

Future<String> encrypt(
  1. String cleartext,
  2. String password
)

Encrypts passed cleartext with key generated based on password argument

Implementation

static Future<String> encrypt(String cleartext, String password) async {
  final salt = randomBytes(SALT_LENGTH);
  final iv = randomBytes(IV_LENGTH);
  final key = await deriveKey(password, salt);
  final algorithm = AesGcm.with256bits();

  final secretBox = await algorithm.encrypt(
    utf8.encode(cleartext),
    secretKey: key,
    nonce: iv,
  );

  final List<int> result =
      salt + secretBox.nonce + secretBox.cipherText + secretBox.mac.bytes;

  return hex.encode(result);
}