export async function encrypt()

in modules/kms-keyring/src/helpers.ts [50:76]


export async function encrypt<Client extends AwsEsdkKMSInterface>(
  clientProvider: KmsClientSupplier<Client> | Client,
  Plaintext: Uint8Array,
  KeyId: string,
  EncryptionContext: EncryptionContext,
  GrantTokens?: string[]
): Promise<RequiredEncryptResponse | false> {
  const client =
    typeof clientProvider === 'function'
      ? clientProvider(getRegionFromIdentifier(KeyId))
      : clientProvider

  /* Check for early return (Postcondition): clientProvider did not return a client for encrypt. */
  if (!client) return false

  const v2vsV3Response = client.encrypt({
    KeyId,
    Plaintext,
    EncryptionContext,
    GrantTokens,
  })
  const v2vsV3Promise =
    'promise' in v2vsV3Response ? v2vsV3Response.promise() : v2vsV3Response
  const kmsEDK = await v2vsV3Promise

  return safeEncryptOutput(kmsEDK)
}