encrypt function

Future<String?> encrypt(
  1. String value,
  2. EncryptionKey key, {
  3. AuthClient? client,
  4. String? additionalAuthenticatedData,
})

Encrypts a value using Google Cloud KMS.

Implementation

Future<String?> encrypt(
  String value,
  EncryptionKey key, {
  AuthClient? client,
  String? additionalAuthenticatedData,
}) async {
  final authClient = client ?? await clientViaMetadataServer();
  final kmsApi = CloudKMSApi(authClient);
  final keyPath = await _keyPath(key);
  final encryptRequest = EncryptRequest(
    plaintext: _base64Encode(value),
    additionalAuthenticatedData: _base64Encode(additionalAuthenticatedData),
  );
  final encryptResponse = await kmsApi.projects.locations.keyRings.cryptoKeys
      .encrypt(encryptRequest, keyPath);
  return encryptResponse.ciphertext;
}