/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ /** * * A module containing various checksum implementations intended for streaming payloads * * @packageDocumentation * @module checksums * @mergeTarget */ import crt_native from './binding'; import { Hashable } from "../common/crypto"; /** * Computes an crc32 checksum. * * @param data The data to checksum * @param previous previous crc32 checksum result. Used if you are buffering large input. * * @category Crypto */ export function crc32(data: Hashable, previous?: number): number { return crt_native.checksums_crc32(data, previous); } /** * Computes a crc32c checksum. * * @param data The data to checksum * @param previous previous crc32c checksum result. Used if you are buffering large input. * * @category Crypto */ export function crc32c(data: Hashable, previous?: number): number { return crt_native.checksums_crc32c(data, previous); } /** * Computes a crc64nvme checksum. * * @param data The data to checksum * @param previous previous crc64nvme checksum result. Used if you are buffering large input. * * @category Crypto */ export function crc64nvme(data: Hashable, previous?: DataView): DataView { return crt_native.checksums_crc64nvme(data, previous); }