/** * @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 CipherOptions } from "./cipher/types.js"; import { type DigestOptions } from "./digest/types.js"; import { type HmacOptions } from "./hmac/types.js"; /** * Classes of algorithms to test. * * @public */ export declare enum AlgorithmClass { digest = "DIGEST", random = "RANDOM", cipher = "CIPHER", keys = "KEYS", hmac = "HMAC" } /** * Outcome of a test group. * * @public */ export declare enum TestGroupStatus { done = "DONE", nonApplicable = "N/A", skipped = "SKIPPED" } /** * Outcome of a test. * * @public */ export declare enum TestStatus { ok = "OK", fail = "FAIL", nonApplicable = "N/A", skipped = "SKIPPED" } /** * A single test result. * * @internal */ export interface TestResult { label: string; status: TestStatus; details?: string; } /** * A group of test. * * @internal */ export interface TestGroup { label: string; results: Array; } /** * All result for a single algorithm class (cipher, digest…) * * @internal */ export interface AlgorithmClassTestResult { type: AlgorithmClass; groups: Array; } /** * Expected test environment, to tailor some features. * * @public */ export declare enum TestEnvironment { node = "NODE", browser = "BROWSER", reactNative = "REACTNATIVE", pureJS = "JAVASCRIPT" } /** * Test options to accomodate different environments. * * @public */ export interface TestOptions { /** Test environment, to enable/disable stuff globally */ environment: TestEnvironment; /** Digest-specific options */ digest?: DigestOptions; /** Hmac-specific options */ hmac?: HmacOptions; /** Cipher specific options */ cipher?: CipherOptions; /** Class of algorithms to skip when testing */ skipClasses?: Array; }