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)
}