UNPKG

tink-crypto

Version:

A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

35 lines (34 loc) 1.05 kB
/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ /** * Interface for symmetric key ciphers that are indistinguishable against * chosen-plaintext attacks. * * Security guarantees: implementation of this interface do not provide * authentication, thus should not be used directly, but only to construct safer * primitives such as {@link tink.Aead}. * */ export interface IndCpaCipher { /** * Encrypts `plaintext`. * * @param plaintext the plaintext to be encrypted. It must be * non-null, but can also be an empty (zero-length) byte array. * @return resulting ciphertext * @throws {SecurityException} */ encrypt(plaintext: Uint8Array): Promise<Uint8Array>; /** * Decrypts ciphertext with associated authenticated data. * * @param ciphertext the ciphertext to be decrypted, must be * non-null. * @return resulting plaintext * @throws {SecurityException} */ decrypt(ciphertext: Uint8Array): Promise<Uint8Array>; }