/** * @license * @preserve * * KeeeX SAS Public code * https://keeex.me * Copyright 2013-2023 KeeeX All Rights Reserved. * * These computer program listings and specifications, herein, * are and remain the property of KeeeX SAS. The intellectual * and technical concepts herein are proprietary to KeeeX SAS * and may be covered by EU and foreign patents, * patents in process, trade secrets and copyright law. * * These listings are published as a way to provide third party * with the ability to process KeeeX data. * As such, support for public inquiries is limited. * They are provided "as-is", without warrany of any kind. * * They shall not be reproduced or copied or used in whole or * in part as the basis for manufacture or sale of items unless * prior written permission is obtained from KeeeX SAS. * * For a license agreement, please contact: * * */ import { type Hmac } from "../hmactypes.js"; import type * as digestTypes from "../digesttypes.js"; /** * Fallback implementation of a HMAC that support chunked input. * * Handle computation using digest module. * * @internal */ export default class ChunkHmac implements Hmac { #private; constructor(algorithm: digestTypes.Algorithms, key: Uint8Array); /** Return an appropriate length key for HMAC */ static readonly padKey: (algorithm: digestTypes.Algorithms, key: Uint8Array) => Promise; /** XOR a byte buffer with the given byte */ static readonly xorBuffer: (input: Uint8Array, byteKey: number) => Uint8Array; update: (data: Uint8Array) => Promise; hmac: (data?: Uint8Array) => Promise; }